From e0f333109eaead47d421db3781eb2af3ab17c93c Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:14:56 -0500 Subject: [PATCH 01/19] Preserve proven native TFTMAC Gate 1 --- Probes/EmbeddedControlProbe/main.swift | 12 + TFTMAC.xcodeproj/project.pbxproj | 198 ++ .../xcshareddata/swiftpm/Package.resolved | 204 ++ .../xcshareddata/xcschemes/TFTMAC.xcscheme | 32 + Tests/TFTMACTests/TFTMACGate1Tests.swift | 30 + Vendor/AndroidEmulator/SOURCE.json | 18 + .../AndroidEmulator/emulator_controller.proto | 1865 +++++++++++++++++ scripts/build-native-app.command | 26 + scripts/test-native-app.command | 16 + tftmac/App/AppCoordinator.swift | 17 + tftmac/App/MainWindowController.swift | 26 + tftmac/App/TFTMACApplication.swift | 16 + tftmac/Info.plist | 2 +- .../Presentation/EmbeddedEmulatorView.swift | 38 + tftmac/Presentation/ViewportMapper.swift | 30 + tools/tftmac-direct-control.mjs | 63 + 16 files changed, 2592 insertions(+), 1 deletion(-) create mode 100644 Probes/EmbeddedControlProbe/main.swift create mode 100644 TFTMAC.xcodeproj/project.pbxproj create mode 100644 TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 TFTMAC.xcodeproj/xcshareddata/xcschemes/TFTMAC.xcscheme create mode 100644 Tests/TFTMACTests/TFTMACGate1Tests.swift create mode 100644 Vendor/AndroidEmulator/SOURCE.json create mode 100644 Vendor/AndroidEmulator/emulator_controller.proto create mode 100644 scripts/build-native-app.command create mode 100644 scripts/test-native-app.command create mode 100644 tftmac/App/AppCoordinator.swift create mode 100644 tftmac/App/MainWindowController.swift create mode 100644 tftmac/App/TFTMACApplication.swift create mode 100644 tftmac/Presentation/EmbeddedEmulatorView.swift create mode 100644 tftmac/Presentation/ViewportMapper.swift diff --git a/Probes/EmbeddedControlProbe/main.swift b/Probes/EmbeddedControlProbe/main.swift new file mode 100644 index 0000000..e77015b --- /dev/null +++ b/Probes/EmbeddedControlProbe/main.swift @@ -0,0 +1,12 @@ +import Foundation + +let authority = URL(fileURLWithPath: FileManager.default.currentDirectoryPath) + .appendingPathComponent("Vendor/AndroidEmulator/SOURCE.json") + +if FileManager.default.fileExists(atPath: authority.path) { + print("TFTMAC EmbeddedControlProbe: emulator protocol authority present") + exit(EXIT_SUCCESS) +} else { + fputs("TFTMAC EmbeddedControlProbe: emulator protocol authority missing\n", stderr) + exit(EXIT_FAILURE) +} diff --git a/TFTMAC.xcodeproj/project.pbxproj b/TFTMAC.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3d2ac29 --- /dev/null +++ b/TFTMAC.xcodeproj/project.pbxproj @@ -0,0 +1,198 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = {}; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 100000000000000000000001 /* TFTMACApplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000001 /* TFTMACApplication.swift */; }; + 100000000000000000000002 /* AppCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000002 /* AppCoordinator.swift */; }; + 100000000000000000000003 /* MainWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000003 /* MainWindowController.swift */; }; + 100000000000000000000004 /* EmbeddedEmulatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000004 /* EmbeddedEmulatorView.swift */; }; + 100000000000000000000005 /* ViewportMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000005 /* ViewportMapper.swift */; }; + 100000000000000000000006 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000006 /* main.swift */; }; + 100000000000000000000007 /* TFTMACGate1Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000007 /* TFTMACGate1Tests.swift */; }; + 100000000000000000000008 /* ViewportMapper.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000005 /* ViewportMapper.swift */; }; + 100000000000000000000011 /* GRPCCore in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000001 /* GRPCCore */; }; + 100000000000000000000012 /* GRPCNIOTransportHTTP2 in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000002 /* GRPCNIOTransportHTTP2 */; }; + 100000000000000000000013 /* GRPCProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000003 /* GRPCProtobuf */; }; + 100000000000000000000014 /* SwiftProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000004 /* SwiftProtobuf */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 200000000000000000000001 /* TFTMACApplication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TFTMACApplication.swift; sourceTree = ""; }; + 200000000000000000000002 /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = ""; }; + 200000000000000000000003 /* MainWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainWindowController.swift; sourceTree = ""; }; + 200000000000000000000004 /* EmbeddedEmulatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedEmulatorView.swift; sourceTree = ""; }; + 200000000000000000000005 /* ViewportMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewportMapper.swift; sourceTree = ""; }; + 200000000000000000000006 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 200000000000000000000007 /* TFTMACGate1Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TFTMACGate1Tests.swift; sourceTree = ""; }; + 200000000000000000000008 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 200000000000000000000011 /* TFTMAC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TFTMAC.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 200000000000000000000012 /* EmbeddedControlProbe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = EmbeddedControlProbe; sourceTree = BUILT_PRODUCTS_DIR; }; + 200000000000000000000013 /* TFTMACTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TFTMACTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 300000000000000000000001 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 100000000000000000000011 /* GRPCCore in Frameworks */, + 100000000000000000000012 /* GRPCNIOTransportHTTP2 in Frameworks */, + 100000000000000000000013 /* GRPCProtobuf in Frameworks */, + 100000000000000000000014 /* SwiftProtobuf in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 300000000000000000000002 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; + 300000000000000000000003 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 400000000000000000000001 = { + isa = PBXGroup; + children = ( + 400000000000000000000002 /* TFTMAC */, + 400000000000000000000005 /* Probes */, + 400000000000000000000007 /* Tests */, + 400000000000000000000009 /* Products */, + ); + sourceTree = ""; + }; + 400000000000000000000002 /* TFTMAC */ = { + isa = PBXGroup; + children = ( + 400000000000000000000003 /* App */, + 400000000000000000000004 /* Presentation */, + 200000000000000000000008 /* Info.plist */, + ); + path = TFTMAC; + sourceTree = ""; + }; + 400000000000000000000003 /* App */ = { + isa = PBXGroup; + children = ( + 200000000000000000000001 /* TFTMACApplication.swift */, + 200000000000000000000002 /* AppCoordinator.swift */, + 200000000000000000000003 /* MainWindowController.swift */, + ); + path = App; + sourceTree = ""; + }; + 400000000000000000000004 /* Presentation */ = { + isa = PBXGroup; + children = ( + 200000000000000000000004 /* EmbeddedEmulatorView.swift */, + 200000000000000000000005 /* ViewportMapper.swift */, + ); + path = Presentation; + sourceTree = ""; + }; + 400000000000000000000005 /* Probes */ = {isa = PBXGroup; children = (400000000000000000000006 /* EmbeddedControlProbe */,); path = Probes; sourceTree = ""; }; + 400000000000000000000006 /* EmbeddedControlProbe */ = {isa = PBXGroup; children = (200000000000000000000006 /* main.swift */,); path = EmbeddedControlProbe; sourceTree = ""; }; + 400000000000000000000007 /* Tests */ = {isa = PBXGroup; children = (400000000000000000000008 /* TFTMACTests */,); path = Tests; sourceTree = ""; }; + 400000000000000000000008 /* TFTMACTests */ = {isa = PBXGroup; children = (200000000000000000000007 /* TFTMACGate1Tests.swift */,); path = TFTMACTests; sourceTree = ""; }; + 400000000000000000000009 /* Products */ = {isa = PBXGroup; children = (200000000000000000000011 /* TFTMAC.app */, 200000000000000000000012 /* EmbeddedControlProbe */, 200000000000000000000013 /* TFTMACTests.xctest */,); name = Products; sourceTree = ""; }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 500000000000000000000001 /* TFTMAC */ = { + isa = PBXNativeTarget; + buildConfigurationList = 900000000000000000000002 /* Build configuration list for PBXNativeTarget "TFTMAC" */; + buildPhases = (700000000000000000000001 /* Sources */, 300000000000000000000001 /* Frameworks */, 800000000000000000000001 /* Resources */); + buildRules = (); + dependencies = (); + name = TFTMAC; + packageProductDependencies = (D00000000000000000000001 /* GRPCCore */, D00000000000000000000002 /* GRPCNIOTransportHTTP2 */, D00000000000000000000003 /* GRPCProtobuf */, D00000000000000000000004 /* SwiftProtobuf */); + productName = TFTMAC; + productReference = 200000000000000000000011 /* TFTMAC.app */; + productType = "com.apple.product-type.application"; + }; + 500000000000000000000002 /* EmbeddedControlProbe */ = { + isa = PBXNativeTarget; + buildConfigurationList = 900000000000000000000003 /* Build configuration list for PBXNativeTarget "EmbeddedControlProbe" */; + buildPhases = (700000000000000000000002 /* Sources */, 300000000000000000000002 /* Frameworks */); + buildRules = (); + dependencies = (); + name = EmbeddedControlProbe; + productName = EmbeddedControlProbe; + productReference = 200000000000000000000012 /* EmbeddedControlProbe */; + productType = "com.apple.product-type.tool"; + }; + 500000000000000000000003 /* TFTMACTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 900000000000000000000004 /* Build configuration list for PBXNativeTarget "TFTMACTests" */; + buildPhases = (700000000000000000000003 /* Sources */, 300000000000000000000003 /* Frameworks */); + buildRules = (); + dependencies = (); + name = TFTMACTests; + productName = TFTMACTests; + productReference = 200000000000000000000013 /* TFTMACTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 600000000000000000000001 /* Project object */ = { + isa = PBXProject; + attributes = {BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 2600; LastUpgradeCheck = 2600;}; + buildConfigurationList = 900000000000000000000001 /* Build configuration list for PBXProject "TFTMAC" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = (en, Base); + mainGroup = 400000000000000000000001; + packageReferences = (A00000000000000000000001 /* XCRemoteSwiftPackageReference "grpc-swift-2" */, A00000000000000000000002 /* XCRemoteSwiftPackageReference "grpc-swift-nio-transport" */, A00000000000000000000003 /* XCRemoteSwiftPackageReference "grpc-swift-protobuf" */, A00000000000000000000004 /* XCRemoteSwiftPackageReference "swift-protobuf" */); + productRefGroup = 400000000000000000000009 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = (500000000000000000000001 /* TFTMAC */, 500000000000000000000002 /* EmbeddedControlProbe */, 500000000000000000000003 /* TFTMACTests */); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 800000000000000000000001 /* Resources */ = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000004, 100000000000000000000005,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000002 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000006,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 100000000000000000000008,); runOnlyForDeploymentPostprocessing = 0; }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + B00000000000000000000001 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000002 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000021 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000022 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000031 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac.tests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000032 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac.tests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Release; }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 900000000000000000000001 /* Build configuration list for PBXProject "TFTMAC" */ = {isa = XCConfigurationList; buildConfigurations = (B00000000000000000000001, B00000000000000000000002,); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 900000000000000000000002 /* Build configuration list for PBXNativeTarget "TFTMAC" */ = {isa = XCConfigurationList; buildConfigurations = (B00000000000000000000011, B00000000000000000000012,); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 900000000000000000000003 /* Build configuration list for PBXNativeTarget "EmbeddedControlProbe" */ = {isa = XCConfigurationList; buildConfigurations = (B00000000000000000000021, B00000000000000000000022,); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 900000000000000000000004 /* Build configuration list for PBXNativeTarget "TFTMACTests" */ = {isa = XCConfigurationList; buildConfigurations = (B00000000000000000000031, B00000000000000000000032,); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + A00000000000000000000001 /* XCRemoteSwiftPackageReference "grpc-swift-2" */ = {isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/grpc/grpc-swift-2.git"; requirement = {kind = exactVersion; version = 2.4.2;}; }; + A00000000000000000000002 /* XCRemoteSwiftPackageReference "grpc-swift-nio-transport" */ = {isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/grpc/grpc-swift-nio-transport.git"; requirement = {kind = exactVersion; version = 2.9.1;}; }; + A00000000000000000000003 /* XCRemoteSwiftPackageReference "grpc-swift-protobuf" */ = {isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/grpc/grpc-swift-protobuf.git"; requirement = {kind = exactVersion; version = 2.4.1;}; }; + A00000000000000000000004 /* XCRemoteSwiftPackageReference "swift-protobuf" */ = {isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/apple/swift-protobuf.git"; requirement = {kind = exactVersion; version = 1.38.1;}; }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + D00000000000000000000001 /* GRPCCore */ = {isa = XCSwiftPackageProductDependency; package = A00000000000000000000001 /* XCRemoteSwiftPackageReference "grpc-swift-2" */; productName = GRPCCore; }; + D00000000000000000000002 /* GRPCNIOTransportHTTP2 */ = {isa = XCSwiftPackageProductDependency; package = A00000000000000000000002 /* XCRemoteSwiftPackageReference "grpc-swift-nio-transport" */; productName = GRPCNIOTransportHTTP2; }; + D00000000000000000000003 /* GRPCProtobuf */ = {isa = XCSwiftPackageProductDependency; package = A00000000000000000000003 /* XCRemoteSwiftPackageReference "grpc-swift-protobuf" */; productName = GRPCProtobuf; }; + D00000000000000000000004 /* SwiftProtobuf */ = {isa = XCSwiftPackageProductDependency; package = A00000000000000000000004 /* XCRemoteSwiftPackageReference "swift-protobuf" */; productName = SwiftProtobuf; }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = 600000000000000000000001 /* Project object */; +} diff --git a/TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..4eca42f --- /dev/null +++ b/TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,204 @@ +{ + "originHash" : "9afaf1a1d30e374e2a7b5940d1cc3b2b2293103c55b34e9bc2cf060b4ab63c18", + "pins" : [ + { + "identity" : "grpc-swift-2", + "kind" : "remoteSourceControl", + "location" : "https://github.com/grpc/grpc-swift-2.git", + "state" : { + "revision" : "28cdd63ef88583ddc67d7bb179eab46fab465ce9", + "version" : "2.4.2" + } + }, + { + "identity" : "grpc-swift-nio-transport", + "kind" : "remoteSourceControl", + "location" : "https://github.com/grpc/grpc-swift-nio-transport.git", + "state" : { + "revision" : "c46f77c07c3ae4fce4734e7af03fcb35ab544428", + "version" : "2.9.1" + } + }, + { + "identity" : "grpc-swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/grpc/grpc-swift-protobuf.git", + "state" : { + "revision" : "176c5a434fd76f6f479848d1a8f7d44967534168", + "version" : "2.4.1" + } + }, + { + "identity" : "swift-algorithms", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-algorithms.git", + "state" : { + "revision" : "87e50f483c54e6efd60e885f7f5aa946cee68023", + "version" : "1.2.1" + } + }, + { + "identity" : "swift-asn1", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-asn1.git", + "state" : { + "revision" : "a9a5efd40eaf558a2bcd48d64b1d1646be686008", + "version" : "1.7.1" + } + }, + { + "identity" : "swift-async-algorithms", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-async-algorithms.git", + "state" : { + "revision" : "3da39bbc4e687d4192af7c9cf4eab805745a0b9c", + "version" : "1.1.5" + } + }, + { + "identity" : "swift-atomics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-atomics.git", + "state" : { + "revision" : "0442cb5a3f98ab802acb777929fdb446bda11a34", + "version" : "1.3.1" + } + }, + { + "identity" : "swift-certificates", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-certificates.git", + "state" : { + "revision" : "449dbbecd0f31e82b510ada227ca152caa8b5e98", + "version" : "1.19.4" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections.git", + "state" : { + "revision" : "a0cb0954ecb21e4e31b0070e6ed5674e8556685a", + "version" : "1.6.0" + } + }, + { + "identity" : "swift-crypto", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-crypto.git", + "state" : { + "revision" : "47d3869a7291f085c1fb9fb1e6d3b97a793f45c6", + "version" : "4.5.1" + } + }, + { + "identity" : "swift-http-structured-headers", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-http-structured-headers.git", + "state" : { + "revision" : "933538faa42c432d385f02e07df0ace7c5ecfc47", + "version" : "1.7.0" + } + }, + { + "identity" : "swift-http-types", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-http-types.git", + "state" : { + "revision" : "db774a277f60063a32d854f2980299caf06da041", + "version" : "1.6.0" + } + }, + { + "identity" : "swift-log", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-log.git", + "state" : { + "revision" : "3ffafb9722d5d918c614feb496c8789a3b59d222", + "version" : "1.15.0" + } + }, + { + "identity" : "swift-nio", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio.git", + "state" : { + "revision" : "0b18836bd8b0162e7e17a995a3fbee20ed8f3b2b", + "version" : "2.101.3" + } + }, + { + "identity" : "swift-nio-extras", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-extras.git", + "state" : { + "revision" : "88a51340f59cf181ebde888bd1b749296b3ec029", + "version" : "1.34.3" + } + }, + { + "identity" : "swift-nio-http2", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-http2.git", + "state" : { + "revision" : "45bdf670248be5f16ec0340e125dca285536f0fb", + "version" : "1.45.0" + } + }, + { + "identity" : "swift-nio-ssl", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-ssl.git", + "state" : { + "revision" : "d930168b86f46ca51a4bc09c5ca45c1833db8067", + "version" : "2.37.2" + } + }, + { + "identity" : "swift-nio-transport-services", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-nio-transport-services.git", + "state" : { + "revision" : "67787bb645a5e67d2edcdfbe48a216cc549222d5", + "version" : "1.28.0" + } + }, + { + "identity" : "swift-numerics", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-numerics.git", + "state" : { + "revision" : "0c0290ff6b24942dadb83a929ffaaa1481df04a2", + "version" : "1.1.1" + } + }, + { + "identity" : "swift-protobuf", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-protobuf.git", + "state" : { + "revision" : "55d7a1cc5666b85c13464aea1c4b4a90feccb4c8", + "version" : "1.38.1" + } + }, + { + "identity" : "swift-service-lifecycle", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swift-server/swift-service-lifecycle.git", + "state" : { + "revision" : "7f9326b0326ff86e3646295ea6e891f68c471c5e", + "version" : "2.12.0" + } + }, + { + "identity" : "swift-system", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-system.git", + "state" : { + "revision" : "869129b7bf4ecc57b97d0193ad29690ca2134750", + "version" : "1.8.1" + } + } + ], + "version" : 3 +} diff --git a/TFTMAC.xcodeproj/xcshareddata/xcschemes/TFTMAC.xcscheme b/TFTMAC.xcodeproj/xcshareddata/xcschemes/TFTMAC.xcscheme new file mode 100644 index 0000000..8f45553 --- /dev/null +++ b/TFTMAC.xcodeproj/xcshareddata/xcschemes/TFTMAC.xcscheme @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/TFTMACTests/TFTMACGate1Tests.swift b/Tests/TFTMACTests/TFTMACGate1Tests.swift new file mode 100644 index 0000000..f7b64f3 --- /dev/null +++ b/Tests/TFTMACTests/TFTMACGate1Tests.swift @@ -0,0 +1,30 @@ +import CoreGraphics +import XCTest + +final class TFTMACGate1Tests: XCTestCase { + func testAspectFitCentersSixteenByNineInsideMatchingViewport() { + let mapper = ViewportMapper( + sourceSize: CGSize(width: 1920, height: 1080), + viewportSize: CGSize(width: 1600, height: 900) + ) + XCTAssertEqual(mapper.displayedRect, CGRect(x: 0, y: 0, width: 1600, height: 900)) + } + + func testLetterboxRegionDoesNotProduceAndroidTouch() { + let mapper = ViewportMapper( + sourceSize: CGSize(width: 1920, height: 1080), + viewportSize: CGSize(width: 1600, height: 1000) + ) + XCTAssertNil(mapper.sourcePoint(for: CGPoint(x: 800, y: 20))) + } + + func testViewportCenterMapsToSourceCenter() throws { + let mapper = ViewportMapper( + sourceSize: CGSize(width: 1920, height: 1080), + viewportSize: CGSize(width: 1600, height: 1000) + ) + let source = try XCTUnwrap(mapper.sourcePoint(for: CGPoint(x: 800, y: 500))) + XCTAssertEqual(source.x, 960, accuracy: 0.001) + XCTAssertEqual(source.y, 540, accuracy: 0.001) + } +} diff --git a/Vendor/AndroidEmulator/SOURCE.json b/Vendor/AndroidEmulator/SOURCE.json new file mode 100644 index 0000000..d06248e --- /dev/null +++ b/Vendor/AndroidEmulator/SOURCE.json @@ -0,0 +1,18 @@ +{ + "schema": 1, + "observedAt": "2026-08-29T22:19:36.947Z", + "authority": "INSTALLED_ANDROID_EMULATOR", + "emulatorVersion": "Android emulator version 37.1.11.0 (build_id 15917651) (CL:N/A)", + "emulatorBinary": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/emulator", + "installedProtoPath": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto", + "installedProtoSHA256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "vendoredProtoPath": "Vendor/AndroidEmulator/emulator_controller.proto", + "vendoredProtoSHA256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "aemuAuthority": { + "branch": "emu-master-dev", + "qemuCommit": "ae9d18d2b6261179fbd57fffec720a04f7bfb053", + "aemuCommit": "3c1ced8a369417db591eb7cd083af5bb2c317975", + "manifestSHA256": "28865cd8a162178ba462b296f5714b6b7b6916e0cafcddfc0c5e44aa03f8e8d3" + }, + "contract": "The vendored protocol bytes come directly from the installed stock Android Emulator runtime used by TFTMAC. Build/generation must fail on byte drift until the authority is intentionally refreshed." +} diff --git a/Vendor/AndroidEmulator/emulator_controller.proto b/Vendor/AndroidEmulator/emulator_controller.proto new file mode 100644 index 0000000..d148312 --- /dev/null +++ b/Vendor/AndroidEmulator/emulator_controller.proto @@ -0,0 +1,1865 @@ +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Note that if you add/remove methods in this file you must update +// the metrics sql as well ./android/scripts/gen-grpc-sql.py +// +// Please group deleted methods in a block including the date (MM/DD/YY) +// it was removed. This enables us to easily keep metrics around after removal +// +// List of deleted methods +// rpc iWasDeleted (03/12/12) +// ... +syntax = "proto3"; + +option java_multiple_files = true; +option java_package = "com.android.emulator.control"; +option objc_class_prefix = "AEC"; + +package android.emulation.control; +import "google/protobuf/empty.proto"; + +// An EmulatorController service lets you control the emulator. +// Note that this is currently an experimental feature, and that the +// service definition might change without notice. Use at your own risk! +// +// We use the following rough conventions: +// +// streamXXX --> streams values XXX (usually for emulator lifetime). Values +// are updated as soon as they become available. +// getXXX --> gets a single value XXX +// setXXX --> sets a single value XXX, does not returning state, these +// usually have an observable lasting side effect. +// sendXXX --> send a single event XXX, possibly returning state information. +// android usually responds to these events. +service EmulatorController { + // set/get/stream the sensor data + // This RPC is not implemented in EmulatorController and will return an unimplemented error. + rpc streamSensor(SensorValue) returns (stream SensorValue) {} + // Gets the current value of a specified sensor. + // + // The following gRPC error codes can be returned: + // - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + // + // The `status` field in the `SensorValue` reply indicates the operational state: + // - `OK` (0): Sensor data retrieved successfully. + // - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + // - `DISABLED` (3): The sensor is disabled. + // - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + rpc getSensor(SensorValue) returns (SensorValue) {} + // Sets the override value for a specified sensor. This operation is asynchronous + // and executed on the emulator's main looper. An immediate subsequent `getSensor` + // call might not reflect the newly set value. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + // No specific gRPC error codes are returned by this method itself, but underlying + // operations might log warnings if the sensor agent is unavailable. + rpc setSensor(SensorValue) returns (google.protobuf.Empty) {} + + // set/get/stream the physical model, this is likely the one you are + // looking for when you wish to modify the device state. + // + // This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + // call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + // physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc setPhysicalModel(PhysicalModelValue) returns (google.protobuf.Empty) {} + // Gets the current value of a specified physical model parameter. + // + // The `status` field in the `PhysicalModelValue` reply indicates the operational state: + // - `OK` (0): Physical model data retrieved successfully. + // - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + // - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + rpc getPhysicalModel(PhysicalModelValue) returns (PhysicalModelValue) {} + // This RPC is not implemented in EmulatorController and will return an unimplemented error. + rpc streamPhysicalModel(PhysicalModelValue) + returns (stream PhysicalModelValue) {} + + // Atomically sets the current primary clipboard data. This operation is asynchronous + // and executed on the emulator's main looper. It triggers a `ClipboardEvent` + // to all listeners (except the originating channel) indicating the new content. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc setClipboard(ClipData) returns (google.protobuf.Empty) {} + // Retrieves the current primary clipboard data. This is a synchronous operation. + // + // This method returns `OK` (code 0) and the current `ClipData` upon success. + rpc getClipboard(google.protobuf.Empty) returns (ClipData) {} + + // Streams real-time updates of the clipboard content. Upon subscription, + // it immediately sends the current clipboard state. Subsequent updates are + // streamed as new content becomes available from the guest or is set via `setClipboard` + // from a different client. Events originating from the same client that initiated + // the stream are filtered out to prevent echoing. + // + // It is possible to miss very rapid clipboard updates. The stream will block + // awaiting new events after the initial state is sent. + // + // This method returns a server-side streaming reactor. + rpc streamClipboard(google.protobuf.Empty) returns (stream ClipData) {} + + // Sets the emulator's battery state to the provided values. This operation is + // executed asynchronously on the main looper. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling + // of the operation. No explicit gRPC error codes are returned by this method. + rpc setBattery(BatteryState) returns (google.protobuf.Empty) {} + // Retrieves the current battery state from the emulator. This is a + // synchronous operation that waits for completion. + // + // This method returns `OK` (code 0) and populates the `BatteryState` reply + // with the current information upon success. No explicit gRPC error codes + // are returned by this method. + rpc getBattery(google.protobuf.Empty) returns (BatteryState) {} + + // Sets the state of the GPS in the emulator. This operation is asynchronous + // and executed on the main looper. It updates the emulator's GPS location + // (latitude, longitude, altitude, speed, bearing, and satellites) and sets + // the timestamp. + // + // Note: Setting the GPS position will not be immediately reflected in the user + // interface. Android typically samples GPS at 1 Hz. + // This method returns `OK` (code 0) upon successful asynchronous scheduling + // of the operation. + rpc setGps(GpsState) returns (google.protobuf.Empty) {} + + // Gets the latest GPS state as reported by the emulator. This includes data + // delivered by previous `setGps` calls or from the location UI if active. + // This is a synchronous operation that waits for completion. + // + // Note: The returned GPS state is not necessarily the exact coordinate + // visible at the time due to Android's typical 1 Hz GPS sample frequency. + // + // This method returns `OK` (code 0) and populates the `GpsState` reply + // with the retrieved information upon success. No explicit gRPC error codes + // are returned by this method. + rpc getGps(google.protobuf.Empty) returns (GpsState) {} + + // Simulates a touch event on the fingerprint sensor. This operation is + // executed asynchronously on the main looper. + // + // The `isTouching` field indicates whether the fingerprint sensor is being + // touched, and `touchId` specifies the identifier of the registered + // fingerprint. The `setTouch` agent function is used to apply these values. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling + // of the operation. No explicit gRPC error codes are returned by this method. + rpc sendFingerprint(Fingerprint) returns (google.protobuf.Empty) {} + + // Sends a keyboard event to the emulator. This operation is asynchronous + // and executed on the main looper. + // + // The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + // The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + // - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + // - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + // - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + // - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc sendKey(KeyboardEvent) returns (google.protobuf.Empty) {} + // Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + // + // The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + // Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + // Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + rpc sendTouch(TouchEvent) returns (google.protobuf.Empty) {} + // Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + // + // The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + // In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + // The event is sent to the emulator's `user_event_agent`. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc sendMouse(MouseEvent) returns (google.protobuf.Empty) {} + // Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + // + // Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + // If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + // Otherwise, it's sent as a standard mouse wheel event. + // + // This method returns a server-side streaming reactor. + rpc injectWheel(stream WheelEvent) returns (google.protobuf.Empty) {} + + // Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + // This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + // + // Supported input types: + // - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + // - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + // - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + // - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + // - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + // - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + // - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + // - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + // - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + // - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + // - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + // - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + // + // All underlying input sending operations for XR events are executed asynchronously on the main looper. + // + // Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + // The stream reactor automatically deletes itself upon completion. + rpc streamInputEvent(stream InputEvent) returns (google.protobuf.Empty) {} + + // Initiates or manipulates a phone call in the emulator. This is a synchronous + // operation executed on the main looper. + // + // The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + // and the target phone `number`. The `telephonyCmd` agent function handles the + // actual call action. + // + // Returns a `PhoneResponse` indicating the outcome: + // - `OK` (0): The operation was successful. + // - `BadOperation` (1): The provided `operation` enum is out of range. + // - `BadNumber` (2): The provided `number` is malformed. + // - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + // - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + // - `RadioOff` (5): The emulator's radio is turned off. + rpc sendPhone(PhoneCall) returns (PhoneResponse) {} + + // Sends an SMS message to the emulator. This is a synchronous operation. + // + // The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + // The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + // (Protocol Data Units) and delivered via the modem agent. + // + // Returns a `PhoneResponse` indicating the outcome: + // - `OK` (0): The SMS message was successfully delivered. + // - `BadNumber` (2): The `srcAddress` is malformed. + // - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + // + // Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + rpc sendSms(SmsMessage) returns (PhoneResponse) {} + + // Sets the emulator's phone number. This is a synchronous operation. + // + // The `PhoneNumber` message contains the new `number` to be set. The modem agent's + // `amodem_update_phone_number` function is used for this update. + // + // Returns a `PhoneResponse` indicating the outcome: + // - `OK` (0): The phone number was successfully updated. + // - `BadNumber` (2): The provided `number` is invalid for the modem. + // - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + rpc setPhoneNumber(PhoneNumber) returns (PhoneResponse) {} + + // Retrieves the current status of the emulator. This includes comprehensive + // information about the virtual machine's configuration and the guest operating system's state. + // + // The `EmulatorStatus` reply contains: + // - `version`: The emulator version string. + // - `uptime`: The time the emulator has been active in milliseconds. + // - `booted`: A boolean indicating if the device has completed booting. + // - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + // - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + // - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + // - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + // - "multidisplay": "available" or "unavailable" based on display pipe readiness. + // - "androidVersion": The Android version of the guest OS. + // - "hypervisorVersion": The hypervisor version used by the guest. + // + // This method returns `OK` (code 0) upon successful retrieval of the emulator status. + rpc getStatus(google.protobuf.Empty) returns (EmulatorStatus) {} + + // Retrieves a single screenshot in the desired format. + // + // The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + // the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + // The returned image will never exceed the device's actual display resolution, but can be smaller. + // + // The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + // For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + // The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + // + // The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + // is too small, a `FAILED_PRECONDITION` error will be returned. + // + // This method returns: + // - `OK` (code 0) and an `Image` object upon success. + // - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + // - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + // - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + // + // This method will return an image with width 0 and height 0 if the display is not visible. + rpc getScreenshot(ImageFormat) returns (Image) {} + + // Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + // + // A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + // Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + // Subsequent frames are delivered when new content is available or a sensor event triggers an update. + // If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + // + // `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + // The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + // provided shared memory handle is valid and mapped, pixel data will be written directly to it. + // The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + // + // Performance considerations: + // - Streaming can produce a significant amount of data. + // - `PNG` format is CPU-intensive due to encoding overhead. + // - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + // + // This method returns: + // - A server-side streaming reactor. + // - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + // - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + rpc streamScreenshot(ImageFormat) returns (stream Image) {} + + // Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + // A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + // If `samplingRate` is 0, it defaults to 44100 Hz. + // The stream may block indefinitely if the emulator ceases to produce audio. + // Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + // + // This method returns `OK` (code 0) upon successful streaming initiation. + rpc streamAudio(AudioFormat) returns (stream AudioPacket) {} + + // Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + // Audio packets are processed at a rate determined by the emulator's request for frames. + // An internal buffer can hold approximately 300ms of audio. + // + // Notes: + // - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + // - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + // - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + // + // Returns the following gRPC error codes: + // - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + // - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + // + // This method returns `OK` (code 0) upon successful completion of the stream. + rpc injectAudio(stream AudioPacket) returns (google.protobuf.Empty) {} + + // Retrieves the current settings for the microphone + rpc getMicrophoneState(google.protobuf.Empty) returns (MicrophoneState) {} + + // Sets the state for the microphone + rpc setMicrophoneState(MicrophoneState) returns (google.protobuf.Empty) {} + + // Deprecated, please use the streamLogcat method instead. + rpc getLogcat(LogMessage) returns (LogMessage) { + option deprecated = true; + } + + // Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + // The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + // Log lines are processed individually as they arrive. + // + // The `LogMessage.sort` field determines the output format: + // - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + // and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + // available for Android API Level 23 (Marshmallow) and later. + // - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + // + // The stream continues as long as the underlying `logcat` process is running and the client is connected. + // The stream will naturally terminate if the `logcat` process stops or the connection is lost. + // No explicit gRPC error codes are returned by this method during active streaming. + rpc streamLogcat(LogMessage) returns (stream LogMessage) {} + + // Transitions the virtual machine to the desired state. This operation is scheduled + // asynchronously. + // + // Transition commands: + // - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + // - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + // - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + // - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + // - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + // This can cause data corruption and must be used with caution. + // + // Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + // transition but are not observed as states in `getVmState`. Purely observable states + // (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + // + // Returns once the operation has been scheduled. + // Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + rpc setVmState(VmRunState) returns (google.protobuf.Empty) {} + + // Retrieves the current execution state of the virtual machine. + // + // The returned `VmRunState` represents the current condition of the VM: + // - `RUNNING`: The virtual machine is actively executing. + // - `PAUSED`: Execution is suspended (CPUs are halted). + // - `SHUTDOWN`: The guest operating system has initiated a shutdown. + // - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + // - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + // - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + // - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + // + // This is a synchronous query operation. + rpc getVmState(google.protobuf.Empty) returns (VmRunState) {} + + // Atomically changes the current multi-display configuration. This operation applies + // the provided `DisplayConfigurations`, with special handling for secondary displays. + // Display ID 0 (the primary display) cannot be modified via this RPC. + // + // Preconditions: + // - The `android::featurecontrol::MultiDisplay` feature must be enabled. + // + // Input Validation: + // - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + // - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + // is outside valid ranges as determined by `multiDisplayParamValidate`. + // - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + // `[1, userConfigurable]`. + // + // Atomic Update and Rollback: + // The system attempts to apply each display configuration. If any update fails + // (e.g., after multiple retries for transient pipe errors), a rollback mechanism + // is initiated: successfully updated displays are reverted to their previous state, + // and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + // + // Deletion of Unrequested Displays: + // Any displays that were active before this call but are not present in the new + // `request.displays` (and are not display ID 0) will be deleted. + // + // Notifications: + // Upon successful completion, `notifyDisplayChanges()` is called to inform + // third-party subscribers. + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + // - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + // - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + rpc setDisplayConfigurations(DisplayConfigurations) + returns (DisplayConfigurations) {} + + // Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + // + // Preconditions: + // - The `android::featurecontrol::MultiDisplay` feature must be enabled. + // + // The `DisplayConfigurations` reply contains: + // - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + // the width, height, DPI, flags, and ID of an active display. + // For Pixel Fold devices, only the main display configuration might be relevant. + // - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + // - `maxDisplays`: The total maximum number of displays the emulator supports. + // + // This method returns: + // - `OK` (code 0) and the current `DisplayConfigurations` upon success. + // - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + rpc getDisplayConfigurations(google.protobuf.Empty) + returns (DisplayConfigurations) {} + + // Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + // Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + // and XR options are immediately sent. The stream then continuously delivers new notifications + // when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + // + // Notifications include: + // - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + // - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + // - `Posture`: Reports changes in the device's foldable posture. + // - `BootCompletedNotification`: Indicates when the emulator has finished booting. + // - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + // - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + // - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + // - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + // - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + // + // This method returns a server-side streaming reactor. + rpc streamNotification(google.protobuf.Empty) + returns (stream Notification) {} + + // Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + // and executed on the main looper. + // + // The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + // The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + // This operation only succeeds if the virtual scene camera is actively connected. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc rotateVirtualSceneCamera(RotationRadian) + returns (google.protobuf.Empty) {} + // Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + // and executed on the main looper. + // + // The `Velocity` message specifies components in meters per second along the x, y, and z axes. + // The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + // The transition to these target velocity values may be smoothed over time by the implementation. + // This operation only succeeds if the virtual scene camera is actively connected. + // + // This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + rpc setVirtualSceneCameraVelocity(Velocity) + returns (google.protobuf.Empty) {} + // Sets the foldable posture of the device. This operation is asynchronous + // and executed on the main looper. + // + // The `Posture` message contains a `PostureValue` enum, defining the desired + // physical configuration of the foldable device. + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + // - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + rpc setPosture(Posture) returns (google.protobuf.Empty) {} + + // Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + // + // The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + // Internal mapping converts these to string names like "lcd_backlight". + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + // - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + rpc getBrightness(BrightnessValue) returns (BrightnessValue) {} + + // Sets the backlight brightness for a specified light type. This operation is asynchronous + // and executed on the main looper. + // + // The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + // The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + // Internal mapping converts `LightType` to string names like "lcd_backlight". + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + // - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + // - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + rpc setBrightness(BrightnessValue) returns (google.protobuf.Empty) {} + + // Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + // + // Preconditions: + // - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + // + // The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + // derived from the `getResizableActiveConfigId()`. + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful retrieval of the display mode. + // - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + rpc getDisplayMode(google.protobuf.Empty) returns (DisplayMode) {} + + // Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + // and executed on the main looper. + // + // Preconditions: + // - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + // - The emulator's `changeResizableDisplay` agent function must be available. + // + // The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + // - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + // - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + rpc setDisplayMode(DisplayMode) returns (google.protobuf.Empty) {} + + // Changes the XR-related settings of the emulator. This operation is asynchronous + // and executed on the main looper. + // + // The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + // and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + // Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + // - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + rpc setXrOptions(XrOptions) returns (google.protobuf.Empty) {} + + // Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + // + // Preconditions: + // - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + // (Note: Current implementation of `isXrGuestOs()` always returns true). + // + // The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + // + // Returns the following gRPC error codes: + // - `OK` (code 0): Upon successful retrieval of the XR options. + // - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + rpc getXrOptions(google.protobuf.Empty) returns (XrOptions) {} + + // Sets the environment background for AI glasses. + rpc setEnvironment(Environment) returns (google.protobuf.Empty) {} + + // Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + // will be set to default values. + rpc getEnvironment(google.protobuf.Empty) returns (Environment) {} + + // Returns the list of video cameras connected to the host machine. + rpc getHostCameras(google.protobuf.Empty) returns (CameraList) {} +} + +// Represents the execution state of the virtual machine, used for both querying the +// current status and requesting state transitions. +message VmRunState { + enum RunState { + // Purely observable state. The virtual machine is in an unmapped or transient state. + // Cannot be set directly. + UNKNOWN = 0; + + // Active execution state. Setting this state resumes the virtual machine. + RUNNING = 1; + + // Purely observable state. The virtual machine is paused while restoring its state + // (e.g., loading a snapshot). Cannot be set directly. + RESTORE_VM = 2; + + // Suspended execution state. Setting this state pauses the virtual machine and halts + // CPU cycles. + PAUSED = 3; + + // Purely observable state. The virtual machine is paused while saving its state + // (e.g., taking a snapshot). Cannot be set directly. + SAVE_VM = 4; + + // Graceful shutdown state. Setting this state initiates a clean shutdown of the + // virtual machine. + SHUTDOWN = 5; + + // Write-only command. Immediately terminates the emulator process without cleanup. + // Can cause data corruption and must be used with caution. + TERMINATE = 7; + + // Write-only command. Triggers a warm reset of the virtual machine. + RESET = 9; + + // Purely observable state. The virtual machine has stopped execution due to a guest + // panic, internal error, or I/O failure. Cannot be set directly. + INTERNAL_ERROR = 10; + + // Write-only command. Triggers a warm reset of the virtual machine (equivalent to `RESET`). + RESTART = 11; + + // Write-only command. Starts or resumes execution of the virtual machine (equivalent + // to `RUNNING`). + START = 12; + + // Write-only command. Stops execution of the virtual machine (equivalent to `PAUSED`). + STOP = 13; + } + + RunState state = 1; +} + +message ParameterValue { + repeated float data = 1 [packed = true]; +} + +message PhysicalModelValue { + enum State { + OK = 0; + NO_SERVICE = -3; // qemud service is not available/initiated. + DISABLED = -2; // Sensor is disabled. + UNKNOWN = -1; // Unknown sensor (should not happen) + } + + // Details on the sensors documentation can be found here: + // https://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ + // The types must follow the order defined in + // "external/qemu/android/hw-sensors.h" + enum PhysicalType { + POSITION = 0; + + // All values are angles in degrees. + // values = [x,y,z] + ROTATION = 1; + + MAGNETIC_FIELD = 2; + + // Temperature in °C + TEMPERATURE = 3; + + // Proximity sensor distance measured in centimeters + PROXIMITY = 4; + + // Ambient light level in SI lux units + LIGHT = 5; + + // Atmospheric pressure in hPa (millibar) + PRESSURE = 6; + + // Relative ambient air humidity in percent + HUMIDITY = 7; + + VELOCITY = 8; + AMBIENT_MOTION = 9; + + // Describing a hinge angle sensor in degrees. + HINGE_ANGLE0 = 10; + HINGE_ANGLE1 = 11; + HINGE_ANGLE2 = 12; + + ROLLABLE0 = 13; + ROLLABLE1 = 14; + ROLLABLE2 = 15; + + // Describing the device posture; the value should be an enum defined + // in Posture::PostureValue. + POSTURE = 16; + + // Heart rate in bpm + HEART_RATE = 17; + + // Ambient RGBC light intensity. Values are in order (Red, Green, Blue, + // Clear). + RGBC_LIGHT = 18; + + // Wrist tilt gesture (1 = gaze, 0 = ungaze) + WRIST_TILT = 19; + } + PhysicalType target = 1; + + // [Output Only] + State status = 2; + + // Value interpretation depends on sensor. + ParameterValue value = 3; + + enum Interpolation { + SMOOTH = 0; + STEP = 1; + } + + // [Input Only] How to transition to the target value. + Interpolation interpolation = 4; +} + +// A single sensor value. +message SensorValue { + enum State { + OK = 0; + NO_SERVICE = -3; // qemud service is not available/initiated. + DISABLED = -2; // Sensor is disabled. + UNKNOWN = -1; // Unknown sensor (should not happen) + } + + // These are the various sensors that can be available in an emulated + // devices. + enum SensorType { + // Measures the acceleration force in m/s2 that is applied to a device + // on all three physical axes (x, y, and z), including the force of + // gravity. + ACCELERATION = 0; + // Measures a device's rate of rotation in rad/s around each of the + // three physical axes (x, y, and z). + GYROSCOPE = 1; + // Measures the ambient geomagnetic field for all three physical axes + // (x, y, z) in μT. + MAGNETIC_FIELD = 2; + // Measures degrees of rotation that a device makes around all three + // physical axes (x, y, z) + ORIENTATION = 3; + // Measures the temperature of the device in degrees Celsius (°C). + TEMPERATURE = 4; + // Measures the proximity of an object in cm relative to the view screen + // of a device. This sensor is typically used to determine whether a + // handset is being held up to a person's ear. + PROXIMITY = 5; + // Measures the ambient light level (illumination) in lx. + LIGHT = 6; + // Measures the ambient air pressure in hPa or mbar. + PRESSURE = 7; + // Measures the relative ambient humidity in percent (%). + HUMIDITY = 8; + MAGNETIC_FIELD_UNCALIBRATED = 9; + GYROSCOPE_UNCALIBRATED = 10; + + // HINGE_ANGLE0 (11), HINGE_ANGLE1 (12), HINGE_ANGLE2 (13) are + // skipped; clients should use get/setPhysicalModel() instead for these + // "sensors". + + // Measures the heart rate in bpm. + HEART_RATE = 14; + // Measures the ambient RGBC light intensity. + // Values are in order (Red, Green, Blue, Clear). + RGBC_LIGHT = 15; + // WIRST_TILT (16) is skipped; clients should use get/setPhysicalModel() + // instead. + // Measures acceleration force and provides bias data. + ACCELERATION_UNCALIBRATED = 17; + // A sensor of this type measures the direction in which the device is + // pointing relative to true north in degrees. + HEADING = 18; + } + + // Type of sensor + SensorType target = 1; + + // [Output Only] + State status = 2; + + // Value interpretation depends on sensor enum. + ParameterValue value = 3; +} + +// A single backlight brightness value. +message BrightnessValue { + enum LightType { + // Display backlight. This will affect all displays. + LCD = 0; + KEYBOARD = 1; + BUTTON = 2; + } + + // Type of light + LightType target = 1; + + // Light intensity, ranges from 0-255. + uint32 value = 2; +} + +// in line with android/emulation/resizable_display_config.h +enum DisplayModeValue { + PHONE = 0; + FOLDABLE = 1; + TABLET = 2; + DESKTOP = 3; +} + +message DisplayMode { + DisplayModeValue value = 1; +} + +message XrOptions { + enum Environment { + LIVING_ROOM_DAY = 0; + LIVING_ROOM_NIGHT = 1; + // More environments may be added later. + } + + // The currently active artificial surrounding environment (a.k.a. + // passthrough environment). + Environment environment = 1; + + // A value of 0.0 means that the real or artificial surrounding environment + // (a.k.a. passthrough environment) is not visible. A value of 1.0 means + // that the passthrough environment is fully visible. Any value outside of + // the range [0.0-1.0] is ignored and leaves the state of passthrough + // unchanged. For simplicity of the implementation, this number may be + // rounded to an integer before applying. + float passthrough_coefficient = 2; + + float dimming_value = 4; +} + +// The state of one LED indicator of AI glasses. +message LedIndicator { + enum Facing { + INSIDE = 0; + OUTSIDE = 1; + } + + enum State { + OFF = 0; + ON = 1; + } + + // The indicator's identifier. + optional uint32 id = 1; + // Determines whether the indicator is inside or outside of the glasses frames. + optional Facing facing = 2; + // Determines whether the indicator is on or off. + optional State state = 3; + // Color in RGB format. + optional uint32 color = 4; +} + +message LogMessage { + // [Output Only] The contents of the log output. + string contents = 1; + // The starting byte position of the output that was returned. This + // should match the start parameter sent with the request. If the serial + // console output exceeds the size of the buffer, older output will be + // overwritten by newer content and the start values will be mismatched. + int64 start = 2 [deprecated = true]; + //[Output Only] The position of the next byte of content from the serial + // console output. Use this value in the next request as the start + // parameter. + int64 next = 3 [deprecated = true]; + + // Set the sort of response you are interested it in. + // It the type is "Parsed" the entries field will contain the parsed + // results. otherwise the contents field will be set. + LogType sort = 4; + + // [Output Only] The parsed logcat entries so far. Only set if sort is + // set to Parsed + repeated LogcatEntry entries = 5; + + enum LogType { + Text = 0; + Parsed = 1; + } +} + +// A parsed logcat entry. +message LogcatEntry { + // The possible log levels. + enum LogLevel { + UNKNOWN = 0; + DEFAULT = 1; + VERBOSE = 2; + DEBUG = 3; + INFO = 4; + WARN = 5; + ERR = 6; + FATAL = 7; + SILENT = 8; + } + + // A Unix timestamps in milliseconds (The number of milliseconds that + // have elapsed since January 1, 1970 (midnight UTC/GMT), not counting + // leap seconds) + uint64 timestamp = 1; + + // Process id. + uint32 pid = 2; + + // Thread id. + uint32 tid = 3; + LogLevel level = 4; + string tag = 5; + string msg = 6; +} + +// Information about the hypervisor that is currently in use. +message VmConfiguration { + enum VmHypervisorType { + // An unknown hypervisor + UNKNOWN = 0; + + // No hypervisor is in use. This usually means that the guest is + // running on a different CPU than the host, or you are using a + // platform where no hypervisor is available. + NONE = 1; + + // The Kernel based Virtual Machine + // (https://www.linux-kvm.org/page/Main_Page) + KVM = 2; + + // Intel® Hardware Accelerated Execution Manager (Intel® HAXM) + HAXM = 3 [deprecated = true]; + + // Hypervisor Framework. + // https://developer.apple.com/documentation/hypervisor + HVF = 4; + + // Window Hypervisor Platform + // https://docs.microsoft.com/en-us/virtualization/api/ + WHPX = 5; + + AEHD = 6; + } + + VmHypervisorType hypervisorType = 1; + int32 numberOfCpuCores = 2; + int64 ramSizeBytes = 3; +} + +// Representation of a clipped data object on the clipboard. +message ClipData { + // UTF-8 Encoded text. + string text = 1; +} + +// The Touch interface represents a single contact point on a +// touch-sensitive device. The contact point is commonly a finger or stylus +// and the device may be a touchscreen or trackpad. +message Touch { + // The horizontal coordinate. This is the physical location on the + // screen For example 0 indicates the leftmost coordinate. + int32 x = 1; + + // The vertical coordinate. This is the physical location on the screen + // For example 0 indicates the top left coordinate. + int32 y = 2; + + // The identifier is an arbitrary non-negative integer that is used to + // identify and track each tool independently when multiple tools are + // active. For example, when multiple fingers are touching the device, + // each finger should be assigned a distinct tracking id that is used as + // long as the finger remains in contact. Tracking ids may be reused + // when their associated tools move out of range. + // + // The emulator currently supports up to 10 concurrent touch events. The + // identifier can be any uninque value and will be mapped to the next + // available internal identifier. + int32 identifier = 3; + + // Reports the physical pressure applied to the tip of the tool or the + // signal strength of the touch contact. + // + // The values reported must be non-zero when the tool is touching the + // device and zero otherwise to indicate that the touch event is + // completed. + // + // Make sure to deliver a pressure of 0 for the given identifier when + // the touch event is completed, otherwise the touch identifier will not + // be unregistered! + int32 pressure = 4; + + // Optionally reports the cross-sectional area of the touch contact, or + // the length of the longer dimension of the touch contact. + int32 touch_major = 5; + + // Optionally reports the length of the shorter dimension of the touch + // contact. This axis will be ignored if touch_major is reporting an + // area measurement greater than 0. + int32 touch_minor = 6; + + enum EventExpiration { + // The system will use the default time of 120s to track + // the touch event with the given identifier. If no update happens + // within this timeframe the identifier is considered expired + // and can be made available for re-use. This means that a touch event + // with pressure 0 for this identifier will be send to the emulator. + EVENT_EXPIRATION_UNSPECIFIED = 0; + + // Never expire the given slot. You must *ALWAYS* close the identifier + // by sending a touch event with 0 pressure. + NEVER_EXPIRE = 1; + } + + EventExpiration expiration = 7; + + // The orientation of the contact, if any. + int32 orientation = 8; +} + +// A Pen is similar to a touch, with the addition +// of button and rubber information. +message Pen { + Touch location = 1; + + // True if the button is pressed or not + bool button_pressed = 2; + + // True if it is a rubber pointer. + bool rubber_pointer = 3; +} + +// A TouchEvent contains a list of Touch objects that are in contact with +// the touch surface. +// +// Touch events are delivered in sequence as specified in the touchList. +// +// TouchEvents are delivered to the emulated devices using ["Protocol +// B"](https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt) +message TouchEvent { + // The list of Touch objects, note that these do not need to be unique + repeated Touch touches = 1; + + // The display device where the touch event occurred. + // Omitting or using the value 0 indicates the main display. + int32 display = 2; +} + +// A TouchpadEvent contains a list of Touch objects that are in contact with +// the touchpad surface. +// +// Touchpad events are delivered in sequence as specified in the touchList. +// +// TouchpadEvents are delivered to the emulated devices using ["Protocol +// B"](https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt) +message TouchpadEvent { + // The list of Touch objects, note that these do not need to be unique + repeated Touch touches = 1; + + // The touchpad device where the touch event occurred. + // Omitting or using the value 0 indicates the main touchpad. + int32 touchpad = 2; +} + +message PenEvent { + // The list of Pen objects, note that these do not need to be unique + repeated Pen events = 1; + + // The display device where the pen event occurred. + // Omitting or using the value 0 indicates the main display. + int32 display = 2; +} + +// The MouseEvent interface represents events that occur due to the user +// interacting with a pointing device (such as a mouse). +message MouseEvent { + // The horizontal coordinate. This is the physical location on the + // screen, where 0 indicates the leftmost coordinate. + int32 x = 1; + + // The vertical coordinate. This is the physical location on the screen, + // where 0 indicates the topmost coordinate. + int32 y = 2; + + // Indicates which buttons are pressed. + // 0: No button was pressed + // 1: Primary button (left) + // 2: Secondary button (right) + int32 buttons = 3; + + // The display device where the mouse event occurred. + // Omitting or using the value 0 indicates the main display. + int32 display = 4; +} + +message WheelEvent { + // The value indicating how much the mouse wheel is rotated. Scaled so that + // 120 equals to 1 wheel click. (120 is chosen as a multiplier often used to + // represent wheel movements less than 1 wheel click. e.g. + // https://doc.qt.io/qt-5/qwheelevent.html#angleDelta) Positive delta value + // is assigned to dx when the top of wheel is moved to left. Similarly + // positive delta value is assigned to dy when the top of wheel is moved + // away from the user. + int32 dx = 1; + int32 dy = 2; + + // The display device where the mouse event occurred. + // Omitting or using the value 0 indicates the main display. + int32 display = 3; +} + +// KeyboardEvent objects describe a user interaction with the keyboard; each +// event describes a single interaction between the user and a key (or +// combination of a key with modifier keys) on the keyboard. +// This follows the pattern as set by +// (javascript)[https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent] +// +// Note: that only keyCode, key, or text can be set and that the semantics +// will slightly vary. +message KeyboardEvent { + // Code types that the emulator can receive. Note that the emulator + // will do its best to translate the code to an evdev value that + // will be send to the emulator. This translation is based on + // the chromium translation tables. See + // (this)[https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/android/android-grpc/android/emulation/control/keyboard/keycode_converter_data.inc] + // for details on the translation. + enum KeyCodeType { + Usb = 0; + Evdev = 1; + XKB = 2; + Win = 3; + Mac = 4; + } + + enum KeyEventType { + // Indicates that this keyevent should be send to the emulator + // as a key down event. Meaning that the key event will be + // translated to an EvDev event type and bit 11 (0x400) will be + // set before it is sent to the emulator. + keydown = 0; + + // Indicates that the keyevent should be send to the emulator + // as a key up event. Meaning that the key event will be + // translated to an EvDev event type and + // sent to the emulator. + keyup = 1; + + // Indicates that the keyevent will be send to the emulator + // as e key down event and immediately followed by a keyup event. + keypress = 2; + } + + // Type of keycode contained in the keyCode field. + KeyCodeType codeType = 1; + + // The type of keyboard event that should be sent to the emulator + KeyEventType eventType = 2; + + // This property represents a physical key on the keyboard (as opposed + // to the character generated by pressing the key). In other words, this + // property is a value which isn't altered by keyboard layout or the + // state of the modifier keys. This value will be interpreted by the + // emulator depending on the KeyCodeType. The incoming key code will be + // translated to an evdev code type and send to the emulator. + // The values in key and text will be ignored. + int32 keyCode = 3; + + // The value of the key pressed by the user, taking into consideration + // the state of modifier keys such as Shift as well as the keyboard + // locale and layout. This follows the w3c standard used in browsers. + // You can find an accurate description of valid values + // [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) + // + // Note that some keys can result in multiple evdev events that are + // delivered to the emulator. for example the Key "A" will result in a + // sequence: + // ["Shift", "a"] -> [0x2a, 0x1e] whereas "a" results in ["a"] -> [0x1e]. + // + // Not all documented keys are understood by android, and only printable + // ASCII [32-127) characters are properly translated. + // + // Keep in mind that there are a set of key values that result in android + // specific behavior + // [see](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values#Phone_keys): + // + // - "AppSwitch": Behaves as the "Overview" button in android. + // - "GoBack": The Back button. + // - "GoHome": The Home button, which takes the user to the phone's main + // screen (usually an application launcher). + // - "Power": The Power button. + string key = 4; + + // Series of utf8 encoded characters to send to the emulator. An attempt + // will be made to translate every character will an EvDev event type and + // send to the emulator as a keypress event. The values in keyCode, + // eventType, codeType and key will be ignored. + // + // Note that most printable ASCII characters (range [32-127) can be send + // individually with the "key" param. Do not expect arbitrary UTF symbols to + // arrive in the emulator (most will be ignored). + // + // Note that it is possible to overrun the keyboard buffer by slamming this + // endpoint with large quantities of text (>1kb). The clipboard api is + // better suited for transferring large quantities of text. + string text = 5; +} + +message XrCommand { + enum Action { + // Recenter the viewport position and rotation. + RECENTER = 0; + } + + Action action = 1; +} + +// An input event that can be delivered to the emulator. +message InputEvent { + oneof type { + KeyboardEvent key_event = 1; + TouchEvent touch_event = 2; + MouseEvent mouse_event = 3; + AndroidEvent android_event = 4; + PenEvent pen_event = 5; + WheelEvent wheel_event = 6; + MouseEvent xr_hand_event = 7; + MouseEvent xr_eye_event = 8; + XrCommand xr_command = 9; + RotationRadian xr_head_rotation_event = 10; + Translation xr_head_movement_event = 11; + AngularVelocity xr_head_angular_velocity_event = 12; + Velocity xr_head_velocity_event = 13; + TouchpadEvent touchpad_event = 14; + } +}; + +// The android input event system is a framework for handling input from a +// variety of devices by generating events that describe changes in the +// state of the devices and forwarding them to user space applications. +// +// An AndroidEvents will be delivered directly to the kernel as is. +message AndroidEvent { + // The type of the event. The types of the event are specified + // by the android kernel. Some examples are: + // EV_SYN, EV_KEY, EV_SW, etc.. + // The exact definitions can be found in the input.h header file. + int32 type = 1; + + // The actual code to be send to the kernel. The actual meaning + // of the code depends on the type definition. + int32 code = 2; + + // The actual value of the event. + int32 value = 3; + + // The display id associated with this input event. + int32 display = 4; +}; + +message Fingerprint { + // True when the fingprint is touched. + bool isTouching = 1; + + // The identifier of the registered fingerprint. + int32 touchId = 2; +} + +message GpsState { + // Setting this to false will disable auto updating from the LocationUI, + // otherwise the location UI will override the location at a frequency of + // 1hz. + // + // - This is unused if the emulator is launched with -no-window, or when he + // location ui is disabled. + // - This will BREAK the location ui experience if it is set to false. For + // example routing will no longer function. + bool passiveUpdate = 1; + + // The latitude, in degrees. + double latitude = 2; + + // The longitude, in degrees. + double longitude = 3; + + // The speed if it is available, in meters/second over ground + double speed = 4; + + // gets the horizontal direction of travel of this device, and is not + // related to the device orientation. It is guaranteed to be in the + // range [0.0, 360.0] if the device has a bearing. 0=North, 90=East, + // 180=South, etc.. + double bearing = 5; + + // The altitude if available, in meters above the WGS 84 reference + // ellipsoid. + double altitude = 6; + + // The number of satellites used to derive the fix + int32 satellites = 7; +} + +message BatteryState { + enum BatteryStatus { + UNKNOWN = 0; + CHARGING = 1; + DISCHARGING = 2; + NOT_CHARGING = 3; + FULL = 4; + } + + enum BatteryCharger { + NONE = 0; + AC = 1; + USB = 2; + WIRELESS = 3; + } + + enum BatteryHealth { + GOOD = 0; + FAILED = 1; + DEAD = 2; + OVERVOLTAGE = 3; + OVERHEATED = 4; + } + + bool hasBattery = 1; + bool isPresent = 2; + BatteryCharger charger = 3; + int32 chargeLevel = 4; + BatteryHealth health = 5; + BatteryStatus status = 6; +} + +// An ImageTransport allows for specifying a side channel for +// delivering image frames versus using the standard bytes array that is +// returned with the gRPC request. +message ImageTransport { + enum TransportChannel { + // Return full frames over the gRPC transport + TRANSPORT_CHANNEL_UNSPECIFIED = 0; + + // Write images to the a file/shared memory handle. + MMAP = 1; + } + + // The desired transport channel used for delivering image frames. Only + // relevant when streaming screenshots. + TransportChannel channel = 1; + + // Handle used for writing image frames if transport is mmap. The client + // sets and owns this handle. It can be either a shm region, or a mmap. A + // mmap should be a url that starts with `file:///` Note: the mmap can + // result in tearing. + string handle = 2; +} + +// The aspect ratio (width/height) will be different from the one +// where the device is unfolded. +message FoldedDisplay { + uint32 width = 1; + uint32 height = 2; + // It is possible for the screen to be folded in different ways depending + // on which surface is shown to the user. So xOffset and yOffset indicate + // the top left corner of the folded screen within the original unfolded + // screen. + uint32 xOffset = 3; + uint32 yOffset = 4; +} + +message ImageFormat { + enum ImgFormat { + // Portable Network Graphics format + // (https://en.wikipedia.org/wiki/Portable_Network_Graphics) + PNG = 0; + + // Three-channel RGB color model supplemented with a fourth alpha + // channel. https://en.wikipedia.org/wiki/RGBA_color_model + // Each pixel consists of 4 bytes. + RGBA8888 = 1; + + // Three-channel RGB color model, each pixel consists of 3 bytes + RGB888 = 2; + } + + // The (desired) format of the resulting bytes. + ImgFormat format = 1; + + // [Output Only] The rotation of the image. The image will be rotated + // based upon the coarse grained orientation of the device. + Rotation rotation = 2; + + // The (desired) width of the image. When passed as input + // the image will be scaled to match the given + // width, while maintaining the aspect ratio of the device. + // The returned image will never exceed the given width, but can be less. + // Omitting this value (or passing in 0) will result in no scaling, + // and the width of the actual device will be used. + uint32 width = 3; + + // The (desired) height of the image. When passed as input + // the image will be scaled to match the given + // height, while maintaining the aspect ratio of the device. + // The returned image will never exceed the given height, but can be less. + // Omitting this value (or passing in 0) will result in no scaling, + // and the height of the actual device will be used. + uint32 height = 4; + + // The (desired) display id of the device. Setting this to 0 (or omitting) + // indicates the main display. + uint32 display = 5; + + // Set this if you wish to use a different transport channel to deliver + // image frames. + ImageTransport transport = 6; + + // [Output Only] Display configuration when screen is folded. The value is + // the original configuration before scaling. + FoldedDisplay foldedDisplay = 7; + + // [Output Only] Display mode when AVD is resizable. + DisplayModeValue displayMode = 8; +} + +message Image { + ImageFormat format = 1; + + uint32 width = 2 [deprecated = true]; // width is contained in format. + uint32 height = 3 [deprecated = true]; // height is contained in format. + + // The organization of the pixels in the image buffer is from left to + // right and bottom up. This will be empty if an alternative image transport + // is requested in the image format. In that case the side channel should + // be used to obtain the image data. + bytes image = 4; + + // [Output Only] Monotonically increasing sequence number in a stream of + // screenshots. The first screenshot will have a sequence of 0. A single + // screenshot will always have a sequence number of 0. The sequence is not + // necessarily contiguous, and can be used to detect how many frames were + // dropped. An example sequence could be: [0, 3, 5, 7, 9, 11]. + uint32 seq = 5; + + // [Output Only] Unix timestamp in microseconds when the emulator estimates + // the frame was generated. The timestamp is before the actual frame is + // copied and transformed. This can be used to calculate variance between + // frame production time, and frame depiction time. + uint64 timestampUs = 6; +} + +message Rotation { + enum SkinRotation { + PORTRAIT = 0; // 0 degrees + LANDSCAPE = 1; // 90 degrees + REVERSE_PORTRAIT = 2; // -180 degrees + REVERSE_LANDSCAPE = 3; // -90 degrees + } + + // The rotation of the device, derived from the sensor state + // of the emulator. The derivation reflects how android observes + // the rotation state. + SkinRotation rotation = 1; + + // Specifies the angle of rotation, in degrees [-180, 180] + double xAxis = 2; + double yAxis = 3; + double zAxis = 4; +} + +message PhoneCall { + enum Operation { + InitCall = 0; + AcceptCall = 1; + RejectCallExplicit = 2; + RejectCallBusy = 3; + DisconnectCall = 4; + PlaceCallOnHold = 5; + TakeCallOffHold = 6; + } + Operation operation = 1; + string number = 2; +} + +message PhoneResponse { + enum Response { + OK = 0; + BadOperation = 1; // Enum out of range + BadNumber = 2; // Mal-formed telephone number + InvalidAction = 3; // E.g., disconnect when no call is in progress + ActionFailed = 4; // Internal error + RadioOff = 5; // Radio power off + } + Response response = 1; +} + +message Entry { + string key = 1; + string value = 2; +} + +message EntryList { + repeated Entry entry = 1; +} + +message EmulatorStatus { + // The emulator version string. + string version = 1; + + // The time the emulator has been active in .ms + uint64 uptime = 2; + + // True if the device has completed booting. + // For P and later this information will accurate, + // for older images we rely on adb. + bool booted = 3; + + // The current vm configuration + VmConfiguration vmConfig = 4; + + // Use platformConfig instead + EntryList hardwareConfig = 5 [deprecated = true]; + + // Some guests will produce a heart beat, that can be used to + // detect if the guest is active. + // This is a monotonically increasing number that gets incremented + // around once a second. + uint64 heartbeat = 6; + + // The configuration of services in the guest, this map + // contains key value pairs that are specific to the image + // used by the guest. + map guestConfig = 7; + + // Configuration of the emulator hardware + map platformConfig = 8; +} + +message AudioFormat { + enum SampleFormat { + AUD_FMT_U8 = 0; // Unsigned 8 bit + AUD_FMT_S16 = 1; // Signed 16 bit (little endian) + } + + enum Channels { + Mono = 0; + Stereo = 1; + } + + enum DeliveryMode { + // The audio queue will block and wait until the emulator requests + // packets. The client does not have to throttle and can push packets at + // will. This can result in the client falling behind. + MODE_UNSPECIFIED = 0; + // Audio packets will be delivered in real time (when possible). The + // audio queue will be overwritten with incoming data if data is made + // available. This means the client needs to control timing properly, or + // packets will get overwritten. + MODE_REAL_TIME = 1; // + } + // Sampling rate to use, defaulting to 44100 if this is not set. + // Note, that android devices typically will not use a sampling + // rate higher than 48kHz. See + // https://developer.android.com/ndk/guides/audio. + uint64 samplingRate = 1; + Channels channels = 2; + SampleFormat format = 3; + + // [Input Only] + // The mode used when delivering audio packets. + DeliveryMode mode = 4; +} + +message AudioPacket { + AudioFormat format = 1; + + // Unix epoch in us when this frame was captured. + uint64 timestamp = 2; + + // Contains a sample in the given audio format. + bytes audio = 3; +} + +message MicrophoneState { + // Whether or not host microphone access is enabled + bool realAudioEnabled = 1; +} + +message SmsMessage { + // The source address where this message came from. + // + // The address should be a valid GSM-formatted address as specified by + // 3GPP 23.040 Sec 9.1.2.5. + // + // For example: +3106225412 or (650) 555-1221 + string srcAddress = 1; + + // A utf8 encoded text message that should be delivered. + string text = 2; +} + +// A DisplayConfiguration describes a primary or secondary +// display available to the emulator. The screen aspect ratio +// cannot be longer (or wider) than 21:9 (or 9:21). Screen sizes +// larger than 4k will be rejected. +// +// Common configurations (w x h) are: +// - 480p (480x720) 142 dpi +// - 720p (720x1280) 213 dpi +// - 1080p (1080x1920) 320 dpi +// - 4K (2160x3840) 320 dpi +// - 4K (2160x3840) 640 dpi (upscaled) +// +// The behavior of the virtual display depends on the flags that are provided to +// this method. By default, virtual displays are created to be private, +// non-presentation and unsecure. +message DisplayConfiguration { + // These are the set of known android flags and their respective values. + // you can combine the int values to (de)construct the flags field below. + enum DisplayFlags { + DISPLAYFLAGS_UNSPECIFIED = 0; + + // When this flag is set, the virtual display is public. + // A public virtual display behaves just like most any other display + // that is connected to the system such as an external or wireless + // display. Applications can open windows on the display and the system + // may mirror the contents of other displays onto it. see: + // https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_PUBLIC + VIRTUAL_DISPLAY_FLAG_PUBLIC = 1; + + // When this flag is set, the virtual display is registered as a + // presentation display in the presentation display category. + // Applications may automatically project their content to presentation + // displays to provide richer second screen experiences. + // https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_PRESENTATION + VIRTUAL_DISPLAY_FLAG_PRESENTATION = 2; + + // When this flag is set, the virtual display is considered secure as + // defined by the Display#FLAG_SECURE display flag. The caller promises + // to take reasonable measures, such as over-the-air encryption, to + // prevent the contents of the display from being intercepted or + // recorded on a persistent medium. + // see: + // https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_SECURE + VIRTUAL_DISPLAY_FLAG_SECURE = 4; + + // This flag is used in conjunction with VIRTUAL_DISPLAY_FLAG_PUBLIC. + // Ordinarily public virtual displays will automatically mirror the + // content of the default display if they have no windows of their own. + // When this flag is specified, the virtual display will only ever show + // its own content and will be blanked instead if it has no windows. See + // https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY + VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY = 8; + + // Allows content to be mirrored on private displays when no content is + // being shown. + // This flag is mutually exclusive with + // VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY. If both flags are specified + // then the own-content only behavior will be applied. + // see: + // https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) + VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR = 16; + } + + // The width of the display, restricted to: + // 320 * (dpi / 160) <= width + uint32 width = 1; + + // The heigh of the display, restricted to: + // * 320 * (dpi / 160) <= height + uint32 height = 2; + + // The pixel density (dpi). + // See https://developer.android.com/training/multiscreen/screendensities + // for details. This value should be in the range [120, ..., 640] + uint32 dpi = 3; + + // A combination of virtual display flags. These flags can be constructed + // by combining the DisplayFlags enum described above. + // + // The behavior of the virtual display depends on the flags. By default + // virtual displays are created to be private, non-presentation and + // unsecure. + uint32 flags = 4; + + // The id of the display. + // The primary (default) display has the display ID of 0. + // A secondary display has a display ID not 0. + // + // A display with the id in the range [1, userConfigurable] + // can be modified. See DisplayConfigurations below for details. + // + // The id can be used to get or stream a screenshot. + uint32 display = 5; +} +// Provides information about all the displays that can be attached +// to the emulator. The emulator will always have at least one display. +// +// The emulator usually has the following display configurations: +// 0: The default display. +// 1 - 3: User configurable displays. These can be added/removed. +// For example the standalone emulator allows you to modify these +// in the extended controls. +// 6 - 11: Fixed external displays. For example Android Auto uses fixed +// displays in this range. +message DisplayConfigurations { + repeated DisplayConfiguration displays = 1; + + // Display configurations with id [1, userConfigurable] are + // user configurable, that is they can be added, removed or + // updated. + uint32 userConfigurable = 2; + + // The maximum number of attached displays this emulator supports. + // This is the total number of displays that can be attached to + // the emulator. + // + // Note: A display with an id that is larger than userConfigurable cannot + // be modified. + uint32 maxDisplays = 3; +} + +message Notification { + // Detailed notification information. + oneof type { + CameraNotification cameraNotification = 2; + DisplayConfigurationsChangedNotification + displayConfigurationsChangedNotification = 3; + Posture posture = 4; + BootCompletedNotification booted = 5; + BrightnessValue brightness = 6; + + // This notification is sent when a TextView receives or loses focus. + // It is also sent immediately in response to the streamNotification + // call. + TextViewFocus textViewFocus = 7; + // This notification is sent when XrOptions change. + // It is also sent immediately in response to the streamNotification + // call. + XrOptions xrOptions = 8; + MicrophoneState microphoneState = 9; + // This notification is sent when AI glasses LED light status change. + LedIndicator ledIndicator = 10; + } +} + +message BootCompletedNotification { + // The time in milliseconds it took for the boot to complete. + // Note that this value can be 0 when you are loading from a snapshot. + int32 time = 1; +} + +// Fired when the virtual scene camera is activated or deactivated and also in +// response to the streamNotification call. +message CameraNotification { + // Indicates whether the camera app was activated or deactivated. + bool active = 1; + // The display the camera app is associated with. + int32 display = 2; +} + +message TextViewFocus { + // Indicates whether a text view currently has focus. + bool textViewHasFocus = 1; + + // If a text view has focus, the display where the text view is located. + // Otherwise, unset. + int32 display = 2; +} + +// Fired when an update to a display event has been fired through the extended +// ui. This does not fire events when the display is changed through the console +// or the gRPC endpoint. +message DisplayConfigurationsChangedNotification { + DisplayConfigurations displayConfigurations = 1; +} + +message RotationRadian { + // Components of the rotation vector in radians. + // Rotation angles are relative to the current orientation. + float x = 1; // Angle of rotation around the x axis in right-handed direction. + float y = 2; // Angle of rotation around the y axis in right-handed direction. + float z = 3; // Angle of rotation around the z axis in right-handed direction. +} + +message Translation { + // Components of the translation vector in meters. + float delta_x = 1; + float delta_y = 2; + float delta_z = 3; +} + +message AngularVelocity { + // Components of the target angular velocity vector in radians per second. + // Transition to these values is implementation dependent, and may be + // smoothed over time. + float omega_x = 1; + float omega_y = 2; + float omega_z = 3; +} + +message Velocity { + // Components of the target velocity vector in meters per second. + // Transition to these values is implementation dependent, and may be + // smoothed over time. + float x = 1; + float y = 2; + float z = 3; +} + +// Must follow the definition in "external/qemu/android/hw-sensors.h" +message Posture { + enum PostureValue { + POSTURE_UNKNOWN = 0; + POSTURE_CLOSED = 1; + POSTURE_HALF_OPENED = 2; + POSTURE_OPENED = 3; + POSTURE_FLIPPED = 4; + POSTURE_TENT = 5; + POSTURE_MAX = 6; + } + PostureValue value = 3; +} + +message PhoneNumber { + // + // The phone number should be a valid GSM-formatted number as specified by + // 3GPP 23.040 Sec 9.1.2.5. + // + // For example: +3106225412 or (650) 555-1221 + string number = 1; +} + +// Specifies environment background for AI glasses. +message Environment { + // Key/value pairs corresponing to the contents of the environment.ini file. + // An empty map means no environment. + map environment = 1; +} + +message Camera { + // Human-readable name for use with UI + string display_name = 1; + // Os Specific identifier + string id = 2; +} + +message CameraList { + repeated Camera cameras = 1; +} diff --git a/scripts/build-native-app.command b/scripts/build-native-app.command new file mode 100644 index 0000000..b9b3e05 --- /dev/null +++ b/scripts/build-native-app.command @@ -0,0 +1,26 @@ +#!/bin/zsh +set -euo pipefail + +ROOT="${0:A:h:h}" +export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode-26.6.0.app/Contents/Developer}" +DERIVED="${ROOT}/.build/native-release" +APP="${DERIVED}/Build/Products/Release/TFTMAC.app" +DIST="${ROOT}/dist/TFTMAC.app" + +/usr/bin/xcodebuild \ + -quiet \ + -project "${ROOT}/TFTMAC.xcodeproj" \ + -scheme TFTMAC \ + -configuration Release \ + -derivedDataPath "${DERIVED}" \ + CODE_SIGNING_ALLOWED=NO \ + build + +[[ -d "${APP}" ]] || { echo "Native build did not produce ${APP}" >&2; exit 1; } +/bin/rm -rf "${DIST}" +/bin/mkdir -p "${ROOT}/dist" +/usr/bin/ditto "${APP}" "${DIST}" +/usr/bin/codesign --force --deep --sign - --timestamp=none "${DIST}" +/usr/bin/codesign --verify --deep --strict --verbose=2 "${DIST}" + +echo "Native TFTMAC built: ${DIST}" diff --git a/scripts/test-native-app.command b/scripts/test-native-app.command new file mode 100644 index 0000000..d4399c3 --- /dev/null +++ b/scripts/test-native-app.command @@ -0,0 +1,16 @@ +#!/bin/zsh +set -euo pipefail + +ROOT="${0:A:h:h}" +export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode-26.6.0.app/Contents/Developer}" +DERIVED="${ROOT}/.build/native-tests" + +/usr/bin/xcodebuild \ + -quiet \ + -project "${ROOT}/TFTMAC.xcodeproj" \ + -scheme TFTMAC \ + -configuration Debug \ + -destination 'platform=macOS,arch=arm64' \ + -derivedDataPath "${DERIVED}" \ + CODE_SIGNING_ALLOWED=NO \ + test diff --git a/tftmac/App/AppCoordinator.swift b/tftmac/App/AppCoordinator.swift new file mode 100644 index 0000000..46d5913 --- /dev/null +++ b/tftmac/App/AppCoordinator.swift @@ -0,0 +1,17 @@ +import AppKit + +@MainActor +final class AppCoordinator: NSObject, NSApplicationDelegate { + private var mainWindowController: MainWindowController? + + func applicationDidFinishLaunching(_ notification: Notification) { + let controller = MainWindowController() + mainWindowController = controller + controller.showWindow(nil) + NSApp.activate(ignoringOtherApps: true) + } + + func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + true + } +} diff --git a/tftmac/App/MainWindowController.swift b/tftmac/App/MainWindowController.swift new file mode 100644 index 0000000..ebd8b19 --- /dev/null +++ b/tftmac/App/MainWindowController.swift @@ -0,0 +1,26 @@ +import AppKit + +@MainActor +final class MainWindowController: NSWindowController { + init() { + let contentView = EmbeddedEmulatorView(frame: NSRect(x: 0, y: 0, width: 1280, height: 720)) + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 1280, height: 720), + styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], + backing: .buffered, + defer: false + ) + window.title = "TFTMAC" + window.titleVisibility = .visible + window.collectionBehavior.insert(.fullScreenPrimary) + window.minSize = NSSize(width: 960, height: 540) + window.center() + window.contentView = contentView + super.init(window: window) + shouldCascadeWindows = false + } + + required init?(coder: NSCoder) { + nil + } +} diff --git a/tftmac/App/TFTMACApplication.swift b/tftmac/App/TFTMACApplication.swift new file mode 100644 index 0000000..176bbb2 --- /dev/null +++ b/tftmac/App/TFTMACApplication.swift @@ -0,0 +1,16 @@ +import AppKit + +@main +enum TFTMACApplication { + @MainActor private static var coordinator: AppCoordinator? + + @MainActor + static func main() { + let application = NSApplication.shared + let coordinator = AppCoordinator() + Self.coordinator = coordinator + application.delegate = coordinator + application.setActivationPolicy(.regular) + application.run() + } +} diff --git a/tftmac/Info.plist b/tftmac/Info.plist index a68ebaa..535bb93 100644 --- a/tftmac/Info.plist +++ b/tftmac/Info.plist @@ -25,7 +25,7 @@ LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion - 14.0 + 15.0 NSHighResolutionCapable NSHumanReadableCopyright diff --git a/tftmac/Presentation/EmbeddedEmulatorView.swift b/tftmac/Presentation/EmbeddedEmulatorView.swift new file mode 100644 index 0000000..8f042e9 --- /dev/null +++ b/tftmac/Presentation/EmbeddedEmulatorView.swift @@ -0,0 +1,38 @@ +import AppKit +import MetalKit + +@MainActor +final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { + init(frame: NSRect) { + guard let device = MTLCreateSystemDefaultDevice() else { + fatalError("TFTMAC requires Metal on Apple Silicon") + } + super.init(frame: frame, device: device) + framebufferOnly = true + colorPixelFormat = .bgra8Unorm_srgb + preferredFramesPerSecond = 60 + enableSetNeedsDisplay = false + isPaused = false + clearColor = MTLClearColorMake(0.035, 0.035, 0.045, 1.0) + delegate = self + } + + required init(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {} + + func draw(in view: MTKView) { + guard let drawable = currentDrawable, + let descriptor = currentRenderPassDescriptor, + let queue = device?.makeCommandQueue(), + let buffer = queue.makeCommandBuffer(), + let encoder = buffer.makeRenderCommandEncoder(descriptor: descriptor) else { + return + } + encoder.endEncoding() + buffer.present(drawable) + buffer.commit() + } +} diff --git a/tftmac/Presentation/ViewportMapper.swift b/tftmac/Presentation/ViewportMapper.swift new file mode 100644 index 0000000..7a466a8 --- /dev/null +++ b/tftmac/Presentation/ViewportMapper.swift @@ -0,0 +1,30 @@ +import CoreGraphics + +struct ViewportMapper: Sendable { + let sourceSize: CGSize + let viewportSize: CGSize + + var displayedRect: CGRect { + guard sourceSize.width > 0, sourceSize.height > 0, + viewportSize.width > 0, viewportSize.height > 0 else { + return .zero + } + let scale = min(viewportSize.width / sourceSize.width, viewportSize.height / sourceSize.height) + let size = CGSize(width: sourceSize.width * scale, height: sourceSize.height * scale) + return CGRect( + x: (viewportSize.width - size.width) / 2, + y: (viewportSize.height - size.height) / 2, + width: size.width, + height: size.height + ) + } + + func sourcePoint(for viewportPoint: CGPoint) -> CGPoint? { + let rect = displayedRect + guard rect.width > 0, rect.height > 0, rect.contains(viewportPoint) else { return nil } + return CGPoint( + x: (viewportPoint.x - rect.minX) / rect.width * sourceSize.width, + y: (viewportPoint.y - rect.minY) / rect.height * sourceSize.height + ) + } +} diff --git a/tools/tftmac-direct-control.mjs b/tools/tftmac-direct-control.mjs index 77e1b06..3e0184b 100644 --- a/tools/tftmac-direct-control.mjs +++ b/tools/tftmac-direct-control.mjs @@ -79,6 +79,66 @@ function writeJSON(file, value) { ensureDir(path.dirname(file)); fs.writeFileSyn function sha256File(file) { const h = crypto.createHash('sha256'); h.update(fs.readFileSync(file)); return h.digest('hex'); } function matchNumber(text, pattern) { const match = String(text ?? '').match(pattern); return match ? Number(match[1]) : null; } +function bootstrapNativeGate1Authority() { + const runtime = discover(); + const installedProto = path.join(runtime.sdkRoot, 'emulator', 'lib', 'emulator_controller.proto'); + if (!exists(installedProto)) throw new Error(`INSTALLED_EMULATOR_CONTROLLER_PROTO_MISSING: ${installedProto}`); + const vendorRoot = path.join(repoRoot, 'Vendor', 'AndroidEmulator'); + const vendoredProto = path.join(vendorRoot, 'emulator_controller.proto'); + const sourcePath = path.join(vendorRoot, 'SOURCE.json'); + ensureDir(vendorRoot); + const installedSHA256 = sha256File(installedProto); + if (exists(vendoredProto)) { + const currentSHA256 = sha256File(vendoredProto); + if (currentSHA256 !== installedSHA256) { + throw new Error(`EMULATOR_CONTROLLER_PROTO_DRIFT: vendored=${currentSHA256} installed=${installedSHA256}`); + } + } else { + fs.copyFileSync(installedProto, vendoredProto); + } + const phase0 = readJSON(path.join(repoRoot, 'ssot', 'phase0-source.json'), {}); + const source = { + schema: 1, + observedAt: nowISO(), + authority: 'INSTALLED_ANDROID_EMULATOR', + emulatorVersion: runtime.emulatorVersion, + emulatorBinary: runtime.emulator, + installedProtoPath: installedProto, + installedProtoSHA256: installedSHA256, + vendoredProtoPath: path.relative(repoRoot, vendoredProto), + vendoredProtoSHA256: sha256File(vendoredProto), + aemuAuthority: { + branch: phase0.aemuBranch ?? null, + qemuCommit: phase0.commits?.qemu ?? null, + aemuCommit: phase0.commits?.aemu ?? null, + manifestSHA256: phase0.manifestSHA256 ?? null + }, + contract: 'The vendored protocol bytes come directly from the installed stock Android Emulator runtime used by TFTMAC. Build/generation must fail on byte drift until the authority is intentionally refreshed.' + }; + writeJSON(sourcePath, source); + return { + action: 'NATIVE_GATE1_EMULATOR_PROTOCOL_FROZEN', + emulatorVersion: runtime.emulatorVersion, + installedProto, + installedProtoSHA256: installedSHA256, + vendoredProto: path.relative(repoRoot, vendoredProto), + source: path.relative(repoRoot, sourcePath), + sourceSHA256: sha256File(sourcePath) + }; +} + +function nativeGate1Script(scriptName, actionName) { + const script = path.join(repoRoot, 'scripts', scriptName); + if (!exists(script)) throw new Error(`NATIVE_GATE1_SCRIPT_MISSING: ${script}`); + const result = command('/bin/zsh', [script], { allowFailure: true, timeout: 3600000, maxBuffer: 128 * 1024 * 1024 }); + if (result.status !== 0) { + const stdoutTail = result.stdout.slice(-24000); + const stderrTail = result.stderr.slice(-24000); + throw new Error(`${actionName}_FAILED\nSTDOUT_TAIL:\n${stdoutTail}\nSTDERR_TAIL:\n${stderrTail}`); + } + return { action: actionName, status: result.status, stdout: result.stdout.trim(), stderr: result.stderr.trim() || null }; +} + function command(executablePath, args = [], options = {}) { const result = spawnSync(executablePath, args, { encoding: 'utf8', @@ -4715,6 +4775,9 @@ async function main() { if (action === 'prepare') { json(prepareAVD()); return; } if (action === 'engineering-map-selftest') { json(engineeringMapSelfTest()); return; } if (action === 'lab-selftest') { json(labSelfTest()); return; } + if (action === 'native-gate1-bootstrap') { json(bootstrapNativeGate1Authority()); return; } + if (action === 'native-gate1-build') { json(nativeGate1Script('build-native-app.command', 'NATIVE_GATE1_BUILD')); return; } + if (action === 'native-gate1-test') { json(nativeGate1Script('test-native-app.command', 'NATIVE_GATE1_TEST')); return; } if (action === 'build') { json(buildApp()); return; } if (action === 'install-app') { json(installApp()); return; } if (action === 'launch-app') { json(launchApp()); return; } From d83102e0b396b2b4500d22e4b148ae36f7b7f2f7 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:24:59 -0500 Subject: [PATCH 02/19] Cut validation over to native TFTMAC --- .github/workflows/ci.yml | 20 +++---- scripts/build-native-app.command | 8 ++- scripts/test-native-app.command | 8 ++- scripts/verify-tftmac.command | 89 ++++++++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 11 deletions(-) create mode 100644 scripts/verify-tftmac.command diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e710ae6..ed2b681 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: CI on: push: - branches: [main] + branches: [master] pull_request: permissions: @@ -10,25 +10,27 @@ permissions: jobs: validate: - name: Validate and test + name: Validate TFTMAC runs-on: macos-latest - timeout-minutes: 30 + timeout-minutes: 45 steps: - name: Check out repository uses: actions/checkout@v4 + - name: Set up Node + uses: actions/setup-node@v4 + with: + node-version: '24' + - name: Install validation tools run: | command -v jq >/dev/null || brew install jq command -v rg >/dev/null || brew install ripgrep - - name: Validate repository policy and metadata - run: ./scripts/verify-repository.command - - - name: Run launcher unit tests and production typecheck - run: ./scripts/test-mactician.command + - name: Validate TFTMAC source and native build + run: /bin/zsh scripts/verify-tftmac.command - - name: Reject whitespace and generated changes + - name: Reject whitespace and generated drift run: | git diff --check test -z "$(git status --short)" diff --git a/scripts/build-native-app.command b/scripts/build-native-app.command index b9b3e05..dca6e2e 100644 --- a/scripts/build-native-app.command +++ b/scripts/build-native-app.command @@ -2,7 +2,13 @@ set -euo pipefail ROOT="${0:A:h:h}" -export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode-26.6.0.app/Contents/Developer}" +if [[ -z "${DEVELOPER_DIR:-}" ]]; then + if [[ -d /Applications/Xcode-26.6.0.app/Contents/Developer ]]; then + export DEVELOPER_DIR=/Applications/Xcode-26.6.0.app/Contents/Developer + else + export DEVELOPER_DIR="$(xcode-select -p)" + fi +fi DERIVED="${ROOT}/.build/native-release" APP="${DERIVED}/Build/Products/Release/TFTMAC.app" DIST="${ROOT}/dist/TFTMAC.app" diff --git a/scripts/test-native-app.command b/scripts/test-native-app.command index d4399c3..0682359 100644 --- a/scripts/test-native-app.command +++ b/scripts/test-native-app.command @@ -2,7 +2,13 @@ set -euo pipefail ROOT="${0:A:h:h}" -export DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode-26.6.0.app/Contents/Developer}" +if [[ -z "${DEVELOPER_DIR:-}" ]]; then + if [[ -d /Applications/Xcode-26.6.0.app/Contents/Developer ]]; then + export DEVELOPER_DIR=/Applications/Xcode-26.6.0.app/Contents/Developer + else + export DEVELOPER_DIR="$(xcode-select -p)" + fi +fi DERIVED="${ROOT}/.build/native-tests" /usr/bin/xcodebuild \ diff --git a/scripts/verify-tftmac.command b/scripts/verify-tftmac.command new file mode 100644 index 0000000..2d06f1b --- /dev/null +++ b/scripts/verify-tftmac.command @@ -0,0 +1,89 @@ +#!/bin/zsh +set -euo pipefail +unsetopt BG_NICE + +readonly ROOT="${0:A:h:h}" +cd "$ROOT" + +fail() { + print -u2 "TFTMAC validation failed: $*" + exit 1 +} + +require_command() { + command -v "$1" >/dev/null 2>&1 || fail "required command is unavailable: $1" +} + +for tool in git jq node plutil rg shasum xcodebuild zsh; do + require_command "$tool" +done + +readonly INFO="tftmac/Info.plist" +readonly PACKAGE_RESOLVED="TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved" +readonly PROTO="Vendor/AndroidEmulator/emulator_controller.proto" +readonly PROTO_SOURCE="Vendor/AndroidEmulator/SOURCE.json" + +for required in \ + TFTMAC.xcodeproj/project.pbxproj \ + TFTMAC.xcodeproj/xcshareddata/xcschemes/TFTMAC.xcscheme \ + "$INFO" \ + "$PACKAGE_RESOLVED" \ + "$PROTO" \ + "$PROTO_SOURCE" \ + scripts/build-native-app.command \ + scripts/test-native-app.command; do + [[ -f "$required" ]] || fail "required file is missing: $required" +done + +plutil -lint "$INFO" >/dev/null || fail "Info.plist is invalid" +[[ "$(plutil -extract CFBundleDisplayName raw "$INFO")" == "TFTMAC" ]] || fail "unexpected app display name" +[[ "$(plutil -extract CFBundleExecutable raw "$INFO")" == "TFTMAC" ]] || fail "unexpected app executable" +[[ "$(plutil -extract CFBundleIdentifier raw "$INFO")" == "com.flashls1.tftmac" ]] || fail "unexpected bundle identifier" + +readonly PROTO_SHA="$(shasum -a 256 "$PROTO" | awk '{print $1}')" +readonly RECORDED_PROTO_SHA="$(jq -r '.vendoredProtoSHA256' "$PROTO_SOURCE")" +readonly RECORDED_INSTALLED_SHA="$(jq -r '.installedProtoSHA256' "$PROTO_SOURCE")" +[[ "$PROTO_SHA" == "$RECORDED_PROTO_SHA" ]] || fail "vendored EmulatorController proto hash drift" +[[ "$PROTO_SHA" == "$RECORDED_INSTALLED_SHA" ]] || fail "vendored proto no longer matches frozen installed-runtime authority" +jq -e '.schema == 1 and .authority == "INSTALLED_ANDROID_EMULATOR" and .vendoredProtoPath == "Vendor/AndroidEmulator/emulator_controller.proto"' "$PROTO_SOURCE" >/dev/null \ + || fail "EmulatorController provenance is invalid" + +jq -e ' + .version == 3 and + any(.pins[]; .identity == "grpc-swift-2" and .state.version == "2.4.2") and + any(.pins[]; .identity == "grpc-swift-nio-transport" and .state.version == "2.9.1") and + any(.pins[]; .identity == "grpc-swift-protobuf" and .state.version == "2.4.1") and + any(.pins[]; .identity == "swift-protobuf" and .state.version == "1.38.1") +' "$PACKAGE_RESOLVED" >/dev/null || fail "SwiftPM authority pins drifted" + +while IFS= read -r script; do + zsh -o NO_BG_NICE -n "$script" || fail "zsh syntax failed: $script" +done < <(find scripts -type f \( -name '*.command' -o -name '*.sh' \) | LC_ALL=C sort) + +node --check tools/tftmac-direct-control.mjs >/dev/null +[[ ! -f tools/tftmac-v2.mjs ]] || node --check tools/tftmac-v2.mjs >/dev/null + +node tools/tftmac-direct-control.mjs engineering-map-selftest >/dev/null +node tools/tftmac-direct-control.mjs lab-selftest >/dev/null + +if [[ -n "${TFTMAC_FORBIDDEN_TOKEN:-}" ]]; then + if git ls-files | rg -i -F -- "$TFTMAC_FORBIDDEN_TOKEN"; then + fail "forbidden retired-product token remains in a tracked path" + fi + if git grep -n -i -F -- "$TFTMAC_FORBIDDEN_TOKEN"; then + fail "forbidden retired-product token remains in tracked content" + fi +fi + +if git ls-files | rg -i '\.(apk|apks|xapk|aab|obb|qcow2|p12|pfx|jks|keystore|mobileprovision)$'; then + fail "private/generated runtime artifact is tracked" +fi + +git diff --check + +if [[ "${TFTMAC_SKIP_NATIVE_BUILD:-0}" != "1" ]]; then + /bin/zsh scripts/build-native-app.command + /bin/zsh scripts/test-native-app.command +fi + +print "TFTMAC validation: OK" From 6d4f78083d8f58f6986089b48cde0bf10cc9f51c Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:37:01 -0500 Subject: [PATCH 03/19] Checkpoint approved Gate 3 ownership cleanup --- .../mactician-origami-ribbon-reference.png | Bin 1180367 -> 0 bytes branding/generated/EmulatorIcon-1024.png | Bin 207833 -> 0 bytes branding/generated/EmulatorIcon.icns | Bin 346778 -> 0 bytes .../EmulatorIcon.iconset/icon_128x128.png | Bin 13419 -> 0 bytes .../EmulatorIcon.iconset/icon_128x128@2x.png | Bin 33727 -> 0 bytes .../EmulatorIcon.iconset/icon_16x16.png | Bin 693 -> 0 bytes .../EmulatorIcon.iconset/icon_16x16@2x.png | Bin 1678 -> 0 bytes .../EmulatorIcon.iconset/icon_256x256.png | Bin 33727 -> 0 bytes .../EmulatorIcon.iconset/icon_256x256@2x.png | Bin 84239 -> 0 bytes .../EmulatorIcon.iconset/icon_32x32.png | Bin 1678 -> 0 bytes .../EmulatorIcon.iconset/icon_32x32@2x.png | Bin 5125 -> 0 bytes .../EmulatorIcon.iconset/icon_512x512.png | Bin 84239 -> 0 bytes .../EmulatorIcon.iconset/icon_512x512@2x.png | Bin 207833 -> 0 bytes branding/generated/Mactician-1024.png | Bin 170525 -> 0 bytes branding/generated/Mactician.icns | Bin 288226 -> 0 bytes .../Mactician.iconset/icon_128x128.png | Bin 11639 -> 0 bytes .../Mactician.iconset/icon_128x128@2x.png | Bin 28386 -> 0 bytes .../Mactician.iconset/icon_16x16.png | Bin 731 -> 0 bytes .../Mactician.iconset/icon_16x16@2x.png | Bin 1798 -> 0 bytes .../Mactician.iconset/icon_256x256.png | Bin 28386 -> 0 bytes .../Mactician.iconset/icon_256x256@2x.png | Bin 70556 -> 0 bytes .../Mactician.iconset/icon_32x32.png | Bin 1798 -> 0 bytes .../Mactician.iconset/icon_32x32@2x.png | Bin 4527 -> 0 bytes .../Mactician.iconset/icon_512x512.png | Bin 70556 -> 0 bytes .../Mactician.iconset/icon_512x512@2x.png | Bin 170525 -> 0 bytes branding/generated/mactician-favicon-64.png | Bin 3119 -> 0 bytes branding/generated/mactician-favicon.ico | Bin 22382 -> 0 bytes branding/generated/mactician-open-graph.png | Bin 128887 -> 0 bytes branding/generated/mactician-product-hero.png | Bin 458005 -> 0 bytes .../generated/mactician-small-size-test.png | Bin 34383 -> 0 bytes .../generated/mactician-social-preview.png | Bin 118626 -> 0 bytes branding/mactician-app-icon.svg | 76 - branding/mactician-favicon.svg | 18 - branding/mactician-game-host-icon.svg | 31 - branding/mactician-mark-dark.svg | 16 - branding/mactician-mark-light.svg | 16 - branding/mactician-mark-monochrome.svg | 12 - branding/mactician-mark.svg | 47 - branding/mactician-open-graph.svg | 39 - branding/mactician-product-hero.svg | 55 - branding/mactician-small-size-test.svg | 30 - branding/mactician-social-preview.svg | 38 - branding/mactician-wordmark.svg | 29 - launcher/EmulatorHost/main.c | 19 - launcher/Info.plist | 58 - launcher/README.md | 14 - launcher/Resources/EmulatorHost-Info.plist | 32 - launcher/Resources/EmulatorIcon-1024.png | Bin 207833 -> 0 bytes launcher/Resources/EmulatorIcon.icns | Bin 346778 -> 0 bytes launcher/Resources/Mactician-1024.png | Bin 170525 -> 0 bytes launcher/Resources/Mactician.icns | Bin 288226 -> 0 bytes launcher/Resources/MacticianHero.png | Bin 458005 -> 0 bytes .../Resources/QEMU-Hypervisor.entitlements | 8 - launcher/Resources/emulator-host.command | 9 - .../Resources/en.lproj/Localizable.strings | 151 -- launcher/Resources/launcher-runtime.command | 105 -- launcher/Resources/release-manifest.json | 94 -- launcher/Resources/release-notes/1.0.0.md | 16 - launcher/Resources/release-notes/1.0.1.md | 15 - launcher/Resources/release-notes/1.0.2.md | 14 - launcher/Resources/release-notes/1.0.3.md | 14 - launcher/Resources/release-notes/1.0.4.md | 16 - .../Resources/ru.lproj/Localizable.strings | 151 -- launcher/Sources/CoreModels.swift | 366 ----- .../EmulatorAudioRecoveryService.swift | 404 ------ launcher/Sources/EmulatorBrandingPatch.swift | 189 --- launcher/Sources/FPSOverlayService.swift | 386 ----- launcher/Sources/HostedGameUpdate.swift | 75 - launcher/Sources/InputBridgeService.swift | 627 --------- launcher/Sources/InstallerService.swift | 958 ------------- .../Sources/LauncherAnnouncementView.swift | 40 - launcher/Sources/LauncherComponents.swift | 431 ------ launcher/Sources/LauncherModel.swift | 694 --------- launcher/Sources/LauncherPaths.swift | 85 -- launcher/Sources/LauncherPresentation.swift | 144 -- launcher/Sources/LauncherSettingsView.swift | 429 ------ launcher/Sources/LauncherStateViews.swift | 687 --------- .../Sources/LauncherTelemetryNoticeView.swift | 54 - .../Sources/LauncherTelemetryService.swift | 869 ------------ launcher/Sources/LauncherTheme.swift | 58 - .../Sources/LauncherUpdateController.swift | 32 - launcher/Sources/LauncherView.swift | 218 --- launcher/Sources/MacticianApp.swift | 112 -- .../RiotLoginAnimationRepairService.swift | 366 ----- launcher/Sources/RuntimeController.swift | 153 -- launcher/Sources/SystemServices.swift | 167 --- launcher/Tests/InstallerIntegration.swift | 55 - launcher/Tests/LauncherTests.swift | 1250 ----------------- scripts/build-mactician-icns.pl | 37 - scripts/build-mactician.command | 264 ---- scripts/generate-mactician-assets.command | 79 -- scripts/integration-test-mactician.command | 74 - scripts/prepare-sparkle.command | 68 - scripts/publish-game-update.command | 164 --- scripts/publish-mactician-update.command | 181 --- scripts/test-mactician.command | 595 -------- scripts/verify-branding.command | 70 - scripts/verify-repository.command | 303 ---- ssot/TFTMAC_PERFORMANCE_LAB.sql | 28 +- .../Contents/Info.plist | 28 - .../Contents/MacOS/MacticianGameHost | 28 - tools/tftmac-direct-control.mjs | 288 +--- 102 files changed, 86 insertions(+), 12093 deletions(-) delete mode 100644 branding/concepts/mactician-origami-ribbon-reference.png delete mode 100644 branding/generated/EmulatorIcon-1024.png delete mode 100644 branding/generated/EmulatorIcon.icns delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_128x128.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_128x128@2x.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_16x16.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_16x16@2x.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_256x256.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_256x256@2x.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_32x32.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_32x32@2x.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_512x512.png delete mode 100644 branding/generated/EmulatorIcon.iconset/icon_512x512@2x.png delete mode 100644 branding/generated/Mactician-1024.png delete mode 100644 branding/generated/Mactician.icns delete mode 100644 branding/generated/Mactician.iconset/icon_128x128.png delete mode 100644 branding/generated/Mactician.iconset/icon_128x128@2x.png delete mode 100644 branding/generated/Mactician.iconset/icon_16x16.png delete mode 100644 branding/generated/Mactician.iconset/icon_16x16@2x.png delete mode 100644 branding/generated/Mactician.iconset/icon_256x256.png delete mode 100644 branding/generated/Mactician.iconset/icon_256x256@2x.png delete mode 100644 branding/generated/Mactician.iconset/icon_32x32.png delete mode 100644 branding/generated/Mactician.iconset/icon_32x32@2x.png delete mode 100644 branding/generated/Mactician.iconset/icon_512x512.png delete mode 100644 branding/generated/Mactician.iconset/icon_512x512@2x.png delete mode 100644 branding/generated/mactician-favicon-64.png delete mode 100644 branding/generated/mactician-favicon.ico delete mode 100644 branding/generated/mactician-open-graph.png delete mode 100644 branding/generated/mactician-product-hero.png delete mode 100644 branding/generated/mactician-small-size-test.png delete mode 100644 branding/generated/mactician-social-preview.png delete mode 100644 branding/mactician-app-icon.svg delete mode 100644 branding/mactician-favicon.svg delete mode 100644 branding/mactician-game-host-icon.svg delete mode 100644 branding/mactician-mark-dark.svg delete mode 100644 branding/mactician-mark-light.svg delete mode 100644 branding/mactician-mark-monochrome.svg delete mode 100644 branding/mactician-mark.svg delete mode 100644 branding/mactician-open-graph.svg delete mode 100644 branding/mactician-product-hero.svg delete mode 100644 branding/mactician-small-size-test.svg delete mode 100644 branding/mactician-social-preview.svg delete mode 100644 branding/mactician-wordmark.svg delete mode 100644 launcher/EmulatorHost/main.c delete mode 100644 launcher/Info.plist delete mode 100644 launcher/README.md delete mode 100644 launcher/Resources/EmulatorHost-Info.plist delete mode 100644 launcher/Resources/EmulatorIcon-1024.png delete mode 100644 launcher/Resources/EmulatorIcon.icns delete mode 100644 launcher/Resources/Mactician-1024.png delete mode 100644 launcher/Resources/Mactician.icns delete mode 100644 launcher/Resources/MacticianHero.png delete mode 100644 launcher/Resources/QEMU-Hypervisor.entitlements delete mode 100755 launcher/Resources/emulator-host.command delete mode 100644 launcher/Resources/en.lproj/Localizable.strings delete mode 100755 launcher/Resources/launcher-runtime.command delete mode 100644 launcher/Resources/release-manifest.json delete mode 100644 launcher/Resources/release-notes/1.0.0.md delete mode 100644 launcher/Resources/release-notes/1.0.1.md delete mode 100644 launcher/Resources/release-notes/1.0.2.md delete mode 100644 launcher/Resources/release-notes/1.0.3.md delete mode 100644 launcher/Resources/release-notes/1.0.4.md delete mode 100644 launcher/Resources/ru.lproj/Localizable.strings delete mode 100644 launcher/Sources/CoreModels.swift delete mode 100644 launcher/Sources/EmulatorAudioRecoveryService.swift delete mode 100644 launcher/Sources/EmulatorBrandingPatch.swift delete mode 100644 launcher/Sources/FPSOverlayService.swift delete mode 100644 launcher/Sources/HostedGameUpdate.swift delete mode 100644 launcher/Sources/InputBridgeService.swift delete mode 100644 launcher/Sources/InstallerService.swift delete mode 100644 launcher/Sources/LauncherAnnouncementView.swift delete mode 100644 launcher/Sources/LauncherComponents.swift delete mode 100644 launcher/Sources/LauncherModel.swift delete mode 100644 launcher/Sources/LauncherPaths.swift delete mode 100644 launcher/Sources/LauncherPresentation.swift delete mode 100644 launcher/Sources/LauncherSettingsView.swift delete mode 100644 launcher/Sources/LauncherStateViews.swift delete mode 100644 launcher/Sources/LauncherTelemetryNoticeView.swift delete mode 100644 launcher/Sources/LauncherTelemetryService.swift delete mode 100644 launcher/Sources/LauncherTheme.swift delete mode 100644 launcher/Sources/LauncherUpdateController.swift delete mode 100644 launcher/Sources/LauncherView.swift delete mode 100644 launcher/Sources/MacticianApp.swift delete mode 100644 launcher/Sources/RiotLoginAnimationRepairService.swift delete mode 100644 launcher/Sources/RuntimeController.swift delete mode 100644 launcher/Sources/SystemServices.swift delete mode 100644 launcher/Tests/InstallerIntegration.swift delete mode 100644 launcher/Tests/LauncherTests.swift delete mode 100755 scripts/build-mactician-icns.pl delete mode 100755 scripts/build-mactician.command delete mode 100755 scripts/generate-mactician-assets.command delete mode 100755 scripts/integration-test-mactician.command delete mode 100755 scripts/prepare-sparkle.command delete mode 100755 scripts/publish-game-update.command delete mode 100755 scripts/publish-mactician-update.command delete mode 100755 scripts/test-mactician.command delete mode 100755 scripts/verify-branding.command delete mode 100755 scripts/verify-repository.command delete mode 100644 tools/Mactician Game Host.app/Contents/Info.plist delete mode 100755 tools/Mactician Game Host.app/Contents/MacOS/MacticianGameHost diff --git a/branding/concepts/mactician-origami-ribbon-reference.png b/branding/concepts/mactician-origami-ribbon-reference.png deleted file mode 100644 index 87d39339594c05315aa1cd9e564291c74dab2911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1180367 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

LU9g^o%P_cO|Uk%Bu5wQt)W?0knX1O)B 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 z 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∾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

A{Qs;3#n0@LWod_ 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%0D2}9MT0L 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

95Spo2lrxBZcuck><`BVp;&pqC;O>#KkjUb&>d3 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�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

-%z~Im2dE>5Uwy6?`Al3r} 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%0DEgb_eF_-xz;7z>Df~YiQ1lF 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%0D)m3N2SP@#A&5Rx6s8ZHz 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ℑlQhCDhht^jc6yNw>0>mR-UD8_Wh(a?(7(T0 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

@CFBb7& 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 g+LUkYUx{Ov>OZgW1>QTRmb#nkT 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 sy#>=TXcpx2Sl6EVtwq!!F|fO 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%0AeeLSf?q9$6m5rQDe)zb&6L>dD#k>U$*mLnOO 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 z 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

aE;mCiyWQv* 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%0A^#O=93;hZZz2Qceol# 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%0AcgD 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 N002ovPDHLkV1lRQe3bwI diff --git a/branding/generated/EmulatorIcon.iconset/icon_128x128@2x.png b/branding/generated/EmulatorIcon.iconset/icon_128x128@2x.png deleted file mode 100644 index 749db90cece4c1ef8635164f48ce40efee8e4326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33727 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¥!;a=kZl(Y1Wvb)=GW6f=R#-S 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 diff --git a/branding/generated/EmulatorIcon.iconset/icon_256x256.png b/branding/generated/EmulatorIcon.iconset/icon_256x256.png deleted file mode 100644 index 749db90cece4c1ef8635164f48ce40efee8e4326..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33727 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¥!;a=kZl(Y1Wvb)=GW6f=R#-S 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 diff --git a/branding/generated/EmulatorIcon.iconset/icon_32x32.png b/branding/generated/EmulatorIcon.iconset/icon_32x32.png deleted file mode 100644 index 3f7626171bd4891535dfbd0a4b4cfc4505f59f26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1678 zcmV;9266d`P)sOLGwqk=7NJtafw26#>3bjodRYge= zRcR;_(ix))CNN-x5E6tDgGy9%(ndn4qJ>JKR06d{0#%d=jR}O1H19aEoW$61V*5VN z*=sS_=bU@4eMSEO*wVh|anC*9x7PaBF z00RUwBUp-=VWt?0X6Kk;D1!t2=MFqP^~f7<9J~FI1ol7n+}jr}%^VVO5m=-|z%anf z5F`WEc&;f*M#3Tq&`35THas-==B?|~hs$`beDUaGN8UMqY35M0Sr8Fib`){sq`dPO znm>hMIOh>^Zwa!_G@(|jKQlHtb-X8m7himB^1{Wd2L%w3%sCO*;cy}d4(}?32XYSq zm?=(tZwHsyG@Gr%`}Tc#bADa?V)jP+@3mTUbF@?m1|xox7_~H&*9=*5!d)^NTyyI<4DP4mJI6j}#N@wc{LZX4jA5#rT9_dTkOW8rq(Mkhcxv+(7^-Y! z$Zuk5^hsP$Tu@LYn4+fKsNbaDkCaU-9eWVSfpeAb(JgrC=k((B2pps!^Ze)&csx!j zJUo5`G=c_GRF%2Q- zL9HNhdg(0QjEU+L!2(WPDKmO#z%VdyP6!(C&f}$u6OW_9KNe=V@1AX_Qt08p-~(K* zY$8~!c(DW<*K4zQ1Ho`cOkYi7CXsg0=!76IuNu`p%0?od+@G`m$+YFeZK&2 z;%MLrW$~GE=FVGP;J1c6ZJJ&Ev|P}-LXgK1Q&NNhU**x!VJfc59a^XvuPptZMh4!% zMGvT{44Xn zpdpb&$OQP8`IqvykW|K4r4@$~Ks6~ybjZZjDaCnQvKr8~z)IE8stA7B(?_*neyw?h zI*v4JP-@Cz>tg5S(ig4UWLWA5D=CU1A_b|Q8i+gsn9@{bZY!L4I-!9hjiXRTRQcuH z3sHooym#v-7+P3nKvG#@a_9qga*_u}H#4wt1eKWT<}|(B^?g$3 zu(so!+6ktc=Q;yOxwcy;jHr=p_yki!#+`$cR1fUr#@sxWpU*LO^8=O^E+Hz^m#;{d z2jZZig_UN;H!lB>v&*wI)Kd>_TH1<*N)^)R8ta~Z0TF!{O5=H^pC#I?TgoF zf9W$^`}XJ9GQJloahzMPf%3E~vC)F?!u-qJH*h~UlA8oks;-}k^kx0NGmfdHq}rxM zo1J~znR)1AoT=aC%*$_Lzj~L!qd%ZARz)j(Ol+ofrX)ozkXoBoXwXPksi!N{(-oSbMoSx{+9rg+soN*m@gA(cb%Flxevf2u zC+^kbw9-Yiop5B=clNInA;8$j_Z)B38;5fte)P%(m`gIdb}%?H!PadL(HsD)v}vRZ zEKHwdTlL;|&&~beP)`B?O=PWPJYqwb`Ojd-d2pHq)$ diff --git a/branding/generated/EmulatorIcon.iconset/icon_32x32@2x.png b/branding/generated/EmulatorIcon.iconset/icon_32x32@2x.png deleted file mode 100644 index 3f7b0438ed1c680cc6e3840e4f6e9b9a0a4f72d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5125 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 diff --git a/branding/generated/EmulatorIcon.iconset/icon_512x512.png b/branding/generated/EmulatorIcon.iconset/icon_512x512.png deleted file mode 100644 index 7aa82a276cd55afb71fe9c05f05cd88f655121cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84239 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 diff --git a/branding/generated/EmulatorIcon.iconset/icon_512x512@2x.png b/branding/generated/EmulatorIcon.iconset/icon_512x512@2x.png deleted file mode 100644 index ad5b2d5161f2499981c8b60ca8235180eb46ed7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207833 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%0DxvgT~6U=|! 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

)a*KX0}bCPi&Kuxu9b6%%g~i(6h2 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 MwdSibMT^h>2MTqhrT_o{ diff --git a/branding/generated/Mactician.icns b/branding/generated/Mactician.icns deleted file mode 100644 index 3b0a8d369bafabb7fd29cc8c9288e8328ebe9a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288226 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%0DI#~to0kCS7UKJOF(F2LR@$bs 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 diff --git a/branding/generated/Mactician.iconset/icon_128x128.png b/branding/generated/Mactician.iconset/icon_128x128.png deleted file mode 100644 index 227bfdae63e3bf9ceb4a8b4349caade13d613afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11639 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 diff --git a/branding/generated/Mactician.iconset/icon_128x128@2x.png b/branding/generated/Mactician.iconset/icon_128x128@2x.png deleted file mode 100644 index c95cf9e94f273713b207b61a07b1a116ac60605a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28386 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 diff --git a/branding/generated/Mactician.iconset/icon_16x16.png b/branding/generated/Mactician.iconset/icon_16x16.png deleted file mode 100644 index f3abd84ad3213c5d5ee89404801de80aece245bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 731 zcmV<10wn#3P)+<2SyzEgYg@WX`oERgnNc4y+x|#0b z{#oAp?K)7u*4vrfLxu#Ba0z+c%srZWT!^uHr#*9gyBPF-4FLNG!z(o$ z!z>Ui!OZG=je8t07H?n13o_d`!R`km!^bY=EK3xJ-4|5d)AeZBcEN3TZCDZ(}`xk@K zSZXivLVKA}toZZE8o{0CvsaKDHOe*!YMI`in`d@nn$^R*tW|xAR+}Uk`Dly3_kX4g z&R&)@ws5-LqY+eVJ@mlI&LodL=ZF4Ha%)j~#qHf6dCE4MVUJNPY6Ok70)RXsMgDCY z`SCWBma;xr=YG*+cleO4!{4bC2rs61XGAT7a}h{u_ePfp-#)y_`-68GdBmyse&ZSl zq=kH@eL%$2;S{B&X_s&+8uYD0;7|3C@D#8g3K~N6kbsHkci>c0g{u2Y<;i) z;B*QQOrJ)@YhdhG{l;}q8?ppa&AJ>(NX}%K`eN^hgZ|Fl>l116L6Wd;CN~rHt|11i z3xfr3h3w9At+^{7<`=#kGxylPT~XjFbh~x#ViR9o!&rrLt5%KI{|}9RcG|XJgP8yT N002ovPDHLkV1gvRS-SuL diff --git a/branding/generated/Mactician.iconset/icon_16x16@2x.png b/branding/generated/Mactician.iconset/icon_16x16@2x.png deleted file mode 100644 index 964df7a26ffd6b73aeea4b08918a03ce9d3f4c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1798 zcmV+h2l@DkP)0MaZ9kumA}V3l=O`zygV95+xBNk%bfTHYhfJWNgpG&*|yu$E`Xa zi~H!Ab`sd7TGf4T-@0|a^PTUUs)7%=+50_|WI$`vI86@uKknVkCjWnb0LQ-itq0DZ zyZr6ZaP;|6OiQMaOR8oUaz_Zm5KdCUJyDKvTq>_U#gMU*h49SWw%H$_KK1N#leV(W zH;+I5oA!-vI)3K#g&+0%!@G(iZFg6Yz}=BMo>UotJ`CAcOz{t3Fhq zkYkpOqiXLS;i4$Mvuoeo_uc|v`R&z5+||5cM&qGb1*9=vO}=IRiWLhDCN@tt9%jWb zKD-5hBpVKkdzoyTyf8DQ_Y`x}Y7qaU-B(}a_3tPaOEl4g(v~n2cWmEDaz_Hkx!k>m zsT^x&m`XMl=XQY{ujX03agj}vRoCFIJ(7Z%c@4ni%B$y~(r}LP{e=g3=%ZgGIV3@H zIHzkodg@nPk3A%3x;@9&4nD@5_FyhdWu}~%JHcNsJces9K@)lH=@zb3{BpLu- zr4Xoz^^#`kjtX9S=L|6!MKX#6MS`Q#2g>OT_Rrn}?zl?h?#}t{MFw%e_H19Ni3#~U z{q$A_RC_H6%y3Wau>~?~^N*Fc*od()9uwS|FR_?!VpiPsV^i%5p-W5#J!Kaq9XXktzTNS36=5icP{7lHUTL(LmXqzF?^{&Efee zTA|G{YpkaMzh6H=pU{ACQHsx@MVIv__C3lfav z3_N40GsWK7z*%2K63=yCXxTM6RO zBm*ul5ej6^AQkkL(f5p9?P)&L?jSjZB2TV8OW!I6DgmCl`6pZjLi9tO zRmr|N5yo|(rpHR53|y?|88@c_eb4Avr^*!ZYVT#1iz_7noVC#k%Nr-F$%R|1oP1VT zi%Q&S(*mkn0MJxHPatQ*3(kDPIr)`>zGp;H(kDlXJb&W})>B|qB;LIF2V8OMq65r* zJu-FJk&jAXO3kx#S4%AU*nVZaT7sYLzRtZbe1?NB-OfN6(E-Nl{m;hBTs(aS;f&&X zO=ANRVC~mA#po)%jn|rI!a=QDL*P=RNGAC_-aUPu$& zn_hb>G#=Yj(+aG{p6{O7_md;HKlt6vHsAGVw*SCqKeyiPJsMNI&*i(Zke8I!XMpl6 zRQOdh(2%2Q7fo!1_T_fy{C(H#oj-f!-0z;6wDrD+Q;obr o+g+?bhmIX*WW4v`^aF4I1^Tkf*xR3xzW@LL07*qoM6N<$g2aG>N&o-= diff --git a/branding/generated/Mactician.iconset/icon_256x256.png b/branding/generated/Mactician.iconset/icon_256x256.png deleted file mode 100644 index c95cf9e94f273713b207b61a07b1a116ac60605a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28386 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 diff --git a/branding/generated/Mactician.iconset/icon_256x256@2x.png b/branding/generated/Mactician.iconset/icon_256x256@2x.png deleted file mode 100644 index bc2462d519ef96462beb22e04488f689951380b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70556 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 diff --git a/branding/generated/Mactician.iconset/icon_32x32.png b/branding/generated/Mactician.iconset/icon_32x32.png deleted file mode 100644 index 964df7a26ffd6b73aeea4b08918a03ce9d3f4c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1798 zcmV+h2l@DkP)0MaZ9kumA}V3l=O`zygV95+xBNk%bfTHYhfJWNgpG&*|yu$E`Xa zi~H!Ab`sd7TGf4T-@0|a^PTUUs)7%=+50_|WI$`vI86@uKknVkCjWnb0LQ-itq0DZ zyZr6ZaP;|6OiQMaOR8oUaz_Zm5KdCUJyDKvTq>_U#gMU*h49SWw%H$_KK1N#leV(W zH;+I5oA!-vI)3K#g&+0%!@G(iZFg6Yz}=BMo>UotJ`CAcOz{t3Fhq zkYkpOqiXLS;i4$Mvuoeo_uc|v`R&z5+||5cM&qGb1*9=vO}=IRiWLhDCN@tt9%jWb zKD-5hBpVKkdzoyTyf8DQ_Y`x}Y7qaU-B(}a_3tPaOEl4g(v~n2cWmEDaz_Hkx!k>m zsT^x&m`XMl=XQY{ujX03agj}vRoCFIJ(7Z%c@4ni%B$y~(r}LP{e=g3=%ZgGIV3@H zIHzkodg@nPk3A%3x;@9&4nD@5_FyhdWu}~%JHcNsJces9K@)lH=@zb3{BpLu- zr4Xoz^^#`kjtX9S=L|6!MKX#6MS`Q#2g>OT_Rrn}?zl?h?#}t{MFw%e_H19Ni3#~U z{q$A_RC_H6%y3Wau>~?~^N*Fc*od()9uwS|FR_?!VpiPsV^i%5p-W5#J!Kaq9XXktzTNS36=5icP{7lHUTL(LmXqzF?^{&Efee zTA|G{YpkaMzh6H=pU{ACQHsx@MVIv__C3lfav z3_N40GsWK7z*%2K63=yCXxTM6RO zBm*ul5ej6^AQkkL(f5p9?P)&L?jSjZB2TV8OW!I6DgmCl`6pZjLi9tO zRmr|N5yo|(rpHR53|y?|88@c_eb4Avr^*!ZYVT#1iz_7noVC#k%Nr-F$%R|1oP1VT zi%Q&S(*mkn0MJxHPatQ*3(kDPIr)`>zGp;H(kDlXJb&W})>B|qB;LIF2V8OMq65r* zJu-FJk&jAXO3kx#S4%AU*nVZaT7sYLzRtZbe1?NB-OfN6(E-Nl{m;hBTs(aS;f&&X zO=ANRVC~mA#po)%jn|rI!a=QDL*P=RNGAC_-aUPu$& zn_hb>G#=Yj(+aG{p6{O7_md;HKlt6vHsAGVw*SCqKeyiPJsMNI&*i(Zke8I!XMpl6 zRQOdh(2%2Q7fo!1_T_fy{C(H#oj-f!-0z;6wDrD+Q;obr o+g+?bhmIX*WW4v`^aF4I1^Tkf*xR3xzW@LL07*qoM6N<$g2aG>N&o-= diff --git a/branding/generated/Mactician.iconset/icon_32x32@2x.png b/branding/generated/Mactician.iconset/icon_32x32@2x.png deleted file mode 100644 index 433e25fb33f9053bf18f72ef984a400c6f515ed2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4527 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 N002ovPDHLkV1g@|WPktw diff --git a/branding/generated/Mactician.iconset/icon_512x512.png b/branding/generated/Mactician.iconset/icon_512x512.png deleted file mode 100644 index bc2462d519ef96462beb22e04488f689951380b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70556 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 diff --git a/branding/generated/Mactician.iconset/icon_512x512@2x.png b/branding/generated/Mactician.iconset/icon_512x512@2x.png deleted file mode 100644 index 686bd30b3009d7bbfe9a7d6ec40e7740b753a444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170525 zcmeFYS5(to^ews*0z_(%7EvHHQHp>RDFP8g5e1}4Q&5UhM6l3Hf(QobA|ky>69MT( zARr1TA|O>-LPwC^AtWc?|K4-PxbOGzgokACkgVU{d(Ac1Tysa@A?0J7<{B#vunp=OqM010}AwzZ~&a)4nI*j9Kw9=lwtnG1;1N)@A%DW z;rtiGbE79K>s5IIfLB< z^8xr_Xv`ubC4{h$aWt$!UfMiVssARdycPMD=Vj%c!y1 zH2(7pREl)ys$PC&^wA=obl3sJ-q+g z#UcV<7$=ycwWSt0_`S*vgXs=>C3&QLcCf@1FS597KD?prUcVaL5=i~il-X00F?ZFU zcX7mjs{q0B3JbT#svy$ROhrG9neM|^%+GRQrlHj|F!8lg% zS#>X$WI9k*W>trEN*^K}Pjbw$IK<#PQEfSCIdggwF-+QMsY5DV1eX@PC>>VlY z2fF%UfBO2&E8T`;eyx6{PRbhvZT9t-VUJI2-D8u(s3hFFNWWz127nh10JN4u|NhG& zj>X#Nl#JGG)YB5|jT=ATJgT3oJ@WWdv5edJo=nFxpR_BJB*|#zR!#S_p*quP>@;%A zuC8azxZ>z6$G;j5g?;fQ8PLi6>C5P}lWshT=n%f+`;%F)C4!aGBnBO`zvurzQ|)VQ zH)9f$V}aee(SS6t^e%D#BLbBb?y};5=X^20!6Xc&$5)1?*Wd(pWqGt=_$Qj{ZVA2< z6*HIREL!-l0=WM}i2niUA{|o|VfVyH?(gEvm)yX=wjWHj4Htkgmir4)I7lNWBEx8fyS zNox<>5KS<^9g1z1LH0ZVngasd8jsm?lfp^MJ?>|B=eL9@9u+(@EwZQysCConfXnlQszT=|} zwZ$~Ud;d6-ynp2L(Yjh0X)b{c;FJT>vrb}V#wfJ)m#lcYUoZ1q;KaveJSUZ`V zH4Vj2k^}aZMo+rF@y6|B&^?>_sJ%u<>EIRJ7w3}#RS&su*W}hsSbLD8Rr z5hz{>owqthnf`Z??Iz7}*eV4xf9LKGeE~|3#+S2aVyT}A&D38NR`zF$OhG2~J~<$vl5zuGY+r-dCAbF45F+M5x5{2O~eZe_nYx^EGqG;wQVQ z+%R0}M#1XoD)4PFfjg@m!B#6P<5+!0hg0N@#N5lGxYMrKnl#nHl~-#S(aR;L;*=G8 zcIGuA^T>Kh@ZPTb$~h4rdu8`K6z`POl@YvznRPw)!Az<1eox7n(4Wp?Do&6W<-953 z-S)xn^l8X2`M8PR^Ctm!FYca#z*H(#sI9VOgP0aCBJ$wog{0iur5iyrM3olHgvmX>y%qk5#)%AX10LCxiAXV^s139%oW42M}~iFa7~g2ZaFKI|bg= zF|?$}ar4&l_XXbFGIn>{pot!A&}?q1kARxGywAVizc)?awdn_|l?_~K5wxc*(cseA zqw6P&O$ecY^Nm+8z#VOzY^$a*7SduL z9!s1q!H)aRtnJlP+U+z0dPZhV=Xrm03@q=2ei{6{>CshFWL;8Cb*)w%T&6vaqO!Y3 zFVA-$1~@p6b`e4~38T+za!LHpsrFqCha>WyeQGlAfgZ@!tOC1ezqf3vsWIzT^^FcBz3aPjqBWIsLh@o3^Pb-&R@PX8@}kNs_c!>!gswPakX2uR^Ek0X~oSZ zy=k-kVuOt->(@xo3B}uRSAZ`(9O?9kYXG_U3J$q@H!nmss{Pq> z`)qWWef+C1oq4pfh}i{hX6$Xk{q7ws)u*R<^{2eip zV?kCgqvZine4?1L*ZF z$^S3Zcs+c*v-5|QNp1rBT@b1)!1 zpLP(k+}u7?0IrjOp&_?j0eAO)lQ(OdGaM2IP1M(x;9)AwIS%UN-c-}o)d_w)BE)FB zH6wVN{5iN$Y-U!x_1Zi;L zW*!5N8!7^HCzt%pL#1$W+L-&0MKQqgQ6c9$MTxa7%cNZIn@PNWp77kEBV*ln?k8$G zy5U$qT9jU|AWaeqMe*D>nav>Jymp@_0ObmH6SeG$Cgh`L?=?ovW=dA-qlPUp2M5lM zVYm5K%I@VFm-=z!oSo(Ee0}Z7=icEx1hU45a0?(?{}Gb4FBE{_`B%uYMUC_4z@2-I zAPF2iP&h|g_0W6;NYx(_;8|}$Z-9p*Dw;m}T~fx{PL1H$^0~UVQ{{+RyxT7*I-4<>r_wLB;vK zJ;x_cYPRQ?%Y0ku*dGPYO@H|A|Ivf4JW_BlPp^J3N|)?=OEZw(O)j&DaLq@!u>GB)3Z1l6^uS=_v|-K!)GbeuAKN z@>`Yiz&$1MkRKgAyw9<-A9h69D^uGKPYphj3D~`ncGt?V_~TmG7i8a;FT&m3GQY`W zd-=trfNOtG?+5U+G%(;cUy4CE?!7#DP6Spc2Hj5C671+IgyM#C&T*i+Od$%tpnA6f z{3a6=l~TUJF(2pr%^X8acg9pwpflmwY zu)>NMd-_q;vh6IcQQLxOj7Uj$`kboHQRbh6rXyh&>FG=I@nuHMt4o$zL*R~;8*#c`Q z?#g3ZIyiooLH5f{EqI(LblVpt&^U^Hci5CS%|we60m*qTh4WPVtICS1p;gtyhfLr? zt|O9xHBsM;Pr@YI@}JG9Y}B{D_$fj4rD)1IX!R zA+u-ckTRFa4Lh+iK|7lcYjwv)9%-p|fdV`A3=hZh|Nd1;$;imHF0s?GJlTp>g;H;Q zUoV5euJl^7bbf*(6!zIIsQTxPp@74P19c2VuQkQfBbuIF=0JZ0XfvM=DR4k18SQK` zz#sVS(S^+1>}(-EJ_+Ls!w2UUCyLA@CjEP7cBzNa!*?iMkoMw%cLG@>>|&tr=EY|K z#S&G1S@AiA4u5XV;=M`H>@Q8~>xBugy<_pjuEE^HKQ^}|`v3hr)7>rodS=_^Cwnf% z_PNT81rrqKTg6Rxk{3Gr3fv2&l6JPZK_ib46hm(Xro4YY=EM0yvW!v7R$zjfbN?3F zVWVYoRaRnlYj36L@l2SV>e{xT=FBPGlpu)^1TYCPnW6*tJn1P%obhV`_Db%fs+)<- zWq}9t(rR`OhPsda|5Qjt=0BKsadmzB)4wc$a60O+Om-ysiWmxXhAqt0C|C|_zUgAX zFB_e|#C3k3-4>e*lc5o&f_!060fcS-)tlet0lX@Pn+o6pv;}Q}0^1bKo31(MLbLZ% z@l)Qnz}AMy1LVx|P-*>ax`*HK@Z|C8aQ9vjix%kR%cCLw^A==R-w!;&gM=M(_i=CB z-Ym9LQ&Ku$8uPxjS5bYtwD;>*mhK*zlMYhtNG0rmz|O*$2?D&n`g>nVFt7shTNqlU zOG#zVGp3tI32btKTT9za0Mm#8j*#^t1}kvy)%u%LO;B|7&%$NC_{eFBqJihJWCD%xQ~(CwG-n=Q1VLprX>@YX^0lfH8uy6}9mmHM zcA1r(eJ@?$E}}R#Dk^Yokh&=*4mTm^564Mv(-XP3Ik75OwPWVZyym^Dk3@rx#@tdJ+JWe-} zx{|2Nxi;R7eHH%{gPo+ha*B#nQqod3g2FN-S_vuVsmGEFb9^x1#gVlAD+E&snXdiW zLQjQ70AU#LNT1fG?JK6_stFIshgALL0U!F@?f;)mWzFA_Xq}4Bj;Upo^~s)7%xxq3 z4%-m7zwI@xu{I6CWg`k7BEyMlxsaPsI6z-RI%o^4#^HC*W(GHSE&qz&>LF|orq-_b z<~pdkk$IlV8AR?z8TD;%r>)t`%sx=oDN-&>+LRGr_kcjqLE8xEHU|V+wkv~%Sz6KI zu5kjq0s<08kN9reQ}T`hjk)+AgO#Rnm}CZ$ZY_dT@n?Ii^Hk;Xt+Io|fJsUUGjXT% zlFYWOd2To&&a>eRm_P%d--?tkEN>x(%x>uu{(SrPg&I6xEUrQBd|NxBWJ4V9Fm11J zPeEqpe=qveT()5kC6a<9~Fpxz9Ij;e|J;9A53VBN=sNKDmIu$zTx^lu1 z8Bd25hEXR(IrnSh#6h8F*Y%gqS?>{9A#jB1zQ<|2w`eFm?%mVZM?*!~@T^FH$mNq_ zKsLf-J%8H){5{ToaCmBE>pWlh6*CE*pnQgpW^r9}O8ifHDFu^(Gwh{n_uBKr5jWR1 z)Pafdlnc@^?S2Eb6;qW&+|wj~XJx!|Jac+dMP6-BOE~8jiAYQ$5MCXBIvRx!Mw!jrlGD%VXz_{|$I=V)@RKE|J4K%67X2H=xlkJoB!2&3;; z0(+p!3^3V;G_X}P1w0q|At7+wklO&oT?SLm=Ad`#*BXH0-ES?i%LRZTXA%OQ!o|7Ds#Zs9PnmM+4fW7bA?JHqIL!7Vtp92gok3TJlpFD}BlnIH7w9@>sYI0<3#-1t-|`BseY%h_)f2cY z=`m6Ll&pzd=3!XM*Z$mb*7<(^u$x6duH$-{9*Iaj?e`H5bmUPdl1~+Uxw5X~x%83c z4F~k(NeF}Ve$pFwFKyRX5%X9JDDd@zP9P6hJ~nr@>AT+E1-)qkkafjp ztpF2&?Ng=!p^Vl!N5{l$`#XTs{HL0?XJZ?;1`-VYyI;rBr}F&)t^L*z{1raI)DU~w z_9p|rCB)#_{)Jzv3)2geehYRQ_h~#ql~DOG_3YXE&h}64lYUTwQTrBZ>mGM+%4rU8 z#BFncfycKsp6mX`^o>QnuYk~6<7g7r6Mb6UJ90HBy9^+@B<(JjOmsZ+hm8TrB5L8Nc>t`2Xn$*w(jS~Y1!L5;x zq42m8Dd1HAc`!Cx_uO&MSZInzBrezQ++p+m$9RN?fj+$*BbV6Yvw+#kxOkaxs2^jRMpju z`$F6>6{pF?mzUPot|S3cr_C7)$5cJm&x#y$W?T^8p-Fyns#$GU>v)9Li`I zpXTkjJ(xg_o`wJ@3YEL{zWp|}ltdYI!v?iDS&+A9zlG&J@LtnZP*J=}%X5X_$JOkV z1j~O$-;AlP)x29*&3-bbL0g)3XAwM`t|$i43otkWLJpJzB|C@YDRPSjvp~KiATa%queAbsLHIBMt4Gnsl-*2hC zl;ac3%vTRM+fbP|LlSpQ_o|C_$2^{~00` z5a8BFdK#Jdf~P4=H?IQck>z^x87XiK`;Sgwa9l=oi;m8Pn6|d7rP@%dqk~#A3Cgx~ z8MgbS#=-Z!?!$l9;yFw_aMh95E_SDw7}#JdFF1BEF>R7u<3Tj2 zww^eme@@j?WS^9HP0BqEhH(JTN^7CrGQx8$T&Xa6okXmyz>E2>ARqSp8U{m0OrZSo zlEXE54qE?)XnsajuUDQOjb8A2YY1sMsuupQ_y~c0?6iZtD}DX#7#&^R!ke9(4u%Up zYV2yWkJlRhhOZGtcOhBsz8NkB9ug%{|owgUFX6&U?YTU5iTf?fM z*q3sn%??olevXp0Bu(UBb_%PNIb%s5^0sJaDV);u^-)p?!|T7-?h!al>pAL%)?2YR zyEr(`W^8W#*$Y;|HQW*EvN|X^H>+>>fnV?DTv^2b_5xrSp9TA@R1-8vue*YujBY+TSp2mnk;vyhQ4=Y_El7X6O`H1q z1jQV=!=5=$jJ?HxyF%uL{N$6Xz-e1XW94dA#3= zASwDDD2gfNMBFbaTuVR5u?UgE0qvaa(z~ZX>q^*|^k`N7J6er8uf&Z0$}jcPqRIIq ztL*GiK2EE7ePQA9g3DUn=5HDI%|F$TkUCV0pP-ix4p0i+<`j03oa%I9IyvI0QQcZu zY+z@3dg)Yh#P?I9)o$Zz!^CKYTnoxA4l?7x2jYdxJP?@eGhV0}4`iB=+MF0ht|7)8 z?`?B}=Ys{IaMVq(=n(e+&-chEvqbJfaNm{Jt5DpYn>Gv=^4XpbM-|slIxuTFY&_p$ zIq9?3WZ1myGaNL$a6N&~6gvB18yz4^4_?r^nQ(l@4cc*-oqhP%z~gw$X#8o<)yzc} zia~#lu9AChy4s#7f*g4zk!1HM$2)UWSo!%ta5*O9Y*yz0?rT15|DBJ=G%s2Ai5Mwn ziD;BNr0A=P8-7A|(E8w`Kr1|c0ci0L)qK)2N#7rvthH+aQ^N%8{k+>M6_rYzzk{Py z(2!)G)Q(*q$&QUIFze4fEJD|^($s9PMr^&LvVxE}P7cVEv;y|eu~)1BMqPKn-wD8q zWe%i3&Xr_f^&fk~t&7bW(!nzzh~C=X&rT|II6WFkT1{tZ%Zi^8l6c!NnQsuLMah`S z*!p?t_LJ|tH3!HdzVPhnHqM&}IJk@IwjlFsVNRQBtPuP zrmb4<_Vzf5>6y_nuRpg~@}`W&x`&Vj(A%sji1ExyMZ{IXZ~kC6wH@gsj2Ha}ICpn8 zf}_}E07C2>^qd&j9(m;gHXc4sW5{|A5N%HeXsQ>N8Y}t^BrBl9q)4x=tt~^>u^rFS z_D*Fn>v+<;L)wBk>+s%?RS2E_k~K^89TXgXK}sU}I0iV#srfGC1;$^#Z8D{Vov!p& zY{{*Hmja{DNtq7rp|wAX)E+YUR=7}fVhN(g9R}hqICrz>wcZr2chBi{g=ao|{JnDkiml_Z zvtRv<`xF26!{>P4CK+n1YL|VU{#PkuJG|kvY#xH&KpS~3K${hKkJQrmn4_xdH-9X% zH7&gyPB$+eWOsF!FU-ENdMY!gygY)G=qw6E`N`sn&3yTr${OLB(710l7O%Hf+IS2* z-hiGo>=56940B;oSXvPX%?I$^{MbBaQwZMQfN{N9=z6;~m|DWmbL2zT&z<++$9b9p z=pm1PtyCFZOMq%GkW9-5&n_zbCwOL;uGHUNogxGsnoh1Ktl90y#kN-5L*6orMf-oB zHdR0ZhktUIXXm^e@o538J{f*nB?Ps$nw7y4cLolt8Uvf!e>q{_@<@rOeL+i`HR+0jSqPP!=BWWw7TEHi*t1B<7@AU6TAJ(LEe(5 z!~2r8z(uy-S8Nt2OVWItV&nr7l^xP4`j%cP~ zvV(ZWuQ$rN80z$gHh4Naw(4Iw^dbH8?(N4v`|UP)GADG94iiOmsD7FbfWdr4$|D_K zBKl?~#%L~p$*tyoqIZv-z~#Jp)ZNrS$$tL(Qzd3=DXDK@aLUXOZ@!62h$cKnOACFO zIeSVP3d0U&>T#gKD;fBR7a>}&7A`CL=w8dnchk}BjEB$r6ZD^HmZ%TY-!*%ek*v11 zE)uKORjqtiGVd;4?(DrVvn*x=0CMe{1D1cWf_uAv{(PIh=5aJzQ2TIVL&?K0hZcA5 zko)J($7!C4=P8KMJ9ZblRIjm9=-Qp9+ipx?QxbG;t1;B1pp}3O2kPd!OkO0@59rOn zD`?yMM^4bMd$*zk%t#u7O_i7lxlhs}CW=d)lCImZICF_Xi9y$iez7FUK_C9TFT=q{ zr!8z%#y8C4<&<7sf&pPTNbcY!mw9;*)|wfInrGAtY-QEek52A+)96Bl6QhCQPrWU< zhykphc_$0y=sj6?O#UqV@SAXcka;%)UJ?ouJn%{VW(MSTzLpt}Ny3^w; zWIG#YXm^PvyZ$x##*(nvS?n*jYE^RyZu?R%PNajGe78m5d;;(7tts}*nsSFED905T zVA{5gLq?SgD?XvkMlvUT1`Isj3B(E;dT8 z`PrEeA+ilXE9_q=o^S=|0u;W zB0FG-{Pbln8k~@3z}NnlloWR`#S3AXvRRz?gvi>nBR>p3kf`VunBDT@<6q%Xj!r9| z`_mKnqZqs0ROY_4|0BPB8aHjh#i0M31sC<3g_4P(mD%CujV5uL)@~70DZgKK%Wa!< z)rO0iau7-)+Pt8S$SHIjg51QmT| zbG=Og=R8;_&k7c=jUI-%U*ci>m-e>njCZF87Q0s#gZ)d;Y;s7t%u%9s7VRAZ;;y6= zhX`E5WE5mEHwXSPEj#$r&1?C#azR)1C-qu2PJT7=FWnodt-57Fzlem*x|lmp1`rSg^L<3xc2p}3^L5tOtj^3n%{*#< z8tixM(M%eN5f{08|9%EdKi8?@e^Rb_Y4qp9NtfE%AQz#VxOXxk8~5VQk$)MJ9)b`J zmXANG6R)q!uqw{~`OyO72DgD|JAU6aEUsI^??DkLm!Bac zekJ$)v!j8L*LwDk+(vDGgMVSqxZ-n~e*ar!1m&bfo_zET*I5#ADF8+A$utaERCCti^zQ*x? zTt3gXz9AbI_5y>`S=St({B)nStAnFZ+qZn*7`%Cqo(wiH;1A)}chn&=N-q&cyz+_) zo}H|BSpREWZQZo27!qad@~~&yCx$Y{OZe54d<%oSob)4P6Ad~+cRW?3aN{smNl@(| z&0=z=;7FtCN$aIYs%kzf*&7iqv8-MK7dXf-i^TQTdkSo;1wzc&8_f4&U(#5!9uK5Z zgvvmzqP~!aIA%ZP0r9O?u=RI_FIooktFN{*uqJ3%cn&RlRi1~|#lD>@D7a7XA27As zXWMLk(n7N%Izk=k(q`ZEr)?3r$=F$k2ZY1PBLPa?k=BDKXIf9MASWj>)~)n?JWhKk zC5)u$H^7!3nmsS4*U3N|h_SdRE)aM-p`)PAO8tRR(%Z0-RA8s|3 zWjIEiq7BzFk5Y4~lpy|Za{MR}6088(ZW%!nF2$Ru$AZeo-FrmBUqa{3>6Uj_Y-(2D z|NUEkL2c=>*(<(dUV9D8bm5N-c+|lQukY$wg{P#pw9_4C6Ic<=fROu$CLv0d!l+Pd zrKuv&cO$&E$cG0_ry-11%7@@}wiR$AqTVM(ZjJj~+R5zUJNtNU{fmP12Q$9sK5lnp zgfH^&y#3`n-PaNHK35roW5Fe)nxwQ+<1q@ela%b(jAM^fB@b*;Kx!M({ZB>c{5+3i z!${aqo1l|LRC_2SlcYH=u(A9GM!Y*BbHZ*`&@MLNif7M;G=l1^#!IgJtV8kQfRUsk8+#E)(IOk-Yz1{C@f7DIiI@M}}OOec7nX2UP9YI+Rl~4kq3J)syKFYJV|}OC7->%Rwb&BW)}KAPR=Qlw#ub`kIG&YAhSrXm4o;N3g#TekH?F~vm%eR1!G&n;E+&eC4SlCjI>YLZ~>HTf8ru}K) z)bYa0z5|)nM4!`K7wq8dlsSYZ%&=?Cv}z`v$h1+3{K5;rWfvEZJui&b4C-ik zk8fYGYAt6z-Fr5gkty5no`507ZG5apeNU~YamL4oT6Q#%5yj!|_l!~c!i6qxc_fuC?uw8eU^DKN|bt zTze{tjqvUi9W#U}R|smRb|~FtbmLd>u}cpniPwj#hokS4!UE0{1>V05jc`s6XtR)M zAiqm})U@^RiRFtCrEw3FF{kh%d-^xI85Z=H@Bh2!*T#*QTQ zqq-zQR&~(<@v_6u${J)ZFKsb!a=Vtoqa95vZp8h`1S}=ehOjsivry!86f;4a;mHgV z7S}&t^T~^QLZB9Nk~^3W%~;7QX6L+SZL0*QqB^;uuz%cW82%)=WBpu?%2nLXNA;ht z8eRrONYl!*HO4~nTd+jKGYK{*?0(DDi0}IMDPvC&V|J z+_kLw_a`)NIb`H0@$?PGMbU%ivv1$<+Y#G19)CQn&I}faY^5RH@Nz~iopO}=Jk8v; zAifs7hxPb(PUD}g4a*`U3>e&tioWU4N7z+KOG}eZ51t?HDH{A4I_|XhFFA)+dxm)? zMQj>%soF5=6CLUfGv!tPsl{8CwCq7hS4S z&0^obbqeDc4Bkoob<5i3kB2UL%KQ$exYJB(jw$&MQfHK3-rkC&ekT9Ej{U7d#f}_% z%VqH@Kj!;=qe&$VKYCs{--S=`uuR_2%2q;f<^s(asY{zLK*tPs+<96xYt=(7=QY^U z6SD}s@iEwSwrMfcB=lY`&S#d0=O^!#s=0(nopK|q_dexAN0NlmoBaT~#$7I_y{B+h zM+`NS6}ppSd+B@4!ycus^2~rA1wE9}fq^%lr&wI^G(RP42*^5RP`%<&IOBC@?YQOd zT1G}jKt#aU|0s=uoXc^BxzyVneuVx@`@DSnq1;tm(EXLE%w4;cO5NMaH8*s5a8ewo zASj<0%FJ{t7K z(z3TYpzV96^4<&nv5v{b$y+5uE?sZ=GwLt1Dr=%7VhabbMC&&dqMzAHL$E`-N1-Ph z(x0Dz*poz{RiV`Rq{(<}qHglBgq|H^QU*P${>0Tt@K^2Io8O_of!z7i%BhWri`EIq zLF?#uGu)83Z;J&r$%`|Sqs9t7$WVCJDFjfUX;y+9D=U-Uzf_2UyXt!y+mH8@x++}y z=iME>-miP=M)qMj@cPGlq&-Od!cnPrx%OpuO6B7 zt*Qlbzos`=&rCP)r_HBn-AZvpXJs8R(ZbeeQJQdY{9r=zvFd+_Uu)X*$oo&rqNZ-@ z#a_{U!P~;E2Lt{rbo=%Sp)0L3M)Z*cIwfwn_^XpI>&2plXE;ycr>~JK zRJy|u&LkchpVqIQ=Y}A;eb!PM|Iy47Q|r5L8Ls-u<1}cy0@^L(@fmuhpO@yl$8^dL zr+RukA3jL@{BKBF&Bf2^C;r{bpD~ok4_%8#a>3~pp;#Ctf>R%kKXfb8w)%++fDiOOiXnq3(m zP0zve1!?8^x%&tn`T?5A`KrG$E<+EqQefAw5KUECxn3~jx)W;ggJWf+{^k5UFXy@m zf7CDRi8IGNuIoKcl}1H%Gv+^+q2>i4&Pn##+-|g(@{714=j$br)BpUH;pfz&LU_Ns<83{Y1k%J zo0JOhp18%Sa6VWS$K->J-!*SEG~bTUi%ye@(_z?w^jCCNNYPr&{)=|IA9>UETVrzk zXmks(3nS(dR@S6Yvn^#xeDAa5QIb#OQZZe4LA z9%iMD1@W8wvWdRtV>9IH_2kT24zBBZR{{T4RFVMExC*Zg8DxOsa%9_eA{KA%)z}>` z)f_)M+*vbx5H-i=gs0iHx>J4P`ZqqX$(%ZUV)~KN!2ornCd~Tu&7_NuKiS3gXqv6P z1!ULj?^?9bBOW=^)gv@Gh%u8Pj$!KNN%vdq<>&)q8$T;-!R(TwE}Ea|6CW9S#M zBi|@otG=}y_|5l`eb3igJO3}K?5pRjUB5}9)jjRG-utzl(J9@MS5dKP*gs9w?5g;; z6MYdAg>;{2h`iD7@eOMRyCANoa&8MpQLX%m%MS)Az|iyA+wF6c#DW5k3~2rEfy5!dkGnsg6MNLcpm zM>?ycg0T=YQ`^)E{ zg^Ld(@y+KYZ-s1UF9I{3a`)6F{?OPM2f?kdN`l`N-M%wJbT>I^xzdWXF~S_x)&9>o z0GatNSj9oIl}Zykqm6DbetP%t5R1j+&2MU%En(k`e*4GK{n|B`a!4y~dS)zozWOac zI`4pjk=UM;Y(`52JMHg{#B~BPOot%iv3aheKp8@ z^4r~9>NSCIfmVXgd(CK3VFpoA=+~4jB0Izsaxs%W>u?PR?FZHhv_Ze|#cCRo$c|DA z1b@`4qx!F_VDsX-bLX{bKq$>rCrj{Ly>3SdZ@Zm}R2-s1J4nJ{pxPJ8!EGbR!z+2v zb>Zl*OU+zVO^r&7L8{<{Va zF@P=^NN{}afGK6&CvsiqiA~m9n2DLLpHVj8xa;K6Rgtk95}QHZpg~C^-%WlLI0qaa zzQ7ACOz!5D1@E0#tBLiS@B7&!^ZVz|Ml)j0^FAs?=^&31$wpy>rD|ape#_TpUa}QJ z-(7}tL7wLwKRx-MUpDT_Vu~5>i~72bJ>;MbXUoFAus}uB4Q}9wa=I)MX8Cr)mOX3d zRSWIvOL@WN<4oILW3Dm=Gg#V-7aIX{#3uI374wJ79#jPf$*~*#?^o2kpBBj{?g{3x z>zgeRqDXeWJL=JrLHgYH#K=Y_uyvVUk6O>C6czr|e14`@b6Jewoy$kjO-B*nuZG$g zy^kTD_upuFZ5Sh$1Z#WzL4EnghDRgyxS(Y1+^ZtML~G*w*hF)ThaY&)pRzl8=VEC81Qlh$L7;Uz1`#=dUZpTElAG6I`q^ z+~2xn?0?O*UFQ=P<`Z`y21OKZxT3#iop|1Egr8rQWy?-fWB`hrEN zne)SkuWg$CHguoLpn6s=97TLSz_4nwQR+im>|l~wI7C~#cckWK*?pPs&v$kB{l+P#T&-d`eJP?W?3F0xqN;oQSPCq3yV0tf1 zpy}o{8E$e=Z-gO7)|>q=I0+O%@N22ur;vX;kK+tf3!q2_o1=w*HHy7%`5A|gdMFMQ z5T%{(cYHL1qx`<+LBay1Yx>J(<@lWUDj)mC55mXzm_Dqu0OO0Vv2co$kiuzH3vUUD zP_1aYF5@bJzWkNe?ujz@gKd@9&dK2Lj9{m#)k?9I`YJ=rOqDjsJ+ zh(qzvxQ93hhxbA!q1$QJuG{Up)Q6*jb4+D)Bqd2VRosZJXsf?{5~NhKh2z_2)30;E z4WFbwyGgW+kAG1SPv6dNQhQ~8r3Hoqs8j7D&6ui`6q?Pguimb1oA9t}@{>t>_KI4& z@KD_9HdgMeUo7Qxkfu(txOA(g-pRHdYR>sN-N1f|lMzhclm}=g^&hEa@2Y|(V+R9V zRd%~fjIzvtvc_L{u)MjBO(G}1Tl%vmZrpCe#*o^t#gX$pNJ+Ri%QFB$3wPIFU~H&O zKd6t)RFkhHS?ypSKBS35L9Ht)QrEx@pU%T-_8B;Gh)MjlvH$`t+`WU43~ ztjd~>-`+caile2Y0B=xW9~rt%y8Pi)@Pl@B?kw%5TiBI^OmDKL7nigmuP)Qh_Y@Bh9EO>|8>d-j3jQ69bhD$8HN<5({8)1RfiBHNc>XBNz* zN-DeFwiApiOsQAL=J?3P_>Xt*1R3L&-+)}AEA^t*3|Fqd!{g&7e5_K%b@s~Eix9Il zu2UlGe_Q-aIn#LK2bLy3-hZjWc*nC(te~ORz|bUK?yWeA9u7`A=U1PZo!qT1yW=fz)tz&upEileJIrTx;X6*c<~#M$uAAvhFlXX(Pjj+mNYej|e}x2B&9UQU_2mS{4Cd{r@@{X$&7E(zVv*b>Z}R4z=U@4fRf z*b01S>e%Qj`xcOEdKT@UiJ8vcT&D*WpWIWW#?Iq=J^J`Za2Y%zvV!;OEZ3 z|GPgM{o1BqIA^QpXm`wg%$9igP)%uNQvLkIC3oY^TEmh)>N@*spsT?J$7tK9J$E&p zLtE^SdOC2p1eAq^5|E;&lfkDq%?3j=3f9LZ)3F8?QiNLyQ3YnGt3lv}_{eh{{gk%_o9lXxO-S6(3TMs*i1wA;)E{Mufl-Gskr&}I73q@?-C&erSq zJ$~(SR2CWq;Iw9(m!sa)dQn`nob~HS#Rt23z@iDe?;l==IZ+FaJGde;X$1**gmESW(z&kdHMfE(^a@d)qUMN!_Y0= zB@F@sg5=PMA|VLUh%^X@bPc6+h=72EpnxddIdmzFba!_%%zXF#J>@gtk-M=mxNa{7@ZU*INa{#9lh%qaph=gQ9u%OQe%ArOH>2b zG`NQ~IzPthw1+uGT;;R}W{R^LUn>LI^i)ow*rrf8`*uCl;k;qfef}Zl`sa{u-!W5H z88w2H6(miYziYm5aV!6XJeTka=ry$fDX^99griJJAB%X4pe|YEnoplaZ!G=V6Be_3 z(s3D@Tjw9cey00SKk7!;!^o?2`M(HGtRYxm#Hw*zNsuh^&O{A5u- zT#ADDU-l@~|HSNIWBTJRa5+=RShLueIWTM{v0i#~y-?S-9_i|Mk#l7y^as4MiVq2V z>CY z?9ErJ$y$3L{8;ws`aAtPj-L%ipPyk^oCNeYb0VAEHZ8{ZWrC3hSIQ~VOwTy3|TcHGZ*g!IfasnXA85!>8m4Fsg9>zBNbYOC(rup0Xv?t??X!mJ#kUi#!j=1&9OdZwf zJj@C{`4ujI3HOIh`8Ka5b*~vDmC#k{BPv!KW4!$re2X7-<8%kQhSGT05xSZq6tYdv zn5!rvlq&8D%)Er~>=HWcR#g^nCZr!V5bkUK*tl^(P>=yv6+-0InzWq=D{e&Bpd>5~_sxlAYWY zk(Ju}JPy{-t=XL$Uy^Z{tOMA9v@xj~eYw7Vf-85KEL3XmGL=EZ4vy2npa6Gz9_F^b z*7Rtd-^^Cp^Hv{Gvp?LqR`q^Sne{v+-~I+kg!N4oW0mNCl-=+iBU~4Tun1oracPrx zo0n~V1>`pVI=DDjG;<6qej-Q?7cTPD(7!veLX`HiX!LHY!cCuzu}}Pk3Kt&poky28 z?Z_&Rf59CF`L2w?Kx_P6pZHDC<@{ywY>U;N_yN?fo4c=u>64o=m8{DPlA`?n541mC zVtc&)#yo+Gi@C?BlifNEj4<%^I$+AzSp|pkUSDz~&uaHACOMI5!Hyog5M*g!n?}K< z;@Ai9HvD8O>To$J5bVd`~f zeOFR`Y(OEdC)iC3X5vZvlCs3gN?nfdyT=)PHR;-5%P-2Yl&lRYMnnR(z1HX!J`kdf zUs^GilF+=~$cJpX>c0LItaM+)4A!eIiUmlH7!tOg&B>&s^dANc`Jw$>3`9aBG%{~P zj^IE<xcIQ&rH}&p%9;%+Hc!XWx!)r1vV{Z1bpJ0Ip64m+Li4X zNX%aZUViw=3tANbh5KKy8Avbq?y^Y4#cF149khZWLhrKN%@8@~reo383talTUeRJb zYSl@3<#AT`=fO)iP)+=;JLmBw`3UF4M!uI%b`an%va|i`{nCpU3z&t}2s@h(F(z>_ni(M3AB1cXJ3j5K5zNz;+tta(aiZh@9qYi~ zzaV-w*M7MA{>^z*=0@njRVvfj(+dueCoF%ZWk8J(dg7G^=h^!Hsl6ib$gb;+GVnD> zzG9wlTF#d&#&`bg4MaFMF~j9%pwZUmrPT1vIT^45g|IR+^i{L3=W80PdBtlsx0_lx z4ZZ2v3QBiD*gyYwUzhXF{5e%FDv1g8i|p(&q|${=1pw=dG z%kG@w@vuAvoZ0u{o@_HtYrJps!F7{KNy}Y3p^(woO_PWkjunv$ECK>Uc<*hZkHQHb z_$6D-{xZ%68I;r0*b4f#OE#r*sGwt;JpDhjbUK8XJ|eU}2}*i-%MnhFa5-8miVu>1 zCeK%bl@RW^NjN#10uPA<q(kAL z0pVFW$&yzGKAvt@TSqGt+`BL(uGxTpgaKt$(|&DY?(mx9L-q!=!zfnO~+mM#Rr-7bi(pb zJn&i19nZ4K$uoT}!i63RR%VhfNyg;o+Xi^)?bNa)uTb719hSE1}_o#Mp@{>X(VaZ(zN7c|#Df{UYTU9Zp_h54L>#7)Qz4Q|Ifu}H6<82bO z-~k8bVTq;qU=_U?kJbm+#@78Y)rX*^+$r!3D`J^ww<;y*fOwOZZ)^C*!RA6${rW7CHh$Wx3B1hlF;J$$wWLzfhJ4?$cHg=xJsd`;&p!dnc>?d zSW9aKpz%xn<;d%)vA|&hN>(5Y6nbFKB|dNty1Fw*cij2BeOu1&@gq2$hBiWreiUPE zV{rubv@BsL3aut1jcZFj0*%|$(1yvFhZbybGIGo_#0X6G9{!Cu9-Hduw&pbO^ zM}!=XbjN|S4p-yqy4yl%mBlO3qp8Rp&HdlI)6=TCR?rfAVi@Ac={?Bh7jg+8w)#CE zxBf0UB~_Za%q_U! z!9%#?01+RZXV<1`ZarV4&e3WM3gaYbdj|q2+z{MJgh)*sIOdxoD6I+>`ps4zh|0-v z&X@M`hMg>GL8x3+654R>)Us4 zH}35b?ASs9phA8A zXJ!pb$jWZ+=X_Fd$j2M?cOw3t|C75)RpC=`5VyboajmfMmBgBj+;^7nxO;>U=<`jY zG+^rvfGMtozpj~t+UZG2)E=o`Ufz;giL?sC0lY!gcOK_YAJpHJy{kvP@e1Bfd%XSp z2VruG)(g6a*1x?$hYeJHP_noDKBFFDs9u}KLa%YD2;jKj z^ABP%9Ce|5`^3h0lhB;P(@Il(G9lWA7cUvpuJ`l!uaFo&v1u*r`byI5a6s5-ut?Wt6RGUYAmq`u-n(N z(Qj@hI=2wf1z>?}7h3S*I&C@1q?w6pt~sBsa7xcG|GXAOLK7f4>ZRO}h&r#AU584ELGRS)opl-~FsLaDhr29f@v#Asn zT|h>SMFiI3AY#e)wLbK5#LMhF!DOeUX}v#2s`FGmti=5>r`w;#C9{b+?Ocr9%EMHI z*vWBRHSK-iWeTXqB=@fsW0OJ5X(*3=5rQuI?^oUT)51?&>c13W08ogq_AM~h8v5JZ zR|$!R;6S0R7LO8kFOP5K8xC@Qte?D?!@hZd{`lYvkCX(`Zqef{gFHAI@o-59`W_dP z62gHY9**bCb+9VrlXMIt5X2*g!}z|w0?xiIumN9E?m{M8?&d$%$PLlGA=A;RF>ioC zEQG<`!ZaS&3UN*{`Pu(`_Rm4H;l)luB1T$t8?YEZg zH4%0t_ens+f91U-UyVlol0USr9LwKeB>MAY*mtEx@Ldj4Qe|W*Gv=i|43GV z2nGcOXtptq^RwL-&zKLu9EBB_Da`bFE*pl)bSbOl(0$2HdPZ!64Tf4Om`+B=5HYo{Xx5gca17 zT~c44Xt7!t@*1;~ZyimrnM8Yjs3ImGf{iI+%uDSx<1HgWqzg*n$u_41Qw!z=C!MGO z#Prx89cApSg=E^oS>*jIZ`sYDHD0cZDZg)ToX&UsEo8)0l>Kv|4?uTtilX@InE zLrQ56haCGQSJ=O>j_|bwtReI6{h-16OKIoAUKR2HMgehs1OfalV-lUkRS+BWqNMU? zy}#zHxwwxXAp+sRmV)SAP^{l9I9`T_ZqzIBh9O=j5`g2a40u5EbhL?A z3n;0Et2XXX-BT?ms@ne@v-|9(^zRvqCHKQPLpvr*tXsp^a7<=c911ILNeZ`!74sJk z10q9eW8Qo!u?ON#J13jBoz<%4N?lO6V}LIJ$&tu9!$=>ZP6_9;!8E?NhN+%8_>KCs z3n8*&ISnn8o2WFiCX&n2_W?t4u(X&{))sVSrS(dJRJ|cyYF-WZ`&fYz$P5O0zl#vJ zHqtI_Xl9tJ{AV3t9h{pC@VAJe`j50Qb~Rq527Jjd#&m$``zcw`1Fub4hI!C+ z1{hoO`lJ55zv(^}yH9&8#gJv65yo}Ffbf@uHl#ZH)FBnh_F~6iNfTgS4!pl@Pp=6N zZ43rOpM-GhSIXmtsROLwEkbg=IoW({sP#?r3(gWqdkHdv-s51u88f}~9mCM1_PU8Z z$MpFBoZ6ZVxtBsi`2{`n&+iqth^s74@(Bl{8oGle=Zb6OvL9lP6`(^2-YcBqG$3Ts z&GC+hi>Rj9`wWgu6ib_J^HzNzc-K4%w&|I~UZ}i$@l=;RH*LFXv+>X0A-9ieKkP@@`2rNzQ^?C)Of|w2rClMAoD7cx(puCai}_NZ z>npPdR_8(1ZJ_$Z`?ufPT25sf6xsp>L|Rq6j$C-DQK3$Gr>0o9?(5vfZtUGB@pqMD+9_(pYagCumOvi z1$)4wF>vniprL^LtdygFlQ(`6;;UfgeH?=hI?a#|Xjm<~5c+Iyr1w*A-49z#WhoCo z%U3F5k+m5Mqu>|*dlv5=iu-*C@%!SfoONIe_aOuTj*l>z)y^6Jg%gZ5Hz-2nm6MlV zEq*E1831YhV|4jZjd}V+=F;{%CiD&5f(?nCs|BU4;#Ng-Af5t%vzvJf8Mq4jmOn%5 z)cAK>CWOZ>D*zhyaF~dV_D4Wiy79>Aa(m-V-jP7G^!4C z-4(S`j(*w;mi6b6FIVD-IWPdoZ2^4{!M#5TdBn2n^hfUG^VpyqqVO?twsrSE4F^NZ z*xQa`iM!>;Yf(7;>jY*PT)<$Q?A{eprfl{tufz&5dS3t+m1iUNp3 z_IKUDF9g@gKW$T-b>~M!t_&J8A;67J?Vnx{eq7s5nn)4~E2@@!lBG2j0lVN2ITt95 z{(*CJ^iwU*ATzUx<6tI$j1diaYcLbU-iB0AcCz3F^PrHIkMzoYN(DBel*KeW8o%Zk z0Kj}%dMTEZ?0|kzvTaR^vElvD$A)-i*bf2v7&4uf^W`|{gPC7ur7Tl7e?fvfT`2|& zfN=*N#glsh@JFp+YXng@RkQE&u7c?nzaY~CZADGZkP*vB7gO#ZKQ9VKl{g^iGQ6$3 zqrKb&`SEd~*BAg{aYT3BQz#3tO2ffF)EO+ITC;D8yJUd8J{Oe@f5dj1i3f!f#sg)} zJyYe%vB?-Zr5kx*8llx%tU7~az{3Xsa25vuB0{a}v4PMH8=7WlD?J{dOa>T%7fD)u zxD}nTkKINhI$q6Hvn_HA@Ob{ow@n@Zwy;4ff$JI30ly#9<(T}E`*U|^g1rlnDFCb> zyCz~rYmb6L^anWR=`v@X009tq<9KsEJ|lFfjGu()f0E_^fG+g(Py%0DxvgT~6U=|! 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

)a*KX0}bCPi&Kuxu9b6%%g~i(6h2 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 MwdSibMT^h>2MTqhrT_o{ diff --git a/branding/generated/mactician-favicon-64.png b/branding/generated/mactician-favicon-64.png deleted file mode 100644 index 380a3eeec93983fb93fe1dfa90fe263c816e6135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3119 zcmV+~4AAq5P)eK~#90<(pe<6xSKYe`j{r-nC=z8r#rd#|9fBZUI697*LWDpcko9 zo|0Crsq2*ly)TWo`k z*Sq7z-s{Zi!_LlSclP4NHmUkaFf(WNeEz=wcRgoj1eKA;A6mXcqCX@g+YxjDO@Ob$ z`SVR_AcCY%3XTY&?@L5JISOdyCW?}G+uH+yY47)?lzV~Jxsi3jXk1A7LcBqLnc?Ah zu^$x$AQ0?$L<;dD&^9mPEf~p9gk*1A9r}ygU60F{@Q0TD1i{NdJNxtNicP`J1J&M0BuC_(RJc0D16cIMpa#);4q! z^wv9Sj5PkK=^4)77$Bu*D&pr+d^9(#qSo7Jl_}#y*E1y3DwES!(Dd}ph>Z~PKCeVR zRJt83P2ap@H$PhO6+*rsIv}M$CtGK9<6I&LC#QJ6?{(f7`DaOf>)OA}_Usmk}72(Lm7dbohdeyS)h=)ABKKc(Y~9P);vzF$B)EPSVy2s;TWs& z)biQp&5R`@d=$Il%5QDk!#ue9XL!ASz|uK)BCG*?o&a4-b}^kCV_ZE~jra&aLDE&t zWWVC$$1A^PDy&I?2HB&`dVo1*+}DAePpj0@PG9^NWkOxG3pv^?Z=Fgw_}EYj4_GVEszHp?k^ass*6d zTg@!5@UXk(9yGFwOLB2_E2}bgQmO%M-(7kvMg#I_uj^g{-E>0^|d=mq<$GMD#;KZaP$~bX7@1rukQz`yQ~W=Z|H8_H9r6>^|!LJq080kIji=@t}vPyGv}O)oN)yy z%R?}(`-(1da@Ql#<0ijY@+#M3AD0Z7)`rzI1}b0NRt&(dmTg9&b5Y0u zcq(jI9p`)mVclmb?qdBL$uZRUkb`G`c)#WLj*zj+XIIPaxdou9Cdj&mHI7Ec+3E@g zW=0u|e^M~_RP?mVdH`a&hh)Cuw#EhtBkHjNev>nOOvd|N6K3xE_Qt!Zt7(}#06yE? z1Hx0XvpW<%>N@v~dd6Y(-24gYHTrol-9E3y9Z}zROP}mUJLkPjL<_G2ufcsmv z6^3x?uY93cB+BZN()Dx~e`@`8se2%U$kI(X!2j>QWdQX76gX>+b zt{ElmdUAqGu}iM=CsPv)$49Jik%A0@s1!E0$MOclveEb;)2T66p5w7zV##ZTU8Ais zv61Sl#ULrQlHbD8^QXE1fmMKqFg1W4c1x40*SVE*YJ2w||qm z-*KrN&Rnp(xqKLu1i+_wxwq+F7pq&!N7GaEPJLAJkMvHRA|s_aU(G0{_3dtNDWY>V zcCsYTYq8TLQc;|JgLHt>(X^xNj&Vr<+Wqa+C;>XFOTUT}OREgc44_HK zprD$W-*R8OH%!c2A(4)jlSj@P=z;+&@Qy(SH}Xz0C6lzb{lh008;jUVc9x%fu=Y_T$(o zG$~NEoUD@0?z41uoh9EJM$5Q=j*=O*!0ij#;}Xdkpyal=#H#y}+(Qp57sy%c!Cjg< zO3(t4tDhI!>PzqOXKd=Qkc0*32PEsk^S(F*`<`on7K#sk*dhO?lzho5D4 zyP&BhPI9y ze^apI`Mb?0!?UHghkuDrd5O&8EdacE{!6p7yj@0_O~c{G&N1C{)g1rKvpp3h!7`7> ztry%D;_a;pDYfi#9|j zuKf9`z`TZez0qB@#IX^8loVZQ9li}gGu^1Xi2q~Z9 z7MJw}A}QdB+_!}0H$$1E+UuN3E%;4Wurg0BoX5IM0D^w;9SMKeK|@d5k2Uu4V^>C zZ6K<8o&HlqLjt~)hz`DjOO7jJ;bs0nP<~Geo&uK4k9_k+V?y$)xGG+OfufrYmAbeR zXzJLmBeI{*LpRya=d1eGU>+z1M1U(&a701wi${juh4PzL{{_GTtpd^BX?g$v002ov JPDHLkV1l`$Ch!0N diff --git a/branding/generated/mactician-favicon.ico b/branding/generated/mactician-favicon.ico deleted file mode 100644 index a5c646f1bb35b6148730a01088a6a5db75a5d317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22382 zcmeHP2Y6Lgw!X+n0?#oCNPzTCLJB3cke=L|ULXmfDF~s2BoImfea<%`MUbLCK;c;i znZZH_5s{(-gVI7sp@k08K}0}Q#$nCB_POWg+?pE#D7=^NTRA7E?6v+?_Fnt!wWCrs zP&HJ=#HeueQ2EEHRGn2Sm4}D)_b2u$RexNw$C2;n|4F54l&wRJQJRjmK%* z{-a>ER*s91y@WC7fwJ-syqoQ2Z+qqsVqa@9n|kiFyM5yxR>J1T8hF^-P6Y0|j{$aB zA9p<*Y^MWTZ83p3xBcWX!Y$*Mj&`;mThf8Mo$b`e7JE%!JqbE6`f;;sob#CZyuR&g z@FTAE`vVW|=k0CLPyAuVGjp=vuj}8rxTqS-P5|4FuMN9*)BmE_Rvv=*ytd~b_I+=M zCKTJ!Nf4jc&cE?kE&hgh_L8ONi+p0JJZc)9jD3?%#lBAEk&|eIPlOdb9*#d1dWBF~ zmw|L5B41E>*dQwMYFnFp7lHo?R|nfjOV|s2W9dZv+jKH+9%v4Tb?^pgHWhjQ{yHf1 z451U@67G}0e=>47onnd_4*6=)LDR=nuiE_Vf!)`%aw0>UpVneO6H`D;2~N(I_-_aH%jWQBxVEKZnh)rh`ft#| zd!ToWd?C}djivS<=)Fv54N2c8E$RqsOIm`!6N8jp-ErJ zbPcrB{sX2Wx9BXIA@zz=MJS68?$NUh8#N5YnZ@(u6FzuWzTSHPe&3y zfet>RWt)f4yqigamTw%Q^M#Dx6~8B)(b}A`%kr@f&czoA>S5Xb7V)Pu{={X_!4lvf zs%wAQrXjk1A;UG;VjJe{*ShJS>AB3og81CrbC#}iY>QZjudmpoz`rSn&IA8>brIDM ze+Q~gTp@H&@!b2g6gpt4>bC&+xnKBzGF(IIEc=3>G^!5Er%6+m3Od>?pWX>dsdGDw zUyk$Y-a~06bg&ZGkM$WQuwT%Os3-nVs!m!BS_wTYhaQ#+UpSiZv94dJEB^Vwex&PA zK{Ebh-GecIA?#CZGJ&Lf*AWn#_wja|Ffv`bhl7CoU|6S20B=!^Mxac zOLYALj}ex9RC%v;vp>@j*!^hOP|z@%G!^y-9S;Y7?Fm4#Yb6)TA%)7@@>y>Ac9Ri@<#h*xBZjft^Xt+fPR3(+KYl zR=3CaP1#(=ekpMzWz`42dnY=S@&z4A{v0~^Oz6PS7wUq4UPw=YTlhO{uEa0r?QaEX ztj5oMn{0DocVTnb9k?$uCDkAQ!IVwV!3OAHy-8o-F~X9~mG?gDIstJ$T=+WAS!Ddm zynTJAo>sTV_znGCiTz4aalP!H=H8hOrhZA14mKM3LN)q@bT{k#)xW7d9f@B+$0JL0 z{yur?GU#BLUJiF6DxU(HJ#Cc^7{BD}`Zj0WSCWhADk#hS-s3;by$c;k-2xqa1s!bG z>OtQZti|8kqmz^~#Y{%dF3nS?yt<5-IDeD#b{^0By7^g$AALLbafUXRv45X3s{Z)X z{s|py1$}MO7y5cdTP5pj!Tm+Pa6BI05VZ62HF>jW&EQ$O98R9I%nppPs?F!U{B?1z zwE5MPVq)yyr;eiRde}eODS-B;eM1M*wu81A_yWhn26{8J#41@gL`)a+h~vnaPDK|P z*_`tjIhWZQ*4wH!-|vtp`Z#^;zzyuzfc;w9D2jJ-vZ^g*KP8`gBQM>P@-=kuEr@ks z>t#^XQqw=yrZ?bqcoQ~p`M}3 z+hv=JJWi3r4e|=G*k(4ybve#u>@w~j(niw{>7!|B*9?non3C1-T7SQEs>&#Z4t7Ha zJB@tdAo_)A9Y$K@^LqP2z1;Db<~_;R6*f1_U*B%0w%F#p_VFa+<~TRRejWJpeeZ2< zrqqFdvu3n6ZKqZTdrbPmR?Q0Xuy1Tu-Y;VoX!GZl@B^MlETQk>MoGE5!sZtg`Rnee z{$|_5`Xn7t=hehH@XI!5+}ATk)0MPhYGdU%s>EyRd|~8#s?692+6z6f4h(%^8)?kU z14A91bh%^ATxtcKiJxeC&Vn3HjOobVIy*Kqse=?(H_^A7vibFlG4vzov&d|d@0!9_ z+qIzqeW)_C68OtOWhQ;$<#q)o`Q`bg803!9TdC{bS}Bx&ay!U|n8T8+N`Q;@FDzWmHl{W)<{MVbT{i#4j<4e@>?tb@{V$ z9&t4BBT~*&Wt)p!26;P=X$w0hn{2Zzet?0$OE#CW^D)%1smXV(!E5T74`V-~itY!X zgZ(CaVYlcPB3iXJ;<-(;RGT}>`E$)Y;)13`o4=aQ;SRx<2l>il+AB+A4500 zkEJcKeT?2Sg{dyrMg$F^^6rPBgM&f`rhH+1@DM$|-CFr*b0%f(DCN)W3uh9i)#R^Q zn;VX4k*!+jwK*j?T#H@b=8T)^R*$jtm*6gX@6-jSxo11J^rC$|jz9<1phH?;;CQI% z7goi7sKf36~Ds+mU|N|AiwMAEyp=C5P@L-pF+5&N9z-(+8xZGIED8T+lQ5(;nS zsP~RJOm)4!LcI<;I0pQz2h+aL8G4f2T@dz~B43d6=NezAPFaIEN33h-YNp2XC5jxT zYm4R>+iLo_8w#5<_Md=#k7j_5zbwc7I*w~M2KY}%I_PoKq%VvJd|vS9d|-RhCiDx) znUuMsZZ7o|ZHiq)dt;s#^HgK($l(y@r;-ZD(?QBDUJB|g`gT(`XY4;^m(cWf4{l91 z(m9yQvQE>!tdr2eag)CAVe|(Af2>O|#!2K0>2l7b%pE0Pn1#91I~_E-xti(md^BmC zT|}E-$MhysHfQX&ft@Md`QGO{*7(WV#BI>Q8R+1YNnhY`lE=&9pn(SY0*?{;zVNJ% zhKBeADsmag=Av&$9w)|g`1@aix==gJhknQ$P0BczZ7#6qjKesq-~U>Jr>@Vu6#6oi zWuJo%zBBLzjt8k<7#z@>-j7^>aRPm#Heb;9g&kCdd3A8}7MSPR(bd#qgYjI8U7O3S zMJ~trjOgFAajvxa&%n+!r&HVmi+x#7YWJ?RH~RvJb#T^%FC3wTQ447Y{JtWS^94C) zQs$1kX>HtMovgdiryJUwb2ug*(=KIXuOHkWbV z%96%4?%U-!SK9p7-0{TpURa{8z58u*!}ij=)WH8e=ql*4X ztGPJ;MH}a`%^5e-Z+#}vAisOALE`!sv-M9FbcXM$_ViVc^U%Rhv?uqbfiGM!(Jx58 zuq~||?;5Y~@ORqt8AYOxGwj=yaW30j#(pJdRDHhjUUYY`-DwG@rF(fn`N03P(1EqS zFrXpR-O*swNV8={NL|TVI_%BJbbjy?sjT^0}Lx?X*V(gSB=xe$LKzij3F9@d@+= zOCDDp@ZLUPu5AzC|KTts2f`>!n7odYjF+aG(W1MoI zTOFVqKHAXJ-Zl!k@@(yX8Qw2;=MUr?EXyTHHk(Bh^y zNyq5x($VgebhMF=Tcp1mPLz%fKS9=?B(-NP{*YEWxwP%YqZONd$&+&}}wy-S(37zvZ(JkHSm4FOT8qVFs zd-uv)wAZ2~P4o++iLJxXUQ1^d`tY>(9YEPv~=rW z&>-5KG8_9WTjTjgdhIiBU(|+1_yq{!bH1jOf%zx3a;1F<18Mn|Y+3=TOde#&U-u64 z&^QOuZq(849z7TIrqD%#v%e94AMl&v8%~S*O`^X)JBeP!Im@8OANFLdjJa}T9#s_& zrbBT#&J522k2tLZTIMjTFA zFLa@C3Do1y>x46c`yi&q)0%;=(Wj8%d{hB(ZMU*kQpV4ix#o*&_K#_XQHqNj+N;r1 zjl7L07WV%(aV;H8+e(L0H&a>SYRdJD(Ba~KF$jIc>af4k>DVb$nNmVkspIH8>P6}q>;XDg|4`LuCv|}*@v#DO0@?!unsvtRHLgok$EbQ+(5=#?vr@83C-?MOh>VIiucW(QNN5@ze2Ge?P_8%&2O(k&3I#>d#=wvjT#qT|K>H& zOKBr1&!>&Jr{t+TXSqAJ@St^?&!~#m*HM$XA9bn!9g;76Fa&i4Yog{;HR`N*|JJF5 zHw164ExZaJ+Zx$d;AR_43yB18sg{h_+A9(UQP-Bu^Qzh#1wx?_(wQC0&9?**_#lD4qV$a4FDo4HX zsRZ_~Vo^7G74^a;0ii;M(>~XNy zP~v(&Wo($^kDN%XBfS}p@fURnT$5CRnxqx#)wD5jBmANgbq4SY)GCh+9z+v^y6SxF zCiHzMX$bnQ{&ZVgQ*Z}01j`~b$rs<=4aX>RGPuG9g99=CWuX>C)PtO+GStWIgFU!T zvJ!r=EA<=7@Q9>b4{ti3S|rwZ=(6|Q0UDW`!!V4pu4?aAnNlX-N+q7BLmx6!p`~EW|^n{(T04XgJ&VbGnRKbK5-E>+EOWM9h6L2a{xA zJ=Dy{*e5wI?#KVC<2JZ0;cK$adEU+Q{@?qDzf_pQ^!()S1_(UNowT5$JE29T0NAawD0qn67-BC zt%_MBYUlI((u7QJw8#IoQBTJlsfgycRg3(v$gi!)XST=mqmXCpp=YVDnw*0?9WH} j8qc}de-wQAo`@fO_mkt7<)~Bqx;of2FzgTN`uBeT;?@St diff --git a/branding/generated/mactician-open-graph.png b/branding/generated/mactician-open-graph.png deleted file mode 100644 index a82603f6ca269d8b7f7e72190e11893ff19fbc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128887 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 diff --git a/branding/generated/mactician-product-hero.png b/branding/generated/mactician-product-hero.png deleted file mode 100644 index 6f1edabfdd203193c74e1effe8513eb7681d493e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458005 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

jBAk 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

SN5{q+ns*&u7rlw?3JVvx7o<#B(c}nT2%ra{~ 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 diff --git a/branding/generated/mactician-small-size-test.png b/branding/generated/mactician-small-size-test.png deleted file mode 100644 index 75a01ecd6a68c84f181d91ac9fe0b1293ee3c277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34383 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 CI_FRT diff --git a/branding/generated/mactician-social-preview.png b/branding/generated/mactician-social-preview.png deleted file mode 100644 index f4c4f828af4f01076c7b89531e837a94945554f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118626 zcmXuKWmsHI(=|E-f)2qQf=htlt_kjL!QI^@Sa5fDcLoXW?(R+?xWfQpuy5|?J?EMq zd;aa-T~%vUuT>qPq#%ikOo$8s08pi+#8d!)kI=s#0uVnyA94vI56}m^v8<#R;QhZ} zepgu%06+$i7W=N|nSI{nRYx_Zcl2~Odbafx>kYc}R@d|0k-RUsJhi_+1|UfX0Ih=Y zQHRe7hmFsTCs{huC4klSjUU*}!}Q?UQKP;R27M2LJGMq5r*b8CtLmtV(#UgjbKCOh zdLDh$mpCW&5|?Q8`FG=j7Wea}$wEDY;Bse&ITn1a*e(foLb`^koUlqOfRvWnh{Gk? zbdgS2Z|Cjt9%mb+uFx3@iQIKC74faGF8Cp(j&w+0k8~FUL$Fozdj?n=e_}^XIPopW z!e}Wx1Hbr8nEi0_5niMif7;QK!y#*D!1Y7uUkrzGm9L&5?FI(bQ%`|A(oq0FG^#C3 zK*m9pm05cGFR}}uXG12j1Pff;Kh`fMkv&6+#0ix1=h2}oM)pUo;zEXQ?yk!0G1-14 zT^;X|%|rCG`UB#SB}awYOg2H8u$IW~f8@^KskxR5X)m+hP3>?s;|#PIL))8y;E)&r(l8p0AKAx0}WEHe|-LDwtA2M zii`%oXPRsWo@&$NP5sl_UaQgVa8g&h{@921GPJI1LhMGJA`GsPA;C)J^T%*F*EyhVijQOE7%~)oD#9xxm`&x;ug7eVp@LK_G z)*-gLw7=jV(Gb1uo&MgooCxR%lp(mu>3Vzwv{ik{u>{81Db;UZGrjHBp|IFy2K$(N zYdvCZ#n(BkbB36$o#G|d{FR#-L4GZji_7xcO`}R>!CCXpC-x=E)q5v!H1C$=RHTlt z&)4>&i4!5((G^XeNTY}4-$|2A)mi!H{Ll@ z1iO0_>7`X&a2DDN@<(=)6?WJjUI-iN7m$)&3}04+aijXYjmf-Jz>(R@hON(edJ!V5 z&tOtJ^KVg``9z(Tc1%nghC=<@sJOvVfojx&AB4Eg(*4cw!Q5Ezjhgz{0WOdf_RBZY zHI1HlHE6}oB`+|K*d!G=hM|IRVQ(Vo zsTE=4WVnioIo%uJIEv^S&ufCu2-jQj>HQGQV4b!AlJcDrkzxC`9oj>-C}rO13>HTT zCV!k;d5C9D>}kr|ng6A45y5S?%!${1x#9wkn=r~$hcb2({ksC*B^*CP%1jqMeo_c2 zD~m9v4aP_ZKib8=+7vK-qS@d2>~E^`Dx$*a3>i{(NAOE{^-1&dB3B}6B=&8)O0ZR) zO3G=N?7|;$B`lkm41)s%j5a3V1J7r*xHZ2hS{&NaFk}!&8moU+Kncazi~Nx;VNcv_ z3Pg0!1`bQ5P{BAt>u&gD&He*Ky=m%1Q<)cXD)D_wlR(74^)e>&emI_4B3Vv^`E<@a zXN4!PbZ~f7iui5YsFwx*P{kUxXrN!B z2%pe#xcQs&=Ya*CSyrgW{{d@1-YOG57is;cEoi5Aii~r z^3e;}p2Ps@%`QbABKU;|O0rG&T4QboNVM-Rt`3*uqeg5I5U0YmMkmx2z!+)!9q&(O zeF(|`WOKdl_VwXzm;5!gbO?}l8JoF z@SoGvGG1V+mJKohrR9dkTPU=Bn8wxxvQ#s6KYqfU1l}k*o`_0}2sBvan)L?@p-Tql5Pd_mqG*@Y%n9-ym-X%Q>&{(tovd6Bi}Y5hw#BUS$G#8 z;3Z+8;GnFzE-R-q^}o~fY zw##J`$zokjRCQF=f_WCo*M|Ge0MqO~J$BJSM3(AB-CZC`nS4Lbe^^S8W8yfGYhUGv z#V884*^@LLkjj96l^N#Xeu%2b_9G~1{N9u0vCA!Kpw2BYgB=R}m@AqveV36?-yhRK z6TP*zSXo+`tzfjlaPW}40P?mi z-aD-_EH5$%_hbLnJ%?OTQge~w2AKl)UX@B1w1oX6InbBPUzwgkJ~U+&uo5>J1_v3| zH?yb_eDN$PkXagYGMqvUT@ybnHcpGdh}W`F!dU`s)q(MmP!<;{mD}yONi4eDXcHnYY_Ut_^pM8SU4e;aX%>)TFZ#DIte*iDg^0rF z-e{vZ6Opoo7rrPG+pc9fwBwogHS^3O>jqk>^_9hwa}Gk+Ri8x^?WeuCV!J~fwKoKg z^nFo?UNNwQZ(6If1Jy&=$7S7EC59r^q7Vk?0TmpK=X^+6t!7~JVM8oDc$8QGKQH~a zdhVYJr!WwCH#)Mzlm(En`T@(TepY~=n<~p~k}foxL-D8WouI{IgLQtX;#XiRqkDyWQ;7-;(=#*dXwe-`VZvdU zuMAe}#f1$`*;}VDT7d1BUYcdqnn==UOJn812$+*3R1%E&A8LhUyFkQKV8I&`|Mdp; z=9d>=jybzXNiaAy*KjQ3V0~(1VHwUbTQYv+M55l+MGDdbEpmeOGVrEqBVzj?yX(V- z)hI!3zJm_GN@xd;2=~+8*6$}z(hLmRf-9jN=ubl`-=Y|C2?ReEusF+NGv^9?+jQ6E zH&D)3TU9RhBGx+2U=Bb{0YCa?)67*&vW^Ixn zjIdv#p@%@@gV_B7W>IE4ik|>TG zub6?wUz^7l8w0{q+g31+-KbDWGA1R~H_(0!t&2njR^g5W-g5^nJK{EcDV-;b8)BuY z@hAC=n@Yp5}m7`wD+wxZ-qTnLW}JOns$4Xd$>_t5aEKs)ty>k;=vzo`Od z{Ac}iXY8Aipth-i?f`G}#}AOh%`*v|UAUV)YVzY^d=`#Rx{fYP9HM(?Rem=$g(#)P zURodXOV}}FL^I7!{`{3{mHZDlQyo=1Bsow5}>?R$Q(?(V2jK9 zIxJ(6?Z+P4E#Mz^g6Fb}hv(abN+P*4HPm%tY|%byCscXXm8WlE7|YWkaqvkUlM{n# zWMCf5m=*vR!w&^fDCM*YtU3WdsV@(mq=vx3tHR*dKZaba9at8hWu($N8w|ogmYU>a z{IG1f30_a%!pZTbB6+u!XuRKQr@W^BFVEMl4!BXknf%V#OEl(&sf%ko`U}XIRd+00 zKw0b*G`r;B5^}xjU&zn2OHKqqjog&$CZ@ltfb*caKO9XWnVi)=)~JMs;3`7+C1}qQ z8=hY>CRSvUawXi{Dq$b2hh@Ea^CiiAr$R2r3p{DS2!1l#zE!n<8_} zKe8@ZAW!}k&jQFP4!y`%H(NKB>WN5?Ss<#jyX+tkTV$gAVU~zB-_EAOo4Z}P5j%AW zep`5$Yc7PY1ADaw-=46Ut&2LQbWo1dWh#6v+!Kav%Pd01$n00ILFE*hx&*Sm5zj^2 z>?eUVDapmD8Qn4|tE98fpN66+wLdW%x0cVX&B>@1$xlWpyqnLNy6EC>8X7LE_YGM} z`x0D2vPj;b4Xq9h7xmC~?FCJV0hWP5&^YlcUu5^X{oFb)L?q4`#6NqcKtm&D>ENVE z=`MKviyrn&B>UXk3?^NicLf(scA(Ckrchy>iqR>dZjK=sRqu0jcwaPMEB^VoU}1$O z^ceYZHiZ+?ba^s7o9T9}3CdewZm^pScTD{w$?g#Qn>(5VWBR`XID8vkbv~$S)8?9C zM|Lo375jMfKk(>RG8?>$Bzzp~-&&tn>{G9=tMMEM6W3hVp#!5Z8^w4;sTh@K`k@^A zTG$xccPg}%()3gNzDTrhHSW6zp|z1G5skWwR)H>*uXVsSmYy^p55P9`nO-i%%ZP$5 z9I0v@?|k0hKK}-aqQyMF`Y`8gHqrGg5(O$cuB%ic*}xRhyAxm(i>tJ( zv^0qcmWLh?%z<3&l!PvHt@yVqsZmEHMs2yBM*l{@Y+^lMu1ytsBt(9&UU@;p#S8>n zh8+->l zrFK+_&V80>pZMcg<$)!eq9|4Q52?=96NThpO{i|7zGR$Fc#r)`ae?eHhlidh`s8bv zln+9>OquByzua1!wQ=##(l94TXXafmNmYo5O!CqSPsb>v?XBBJ%ppeV;2?|k^QyDK zua3>x;%vI+RQqxD&1PA$b4PGK0A+xmC^?q|GNkrjTOS$9=CHl=>7L@%x(3&k;P{7l zRb@Nt*%tyDwL~!XS9`E>5~dej#s~vSw)1Z^(UVy*itn}<>v@iSzh`D;)=g(5Ft?oS z&$s^W4$sTF4}~-QEg+PtRmZbgJ;21UH=#~m^puIxkUabQYY(eoUT_?7-6cT287Av_ z-XIVZ5ealqnUo2QtqI1}UHTGYTcT?$LDP*WaV|C~-S7O>1(n|yVt2_GtuKCr8i{t$ zRT-CCpwt4Ks8LlQ^est3FE3g;!mf(mDZ+J>3uA*r3>*J$l^-u{#|B?2W650RO-v=p zm88``Euln?R`Lxqg^Csb=4Za=__uoF73IyUdh63LiBXxee{W-p~Jo78huMm1(auJI@(MP1Bu51WFD9`zB2uRP!!y)kn%D>afU2{nvif~yms zjkN5iMCOBFF~1;c&Yl`Ys!Lq*qJW3&T!H~z#mGDr^cIGhdn2$V>T)OH(&1KQC8n~` z;l@)9feVsl*%>>0Aw)(<)J?U{#x0Tb6muThTb%M((TBjI{jmqGIoJ5n_w?NKJ?}zd zKkxZlOzSB*x&l!3X|hPOHxr~LOpYUI8m zeL%l-F5ncBc7Kri9w0X#gh!jgUYCyfDU0J%MQ{LoqIBJ2ES+gSw)k%e4Hm8Zt`w}A z*uCj!^@Y>lA$$$<^M1g@F_5$033D@xAksaxHbv;C>fp${w)3##{!rM7HzM?u3 z_jRW2(;uLXK3~vj(Vx^!1QAyo+{80KvS1MQ^YWQZ!84kb8}_WsAN(JMfIxdQ#j!yM zTwsq{7HMTPc4vQGjgK+!T>yodxVt!6`($`OOwpX@gzEtHW{);!c05eNC-Tg+$=5>a z26Q_57KP3E+bo2DT|xSa4Vk&(4ViVg8{Xawo&-x}orW@V@|!&?2V1O-1pBK}JB6NK z1;8wmT@vqgI@q3qcd#6|n(p4w3+HvDQEg81z``w+eyBU}R%r`#b{%T6X|vyXAoA&$ z;&;m?#%I%~?{!)__?6L~`cCC4oHMrx5yDYIB?!-D7Xv>78+`X8g* z34&C8)Sy{CL}gBGRLGt6(ds(nkKL`9*(234yk+|F0S}9(iLmwmt>_4xWjXH|BHmM} zF}X#HR@F(E7%DOpv;8sIz^JQR2(oW} zoTi48L<+BaPfYD-pit09%dXqX-pU?ZO1VD2PPvI#dXAaX z@c`8X!YNze{l2&C^!kBJG4;tDs7WQ7T3?c4s6L?lJ_oD(gvVtWIRQEA0Uw6fNbG3? zLRj8BWg9?1HWpd1@89iQlS5-3(OhnQT^D7zOy3m!_HPDU1NhYqT~;{Qk3@euRd4>3 z6f8Pt*a92wHYsn)?blBRM=r)Iy{%=Ls0unoaALpKl!X)ZCF>Qk4}b2R`r*IsQZ`Xy zF>hC9A>t1*oqxlwPa;2|nMIJf7{e7QDF-qx6U+;)w=tFSZJ!JIjtle$P&_)0b$W*f z?nC>aGW-ls|s|t>sUo{ zWYx%VfN2tcUsm`5cEgnn3dd#xlV|^a;Vp@;42^1gHNWhb38uRkZRPE7>|yv-Z*)xZ zMIKAN>aP%bqXzzNIt@(mo(|^IUV;_z!Ez_9nwibp- zu7{xrHq@J@4@+TqaS@Uyo=NjX<=W5p8Y)vayhQV0qRqo@1`;!vw#T0VU3)nri|A5*9@y5Af=j=xV< z`5`Hch--r)nu0OIa7vQ&z5n_A%l4#uO;QbxZ5hV3P=7RzTZw<=o?OeER!;CD6+0gN zHV^8@u~IP>XBFOvlwDk$sW2OA3z4d#y;;4+r=Cf~y0K7>yqD;`k{>ZP!Kn(0ARf|<%qSp)UxiwzM(u8!LU(rpS*cG>MplcW5jnjt5aHkOu>;YLHKl3y+(8K_g% zsQdENYm7wh5n$z>3VC8J90f9jG{{lu;F&#o@7ALB)0&3iY}L3glm@e*=h#PJgj?iW z=PD`AYm~R@0aJBgFUO=rewRmf(79_XEAuxyQkLx8H_&5AYa2Md4#3iOTgw*KYpH8> zSx0*x+F9Xh^UE_Ov+6_-!*l;xWQJUVQ|A@GmLx|UvpqGOZ2777_{Z1jW(Tez z8M%89_<9h%K51E&-IS#eAUHMBr(H%Yt>rRuxhod)+u4l3QO5?hx(Z)>6M(IDDaox- zaskaxTji7v;48D|CsHUAWG2a7VQ`DFyoTb9cAq{C69?( zyN-kYrZz7&FGKgL|9!_)nSdw4$7!APdGm}7Jp5xNXOocu1t^y?p=L`OxX#Pu5R7P9rkE4%AGvHlV{QeZ+Ml+ z^lUzgd`gxHx9}xkAO|=3>0q3=2qQz9am;szT`Y@DkSBy5`4GDbfLs%;wbg7By-q_F zJoj62VMcd<@UNU+hJ;e?Ox@YJ$l-0i;?ZYH!>3xO&+@N?_B7+hP!&0WwWm5?S;quB>&2=v83-LMvj zT6*N}Jk~vya|YSW67_8@A_-uflEcT2exbS~jya5zEuxa+UikEf2c9;iHwbO85v`+q z6W$Ph6cIWu@PD%ad8&W0O$?F3iZzgmbgY#ta>!6|Th1!X{%*52L>%M&fXYjnS5WNv zzC`8yNl9>x_DQC+z&hmvWG|7v<(CF2NUw2-2o=88yEq`c8*0!yJ3R7l(54_>9u{?s zpX$NK()}8=B4NmZUAj&i`G6GVTX|Gr9Tna;W>zy3j*IgcO+&72g##aJR2SbWpE!2q z#EklGEJK|i(IkGtBAXVkDIyzuSwVjXj>>RT=s8{ber8K@p;b=Z>%*K8REdTQp?O4e zO-zWk_~5H9cHsmG?9tNs_6Iey$LzAHlI7-s;}Y|f^r){t)Big<;}Y)AovSxJnkED8 zYC5;im+PHtR7UNpv3;3B7tRox%|eKUv@bfQGrEAJd0`Gk!uuTX9t8>4!;HN{HefGz z-r#$QH&@C6^FS{Y-YT~JQa-;T`;WWs&Vjn68^w^*o@GYqAPuROv28#0x9tHkFk#v^ z{j*uh(oT#y0WsrfP~YO`?h1;2fm4jPhpT?SJ3D9bXl;EbVUE0oGo?h=%?IUdutx9? z^)dE>#Aw>RFN(tHgQ>gOaf9-fLiGGp?zb{Z$^s-}(CBC$E9bz=el03?sEuuLQrsW; zBm&Sr3$Sz;WSC2(V$}Sten0POU>Li4~POYp*ScC0NDSomIepYlo7j*IVx3ixzfP%3GswNZ6!A}zbchlnH3Rr

hNa7eg^-`$5kws5|Ujbq;lG>hwT#Iu;wJ*r)s_ug zu@Y`&^n;YT8(Uozjef4|4$kbn#l9Jrgj5vARL`RRwi7}E6pz<&G^8-`|%aFM98v$c{Z^5m8%|z7WZWK6S3Rx;7M5EiF;-FaA+A8BWQqg z^sCN}$JJ#X2)nA_pm{c}`M6|lz#>%SD#`5~BZ=ZNBiT5RIf%%tIC0MrqlhrJHAc2F z@+*IkGBpqu5qkD55m~!KE)ntS>c;){tqSCQ%(|FUqC4%4q1O?D12atB3OQv!1@xXm zkV7*BmE*?L*pNus6}I0Qe_m@LuV{JP)O-sNP}}s8bm~BW18fWWzHgs$0Wjgu=R&`fee*mz!S68sK| z3W&Aa-4df`Pc+9=XOwEs=nbSL5SyV6*LvlT6R(p6hx3$5Si0P@5MeXE{8?s?`YwL| za0p^DS77%%@|{GR()RHl>fg(5vr9KL?~_&=DT0rNjuFttUA3Mv47VO(0F&xxK2KK< z%bKSi7@4&5r2fN~4_KC2Z-2bz&YvbJ%>LaKN&|{}l)P3_!c3Gl04EW4&u5v*XrdI{ zj=@#>F?PvF5czAh*I(%AACiTxlU~kn6?9=T|g+N#yB4P<4k~{4IpuXkCg3&XH=r2*uwTd!6ChimX0u5 z()4y}t6H|ZM8gC&H39Q9t36iozx6jAiZ!}?Z9nyGhrW{rF$|shT>cBPe!tX+JVAR2 z6*fRyX0Fk>VoDDAyyM;0%fBQK_so6%lTdo(DxYseG>vH0U_4^4HL4*;}UdLpQt$)w`5WVD--R zl$P)V@Y!`_mf)!TEOTua26Hzw9Dh#dG-Z~)9{|ZbDAMQ|Y!joq z!(n?MG#7=JMa(siTTkDTxZ9^{oIvtsIi4lo7vZ*Og3qTH{%5UO+KU8gGNV|V$r1B} zqK2+s$cqW(RD1=X`Vzf}2W{I6DA2)PuyIV%WV6*I{=Lxot)p^)0j-C^TC z`E1Nw5h}Bk(l#U#P9`s@f~!=!UK8rjK-JMm9!?DjO5@TYfB8z!3+YL8B}i(zovYb$ zh!^qGLzzaAO@g+}DMSae1PLjmKCJ`9&3D&YorkvT%A`naE ze#69=6J5XrH}>$0eH96iVFUZ5Wnr8l$G0d&srxq@&16G=Rgw~m4Qvm6M}o3sl@4)L z_AbqIZ^5UIif*5Y6*i*P&a&EH>FGygvxTGo>w~tSr{;dc^K@*jGh5rlhq>Hsn7E>f ze#cH((r?#$2SrmAqk)6j7U3W4Y=zj1fR0B3VdKBAc>>C4&|JA9_dXde+c1_tTo4eg z66u*gIU6vsFxxTe>l6v#RjRGwyw`nYgg4Jq6c3r`)dvUJLQO?U_D$V!I9)ReX=26C zukC*2v~wWi)$RP9RfdvN85(fXC)`(SJ`OyT0+1hhgb-Rw`MA9tiSLGt>2AF8j3X#$ zR@S1~wwJj1A8-=S!-cn`tXN$RT+#W$8vE{t!*la~%1VP(`7qv;Dt#lfLzu8}9|_ z3Wr5?)6;6NYw~{t+eMA{aya)UyIr~=dw;<{q{}X$B7rZBL>->C`^N>;dABYP|JZwW zA9I!G^TS7|aW>n69wKol04p{TomSO?c2$BHsgds27M0XtDDq^SlhUT4bIR@Xczd8Gc~iAXP|(@TL$C(Bk%QelBC3!dJ+Jj3e*I z1BT?cFAEuW#9y!goxXd4!;wYCj;ckl&y}wWfaN2BMr@It&{)Rq&vg@cZH@UG&RKy6 z#1!&CNCrr9mCX+RyM?b0+26#1j@(Iu#(AOJMFAIxTauq!Wec9+9H=zt8+qFTc?TT@ zq|%?XZnmWc-T`jPX?IxAlXYn;g}c(VfSbU>1!?>ftmI!B%n`#?TaLcxUOO}3JC_>T z%T?YphOZF&N6QSCl#dfiELl460mRv@J7>SKT!E>Y3l=+rNq}?SnN;RSyEzA)#xwRb z>$Kwo7(l+-Ho0dxk-6biW3!kWbJY|(A7){Q2rpN(6oaQqn8t|CcNv3(>N)1p^9wSI zW6cGq!)%77-?#nw-xM6A*$3>m+mb69^uVa0)AfLj;8UcVyw6mqVze7R7{BT)#MP}D zF?FXFh|mkTK3&4n)HJ_2VyD!@6wt5T=KQJpv&QR6T)cGTv*Ig;WCHJu5y=nFoD5h1 zAbDH|=?hH2!;_{fmNSW1$w2R);g3&MOY8$ZRuh3!>HVQc4+T!P+30b8B;?--bkdGB zN5*j=DZ&J0vOP#o?OfMU;ob2hVAL+E%o&8(44r-btaacZQJB!6FmGFLF9!8Z-4q9- zT)es8L~|mBpS&>Q+s(ObW*iT4iq(`wY|4pccSZ=kI^*dS8YtICRpvWX$L=3*B+$Tmc#NZt2|b#p zdD^j5o+J~S?$#M^Oh3TPN17h_tSpixBS`bsPtTo|F*E9xz}VULa;Zre3Ar348tP{p zQ}-dzUNX$0(T=BL@3bxyY#5ZVAMq0NH6I`EVR#SOy9uLeSzahBj99TcKJ$EgLpC$| zxAKIQfl=UEc@Ml7q4%XFF5%QJBbdk{8B8zRevp`S!J21&)up!W7g$1i1aO>af_0GAcKCb6x4(dDsFM2Q*a%<#(WU+(%R&dp4Y_qGDSud5t>xvUwW;W>unBpdqB{-3>B z!6h9Y2BMwl4_PU4al)UcsZu6<_hEZt#PKwlCu?VJHS@{W7Xm`2Cn8ajCZvhyk!g)v z{4}u=he{Q@(IO8^bVsTaP;U~KUbuFV`UK65C`^2Esf^k&xLIGmoP?mTf>S!E(ltT>`xuhhyfaP$e#XD}Q1}>; zVO^R}{?2|4N~sZn?P1LLZU8_e<7uGcctHV#>`~q91-%GDDa9D+jqAZZ>*RD*KU%krINy}5hSBN}f2-^j(l^fMG=v=jWQ=?2>>B?i+`qYoa_|<`& znvKOOcN3M9@c}v!WQ$qClUBbR51m}7oqG1`I>rfwD!O|})eQ_;v|sVL#QIfDr8=)4 zr#n}F)&1q2LC>9;WWdUq+0;u!O!abod87D3Qv+jmR^NQ+`usL?BDfc>ezrNjHWVXX zs@Q@^UUJKIn)tVU92$ZQ4l7^*){rdK&hfLsb1{ZbV_grnIxEt0G~8~``{YXaYU1p z@nb8xGOQ=+na|uPv79@qjOq1s1-j)nPV>${2o6q*A|tu>$D!#Go8t|Q^uRC%%8x26 zLEX5mEm5p0{Zcr~Q#c9dg7t&V*49M1r~?uMRw3zNs!)F-$OwBFtgzvXIy`!>iQ$Zw zeHv2m__q!qoTKAjz+|OZi_X8-zq1#w2T0z6XKBw8uHFYV2N1Tcm;&RFkG+N$)pjv~ zU5rgFxa>o~l2!ixluje(_a)!9bgDSNx!WemO7E8=^jGUW8-<=6vs5Ms4(4<8*RBz` znTlJD+I$Bc)NRC{J9m*4Q@HI{fjAOkMHPCyh80Zf8Xh&2ywlzt&=U(At3pQ)rIINYM zWzJM7G?;?(PW_JsW$RF+!P~7gQ2J3jFCMOJ3+et!xrYF=d>6Pe92)lX%chM!@8voc zq%k4UJ$|VRFUmAKxMZ@$a~=Q$2=jQfe*PzOm!baI2~N)pu}sdO;Ogy^1F4 z36b*HZt83@$aMbD$VM%BlN$ry1(N(R;-}jD*BupqO?Pr7+iim_e%BPD3Hl662%(v@ z(C{9_aG7Q=0rIv|-{{Y(x!KiL6m&ex>`!r92|!EDhEmJlPy%Jr|BeP-Ym zDa>$6l#=Nviz=<5JxF_Kc&O=U4z$ogf+CGxIpoU`9WL>i?}=Zs$9StMSS2=_EikQ| z1H#7FH!mW#6QA`3Y$qER81w0gtD+Yybv3I-*BM0 z2oPKv@R}zdSKuKr%z#fc?>4A^NpM+Cz9*kUTU^>A zl29_<(ToVZa00Qi-VDP(hL3ZMtf$Qqu9+HYI2X#+iK=cJh32CnDvs^IRMnK+r;zFi z6|(2?Mt4(~eXEwsNWLQNz~X3!`TXVbvrkq*8L9GYOB3B(%^@gP*DET+GZA@6d4|Zc z^U@A}+m^DowITA?3BH*MQ?1}da)$cJwShuUV2vxf`#6m_wVCd2u=(`lR zruC?)8F9Rk$^wgJa=dYJv$3Z?E_uRAO|wHoQJNz>CI1JZPsOhL^7$i(N2@~HWY_ZZ zWOM&w-@Kh2l~S=889?XnRRGR%!JV-7mKJOV@63Oa1o;IUjL)=7=cLI#TBybk?G1^` z69%=DiAmwTavSBASY{Fsf}6Jyd4jQ*FOw+JlHFLIb@H?_v#ZQ^_>#85uGwQ!WB7m4C@DE4f4HC zEz2ebmK&cZ$IUE^BVDeA*)QCkfmH&2qB!3~y=q0j9bCDXeWW3sB1t?nm!^LBR^I`S z4Esktbw0PA_88?{|B~p*wyoRQ`yNPXrkv7F8v3{Y$2J_Sg%R9p4%bFCFY@h5 z7J-8-_$<1t0d1~4PP!-aU*-Zxt8MYPG3k#ATeLd5 zH!Ix3y;K#=OTh%Pa^f5qzmD|)o6E9k`g+@1NKO@flEiKu7>ET9#c~nJm!w_%&gOWV zKZCJ7;sl9b)u4L`Io_D9FQN3?WjBea&|1TI8Vqp}sqiQ+2?u3{ho+f`)+R{ej3 zl6IT$Uu0UfQ&0aRZ#tk{jj2@>TYq}w_Lgz})0r-G<=(!p*CA;- z#|(T&KQ1sNF$7{Kqhgc2T=xI~F|M@H&<$2+|2A}pRquaHn8$3-n5)y(TTNFjQgDh> zDEzb4ad^bc@JKS?j>bSmo1|7(Ib)N~ay#`w_u(Y%_y~Gu1@R(i@kCSP_dF!5)f<6h zIbjJC>Qfycycye(U%!4>zY8SaG=K_K&G9P9P0q7R%AU|0f+}CpDH>V7+IdO z`!xG#nj(N3cL(vC$G?_>e`G9RV%REy^@+~eEb_4~5h$}+(SK}05;TTgc@O-h001H63}qvEG!JnO2mBWpa|3{F{nqx?yZ4}gFeUdVo( zG*kvj(c*kfar3X~itV)1s@8zF&!CG{TLys`NwX@LuXDREP?I|oB{_jVEf){2SU^3; zDOq?Wi<-+i{J(xwuxQbUe*nB`ZyBr|{}j?C*QYHDMd5P*nem{=L(akbuSlLUsBO5reXf7^*tfp5dp0mV5a?=shW= zq}DR=dTpZ`8!~4B01N=sv+BR$>C~x`r>Emr~c_do$?^IpF&) z^YS5dLLjDXHmb=hhQI@QYu5DS9SHAWDDVtXB{(sqYRmfRqfMrEpt(5_~!tK6}mkIkJqlwe9%| zVHWbeaENn}3%y$No=Fp$_tY~e7xbAa8*KllgwJ^O)D+h8x|tKw_bG|7)AP@g|I<*6 z7jjvQ5UcM+w-|q|)ttrN`;X1$2}1Tw3KL?Bw{8cVUB0 z1Ndk2b}-ZBzPG<)tlsv7w#|8C@>~(6p*Tb0{W9|p17`O@*mq}i!<|#V=SgR$>z{%D zAhZ8Q*$(&Zt~)@>%jNKzUufYCvi;~m`sE5=yQATyKgeIEDvagfmknLHUXQoo5%bQD zr|-S&NbKt=_tQbt(rr+fKlzKa5}LII?qQy=|ILiPj`tICoode=$gko3@aCG<1}`mD zzs>mo6s!LZ8C$jhuRr?j50s3-06bp}ewtk(9Q~7S)|2?W=5*%oi&izc=`r1TgJNK! zrmos}dCdPP_udi4ut0h7@xG*~%^|z(x*{z#ZnEz5@?S}Z$IGcN7RQUAr?#$u)+E}VD77n4TFyXC3wuF z&$ByC!ae&Lc{dQ`DoKlN&zXf}?6ol$&9C+4La*&X-8@2eJ#}euy}gICD>RRXgJ+Td zpf&-^A!dP!jIkDFl4FY=-d2QV;x1HfaRr~w@t0i^UsQ?UrAgE`-!al60I^TqLg$47e3CI5ldQJCpi^cfLFnlOKu ze8_5T?aFOqsB|Fsf+PbnTjSyTr;OJBFjc`9rtG%4uioRb>q+&h`_E%8b`52!8sYs0 znBRAyY@49e06+&!9r1U5A2q2iA_;6yIsd(vS_*Ifw&~OS^Y0j%Ki=ylPC=LiP* z^V{{*{wlBXoYaW%{L|1&E5fm+{Z}oG zaF^Ubr?!^)yFi^a0n@cU)#qT#Ol8yH{nJ?;;@LqV+F=YMT#zr$E z^^q+v1)b1l$x*UZc4&Sv}rg006$v@~8~w zt~Op9-!`3azZ~ulJaRloG0>Wu|38|(Ix4E?|9hny=`IOrkX9O`yOG*Oq@_ES?vyS8 zN$EzqJEXfirCDNO;n~mkIlpu6|98&Jo%g)wRksryl|1~Q^~BniVcZvc%2xln)PC&c z)GXpUsS7|82x_sMbjSG6DFZ2jxUWwWvv54m4h)vet(YIQ+X60GL$h8lhoTDpT5r^E zir3$c&R_3!KeXLlFFGAV%0qiF0Jmq<=UG(<-O$GUqQz>&Zs>kd|GEkI+iyJBGzYF&2 z%n~c(%SPzV%{02WQnhjPBJx1xW+@*mGMu8mF%8)1{n*vf`Jqd9nO__Hl#|d@>!)VD zU@Y3f{R+DQsFPoucG*z^p68)Ec@`^@+0cPP2DYE#ZvsLu1miCQeVPbSlmIo}t`@LS zR>0gw=I-M9%}5jE%=VAKShbPi^R|pbjW*au&-xV5_AaKw!+WpvV3PA@Q%ujt*7P6D zCz=3UxOeuFEw|x$krw3rqZxyMruFLiqBFhSdxu6TU7m)vcB3pG4N}xf^i?=%Y9xUY zmC5)ukLAR&ID7uzWJW4Qa%D;X9%Gnm;b5Q)T$RvsCxaMO>yeJTHcb>UA+63W z9M9awfy1+`7ZncN!dRl*IR6g#yQ{2VC(hPm-Ae>MT;PM0!Apl-0*g@Hq#f+!u!~h3 zK)tw-ursJlk0nm5^YE7D`G+3ruR1f&lfJ(!3u)r7gSGxQkim*$L8Z-g$QUk)7&xAj zvh!h7?zPyI@3}j!P5hM(aH+Ro0y{b+(5rEGf0>W>>rCh^81fHIMgz1zUO8}ddWUA3 z>KktOYrVeI4xSQpT~$WsdKF!@3N19WbF5jpfg=fqKA!8!Qr2mw zx0}C~;gCz_V}lFO#y!VJ-J0!s>T4WR0&x4jE(nV~B^64v2hI%lWG{C51_7@|{rzDl zv+n`FgjPK6_56$5?cM?gH#$g=14_$Voxl)CJXof%?11TF^`rJOFBYIj)^QK$R|%GZ z4TyW0U!HRe*wFA>NiT}|Kd&6d69i0qoVQ%XZ=wTE)6(Mo*u@mGG}G?!e%rsLgz39* zUfHSngSPIR0L>4jY1RJQfBRbz@4uJ+5xTq1ZFj#*;^I?v3VrE~^M3;TzD~_;E4uo6 z=b)DToN@u^p6?QIKb^gxN1pL8b34kbjINEGa*Bn`VUzg1avy5q@!pm@yMku9qzVEQ zyYkH}zhZqy0M8z7@cl}1?HcC0kBV;0ybVJL4J@s#?BNbpv38Bwnrz6vM8RAd(g*b9 z-EeiD4tmf}S`tfI9mPPyM&ANFzwH1J1L%6Y0X1f~d5MeQ8NKwInD9=3qxIR$ILhfK zb~hq6VbG)71f6AiU})j))(WAO+3tuUBQXx}cJX<7$UP}Y@UEX4knVrpEXZBZ(z*9I!5r=buchhKb;ofPvk1SIuIcJM>& z7u3_m*61NAjXZX?89tXX>0}|gR>Nn`)eu1Tr&p%GC!|(6S;D-g9$oe{C3QGsim-z?LrFGkPRwq}U2puYbp)q$w1&z0lBp%UyBj>Ye=>)Q6I^p7iHUj%hY*se*p0YZtco>JM>`}^y-%whr7bi$$N{2V zcM*c>2EO~w;7Ax>!4JJ%9DT`kppdWA%j3Z>rybD-a*}?8?h~>JH}B`+RBh6#$S8lp?>>RvBXp|Q&bh?imK%etgh5h2abdJYnAVUcEb5W^IkJ^wD9y`xGz>ZDO^!$F zvD;CRg6q6W7QeC1^xGOJ5x_kBu71Ds&mQt_gl=L;(pNvH#Aa{_q6)}SuR0wr`au^a z+dX!E--SCo5LTCy8|Qr@|0rnT4OdZ-ZTKe1L!6(kw`fZy-Thitn>T!oS5!NGRIuGb zCaF;a65e|dH+}w{+$P<%egWrwnqCz%Z=-3=Z|&Iny9eNIe|l;GsC!3kcSl%@MmD6b zw+T99^mjq126!12oHBiR!4r0^ZNy147UG2z9K97wumPrVb+x{lS#IH-itT*sjo|ns z*^|IydRvr2rx8+|=b%SsmFngBFF<1FnUZJ>0o6BV`d_^RjCW17Upn8?`u}K8f?&TM?lwKA z(X^dL)3n1THy3~Y=xP?Yhwah(|F_=7;@*o?{*Oub;M0O4j=wZ=Rp7J2UIVnKTq>~EU~kA?TUjDt0`a2rt_h<f z_~R*!vuUWX5H*B zil9#w6JMddwz;Bj0J}7b&)M?fembp@`nTmjCHhg(zsw(s3{{e|5y68B>^cW1MzNH) zP3A<-9IN@v_bbZj7ZwPbsh8NXl(>@PgU*!!#UjrWHu}75i)w#6kulFNTy1ge?w3je&}<+bH2#EuD1yJ(Iz%X2$I(;FdKpH$UK?}AP+fH|<WdM#6`l zarnIW!sfcO3AAWh+;%MO??$OveyqQqZ)Z60Rj2Q3lc2K#sWSXdF;8QMn1~F`9^SbL z({~`s>?Cx<z0xbgKdm>A*Ouvr89ZCK zrLy(T`1Q@h{~V4LF?^(+EZfWSu7aZ!9JT&Ol9+irY4lYZje-tuk;d}xLvbz$1VT!R z=-SkIKL2>gh#CJ6G~T}9`bWJkhn4`w(kx*(_Ri8~vg*iB^|E^I>FT;wQSEIj$Mq?s z$gF^~IgLk^DNVZIJk{(vk!nq5)w#vKcs#nFyNWlRQ)>h0Zj2a>g=pQP{!isK8xQ-{ z$%80CZvJL*P9<(IF{wcV`fhqu_ZZ5f%uHdZCq)3uX$y4W`z~EKY<7G|O*kLAvjS~Q znfWXZzdKIDiqsu*n^+c4x$I%f!oAVZ`&eCf?8ONtVC=u@??$let4f*!ZPw^*9f3 zaQAggkUU;e@k#i5h+m(9-~NhW?!(Kt_|MKqwGC{*{#h_gFrK4p#_PpV_Lu}<^ZQ_I z6@}LILyi1;qf#Y{ehA?pE5%~w**B*OHvBTW#61`}o zYiIdZhVMc(Cg+g5?KtKR)Qp5%{db62q3#<|TOV9yU8T+C8{RdI$4WmnCBLt#a#P*M zgA;`tkQ}!pOOOjYHBmL{sRKFni(QG)Mr|FnSDb|bRt0;jZMABks{PJ@8bTxQO|*Dx z!!0yrFCP%xq~b_TDB|s?c8JpQfuA}Z2~ZG!#u~3F|$y^)lzC?xWp& zTAelz&(ucH3c{CzTg(7~!;A)hi?1z@_%3;E z--U88$TYrN=|5(;dka0!MJl;d8k!KtK`+%ylI^-E#3 z{O}vr&=dN<7u(yvU!GfhUJ9=~PCT+EDTz_H2GTgWI-FvY+k4e}lQNvX*&a4<-HN{0 zZu-7#h}%7PK&QC`)5ORf2AVVA;`{otKct!snqG@jD*n$^qppiC2xF_L(enq@+T$&B z*UQh0+%t%0ubgJaG0 zrvoIkE9mEGU7QFYx11u%wMMYpV(RoDIPx-hwHvM=R|DJX?yD$C}D7a;E>)yV(qb@%kU zZ+!=jV5$0T5d%u7*Xkb>zkQO_YQ&6A6T3P2VYz+tCZMPT5ccP>7oWHUBB5B6@CrAfn(;1T8M_??mjo1%SxwX zTtIW3+~;AAByk^10HHyH(T0HI6N&hgCu~seWdV3xLC*%=lXD;gTi)Jh&%VAa7p1it zBwDyh*~5C(_)PB3Y^9#!{K2ntTx&QIRsL6h$6hyW=a@sfN5>WqI=zaaaq9r?$D1Y` z(K@%QjOftqnc-CrqW4f$*eVS-eh8bt-?yU#JAgX)J_qK1SG5xPSbKkA7qe4Eo&Ckz z#0rW9K!R*R4>#AKV;-`a1Qn`mnV(=~(N@BI-+y$TsN52fm~pzMp?4|b=3G_~vUNU-K@v4diz^t8tD?#m(j}Az{Zgbv)4t}o`GGK|l$6fo-a?4Y+ zA9V^xQO_SYsUf2WmJ&-RB{3rH9UrXzIDfYQTNJ^(YVgLz{hj`miUPR39re%xTIyE2 zPB!IQjY~>hEyOegi2m-LgTfq<0XR(vP2C(t>e#{T`+Ga!+Vjka5UtQ%QRzAne z3`#`(ygg1+2bMkj@1(Y~tgngcA!61=uf7N`Uy(hFWvkw(JrlFqwi2$N>MA_t*wr+FyC`n4(>`+hZIzRB zk}K3z3-R!~qN)pKtn^zfvjQY-r=z-@y>)K9KYdIY6}ARo$&#hF>1X7&v9@v}uapXW z+iIG<%cA!W4C2+vy&QcCuyo+Kg`VHtjpgf6Xq7^WB=_suW9+#h zb4$&9>PGY3462w9glz~m#o-8B8C=8dos8}sX#fYFKI2Y?i{n23y0QZP$UyG!1Dl75 zHglBE{l|~2wD!Zn!lR_{gIrM>mfgYa-H1fNft7)MI82%`&^NuQYvb@Y_Zf0w4CMn$ z5Pd}NvvHXjoS!eCfu78Z`}6_N`Gh1z(_hcMy#LBVXoVoJ%&xmf3OxvY|DQiELO39Fxungb{r-`8AEJ} zA(4gmZ+g0_;|poMvtL?(xL2eh*BAqo_RmO_Gc?Wh(V%|bWb@It*rE9GL%NZ%V z0|k~1WTkXqrDei+h(C*P`{XtVVZLZmv(V_M%dJ6ZK`$2w6#WRyH5bGDWYos3ebVMO zPQhN8ZCsI^K5P3UB@^|rwE@F=hHJ11-ENCyY>3{(jB@GzG;vZkznRfL#59@;;je=$ zCX$8!Q;`;9Kg#|C9+*7f_<9m_+!ViZelA*10V)u< zC1B72HAIIQ{tK%;zuH7xvk6_LiZMG^ z8B;z4w*k9jYZU+wQJ8mD(#!3}=XFiGs1^R)ACUlp8ll(mRU<)?U?=b~a?91~Mm}&o zfhL9+JutToo>cV)Abyz!HwTT6BY%+QeGyU(d2-ic={&!tUAnzQe4C5;S8edE2Og15hiOfLs+Jc%*>mm|V@nYqrxhx8MNRin!>`NP7?HkR5o`4c>AL8- zqeVk}^7`ylG82*gFV0Sd^_9;6shb;_Ln#;Mx6DP%vgSr=Gir*`pO46XHeUzFE^<=a z|FtB}zQL;GiHsMDN`7OXfjUHk@ru@L`LFiC?uVV|4l{^7b2Yt7zrZBg)`)R~{RpXO z<1a`j84(nG??0HZdz@$MQc>O0I7jncQb0KlG^hUirkb&d`q{RkRoBd}!`@lOJu+sd zItpGHw|*LasD7BgJ9huBkQm64?PJH(Fw!wY^l!(WvO(pws75yu!x-0yvLeR2e^zd^ zu)YGiz#YbLfY3)bh6+Ldyh;G#4b4Aup`WLRkA6R0t?h7-^XXHL7qf>W zlW*Ear}yb^We#-m#j%ChH}H-Q2D(e*0js)Y@XQU*M*8#nH>*<|=I^zJ_3H?iMN{Fb zW#7*?|0-QnHUGeKco!t^*&2FDOp1_v3M?r7&43@^ zuExHe9HOAVz812bT=^a_1lR7^lHf`TLZ$8l>=wiS^Yu9b*)4+Z=LkJ!2LhH7O3B82Z)0?TfY2-1kWc|f zXB|&_r($VaeA-~F3bWRT=C`JKhH=58yk;Uuh5{Y4t}9qi8>*8G=Wj}xpfChgUr=H4yT|_df{1-Y@c4W!Rm4U-R_m=8m zUyHX~i0En9YLGKhj(EiGyKSGHFPT35cx+Sq5Vl1@i}V9sI5{}%3a?;b7kCUb#HeCqrP^M-(P>xH5eW76JN1H*Qap5_^Ij~X%bk}e~Ph$ zmMQXxz5+twwP=iv;koxDSrIQqbmJVeHE5r6aVx0#N-Z);MHIe^zY(g!y!liC z=jtOgkw8Ol(6fnWQkOS%$A>|hXopI?gSsi+bu3IjLZ`-6+f|WJxd!ky8K6Fuf=7B3 zpV07O?yCwVSoT!^rv)e*==KW{yq(hX%lJ`=bbm5JdliLP$-Xf9i2`Kt^Nbj&$JuV; z{&WBdB@QViHJG%$=*PkH;UAN>OG^aJy8b+fCn11 z^z-n~M742x_2ew3p?0m1LOW04I-&-qA_pBt_v5qW(B1>oIo|Jkp9vupn*aJMI5Dp- z(s|REEk6-c^)tIUbOtE9sVZeZRn4^Y%jmW|-PBk{h;dRM5v_RhrMV+`G6_l z{Qb*!zw@^GDY=~KA0%;OWp2~Ff5jvPY=ahDR1vj>U3`TEDl_T2{7Hkf?(XFq++owT&ZJh902$BgoENk&vSbv zNZLcp@U-&utkj3O9lkbHeACWae2u|4J%)i&IVcgozuV|>(>iRvKo<;+z3YwaZ%h-( z-9wfN8v%3K`44a`N=hP3u~o2fGEft*W6t?}MZXY#&z-Ij{^Ar#XivSQ>AJgIvZ%{R zo$19Qko(bVf|p_3OSO}s+1TRxg~o5|eVjJ*>!tM;o?L~DoBtUk!(qzyi(U)QHj&(_ zgYj7`LpjyQGc#~fejV>rEOA{GtN`fltt2{bIoUap^uMWv_HbWPB|Qj zW1~(nO0<@Ci+U#Q(lg0&n8uYK^Pgd#;V1c9@W?I+p({AYDUe~M+E;uxbxaeXH7j}v zFKZ)RV`2sHGJCaf#$H4T_amKH0k3}@om`ggP zJS&3D!JeU);h9(!T6jg$?_7UTv;#=xMvjYG5rlf&yiLMlut!0ftqbE&ReO0vsV{1k z79Uh%8Z^?DTjZi?zu-{-_l-0P9893|W_VIwMJH2!G>`HzfwPi89ZN5x4^r*N++}}{ zRz#H5!u*vnssji}$M3&j3jjb$)|cJGoLpxc17uI~c6N0?i*P1p_KuUVe zGuiK~dDUD4>Rr59{4CW@4Q&Ow8XxmxsH)|Q-;4jIXn>oY3O+@4YPubbMlx|aOzpCn zrzmrlITmZ;;(BXs8^T3Mm9+{5(=vW(cw<85SQgq=e!8fe;Q+v&l<;$^1@KOJ+yZE~ zt_uwS6uIAz1<^aRI9xOKG(3*~ggdpvxN|epZ^kvPrYROX+gm@NzWrX2^DR}d`m1$` zzm>|n|KV<&`CO--+M{`3mMProm#R?n7Otf?%V`&>a~9PY=T z@(DI*Qu?W3^QO|Oy{DoOqr{srJ%!=K6gZKIK9xc=fl+3EqN;xN_-GBP`ALeU3;=Oh zsot;8>vec|${DzbPeSX(9srJRXDc3@{#+t(FC!N^amIiC*>h0I`p3yLk4ES-#bT~~ zy9v-M$z-4%V<7Nl+j=IGsH@hG-$XVk(2do`k4uy4&ETUmV_TuOf#dVfy>H$qNjw&3 zdtu7*N{p6ri%D$zsv@SH38f{J8iNxr=(0n`b3`eA8s1SDIG+SW<-6XU9K>o&q-TBO zS*t~JQ`_DpyUCnq7Z`xftRsvv{6nSn%N1yY2ZG7i)J*%;w>jL#JYF&I0KDc!e(LIQNDA{`)z3kp4}*hhcm2C6@Sfwqa1*S69d9B4Gs<{ zqxGyqLp;Z-!adw0CIGw#&p+WRATvI48g zm)wtju#3L^1zkH_1fS5+tzqmC!Zz_@2jW2bN$v2!r&#$Pa4p!7PtDrx%%ms`tJzsZ z)cAwm8lwKb!&R2|vN?$nr%>3r z;DoJff)x(&`*`)mv~EBBsh2&ae7T2kbKQ|1%$ERDa9D zElcp0fSque5_)26A9WMk7?B;t^D{51Xe&+&1bVB84A%ntBW!VYfE{gG{gp@6f0kdYBP4L`BxQCRk^c=l;^a)?V9UjX%1YwZ$EFNgA%(qgS_6p>>_5c6^T$RR+d; zOk&aRiS{G@Ie&tEJcj=qK*ufOt~~|LF^=E{?XUdg8ls3eV(ZcP)bwR0VeA(h8{+9Z zyHxq!4=BWE@>$)WW5&cH^dD`gO=lG`@?>S!jQVW{TtmFj!6Ju=s=xhQ`}=<_?K?t= zskKIt&Tx-CvAR3g(s&QQ#76-;ua{{{hSFABh=}P10u#U{fihidt>iL%4)dkOAs2Rj zZye>09U^aex8P%T9eCMU8J99zYtS71(gn0Hf0v16*?o5OUOgbQ`p8kv0G^A`PRMX- zk>S^Ju}`&<8?_mnHi@fv#HOz5J*-D^uDoOaQ)2!_nK9%WlWt~*VH=reKYdOJ2P;Z_ z^w(Oxw^HX6%Pox}?B~VB^)E&MNwy?a+0&PmMNU5s9(X}H$^K)Dat6<(C} zwst_Md@#^9Wg&DPXpm6U`nQp80MYh)QLiY!PjXW2nvP$|#o%_7^4O$=Dz3277%;!J z!ZuQo}o2KfZ4CI^hO0{5bRt0JOf=@e3XP ze4wiEW@{FT#Fn z{2NY0B}z7fv83o7N_@s0QO$K;&5|R-0k^^UjXjnbCUFl~_@N$Gz~xU%wB6e7pN9{O zJyVF zsyA&n|IOvCP%gr{E^e-r^ZtxR6fm~Jmn}g$S~TF`d^(w#_}p)ExS)=5{Yo3NlY>6|mwXZa!V5h3J~On;DrEI73PPEyF3)#S>K zeimk;uvu1#+$BI#;TR1U+F9RSjuZ*59$`k_WRQ8T=`ev(O)*{-L9cRpubm~H$>Y?`mK0eVN3X@cA;Oig7SB6xI)Cz2b-yaaxqG6-yj=IiT-&uEg{t(sI zCkZYGCcm6uc-YOK@I-%eebD1QCA=4$j)upE%bO|GfBzY{E(c^hmr12^Z;TtlzbhmC zX`~PkD2cJyG8Woz0a}M~>obdMu4}zRR>=*UcyReyv~3j6-tOnRjeX#25jX~x8J$86 z{A+|xiS#n2_ZrnWm;fW3(-T7p=GSY*gQ38o#ZYhBS zf7wE)3T9O%dz}(ODc>Xt!^((K=<~H1etO`~pH-VdC8_d&87IaAeOMyNm%gCs0NH81 zW?F-!ugGFW=IK$P>?u1;i)gg^CIqIS>0o82JoS(3l_nf_@Li?F&`SB?w3;2M{F!Gv z3_5oBvVsbLJMIF%WiY>d{U2w)x8?!Yj(u1ZDu&D_DI1!muS)F$FG(b?Yjlc zD?(x(X?ru6qRCTPK@qoc`Lr1F1RCl{$VKSPXiJh_$F$5k5>dAsS@IVh_c(z+He6cT z*6-t$IMdoVX8#!9J&m9yu4Wv1xx2eN_&<$LpqYe}u8&;0uOSE^5~rNT;1FqVtQp{_ zWh@cden@O{k@<#gWXyjjQP#$u%g*p!vF@aB*}LK-Q@4wfn?1`^!6IY<)xD9n%5VFf z-3C8o3t1KcCV~l+&NtiiroffICJ|dzbdHNKZwUXQe${Z$}8N+P1 z+S2Frud3M3%)31)drBp{8KS^@BDURYy!U(p%YkPG&nV4QlRcSkYF4^7Xuf~9-$)k8 zv+sqsk(9n#$hMJzsJ`!=y4bYq$c1>2G}Jq+L?&bKTvYkmsI0vUR6sxfu_yHQ);{^_ zWJ?fdyLM*2+9h}k3J*r#!tWZMA*mwN;9`0kJBQ4nlE5CA815YYHHl>Cr@kY3di!dR z4JgOCu+nf&u*BYqC6R4~zUna-`NKco)*MqZ!Q<###TqLzx>vr!>b{HY{toK}{m%70 zfxd6c^#!551pPx?e6-CmiPcIP63?z-k^*lkj{nGpPE70=vZ%*$1dXmr;i?VuNBSgE zxDwG2@sDbhg)4MY@ioJ^I^;0;BPTJhPmYKgw7YPS__;$KG?bxVgQ~Dfj|^EsvQqT+ z%!o&oqbfNl0_e6Nz$QWn@xxexdl;5VcA za?j>#`yWtA9T0rJJ3pJ6u`lil-sn2@RN7U3Nq3RV@(o4|8dG$Hx==8*3jWx`Pnj(F zM+PF=G&liC?naz+1mS3RzB|r88;T+AKC5o+m2>Wl^?)D2cFET(n%Z_Qo!xXlDJlzU$C$V9b z;`&P-mT>rAmKE%Og;7mYe6PT^9_QWiWfTIE0gV2%N^@PEZt3>kv1d*F1NsgPWI_M{ z*_wB#Ou4_hf7GGPB98_p-jkA3A*fuiDIt1JS6NY?QDL6RD2I%+^fV^emSeoWSb<=b6Ob-!y8BqZpXnjs-$pDuR;LAaN3`c~v>58|{C zDPr@FLVyYnIvY6l;0tb+^F^=-qh?S9QxP~+Y>RGKcXs^N zXCw(}q8(L35Vc^0i@UJBhdCR{C|Ns3(gffHX-W8yybD+Dq%RK=D-3#zA)pwk;3n-q zx%Y(^@H>QZIP-;nOV@Rdsafv*!0CK7Vic2kBMN&l%Es$g%VG{HaAbk+ zb$T_H+FH6?X*PBjV}gVAP^fgt*%J79FD$#0QmpdKcI>5YefG#u}YNdyNK) z-KaVm4zlnLw?J^q?}%u`G9Lf{^+p}g=7YUfLz;q7)}ofEvx(5>t7BFSO(Cbp;*NtzShK15+ zn^zR|7>bsBmHvY9kytLYpw>srj)hc-azClF!iUV`ZJN;NWb;*f%Nw^kRpDMI3qTSjD=Z_ccS@|8-OX$4{*q*6=9 zKvwi#gp}Cdk;1(5iZGr~obAoO2(0AnY*W1_#x(m#T2BxW?}ZYeMSZ9U>~6xsci%~i zPX6~kUNesFq7akQ?pu=q^;Pl*q>yA@DAEt1e6%&42unmsR3b6{2Ihd{cXvexI>Sxk ztX3b1LTG7N{|zFS!6Ip`S&9b52?mt^rt3n}pIv}tLVihpiQc#nV zDiT=BKzmsfklYk;^?x^{aF3$UX+?-3ad_H*B6=Q|m`ejyP|RR8C5|+440|rAy$_Z@ zC>|r5Vd%?F0B?BpOdQHFcOG>L;yGAuTqs)NX9rpF3r#XxNlRFLq1gl}sSj2iheh&Nbm;ENc3d$GoPA-1OED+jbPdTS`xO}dca<% zH+?Gm4EwY-)4fAYt65s3p-2ZthU8%oRdY*C<6lJn7?f=YZVv29#^A5{{6MA>+dGER zs{Hvo>UX}Z9fL5D&YMU%;5Si3X0x2oG|3&5uaWd|tSwobLscjNj9rr>JZ{Rk@yql=HZ8=49?)ha?=~vXj-{Q6fax zTE}>r6K!5a9MZ2(W4UWT)_&ec3W72U?tD>EzPBN{YT(W=m&#h1?^fJ#xV5IF-p_3# zJah4hifz0h8B##tWrwRLE#O>Rw-yw^k}RIIhM=pZ|C>?lNOM%H?c=r;neBq{;l)c} zf}h2bO!|EInuo48ivHh{I~yis=!7?cNmuZrx?<4}5n_%KkRr|(7~W%{R)RXde6FZ0 ze8)ILQ0N8Tr_MzJ-yM&24Lot8u06^8X=+!n=r5^>jj#fRNKAcIZ}vgTd?pW1=}PkS{YwrB!Y z%q8##iZu)81Bx50wY?8&WOIyh4+5ep!UVZ)Lw2agl(?yl=3Sa9w+7a*E4$ zZGSje2226b-TOqZ#!wfTh`IH41-H)9P$^^gPD%D?v=bA-<_U#2*JO}hEN=ceU!tC# z)jK&ka>DcXWf#R8KThTx@dME~sDxvw>5q-IF1vpRj?8m)k!qFRrpUJ`vPW8vfX)?7 zDg#rx{L(J5$qWiJ;+vt}SdcDD3S*OfD({#C810j`k$aUbKr_QKY(@1Hm^@m43*v`M>*(AhI=6&(aJh zBr4|$4B*F<-w`&9(!)Zc{%fhzu@b%^np7)6!!Bgnzaut?3RESIJMpk%-2jckHs9NoXZ&w(qPxow?-Vh=QhxPFnsW%f$Fc3G3OO?i1(S`d?nm;qnbeBC0+EVIsj_;{07Ml&3 zd=u@+ah7$Aq~9?A5wOZ5-y8`XdUY3g^4`%U_ZgIQOjyK5p^1!P3unkqnk~tBv!H=k z)=cR`hg@ph;RM`&V)~I+B``foZ7ZxAaa8M}UYHM>P;r7pNB%n3L7z+Ema~hs0^Pr3 zCSStLt7}5dt+vz;bAZ21FK8Lw1(8_k__8^v6>|h`{&-Vz{FB}42ti*?Zr1bffEK|f zk`21LipOVU#`-8E`{Y8)K%-+I5fyT;OHX%spt)w(^H(C&_)MGGjvPleQv}-}e|lZH zCV-`O1=_8?mEHS5y6za>9()&;tC~xEx!!6dm*B*=e|X3Q37U2Xs-3suqE?>L=MePI zo~pmz7WWnZ5;T_F^pB-oHl2z0r$%XdbvhX})ImJ2p;tGCF19R7J4mdPYiM*a%&(U@ zDFCr0l~CIBQZx`}zdKsy@@0J9M7_jn~@K zhb}BkIN1B#_ZF)L$DGgC);WwmNOqYQ_bs|uSPxh7RtcQWWCVua`lujDAJZPjtEl$MTQfW*&|U)BiDaLAw(K+#P~DaMjPl|-&Q9Xb@X&wfqEw-WnkWE zw{8Q*D7)m_|Gnl5>F0SDC<9wXUV9qm_! zj(;S~NACW1=%9`yP=O$ofcGq2UdO?VNk1})9VMIHXBNR*!_Ym8h-%hv)aj0wyd03M zSFTKs@7=IG#T*5r-DLincSKa+8O~(XK~)5wk7RcZvsZ0^6CU|)UgV!NA9Q}&N4I6Q z=PsBKiZC449?c!+(Jff`YmP^A{|@6d<25(&8YP|g_0U@Z3q2C^U;|c+J=N1AW~IQ7XYwA} zRomH_0lg9GV%W;Uq4Fhuk?*diI_8`vv63>bA7a;t*XvwauX_=uYo~Z*>DfMS10!Aq z2Qs&kI|J@hKsa7M5l6GS(+C!L*roBgDapkPS%1-Df;#SxJoybywlX7ha1)6$(KO#^ zZ*uaWmN@!M8APXa{X{rfl=-Ll+vjl&A4)&n&F7)Dz8s+N;+gqVTCM)w&Rt%`B!2#$1s9^Y)PTv(b2G4;K?&|qKw)%kdA)ky8$4; zc{lg5-1)oHY&X-siTJM~KXi^ClAOV%)}Swm-HEh;D7q|!9{&_~dXUC=1&=Wsu@VEI z`#YMw2DM}jB3CQ)%)(Y2rI;Wps#@hpoaVVRMb=!n3DdqS$BQV-Uw*z zgt}`4M`7|kZk8P4={=$s>GkVm&3Gh9mQfMcX1e7$Lk-(=U*0Z{J-q)Z#_Nou{I3W( z-Io7}i>r&s4Q3Tm+Q*bke9kwRHtDYm7JE-@e$?SvkyB6^fdc<(%aJV?`-Ty1o&Fz9 z-xwZQ*L2;POst8WOl;e>?R0ERGO?YBZQHhOJDG4|+x+@|pX)pQtNTayIlK3+sTee)`qKZ*)S!pUC? zNri}`d|iSK*WkY)$i{z?;k{Q%Kb-lAf=@)^NHC#g*3AL{w<5julQ*dd(M&V6i_DUj z4=?B6l1;(>Ot=2XaSmma#OIoWV5IAOn=dH9zK<>~P?@DvH1AS=deL<^XyWJ$2VrX) zgvun++C~COOM`uFb>BxVwOH%`P#66E4F$e0+P&zCdkDsfpD^S;zaLnBvl#{k<;nOX zSySg2(#BUg;bo3Gblt}Fg+@oqg9&AEXmLaQ=%P7Q9LeJdn9M^&$h4C(eZGt&6Ixyg zxm!W26P(o;P8INE?`^8&iH7ld(+V8GSFC(n~+;x5XkeRA#1#de*sKHLu)GW!_z=l%p; zC|T+xcVAovUqeDdLfUC;=inGhv&v$3^jPSd;E}h%`OS=*-E~PM`@XCunN6R8A~{V> z7~&Yh=Iq^({{SgI+($m~Dpx?=YXbnV3@z_9s%uF%klwQRN51EU@*;dB)jV*PS<-Gl z+T8`iSo6?h7h_DgIEJW~;NCVG)V}1IO&0$6MszK9zwcsjmZg{bziSKjuq$`%e5KHG zGb9Q~qu(i6w<|Wkz_M$EYPZ$e;<=J{TrzVKq6wI*bs0;6dW2yPE!I&E`faDZp%r*X zc#IR0xfXoQS5A~S9#amUNQdOr0yeNegSKV&&FVa^KS?#yt*+SVdIEsu_*UV$tKkM~ zF;j)4j8tqUP(V=Plv-Yl-CtFm^UN+esjI18=9Vao`M(?E=0c;wW4f-;*X!uQMMK+Z zdw9!%%;NI4oPTaRn%0jKV8>62t>EZ)91)JNFhB@sTSZZ)iM5hZvsP*QxzYybUb@}Th4H7;fzm?${-0=i)=UbTv2otEq;j<2 z#Ra7B6U935btA&&buM$vONiK0mh>#KOu2{h7bkxb7?zpo2U59GgvJMqCmYU+JI21u zR#7tvEp|8Rwh`+E;GI55-?sA^(Xl;?S&^v%AGxdlcOQE1?_LxNA9j;9Kqx4va13@V zczm8F{RTt%F=a9fh}=5X@aPR3&2GeeSFsD>eE+?RlYG+vW1**i!zdi^kdSB|MsD_% zRHp&tqCoz5+8H}?LdedEpV+s_Lc1y5ex|mvpk7`VFZ{{uzqo7JjsM!KRhst;HTz55 zPwA=;*Eh9V&~?xSo7yr5QQ*G*u)qghc;fI^z(UC&O{&Wb@D+s`{jMgbHEwOC69WTA zEOJ?br8*VdLhU7Bd85tHJ^dA^<~5O6$$*=B#8}^=1{-e5$fV)dQ)c5(XTgx=zu8`) zL&n9rS)>M3!|C}=+x zNnQl6DHLOK>;y0?lhWcP2EflL99KF+U{t^DbFz?j7tO2w=|Hn-{kyD?`;u<@Tz}!F z^z!08Fgq7-u(Gitekc$Ae=7%-{v5Ei>8RXs+sFkmo7JM_GCv}H~4@Vkw4SHUP(6Bbs~J-!Tt)WDd>8i-Nl*pmOqKY6A6X8c2KPbFlk3&!d(8Iu zf3kmMRl5s8D`?MCbYmZ)heEdjcMgXSB8HY~y z<{?67`^y;SdL3%XitX&*ep7Dl%hJ1Kc?p@$8*$KVVW1|qX-TEIVj>!pdG)?mY=u|dg!2kMjZepe^IbANR< zR5)o~b<(L!C5v)07e&d}_-m`rIafgM=MIAibGg*O)0R~-H*@{{R~mEC;Z!;b4vsKE zAPo{B|EKLcYdiax;(AMcw7gK@^k&bXBuc-vvz1~~L4b>}s3&p-F4b*s(1>IbPO9jK z71@UjVQ2OJY_I<>9L}thTVruBt{85(>s0yK%G<10V~8X@7r z`G^0yEF3MDvCiatVGi3857(Hl)Ga?UEA& zGbky};JWBpw8G@A$k-}{PgBTA`GEDc!SEzqNbifuyiAWhZk~`A&KpYYA3Kt`b>(mKQ&NGH98s94k3oG2zWjhuXOEZ&Q7JdzAElCR{Ztc} zQ>T1D)>-f}OYQeUxFBl}laT3W`L6iCP30Wa2=r&Tkw3(I6bi4@c|LUuJvjUmx$DLby|w{;POj>6}f_dlui}RM432CBcr~a_T;2c#;CMZuT_b^tz5cw?|!j2 zNXkGPhf~A1UQ`)vgf36O>NMp?zB$KyI;Ou2_+7h9ow-~zUoHDf{O<2I^zW)mgKKFq z+1pu}X&z$4Z`5mR0knQ<(r#|6omwigaS12StLHAm3Fl>HW9M z4OwDH{yf5s85~U?HEAKM9eIr>3__ORbg_4O`~^x(W{yl#dLDBY|AkiOHO0qM8T;8U z5y}j#gXH0LzZHD!k=AP)ZFabT;|l9DA=&NzrR${GhI>2GN*uGdd@sgwPbP_4YUQwK zV&&EMfv%!_#LX&v2t901`OMBb^V?FT6?cppS~vw`jlW)}TVQyN3}#IPrZUYuobW4y zi1craSq+{a#(6Moj1bu8c|lTtiLOF7G9$ENwrk5tw09^gmU+Ghg_oXz16w+unaoz$ zCVp?MHU^dV%#()HnGXr*Ctf?D8`$OtOI5#93(niB4u9G61L>BcNN2VPa3um2u2Ye-mM>pJ^&S@Ty?-K~QMhUPZWZ>d)|p@_)Z zAiT^#BSROwFwTe4!lHVX*Jq$S+8V5&{cq0mzLf!PA*8$^t;#N18s zW1TVt=wC9vlviB}no%wQ0kGzd6w0M?_0NYCB_~^L+O@7%cn=(WxfL6s{s~Wf+r|~$ zzY(oF!e5$X zjVL7GHMOH%$Rv0J{Q*ajZWfB?PqBahX1VXB6u8lU+qbLH4P={oyw=cx(MG#m@xD(T zzBCj=KEExn@!Y=EmCRt|Qv4V5X&O*;v(5~{{I*fQK?Z)COl@bRi}D(a&HRp|r^H9ieX@AZ-wB@QS2)|- zyKYk3ale%QIz;eZIT=V`h%l+eF_+E6Z?|2XND~>-fz2V!2c-&Iao|3=NrgRTJ_Kv! za5NaF4e&ItP%3e*!0`6)7F{{?7m*nGw1?Hpz{$&fY7glCg24ZHJ_37TUTvg;Yqt3t zVfb~Da0I-^zPQ1tb1k8*C7DfS?`^8~gM{4r8Av4!bS?u57y66`rb11}O=T!oPe$@& z4x7jzqaYBSZekk3Ud|`T^Y!qoQNL}N#W$hV8}fly^2U*c&wLs)uV51KyIyWx-3=*H zCv+T_;@WQRLg!u!{^VRl$xTNA{(aj$VjQn0k%-)`^}$rG!d|=FfqKowT>rLViP@w+YHodkRtZUrYEQKx3H|{s#b;!sVNDA_Z*b*tj*-h| z+~bfEo2y<`fBkY$3C(T}t+7K6FqZd56{#Jdj#V(n`7|>YOx#cPS5{vBFuH;E+IaCuqG3Jpi;l7%6f!>P(XR?JwTg_ zxm@O3!V1|+ukIQ6fXC6@6iNBgfc@GNtwSPFU2a$CuWDe=c#kD z{)%#A%&vf2e>KJ3r#2lElPh@%1py|*=|wA?L3oxXR7hUn8=LifY`##(=9X*k3TW+0 zEL13f1mC8G6GLVW4ft2XBIEnCuhzCPa9;HJN=tu6C)AU4^r zA9dJMz*f_hXy(Mzz{nn_6hkq^3D#>lAjnb&z9iMY>m~k2KXMkZW=yfg9aumKkn-j+D{ZtGWN*p>wTYx`i)_pY){I{_RUh#d{*C{M4i& zfj}s{a>&plx7G4h>&B(53HUQ&vrtO}VHG7qb9_-!K&;qdY$g5oY5`+9wfndzg=VD& zSfP27KNOBGtuPZABh%{q))yC8@{_`Am=8e{0I$s%%xM$^m(hXtkG_HS2VOIkk^V0h zRSVu=yeGYlC43ytQM}XH-jigs5YskkIBfsEhr^lPj$msZ9wnng- zY7ua#w1G%*l~^v?&G^aQgWMWTV+snwE9_@wv7Ua-Y_7S;+C)rR_nE)(`71?a1Vsc0 z+E}E{mad`S=>3v9r=SrKv>46PV`9Scr`XOoX0o3+!~(ei0KK_9VtY^Y*#Z)`5r*Fx zZh1V(rZxI)&JW{s-~gNxgVm|{8scztZUUuA7<8oyNQ}SzW&ZB>^kwiaO}jxOaNeY~ zGNsy(5%%N!;Y_*a@qU6@^5#EF$D|YC**vx1%?uAJ>LH+SK zy$@6o5TNt^ULaN-20U5U0*}(_g{b|BLfBn~IxH%dRBUm5zjh}Q`qkT$)vs4DW>T)+ zq`X9(G@eX_j;=<|OUuei3nH@28U1KwT%;XAuhS1Gq$>e8uf5@mb=OPe_5w*!QO&A! zh7=kda_Vx`llVBHKA}&up4r&g#6?vZ7Z(rh*M#Gvrz?T>ubsJ<2#xvq`J`yfgzM|s z+F3<_pt`u3wm9e_Z$}7zAQgKeA`&vp%M(wSGa8#79hH5fn;fmzq-A2*&EbvqxxIhM;z7FH_8cVMGPitj4=j(t zcQLd&Voi5~uId!5IdLekc>XpNFs@o#*@K$?M=6B$H=#S%tmu z=KJK%DK!3~HvYFwuV$CYE~-E+dHT0%jB#i_VVYE|#th3J(*>528P=l9@v2E0eL`ru!4~wGz&4-z=d!2_SN(P`xl=(H7+6@FtxBak za)i_FN9hCUgTR1qdM(Ap#hdNFuU?~gDCDy@pSJ%!50Vz`1_j=qKi)i8Zsf`@6hEA; zcs5BNz#=0XR_o9upRc!EZMHjKO}5E=UGm&M!^~SVo)#&JKI2xUFV=inZF1MBmVaNL z!6zjr%i-}n82y*9-h2_^j!f|Yu{^*Xz!N|E=gbJ_CpH9vR-@NYDaW>za*6&Fwc11q zJ?e?e{oWqx)s~Ob#p#8}n?g3fd)yaXfHq3&uYcDV_Nm!D2Q+HbxM-PI;U-Og z2?Qd$9WJKV7Br#>_}_N6P?3NC`9bbKB;6|>%8i$<0DiX;cZ~rYDv%$0pw_caSLspY zEcdk7Asq!VaDEMG3fYQ^m^C@zG#uqY*4Tdjyn=s-=|Ha^d?@7@@=ODe(L{bE|s}W%U89}zVK!sLG@EHXza^Rs`w!a#mv&+a{lf*4V0nR?d&H+ zp3>JSd8EmC_&m;Hui81_rr@yO)a$nTnD<>S=0ThoT+?d}z6W;&b$he*hG z@@V+MUGw-_sMFDG4+#m`i&eLtreZ$L@a#Dht@kz<&$vGl@J0_hz)v&r0?=~ye><&* z%H`}Xsnuy$-V&a8T)a9YiSq1qHLCS`x=c>mo6cIeN|*z-E;0i~5bbF-s^M+Od|WQL zuidwi^Dj64KqFbNR4?&db~R8J}-7Lez6ND z?QI#cV&UPW8lG34vvHriRGF!Vf~BU zasAf&&mW|}4#U2gR`5b7&i>b=1F5!K!OVBL6I|()!j^oe!KvBu6?bOzNWPI4cqi^| zpgQ?7wS%g407bYhoOxiAjOh@AsdcBlT11@8GuZAn!1_!`jhu<;wSG@D>$rDx^tN(t ziMGTrQ4d6TyWAbBXoUX;kVd27wi!(!bU70xoAv{I(PynYpKRED^%W!(zq`MlLsTm} zDJxucZd$GGFj)0y2X3GNa;=iWjeTETj(2?EFz9ml?4>-o7xy`;gF=EDEtdZ|4+iNWDBQtWWm!H%*ZzAidVqKGE^xM=w>pVIC$n3Jwhd%>n9DpRjg&e_`JcC|aZ zvM)AWFkxo5*6z_-cuk?#&*5}<{6|vqB5h`7R#alzXuTbtd^Q{VLlO)g@P}HbTy8zN zQP+O0u|>14UoK;rj3X(vmkEcCm9rEEVb9Kev3Tn2gV#l}4b}n)C_E7GhVXp6x0Pi+ zrP+R5!^ZxE7?bv$9ZT>n+8zP>)AEElPVxo-C|@a6?Gi8g6!D~Pf3=GA7sd0aKDZHT;?Y=t z@!Z_Y$()xUKTJZpR@L!6;PkvM{RkJE`UcR{c`pbSn?PVsf8T62Bh8WVYL6eoHM~R! z(>=X3(S*{>=+b8P!TOl0XgVHcfm$$|+^n_ap|che@-OJYcYIyVp7DIjEuF{j+{zz| zrlT>FeXC-0N=MB0aMs_fbAOo+_MKJkk%tuv@_n1?HHK>LTxd?J-{c}Cbvqr*X|dA{ zDEHB$!d3IwB1Gk=*3zsK)(Wp{BNE|xc}@*MIPo;N`ipq6EvyFm3W=bv`+-?s*D4#u z9(E_PA^J-;D^gVHvXtbponwrJ(&zak_1PWh59E^U@%rsD}&bM5uRU~Ox z3il08upp$ceN;+YdwBZdYp$LgNk|Ax#mwvLNkBz$sU`umQ~wpbR%w4pgpC^Q->6oq zKISy_C}cC?h^E?}SxbLV;FIU`#z_45!%Ef_g`|ZC`+KcCL6tT;?z5PE zIHc?4Uk<}tS?y&Uj!M_(?Wuv#$51@A2>(8VW01w33tZQ?pZgBr#^>+d{%Qe=+iu@0 ze6(NVK&Hi$$Rt{jl-OQl($dxY%Iy{a8%P&{XR&sWy zNg5UQ8%#B?6Ltltb6X>4i%nDQw!hDoeS>)k0D=!VN$Pf~T0Mqz)XRQu?}|8@vXBGf z-xvZ7S!=E3n8+&qBe(#9oZ7p5d1NI`6+U&iF%XJp;BZ`ShB9v~pQ9;rXFic@4-XA= z1xC$;6K;Yu{9=9CpWzTD9p~CB$@qj%*EPqu+k8EI{I7=!Gj?CeabDRyoNPVy%Vaz+ zFFUR41Nd{*B*JyXVrCyqap4{gzdnX97@%Sduu`759FVf+EZ!aNS29-UsC1J1d7|>s zsB|qJZeO;2SYkWb%GJwSeP>=7-h7B-oZM>$);(KlsN*WXb@zrDl;uy;i{t@|RDOdjJ=b-O| z4_WE0P8y1=kVA?P6{9jDQj!}&Y@}+c0R9tZ#L-;M4sPPBCm&wtIutR5_zcMHE%wzj zJjYg_VChgpK+Uoux38Rc3XL3fDg|jMb66ElKX+xKAKzbyjg$lsGck{Sm1`0@NiWjt!GbSqfSLR0QEhEQ>oLL>7VhKa(yYt3dzz&B)PrcN}CI2evj zo6~fBpD-YhswV~@qUkoe9Z{@Wr9Jn1VOXw1C0@mn%WAoke{zVT+@@?aeyGf?)BEi6 z<&O18E;jMc^=z;VC~}g&I2*8ZnGV?Q@1LWmB_~`MJSh;k+)T4$M4UA1(SjRMuhJLl zq{REt{*4-4)&i{BX-ixc;ar=L*nzHxG{jk&fjrKOIiE_Da25jqpp`k2LXgtS7JlK! znC&H4I!F*457QW$?{Ulv#u}T=2Q2R^Vb5MIZ~*P)C(?~i3=;mo7GTNhY~iUQ6p1h) z0~QW$v)xB4W4R_Fqd!;TiT>^@GqS|L!^Nt_Xe@J9QOYEb@!!9^Gxg7m;@ZsUn&7SC`jOeJ!WG!IYl)g%@s=x#+3f@1Wi#2^RZmcq zHR(~+Zd+~!?tIDPzZ2Z`7~*qxk%=)P5)=2o-h1Zc3;n@WD@9?RFyKWvH-n(3Rd61E z5$U3r@HPsfHIxGO57tNuX=kB!(EAca$8fPR{!=26{fbvzRDI<@iXY*K7m)6&nefd= z=EUG<+ehzpd|+*QIM%M|d>=Trr^I>xEOE#_+co%sg3@U>6ae~M)($q~iMtV>!;BRG zIBD%#`FEkkGMr!%0|SGIsNH-VL!DG+N}YJH5Yyqk_GFxbwCI93CY>$Qvi<4m4jAKWO6 zgj^@B@!GG2iu#qV+=KXYSa^cMNUP=RAdvEd#$GHfj!T}{6(rBD!sC*HhC$TlH0Mq# z^T2!WaysZAq8Yt-eoh5Vw!34)4!ykv{U$-q6NXm!LK1n@=}Z=vl+eT3Pg+`&q4>36 zlH(bRDrf=kr>4xkb~X8yr*+q_9lo^tH6eZwwbG-f; zJn{=Mz2!&FMua-#^ERKvE-Fe{>Mf#p7*Ri@4%x~;z9cb-DZm@%5@JZD`&eE~d3j&lk9(0pUrz%8@3`7Oj;BYNGW9cw z2_Yiub16Q0NIXI$mrdNlLNXZkz(R}1<9+d%(5JxY^et{6ox?xNQ`~C!leK<$V#z>S zJel%yWuvUSyIixs-A47~B*9mS8H%=WTB@iK;i2C#la0P6t7zW<1Kyb*)1QgZ8$VfsHzixs|C$rA|p{C&HtsZ`HU zB)Wm40RS3(8V+{Aa^_$o@dO06xmYODK16T##S3m~xKtw0sc02c85_Mj)SjMrsPQ52 z$5SF+Jw`Fn5UgIgLC~DjXM?h+Q>UQ{_(<6G`^cy0+phwz7iPVV&b`NfzHc!CUeAf) z-h_lI3B|${Ivlx)pWYZByR&&J06>(h!noJ9l4s1!ZPQGyVNN{lV+FwuD`S!{Cv{|l z{O6Ou$bLfFsj#jQD&?>6c@0K?S>tgUA;O?j%;t8!FHMV4ZC<h80C{QagL59iCZ{7u1vmN#cJ z+v1`>eZfi-d~zNrfzwPwiR{yGQtn-*dmK7!=nN9zGl$LEw&0LHE#7bZ?%#eKENpFV z@Ec+s=9r#YuGz0CTL?;%NHYLx^g1@}N*+(^S7uu+vxvobw+}~8k`8E+Us^RN(nR7B zp^?AssPxT`8LU`=FjqmME3jhdDXtQIFsdLGWka@L1tvLG>Vtc{Ejn18vMWp_h0Kxq zYk$TGM}4SYr*0xe9D=dvivFUPQTD5*yUXK(9NoG=!b`0@5hv#W>GDf!u0Qy>Ihj)Z zeq?T7KN2b)#4pwK1=!kIGDH<*NJUImDBkWPkz2ma7dO zhtqTafe{AX&iM3naSKLH&f~MZkC$dd?2VY^e2KBKGE4?NKDX!R8x`}bjV=ZLG}|lv z&7~Jvut3C%^~9+Brg8c)bXj!O3T>r6Qbs_pSpyQz`@k}tlf19+mhH;;MM7a=BAw2o zB9lIGz2;K+#zJ`tl}bHY6ii(Vp}^Dg4T~d>zElDE2G^q_x^&M{bJ}E|qOfkltTY7p zckIZTpo{;wNC&Te0Sb(>n*zt#e6lSX=sIbg*YSD+HnjcIm8w$XYR8c)p+iL_gh|-< z;2r$CXVhX}DeBV`VEG}{AXx@L{fkVq%jR$W@9}#sX!P&6p2xX9M%J0(zt0{w{YAvp z%GOE^?_9SoRvRXuytSLWdxRe#tNwQPcrAH!Y)0F*Njy!1{BU+o3Z?$}9)TW=FeCs_ zvDECf6vDCP)8iO5T=m!GZ2sf!F^k`FwNo!CT`mOi>tuTKZ8dqy$0x`471_{@8Wa}# z+_)qiFCk@cT&T0d1A1|5I3C}xuZBQ&%&LzCHhmdnztj)p ze2ZM|ILg&(Mqk{oX0|zS*tj*}XJw|868kJ5L7-(>Y0ZEYqJJ9hf+{TO^fNVX_7Cp3 z-}yXdZwnv~;?wc@bmazY;IQzAEZ6U(JAHb}GN3HOkol@3uwK}pWIOHmXf0Ss?^=St)iDnsTpeCz8j$T_Xi_I zE)Si~+9L9m-eqI8xlZ44nsqd2VF4n1SnfgIELo!_#JgVcKab@2emyTFDisWW-QOh+ zMXYSJ-T6slq0=NqMLOk#zx-X&F`w4WH_A}}a9D{70Vv3d&bORnH=GFt!;fK}wBR4HrA<{({pJS;Y|YVdy-J@YSF4IRlRA6Fm|& ziGnDgSC`zw+kInsC@@+e$yIw;PpR__wRA_ETo!N%AHs8{8KHSgZidD8#Flv8mU?G0 zIEotdl~(94U^GaxTMSM{uYAz6!(Io=8m@d7IVOzye&0wbJhi!ad3*D_P4Yh zlQ*Z~KVFX>a9yr#H|yPJ-Zr}{^*W}Gyd`AQS

D*(Nk>-rug+1U^|09yr>)Z^vej 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

sC3OPt_qqxv8s_ft*+MlnA0=%B6` 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 diff --git a/branding/mactician-app-icon.svg b/branding/mactician-app-icon.svg deleted file mode 100644 index b691731..0000000 --- a/branding/mactician-app-icon.svg +++ /dev/null @@ -1,76 +0,0 @@ - - Mactician app icon - A premium navy macOS icon with two folded ribbons forming an M and two small green Ready lights. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branding/mactician-favicon.svg b/branding/mactician-favicon.svg deleted file mode 100644 index 8571190..0000000 --- a/branding/mactician-favicon.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/branding/mactician-game-host-icon.svg b/branding/mactician-game-host-icon.svg deleted file mode 100644 index 360f241..0000000 --- a/branding/mactician-game-host-icon.svg +++ /dev/null @@ -1,31 +0,0 @@ - - Mactician game host icon - The Mactician app icon with a luminous cyan play badge for an active TFT game. - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branding/mactician-mark-dark.svg b/branding/mactician-mark-dark.svg deleted file mode 100644 index b9ba330..0000000 --- a/branding/mactician-mark-dark.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/branding/mactician-mark-light.svg b/branding/mactician-mark-light.svg deleted file mode 100644 index fbe66a5..0000000 --- a/branding/mactician-mark-light.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/branding/mactician-mark-monochrome.svg b/branding/mactician-mark-monochrome.svg deleted file mode 100644 index 2c07289..0000000 --- a/branding/mactician-mark-monochrome.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/branding/mactician-mark.svg b/branding/mactician-mark.svg deleted file mode 100644 index ab966ae..0000000 --- a/branding/mactician-mark.svg +++ /dev/null @@ -1,47 +0,0 @@ - - Mactician mark - Two folded magenta and violet ribbons meet to create an M, with two small green Ready lights. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branding/mactician-open-graph.svg b/branding/mactician-open-graph.svg deleted file mode 100644 index f0605c8..0000000 --- a/branding/mactician-open-graph.svg +++ /dev/null @@ -1,39 +0,0 @@ - - Mactician: Keep playing TFT PBE on your Mac - A free, open-source launcher built so Apple Silicon players can keep enjoying TFT PBE. - - - - - - - - - - - - - - - - - - MACTICIAN · TFT PBE LAUNCHER - Keep playing TFT PBE - on your Mac. - A native, open-source macOS experience for Apple Silicon. - Built for two tacticians. Shared with everyone. - - - - - - - - - - - - - - diff --git a/branding/mactician-product-hero.svg b/branding/mactician-product-hero.svg deleted file mode 100644 index 8fad663..0000000 --- a/branding/mactician-product-hero.svg +++ /dev/null @@ -1,55 +0,0 @@ - - Mactician application hero - An abstract tactical field with two folded ribbons forming an M and two small green Ready lights. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/branding/mactician-small-size-test.svg b/branding/mactician-small-size-test.svg deleted file mode 100644 index a6200d8..0000000 --- a/branding/mactician-small-size-test.svg +++ /dev/null @@ -1,30 +0,0 @@ - - Mactician mark small-size test sheet - - - - - - - - - - - - - - - - - - - Mactician mark · small-size test - 16 px · 24 px · 32 px · 64 px · 128 px - - - - - - Mactician - READY · TOGETHER - diff --git a/branding/mactician-social-preview.svg b/branding/mactician-social-preview.svg deleted file mode 100644 index 8a82fbf..0000000 --- a/branding/mactician-social-preview.svg +++ /dev/null @@ -1,38 +0,0 @@ - - Mactician social preview - Mactician, a native open-source TFT PBE launcher for Apple Silicon. - - - - - - - - - - - - - - - - - - MACTICIAN · APPLE SILICON - Keep playing - TFT PBE on your Mac. - Native. Open source. Built for two tacticians. - - - - - - - - - - - - - - diff --git a/branding/mactician-wordmark.svg b/branding/mactician-wordmark.svg deleted file mode 100644 index a1b2d09..0000000 --- a/branding/mactician-wordmark.svg +++ /dev/null @@ -1,29 +0,0 @@ - - Mactician - - - - - - - - - - - - - - - - - - - - - - - - - Mactician - - diff --git a/launcher/EmulatorHost/main.c b/launcher/EmulatorHost/main.c deleted file mode 100644 index 7f62bc0..0000000 --- a/launcher/EmulatorHost/main.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include -#include - -int main(int argc, char *argv[]) { - const char *emulator = getenv("TFT_EMULATOR"); - if (emulator == NULL || emulator[0] == '\0' || access(emulator, X_OK) != 0) { - fputs("Mactician Game Host could not find its Android Emulator executable.\n", stderr); - return EXIT_FAILURE; - } - - argv[0] = (char *)emulator; - execv(emulator, argv); - - fprintf(stderr, "Mactician Game Host could not start Android Emulator: %s\n", strerror(errno)); - return EXIT_FAILURE; -} diff --git a/launcher/Info.plist b/launcher/Info.plist deleted file mode 100644 index d3d6fa6..0000000 --- a/launcher/Info.plist +++ /dev/null @@ -1,58 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - Mactician - CFBundleExecutable - Mactician - CFBundleIconFile - Mactician.icns - CFBundleIdentifier - dev.sergeinaumov.mactician - CFBundleInfoDictionaryVersion - 6.0 - CFBundleLocalizations - - en - ru - - CFBundleName - Mactician - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0.4 - CFBundleVersion - 40 - LSApplicationCategoryType - public.app-category.games - LSMinimumSystemVersion - 12.0 - NSHighResolutionCapable - - NSAppTransportSecurity - - NSAllowsLocalNetworking - - - NSHumanReadableCopyright - Mactician is free and open source. TFT and Riot Games are property of their respective owners. - SUAllowsAutomaticUpdates - - SUAutomaticallyUpdate - - SUEnableAutomaticChecks - - SUFeedURL - https://sergeinaumov.dev/mactician/updates/appcast.xml - SUPublicEDKey - 77t8YuvP4mvvP/3oMpVR/TqGRMCcUlrpWFIZGcWqokY= - SUScheduledCheckInterval - 86400 - SUVerifyUpdateBeforeExtraction - - - diff --git a/launcher/README.md b/launcher/README.md deleted file mode 100644 index df0ea10..0000000 --- a/launcher/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Launcher source - -This directory contains the native SwiftUI application, unit and provisioning -tests, application resources, the minimal emulator host, and release metadata. - -Use the repository-level commands and documentation: - -- [Build and validation](../docs/building.md) -- [Architecture](../docs/architecture.md) -- [Release process](../docs/releasing.md) -- [Contributing](../CONTRIBUTING.md) - -Private game APK inputs, downloaded Android components, Sparkle build cache, -compiled apps, and disk images are intentionally excluded from Git. diff --git a/launcher/Resources/EmulatorHost-Info.plist b/launcher/Resources/EmulatorHost-Info.plist deleted file mode 100644 index 99adaec..0000000 --- a/launcher/Resources/EmulatorHost-Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDisplayName - Mactician Game Host - CFBundleExecutable - MacticianGameHost - CFBundleIconFile - EmulatorIcon.icns - CFBundleIdentifier - dev.sergeinaumov.mactician.game-host - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Mactician Game Host - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0.4 - CFBundleVersion - 40 - GCSupportsGameMode - - LSApplicationCategoryType - public.app-category.games - LSSupportsGameMode - - NSHighResolutionCapable - - - diff --git a/launcher/Resources/EmulatorIcon-1024.png b/launcher/Resources/EmulatorIcon-1024.png deleted file mode 100644 index ad5b2d5161f2499981c8b60ca8235180eb46ed7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207833 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%0DxvgT~6U=|! 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

@CFBb7& z%Swt7Cb03UJPFKE;^4DYfAvR$ba0x{W6VC@jU>$SZBB-Iy2JsHIP)}^vS_(qmah2f+u>w8v&Z@2Q_jyMu+N2ZrBOE)S0IzY^)PP4pFY`h(z1vbwTXI= z^V&be>gbm{!L(WoMf9UuRaS3@uCNfMNqc&y_H79Cd&1+UZYF?C0n4(;S`m(C5VO2a z>8)k#AC2Zj_}nvxw;g5yCx!kyd6tsfqwa#kJKW^iNh=c(W1FZQzQUn(RiQ{R-hsyG zxqjr~uK>GiLzdgh8)l2%y9%kVaI5dO0S;&{g~sr|*atE#rh)rmm#)A?Z>DV6xG1ly zPQPy8QI_*WEr`=8fvl#pqhQLFe{IdVa^r0+2pAR1)MW3l8a41KLRX1MSM z6kz`6Pxn6}8(FG6N9^bJ@unPU>HyXjLCxRp9jgHw-bD!!-R}m{J9=@biRe0grk@o? z(!_aB6#Ktyo;-W;!Oecj6UKL!{1&xLefU;v4}o^$>-Sz~rmb-((|eQiwa(pgiEsK` zFpWH+5GAI#Z|3LnX)Z-7y&sbSU3-)8F6G?2y=C(TFDI`=*`p_Ik9WDxEu_13KJQs* zj>~CgvxPPY7J$}e9D=i(hn8uo*bbCIO_sr@gdP3S_y>N}#rHeLThZzr8nZ_C%0nB@ zPnD8e$v5`d0^L{6BuuVBKhX1u6cN5?TLHg-+r0@501^b=EG3P*Bw_f$dZ=u}$~A?Y z%MrfkzB!T6LHcJemcd6u zBoGKN8T!=>iBClMvU(9{W(TPsBLl3XJs$&qx-AN%ws(xP; zSsH8IKC>E2MWzRpe;20E9{m*X$H>PLe@fE-eB^~ zgRJ?t4$glX%N<5yr~&K8Zfc^TxEQuh0mSjSqd%G`k`)8_JtyJJZegN0`PV7DBI~nP zQMMVbDu06b0vK9%E$E?)r`urnE=o!IPP{@tUfK&zD_;3~+$X0J2i;E&?c4fOt`!=S zV+u?!&Ep!P^cjX@Lwb$|E73cBpjj(QQw4T#iX&Q_!Kc1LzwSiWhCV7u4+!&qGLVhLf;t(@v=sAZm|7&+;k)nR$;fN7l-am*kzxs7q;m4g7pd*r za*>cs`eyx+O;3{w#{|?Fgoyo;SjP_`!1AjT7x2iJOhomHPg$=)Qqp7(kDb{SZQE^8 z8=2Wk9KI-$)X|KKDze~B(3*5!VT{;yL`50Akjk!G+oIp2c#_^Tj1;YxSf8EdY?_dV zeR`k2CTaJ%8T*&+6t=gJ?K|N5ILdpCr^4!lnF3f%SAbc3@84)1R`_66$3azQ3O1D! zh#nIlM>5SZ-6hxGw7JsZtcPl(Ft6XB-wo#?GCXQn?#Yizkstgu^aOsu=x5(pi#<84F$7J8If$GE)8hHD8m4 z_q=Rl8~LW?_NU)JLoW@SChvPcdh2_QPm&JGxxh%w&lI3^&fw2ffL9uI1?{l%#lbQF zkA56lljU~iuY_mnwcy;#!PRPrzTS~NYAqtHWF|IFKicV=Ma;9Zh&JZbi!p})UWE9z zR2IyqQCH9EO8X3p8S|jn^K#^f=m38S*I7b_>4hf7_qj0LKJ~8=wT{K3YeUs^A3j`bhN@<(726Zl5{#dxDq0<<#t49*_b$rA+DUcPTj{rJ?`fiP2 zm2=@o%g9w^**R@lazKl@Cc0;`_J3cX^C)SrZ3E%x|iZ!ShxKY^5j>qnA=qbh<)VN75DR&*SQQ9dAW^@ zWUO2OXhw+w--_WhEt8k(<_x;E^ii6*h91$AHqnXJ41+ciHvjr{&DgU(+TQJE@0^8b4Q=Aw63huR)BivK`+ zbwP@q@;tigW+Q&so|gE8sGlD4Gw3QJ+As)cKJ|9_T{3)R9hMn=xsy#-MItW7hw{|G zyQ%O|7;db!F0#iO5nlBCW>mCSXFZ|NS5C66VfTZv{8B#rOcCJ2TZCo83S?5>QRi(- zl5?OK4)=-rTy(CcxZrFrS%{eoCtca82)SDy8oC>n8=O%?q%;k2<>bOuqFV15gCZx% zAlikqIel2(+o{*gcJFdgxi1uf%}DC)gdJ=Cgm~I%1rjLbzGNgpn_}qygf5mSVdm)6 ziK8EIqqJ5qLfNY40OA^bxl0C1L0pnTPK;pj-OcrKO49-(9mlWY?Q5&Z)pN!c#`bU8 zobwDU^eUQ9umD-D;M7Z@Z&R-oIMe}L15Wr|2An}-)IrPyAjWtW#f=0ugAcqTZOz{Z z^@#0!F;qd62@$W?{kMg(r#suG$RM;~BC*99NDFJbD16q?uv0!KHD8I?xPxgcFv|;V zMQ4&5Q0h}kno9lI9H;JA?kBa27Pn>=v!GP?7z z|D+xi9dK_oW|9U g+LUkYUx{Ov>OZgW1>QTRmb#nkT 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 sy#>=TXcpx2Sl6EVtwq!!F|fO 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%0AeeLSf?q9$6m5rQDe)zb&6L>dD#k>U$*mLnOO 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 z zS{w!Pyqct+r(gE~icE*Z0p+ApfF!AkS6wRj;AP$(2+FwO;EZ$7Fb{16?J}SxcBDCO zMfXg4k`jz3fX{nYOA)W`KEle+Hz#uxk89zq*&b@EGE%j-WRL9R+keZs{yjmh4t2%l zsb=6kZ5$Q>d+Zv{tW}cV`K!LTR#Spk87AI;uk5ydSB`fC%C?>b3_oL$hyVvZgIR9q zQ$130s#(Gvce%b3RrP+P!WM53(_I%=t*iXe@i+*=Jm*f8X`BqUq82~Kjlf5^GTYxy{&Ea&$v8Gd&$ncQ2I%z^Z6^RV$@{j6 zBP}}r;@jTArXylOM3yyRj4TLe$|m>}k^ZpT;|HLle$YHOGJ{ui!b* zYlD<~pGm+yPk@lW|SI`}kROa8}B8EgOAlwkPMckch7 zCE=%|xjUK4y5`t{hyX`D?lm;wRCKJVIb(fbJXQ=$z(##heOj*tgQ6zx5f-rCpbs0} z2Bmr<&*f!)VvxlW@@Zq*XQ<7}Q z>4rPdld^9Sx-QjSS}7nXl!XTmjsEDzrkn5%$G+M18DyRi`6Z??o*_oygVqbqbKSg{t+;he|OiRHU?%$m`$+Jm?iX*YQKs zYKLDi=!^Q#si8tjc2Vr+0HT1r9VC&YM4!t6KP|u+3a5HbFk2~tk3+L9BvoV*@bQ-J zPF;eEO)XfVUeAmypsTi$c%c1&i~0R8E&BN%ILCj_O+gO{n{JXlknwq_FXdBJ4nFNlx4NCLJ%Qu~FN4(!JwXPs{e_kMDw>(+Uzw zec`9pu6#SXYYkC#TBi3%JP4r2F-Hfjuu8Z~h9Vnk{WGqsS?6JAM<}|3|IP`l+3R+u zc-Ii*U6diwLQnGtSL+Ihi6e?GMu}BMefv%(DQuG8(HAk|@%L%c*wV27DxzR#PzHel z*vF%QC64!OdIf2-YpeOS8ULQmu2e-cPf-rq@!e6|x}Ff8}>TS>hs=*I^* z_mj7ueC*5sa|B0V;LZ^T}k zJ-(11cb#p|h%-uE{$f6Vt5u{|dDMM50A15Lyg$S?Z_r|+MuSakvsRYcrq?3;LI``O ze)(qYTh>#EpwMli$NeH|y2%3-1=Jta#Qts=2j1%UPM5{!>eJpCJx$gs|m`@U(MK(w$cQTq`5l8Iq|In9AF%M}z*TGcs?BfOzpVM%aJh9v@n;!mg($#lZ&E8#y}#Bz^p4=n(IR}C zvgT~+^5%Ezi6e5Zn$BhkH4(!uizma8@?w{Q>CDNPW8;0x$%h-^YV-(mmrYL(DLIb< zoY1@^#RVxnX1Ev>%EVYe^(SBUQ`q4<(^9knr>iF4X2tQlo08aB^Nc|ruC^+s%eQy0 zloyNRuXk84(evdgppbSk{3h|lm^l6b-~Wr^4gu+M77Ea70QMAAJ-8tdYM^{S5j<4V%+rAqZk2PDWY zvq-YOT2`-Gf2(cV79)AaiP}pX@|Z$Y6Y#V26Uf@fdZw~>Xy+lcrUq^*h+&XmGBk7h z`j~o{m1*ccsB2CG{tc8(;EygJENACHpk6{gJhiK-^I9Y-?lUI5L(?46{&*#K4TY*%2E@@g<#Hp=&r-_`bp61^fTmcebGlZM1S<} zey@%8zxO=VRgQSNg2fva@IjPZGsq~+M74{m2(#5it1i-!t&^`(Na-;cQ<}rKBUQ+f z^Mw%t92Aa8&?GTKDsY*Ozpa6&Iy+0nVLz?ig6APh*yZgljRNhfanGaIJGY|)$>s{R zZkTuaxY)DOB-^274O=9g7$Mt}%&8_4sOLN`Qs@EM(0Uo!;nW4d2X+Kl52W428M!Xv zDBxb7{<&#e{C;3YI#d>w-g=$;&PfpzGs&ZDxJ0ZYPWhiK1KVX+>r>Pe;`pR7SGiwL zrs9bSB`7tAUX7ol@#z@#=y6kec>oPz6po?ykH&B(@yP0KM z=+vq3!CY{JboutflMMf9(6i)vCH#eVQ~e;lt!U{{b~oo_b}^7~O6_GW1UaEDt`LOwg(S^VDe zV4jIT>>2yev|bw2wEB1NzbaB0Z~j0LG$gK+)lfQrbDluB1$$iQ?DCWZ16msy0r#xF zu!>DJ=^D82S!7^*Bt8%M!;7e^_A;D6!y!s*bg-#fdneF8b0^7ncOP_wcmb^}VUF?V z;-aswU!(wlsXT^8sp&At|3`awY(f%p-Gq@~?f9#u(R=QuGadX;>5P%2O9tfkMDv99 zn1^(#fzQ19sFImW$|1kh*eVZP!&i}CrGEX{ezb%0I@Xl{)p6|r7g-#gm-!0+AzwV5 zv_!F1Y;U*SXUYHXJqGgc(c9|ZRPe;oTFA5C7dHdL^5A?q%u}xjo%aP}d3%=aSC?aU zGyb_}4}dEFm3@zcCZ+h%Ww)H<{r)`*IxkT;YdDfVVO5Fo7X^N()W0T;JMBYq35R5e zziBqE(kb1rE4shkF+!j8X@lV7;7jkK+wa?j>$#3IBgg+akcWD$tk?-M#|fH)J^r9nufG`^(PdpK-5{n5mzQ0MQT8bS>6$yUI>~|tLq|$mo3i_4 zvX88JD>W`tVci}g7`uUz=C?cK22o>S^EewX>9y{86NE0YNT(JF;*BfJffastLiXkZ zE9fUj-}?Z=1u4WFSL{7$E6sU3&M6wKi;H=zpR24%rTgA$K+wa zRPPKe;4Ts5!rB%lD6EJA~%6Ty<5wixv2K9>66;WEsnsyn9%F4edaZkU+> zBZon^Loa5$z<`QbO{r4*zsa4J;4Z`g}zbuXeo3v;r7@PHDfy6WO`H&3K<+r%5QEx3RB`BK!!uH z=2bGsjT96z94iS79JQcKpsHBEDpsA6$h0E#N?!Wlj0wf9arqXrqR>SBACwZzU%-&T z2Q>;@XV|&fY4On*+izM9Z_CHLwjjTWH0(LZ8uHi^V@2MSpC5-+$mc&$VE}%)!haAF z3sRc_p~Wp3wdtjxpE&?Bx3J;1W_NFjM>dbp=2lIiB(<#3P8ab}zB77Yh>5z87b=Z| z=2+^u^0R}Jm;FsAT~p_Fhv#o|EGfYa6Vu`)%nf4TU!{H%Qgz=wI1ekwxyL%=HTC|w z_P&|MHJ_n@>RXfl>=4;Kw9&ccDR!XpWMWyw;7|SuqWW#R+(yr;a9VpIuIw;}8HZD& zZsuQn_aeJ@y2)Su(C;2tZx=&{>-njJ)^rI38#g z+z`kKAd*u?O}B1(toN?KzbQIr3aOw2=1*9Asya&uuZ$`Sr4*P=zCtjXR5EVFz*?5c z)%Boq0um*@7sO|F&u{D#s_fk^DXCeftY_=hC4isG5zZPi^+1o>AzgDpUwGd5{-^a3 z!!LGl_F({emI|>O2wrq|d;gzwi)Ph>G7X5o+@-O=xVK>z1itdWh(I#cu$aN~r%x4@ zB~2xy10jw-G~C=-?4I<6YD}lWEXmpa8tU-s(b!lI9d|fg_h_*`W#`Kh3I(O{_wgRz z1}=5nWrQFvOfU0HnDici_j|=$5+BW~(k{{-_EStzsfWn2C)0tvI7Ew~CO8Eex4Z9e z9xx!r;Q3;dqb7&RXhYDykduRqBGlG*@ga`*cg$Jax$`> zWVxgVfT$TT{h7pC{6n$Cfa%kv&aWlSwI!Rkz~nyMOc&yBVW^3B8B39TAt+RqtZE_a z&)L~=>qW9(l3^&>HMUrKzaSEaFdr={6{5vA2{5nC@8rpal9~{e5ekrWNuGJy*5x$; z>Unl>aY(=VQ3PJkgKt9IOa8Co)ebs+MNIJc5Hqd@A4E9RKvjngS4RO5$+7E;T8ltA z%hnD50-xspV*ws7UD~a&BZ~*1v89(cV|aSvSV>;nO^p>nja7pVvH}i{``v=ndmQeW z+$cCU1>T5q?_9w_k-|c3y@%8Xf68MxJJ{Q5tp?i0o?xC0y#4(9sDsIKY+d@B9+VtQr(k5|&sU z+EkyP3X_>vC);;z1h@mjiUBXS`gRtQYxlgQcIL(znUueTT0YZX{w__81o<1!EmLCc<0y8}$QFVJZ;z>w1JR+d?)vKc zKD~j^|My3wH6N>o%;Du$&prc8=#Jkf+BlD~EZovB@ba3K<+7|CI?#EJ@DqEG$h#;&7>CP@Ng(G~ zS;$)J`41;$&);q`!_EwJakVkkv}RI^V*9!D^B3vp4gVs3xf|8*6!C7n<%y`or2LE) zJ8MbifrP6N#ZX;t6epXYnK#WVL8xbs;?z5W0ri5P3^V0+j3NIR0V`h`bB+aS=&xs{ zN(-v<_W~BAevyaIApSXq^zLsRvyS?MGB_d$Jo^#uCml-}c7lw4uz(7Z+dZ7FT>s*{ z#&5un{x0GpYe+XYn2gp#eLKg6%aD6ryObz_xVCHX`YtE=oWy}_Be&tD2>HVIXEYs; zLfQUO`5WChL3}E{yrA+fYk!FMK?a`+t;L8(^^AV``_h*i@-Ae@bh|RhzYZ(5*dVm9 z2mQU$MX9JE*yKL_jEa@wx`R}?4QHm~I^ScgROEhQ^XHTQqBh7ZKlGS4ToL%YtRL4m zLUaEDgJTmf?~-RiWFET!7Vp4dILTSSllpR)in6s}C%=)j>v=#25!?5fFONBp%v?B~ zWoUxzze&GzF^@Z0td>35rHp@ahihS7E3cU(4=U+GbE;6YtIbc7+MYMICq?4ikWzyD z-T|W>8y{3%JZ;_;?vH=BTp7M`8ovvDN@8l8d(Ml0%AYknTpN)2cxwn8LXM2MP5LUg zQej+~u)E?Fkgs&1n|a<>30}kTu9)&n8~8xQFX!1UCgaxq7jcH6B(yl6rFF`}1H5ZY zW1bxcI?M~W-POHF?~srAUPN|!;^y@%Qlk?}TN5<3VrRXCryDExDKJjabEvi6-PA;8 zTRWzoSYm0hertfx9EOvT8^iq~@kKM~kb_!dw)R(1UU_lVWKD5)ClPpw+k*uhbl9aR zm?UUVWflIjpM9lUQX16v_)*WxA&o{^f6Sbk)^ zz=GGk^4~EHmXe|F#^(OZQSF-tTKdV$^}k5i@;;+N`92Y4JH+*6$!J|?$AM%qWk>tBk3g(^7=|M zbb65au=41di&mU_dQc(4+q~9su)`+`{l7kN=&im2u?_Mj7UoDf zHR8cwnZPX53vGPL|2PWxQ+K%_eV8i+gJ>|N2X?0y1MfpuLGFlucklj zf&yL2XPmQ`wlh`!p-y@G!5t=!X+9_fqiVK;Q(>$5QSe{s_?PAj(vAk^}*4;-hL+6OR~OWG-?g zm%yc(Jm*r68A8&v4)+4M7xF9os{uXMf#`q@<48Q{B=(UC6hE z$Y}0PIx@Z{c*PvE_*X=eR5DJr3VO<;vymnQryR&z_fr;s2WQdD!qa>a(BTv;f2BIg zP1pxvE7&f@V|!5e7CiuUZ^ZK{F1Vk?`hMZ~Wzd zz<;T9SuzSG7umOzMyCn({}@bF>zT}|zfSJDrXjmxpDf9HMj`0y^H}s*-GMGRoi{+F zh+y;Y#xLa;fe%(QuQkl4@2&c3mb~A;y&ef#sigj{lT-Gt&SXUv74Zph#we#`w9J&b z++p3imul}cNEFY%rV2k#2A`SPHx--iE%daw7I?h8jDu-RW7QXcvN3M_Tv#W=M=G~s z@rhYY1o^C=Qgwc7j>ui~y$~J1#%4>ZGTv%(k6!_x!4&sC`i3yKQZ0^gdWQe#%4eLU z=w5Mh!GJ~OpLp2%J5`tJBbE8YkmZ%~4mC_;~a>+pZA``;#r|Dmv6_WZUU*{>L@o#o{1>{s-IN7vX=c;~D=ufMnlV-Lf zc-KUUi?UZ?O?FCWCzi(*Lw=X)1!R_=D*b~o8IVpj%sWgBmgBb*SRcxV!wrL^ZSN4& z{5~M>D$BT0PV$C(BS5#Rd1-4V*(+JNxgjt*RfQLL{(Hn9k)vy~E?uKyL@Z(ElR{xH zd50>l$I}7ApPHx&zDe18dz+|HUy0QkdZ4la`TQ`@tjE=;rZ40JB-r^o>lO95FR;u2 zNE449tGG*Z{Q>ks^B6%?z(%+=InYA>{`<1TpK8MRs$*|)z^{UfSaa`I=c0RC4Rk=_ zx9Tk472T$Oq>Iu*yS@A24paWbDY*y!k-fr$lRycocAjbJ+`Y>>FZ111^ zdB{h6WmETN20J8GvcM*-RH8YyOAR|6Ol}g^we;pd)j%PLn-S=+U`gk9UGe^c zkJIr7KJT&~z)L}Of>^_vw^8pXr9$tBszQdg#W2IZpI?@envHaa4jcl9A1!>dIIbsN zj%sgH>!Sb8)5L(SciBr(XOE@GB<4+UC@FbWc$Z$1IIMkEUTtBcgKiN;*g&2{es*mg ze-5Sq!3fm4&^gwkq~3Wt2-}d-Lv6gYuRfbjZWEe7!4D9mK$X@)3Hbu;J(gakmToVt zpapmDkpNt!Or7!wJPMi?3BiN|FWEpm7r$Yoxvc_ttWi9KVY#naC1;y{e#X7?s##*^ zLBEU3@lW0Tu=!a_UA$TYGhh+zDi2Z{R+K30N^kEw@^xu+*;TUXy^*=W|!5R9x6CH4HoA50Rrc}3QQ2PZ)Ra;9K+1|GlL|$d zmyyP2daX(BI+?bTTSvl7J{>MSHYME%GCARH^?KzF1h;Phn1X;KH_duDG9 zWrsZHY7Tf3)s^+@;^(|?aL9n4=gJ`CerO0nH^|LHuSLXgZuje49N?${*X97c05-41 zdeI-%FmTX!PYORroC0V4JRO2;PTWv0#OK0%uG!+Fs;(Ph8NF<-Yw8Uxzo*vuWT?L5 zU2*9bGUxfYH+6f@W)#Q7o_Re~`0azXc757PIqoV#^{r}c*)SJGF+lz5Pb`OQX!i+Q zjQC15J4}|PuGB1B{n|bGqacNedelWRC5#n8o$zm z%{UYsb{GHP22j9)YaSB-M!}))01kj=BYX+gMh>^vqE@pu_zj1E-H642t&lD6W(URr zUHlrjaS${iPN8dYq|tdc!+*3c+!>z$p68KV67z(H7aZFa(-NC=`>B&WQj{~0g=POd z%h-ROCX8Pw%V6tshU3{+cvQcjSMn1^1Lv0R2k-1k@e#R0FRP^;FS_%p^s2NGAAn?}Kf&qDZP3Z~#LF`(Vur1gdsh~s6+ z6Wv>1X`E-pJ6P8(#*KLlU*NLa$EQ%x~{@% zz$L6hQ;L!Y!jh;`7ij!8J8$W{v=8*;J-N&zlZO$pPM<}iyAx>A^{VNM_3B7OHkfbg z`BOlTrg{SSamu$w0LZV^gE8G;AUmcjq9x&wtW*biaECYsR=2s zHU{7~Tjn0L;dlUR+sVvgAb#XAPd*gfR$dlY4WqGock8}qf#!eZxF(>q+-Nq!xX!8OZMPUJm>_0{rk#8v2qu$k6_cMgDG zXkPxy<6tu;pu!23MVxUvVOb75d?~`uV9O+3)kKgbPXYmq<|pZJ%n^4jdV+Q&w!xt3X;+# ztso5&0t148pmcX5-5uYY^IhjB?Ded*pSok4cnRBf^)Kt@vtps|pS1mUvY&^4YuInH zobo?fo|bpC4UdgTVNAK|sfvF6;E`-|BDf#Q&t?4OG;VvQ&-}}LsGV&8 z`0d&i+9{ri6bwW5vFj zanc5IS#ZRkM9ic(`dj*f((BlPg1**!cdZ(%I*Bbf2muXOHTpTJ^JpatBv`b=6n-5I z8Qsv7ht(Y-%P;)5?vhO(XU9Ov4v=M14ny8EcbT5tO9a8lN6-vyB*6*rhC}5XktB#c zzyrc2FV2IBj(1=%%6-9L&<1>lGT+N78Fsmb@G~Sw8q4WMB~5?$sh2IO)?-Etjzmvf zm#7tC0jq(^KqQP95Pz(rU%?)0M`l(5yYa&FS4p1}@in@N{u&R?HR z-DH8o&TlV9B&xr(^h-7X(;&4RaUx=EU=;?E(N3>sx)@Z#w2b2joeg)9Tei@zLTXUa zQU_zW*`~YQTB81f$LeJ;%VrSV%Rm3a&`f8I%bg%`dQJ-UKy9(GgRb0WQ*K`j#~bC` z{3i8_W{SYO8$63|@G)14EK40<=iW8NR9-ejw%fT#IP0`57*<>7O4V*H;rvrXtk0Zb z+5Wj_Q$e*?fgKfo`%A{=xZl6{{aw-$B4(KkS~OG^`Efn{Txh5}!Uqg{r;ktIVy6c{ zaiR8HM!6np4eLH3UB8zErtIx;>Pr0~#0>Q7jIdV*L*id#%9w)w_^w_n0YwU-XkSa{ zs&PTZCtwUGQcn%j%$<}O`i%i2<*BzMbW~Xj$o=N_>${&hvSDpkdkB`WWGc{zDT04* z;J5gjfEmmkAglnj_J|=;W-Rv>p%W8hVUELBV0|iGFm7cJ1AoHWXR{8gRh;~KCk2-n z`7q(YFOBI!5NWrQ`+gf|if*QySdeF_1v#|yTYixwze-lp_L_+^Dlz&J!Yc%nYOqU? zZN@WwphSOHvb&OnC+7Gs85ROio#G?g?x(s!gPcrsPiP z>lwA0&lSU3VPqg|vXkO(%?w&r(=FGC{02oN{H|ontNCut%IGx}6x7B0Mq2gBh7Z-q z@z-)v2U5+tAHoL$7|88Z&>*Hkiq!NfJ2!oFw6OM@*^jjjyh!6X2Ngv82g+Q<=-q{9?PcU!F}OaM8o{ z()OCUihf^}?rE`dq}iPN?7RLHKc%8m6>QtA*n8MBqVs3ON;W)grBiNWfO*fAvieAUC+;!J5rA=mfr2mmJZ)GUos-LajTt2 zk!}mgm;I;e5*cCw0)M@pN$0$uP$^FDOHE~Cq^gq7M zZl7G}@ zBlnK`z*fl$Burv6@CvL?QXGlMVT19wWDsZ7D9JQNNU&v3u*Li4qcd+2x8ya@4W9I~ zc0nEZbTn}~-au||23#)pko(gzGLM}83*uLs8VI}kuaQ2A5JgM(4Q2MgwDu1Fcjj52 z@VD7eK!w+58oW;R!)K%Qd=^oRLGvxHB$WinuY)q-JY@f1RR#t}l|nx-M56n#D25M? z)W2uNaYS5tP=SvTl^tOa@u5%%wixCKhbL2@7NkQ;2&wyApxwl75R4#!e;$(u3M%|% zpFDJ<=owPHjv2~IMb}h-GTd<|d_B%@tbh~TP?kHD#q(OT z2?w=RX*BH|c_6*Q92$}Rk=XM=g*WX^;-3RHWjGvYLh%?zUI_v@QQQO%st{h2f!q@U zaWw!(TOoQp!MxFCHJ?Z64tZUfSq(y*nyMrL_0hPI#EOV3wO0p0*iw0SK*Y<_PNgfe zo+@em@8FAAY*_AyWSW;Rl#GE}-U&~8Z%m)PkR?caeRF=oOr zYfDvSo7u?OR>(JvuMc%y>bpm_3dTpdM_Y#1!N?r^YPMXyVZ%(OCm%<7VbM=GiS$0E zW3XZJ<0!ZYh*Q0*e|;49bnQ6+c~C$(<~#>>Ui5#ZK&pWyHyn-)!i;ShzO@x;ZmVaF zPfCY(cH9fLNS|qvSsYs@8!Cb;N`4y>vwtZBm8B|i9VsOgfcnfx`j_mQ^jEw;HR=8K zWhj7Q4Vm4u0PD^}HUvl*6AP30;~gSob)!n!UlKdwW9Sm`@R*ZkxjMsx3Io(hcHcB1 z&WGTb<|}q!i+!f$w{KBWG0R;Jdv;4P$opJ={`>~;-IbLl*{j(i`btL2e{3am!yb$& zm7OE*2~|@JQ)ba66EIsQ*RM(;NPg{Bf@RLYJa&XJ*4Tv^vV1xD8G189-qETc;f+K5^ zkW49vCnXm;2N0e%J}`(WCUOKv7{v4*hR)X{W+J9g3@m=$ObnLgqfuvX7HV~Eqa*JA zG+HvNV6Of%CalFgiXjFUGHN$_sww(8TSO&Aw!*UG=sZn>9B;1a;Aocsy}}A+f>Qj#`k|S4yA% zg0zK!oNE_fA%ZkUd%w3#5&r|J`)`PmVOkNP+PN7a^Zl9rANIJ?`b=QmkUru75hN4w z5^r5|Eq6pF3)6CbNRnnC*WkI2-!oK)c#<>p%oB^*M>wlGH|E*oPQZuL}9r54ut3>AGRFUEYEfsiKErbpRu}+VH z!{(WIAzGJWJ8r(8=%X>`S=u0qr54p4O;PwO#k}Z^~RC z5s4|q$Rrqtyc82QF~eeNZ=a*@I2aKDe?FDSj>kQsOjS@t!xSBEq5R753xRBEPX{;z z@=&7T2|?9gHrZjP;0<3Jx-0ZbECLK^^(R~2kN*QEU}5|JN8@8648S7)dk=JDU>mS& z{?k55?frDAX~@_pw$1f72pa%11p2HCs!70*Fu?x8Z>b^pvJcCF(`I`5p1N9`;k63wS+Uv|Uj8w{(T>Rr1tcumw)F{_>;Vtn3ZM1U zZ*h)ChC7cRfAn6(mWI@mh-6{&;Q;-PQR9N?3s_J{2&2%e$+A3k8h18uf@ur(Lf#GF zg;j;jJXr?vrnwTr+YJSHbH9Q5{QXRpwLm|hs7iUQ;5-I&@^@&bK%(w)i-|x;c1w1F zkuiq5=`y_(@oUst~*qhB0Kni!mSiGw*-ab+bNTJFHY{%CUns_fJq zMc@(x|LoUhanRbeeCeD_sIfQ5T&c5fED284cQwJsWwE8%&3qZ(*J|)*p-}o9(?e*D z*YPJe=7pAsF?&J4@20ILVF5fkx{eim5%~%q|LELiZ4?~z@Va%);O@tR4cO8JOg3Y= zf(H+mj{Is;=kp5P2q51B=vNj?fV|rqw9^79NMOniP{=~bk^x5RkDpD}W1K%GyNe8~8OVQh3cKZb(aXGi`08%Y3nmHZ+U zT?*`>e7%QzY!`nhqLnVhZ3qCm)~gL75Zv=_2nxtWM@JXnabJyI$P)(6{6gCV;za<7 zwPiWvOh7$76>t~l1a=w->L`^g-+A_X7!$y+*}pc~7_g9dhs}PZ#S8{Wyjy-5AV&!4 zsVp-=xur!C(_ycQ2J?CaVcfBd$7X@0-BMY+p6&#WfX{-h5X@Y0kxgTf&;RuiBOMVW zZ38z!O6z&V0z+)rvlUHJaG(WKSpmW`lSP({7`miBQJ4HrI}inaj7A2&{x>%X zhP(dsBhwV6C5uUi0_qT0sfrVXL;*-DufBhd-{H9=r&(5F-aTl37IG)W{$pDd^Jw_= zLHfMCb2WBE22}6*#(sXmo7`xb2o!s`uhmr8{n^Jh^yu~v5~0+N7vA?7M)tiT(|hkJ zae>#b_^8LTGN+VOQs6lwGQY6!tT%CFwl+jMUiIZcg5&w}kOP0dZIZIAfk!gs4;meL z1r&ASv(RfR*ldz1;b^{3eoLz!t$fE=7dz&wvc$+&oZ*C2!`5$}>{ZIYTxEu8rmoOr zUH4(~ABa8B4DXgd(|Rb@BDiv2jyW{F8#w-kf1(TI-L6@AO|;W-pZ=r7Heuv@oG+0p z8)^SKfn9TB1eReO9#aVN&JO_{XaZU9auauM;Il-ygNJ63AqiSiL=3al3l-q#b)OUl zF{#gj#7XPUObiRvjo2?mq89cPRA)4c(Pv2_l_yGMeenYFpyTDEWrk;&2=)!UO8^>6 zNs$a`N|!$ZsqdZxNbI+!BCPZO{lJU)J)QoYO{=w{uBfq96aozEW#2OZ(Pq0!kMLU< zk{T)J?tZDkT*!Rbx8+@S<)>_4*!?frj}@XiYQCYO>Ru@Ik|aZqR!E%768z>r>^{aU zS7W$v5jxwqs%v7_GYhwqZ{`xl1nlVwWe?)t{=*6)=^x1;Bz5Y_6I{y4;w~rdFkYkU zc=W-3{~8A;3+Uy-) zo*q3%klV+CK`{moB>_{#BmfFD5X|KZgGuB_h`PsKm;5Q$@Kkn&=BNGSkbgOl`uQc( ze=mL74j=Q^G#nyeMaYh7Au#SX^F?+j2NO!BaDPsBY*^wEfJQMaiW|=Y_=htwJ4Rj@ z<_SD~?zQu@ZZ9OCecg}aFKQje0*uDn*13T){RAloK8;aLDBzIeJF7uqaWi1Toi?Cp zs1^-WBN9N|dg}P21z+a2u9hWxGFsazdmU;GMDvx8DEgOxif}IuD($@PUz#61t@cdz zUpSP$Bh9eIDu54AJXLo%c=zv*gSSw58c5g*qD^#0TAg>71b9}-;9S&ziwT#1`u@zj z-pBNj{i5^3BZL&B11tZ~&^MCrqHeOLbzBeEW=FB1FH+aw-$0VqRbe0aP|_jA(?F}ohT+%FC;#TPo0%8 z3mD|QnESLp)^->pFY@Fd`AoQS)5X7-`lE#JB_-PC;XfeEI#=+#R_n|=zB~?QY;|&$ zblMvawRcjHDCY6}YB`DX_HSa-7X+16%W?47Mv?5I*3V;eco?LYMY)>oi_CP;5Qb($mKI{wKCg z)wRLyM__Z5n;Kx41Vf9h556<6i87`Q6`J7r>P)&8aE;*t{qJgJ9IHT*tWc#m_=KZMkDKCsNFhU~3np^C&*I(7gI6G}dI@I=O)Tb8g?fQj zXoz#K0v$0P+sdR&mk13=s073?^u6UEW?o`1Rc%7Ip83YX1h;S8Dw7rN;XjCBxO8&w zWA!zfR{rnR(>Kgs>6GhU)tWU)Cxa-P;W^NNUv1FENE1mKlZNwUmD0noUC^9Koy{}Z zJmPL4FbAFP9818{63?m(%TC&}kR5j&(I9;@&4X-d$YVFVMe|4z@Q${6D|WwUs&JQo ztbX~3qVH2?Q7LdEBAM&M4kQkNc8nYrHAy3p*-QO-JBt3EtU!21v6%lmVranyx{`M- z043-`&;TTQ4?18y#~9G^ye%#^0p(x|Ca&Ha&5L+i@Cbh$^+@pg_nAm6tRQl(zItAV zsh(4H1RwsLOSkYPd1g*ybn}M_K^CPA{-u}^L3*kwo+tY6&V>Nd+tc-Ni&2h0Iw^f0 zMo{TKJzrw?67=s)Og`GWmRI`*)@`*sR3x^WB6jHXbADv0RX55ieqfPVJ52Q3se>5R zt#RYsF=Nw8?kWcg|FHOa`Ar1r5VyU-ZqdfA%M6Rp$7t>4`OM?LUUjGyk@8oRSRl+p z8dvEX|H@ZGPE`SHsEpR{m02APk8-pJkl;eqv7U< zJOO=OxP7C9l<)f~W2V_PrM)N5Z@qutJqu#$Emo{_mijp5WI=xK$+APrQ;Ngx0DEWpbEfEACpZ8@^^X#;R~3? z5@mX0q$DE?F$ahMHdTil=kPj=J;G&&2n5G-B#y=LW4P?{7bU$h;mc+HzBF7<<9;rr z5~iP(<(L4@ciH#B`3d8RVy@gXCdm4veeN?RdNLjKL`u`*c(W9oe=|yN!&@j?sz0j& z0s8a+adC-CC{ph8M=pj;$6>B1Tz1B-o4TS8_d#~4skZx-xT1WSYLaS;4N5_Kxi`NW zAW!E&k7b`q-=2RY>oMq_++LzPcKCC68W^bbHYvR{Z@I_&FlQ=0`}X5zXY%(7e$|gh z`pv9AFXK*pKcL4Y|B(n)X2n+Zz-B6OYMj&KF1WDx^Uah>OP!L&!PWNwP>~s$-N6Nc zQ+^IvlkyrTlu9yWc2Z-`=kX;Plt#*Eb+B?=GZX%b{m>pgno-Kn1ySQM{C6sbpja1c z+MW7q16fvou5dZens#twx3a^0jtSrKp34mW;pSbOgmIDCx2RGN{ilK zA3)r|$PmI-)3!&MG(Tqad`UE5gu?_>-}tur z(J;*q*YyMSH?#2OJGE!fSOuf}oyjKC#}X_GYC)+TpF<0&0`0>p&?EP@=|6#MGIOxq zREY*jfo-6Zp-ye~>j~+;=WDiqN+ug#=2{ag@HHt^ba)tnro@P`WlIrxk3w??2|{mN zK$>Pg@20*b?P&NL=a(fpQGs@XmCMfWe<7b6)+ON$pC5Shu0?1ui(0nlDB_GC)JM5Z zu7eQv*w}<;&rJX+A+I62jDE?ZNWFTxs2j9szYGXQ_l!!#EbXhCO;1wk6yx^WzB{I2 z(@Y$s$Jw2p`(FrqN{xU(=hzEZ0Sutp3HgR6a2>hPD?{>bg=0w&p1Pg(ow2v##6RH^8yD}2Ik13pGX?)))nVdtZ z9_jT6T2Xuj0N_{<@bydO#wt4yglAr5gr#B$oS=Onht5OD zPr;L1IN);ACC6cllJf)BdI%0dxKEE_B`i_!#j8TkU?)2F_c4jSn@dm=1t~4fAd+j< z>krvJY$xk#Qk+?ogRibVa8UyoxjOAtZuc3&8&wA?XXDIab39Y_Wey58{l&8NMj>N> zgp%-DBHd+#a$mTII#|;<#6S@P*vPwAjNfeT%+qb~_HCWS7gYn%G*f?C%_#kR*lMA0 zF#L9}IQs8dq-HtB5dl($4W^?jfl>k8AM6a)bIaV@k)x5)F2UPjv3v8m9yBS|e+d3P z7Fl;=AoP#-9A@J)=uR1c7u&`+65S(*nUl|`2$Wk%fNakll{8Sp`Ovw*$>AH$C|4dm&v`%%sM1M9apb!UYH>5Io}jpfqwCb19pm znt_V%d&ch4A_oed?US)~3t6r@aG%AlK(Gt7$#TChF3olhm%&+%*{wQnJ={sDayCno zL!ebbrHhM(0RYb3SNL5N0xoOYLwz^H0_^0H0_%-tKccUa9I$fP@n|uJ7j@^(2*nL- z7W>J9oR>}vZ)Afa^T;IW`#@N$q0A6gK~(}S<63;O>5VzT-bpgpyag`VYp;atTg_V= zt7Fl&?ra6Q_f?@PVOLA#6Mh zXx7C7$KQ|A(Nw(@dqG10fTW^kMEyF|NZmAau|MTm^uiY%j&P@NVX{DXg&MLGue;?r{Pn0y8^t+?*X z4SrQ06N#|RV_r)}SnIs+bq$Tgc=%ynLB)Y`vZzz_W>7%pu4c~><{<`iO`a6GUwxj= zdObSE@M37-F&pHFnKwRJ#B}^Z!v?gj03tsw* z7n&pxh^4gXX(CkSiWP1Y->7k@b#R)(8|t>_Q3qc{I*eNK((ENaOE=#Vp7);W#@1A| zgs$m{f7sf;K6)Zfk4wq)Hb7esr+INv0k`+-&nAac0tTE1XCc%ZgLc!W^1Ep}`V>k(JV;z6{#A|q9p5p*{x7zOh8nz%5NhYz}vUn$if zzF`E|a&52N>J8w@S)S7@z4-nR*O>>k8r%O~AkLrU@zlqEH^}gu+9{$`I_jMEgbN&N zcuJc-!$%Kz^bHnP;@AXFpZ&x&Vc%Cpk07@x(h#@r;L#3m8Q|P$r=nSsz?=hrwFL>7 z+j!j)@eDVNQq}vXEQgcyH?v!-%5d%77G7q*#R|#703NQRclHlv6KM3|oXl@6U3#sG z+~?s6=DI4c1neBlu6wUYWKqoiV8f*uB0BmRtD~zZSwT|lnvB;}7L~2NSvyNoetfGl zn4e1_~(EXH4wt?S^Z#&5N6U<1`?I`;M0l9pizsB2b%OTJK z!m|V%@>~u#iYtAJGR6DZoK~`gHzaq=kCDeq1XEy%vG@lJ$hlAZDug3cA<5AK6a6JjNA@(cyuB4>tx6waRol?GZT+^GtURGT)76lK|x} z0BY`GRbK{NEs{6Dh)u0=unzhYX|*d>OqcHBL{?AJe8KflB6k9^XDypx!%&flTmQSp zKT@s+cV4bq)CB#Ris}f-`jf?jf%DzOw6MJtnx-2RL#8uY>?*$^nd*cMf*~~F?L1-x z0MKD_s{tDWU?4Sz9{^AGW74=T2zfG8spxt?=1GemF!4?z=K4XQPMI0Y^Q!Z%dHedi z*5}jEEpYP>%#gxW|2WtR)%^(h%I~I=#zjl}*u00rpp2czE717K$j1;YHInm@_D~>hgAF4Y{ zHa@_flNgj-fU08TQkMVc46PoMcf{VC=#iD-BF7pFY@V^|6kX4=m07DXqM_BnUu6)b z`33WOEoE+lYM68DS!+FkSK!_OWGBL6}Dg`k}? z7SG*WkE=dDE;NL3H7*4EceV9xCGPG;fDrocH^=HR#=sTsni3fc%>WqeEkR*X*A%>= z45t)b!{y61|MKlq<1;{)1Mt|ZQ3`pF-4Mb}k%y3C%rN7x9%8)lDMO@^e|TL;$_&}@ zQjvY9S0u}zRI}HZq)L|0$MiXtZTE4r(ss}nkL44~Rj7A0TdP@}bL2|Per?9A4|ezf z>9}4k{nuv+_ReSuQTD&M6~t5+=b{(Vl}NJC24r4yB9-y{gWrMTb(h+zYm5{}n9TH) z2zc*qdI^;C+K)2jEHB%yI*!;?ULlvzzd7HS09A@b##fD!VHqCc2H(_)j7Y3 zXePhXg9jYFrwClwayZMpN%nQX7Y|(EU#V&s%f*!?4lNdg!S|nGwg1BfU^W550wY|h zjjVu|ise~(-lK<2&8w?o7`O+=4c~TPJSiOK{f&d%u;OaO6m(bQ6U-K#=OEo7))2yv zWvr3~w_nzcVL^$Q*ni}tIHLI-Gh|vP^lMS9$~#$FNbALm{OFEdJDZc={+Dv=NuiUO zTq2f#QnLiF%KsrLc!DK1{n1+RPWyjvbsqY8q?iNgn_AuO45`t3QQk7yOw)_GL{{Qk}^mr#pE+o1sF*$ap|Bsl&aej^Pn5e=OM`(Nk#N+U;E z&;S)+{_f3k>MokM+PCG=_5P7imXCtQ>bD)D!I|nZ#4l@^@*%5>R;x^dV6JASLAAQ z{~KhVtDU#)a&V!%EEg`MR>?>Frq5cc_y|@^R|dbCIi;NgQ>ozcNhPu!35D8;m&hSiktx1`BdEduGuw?E3@Qg(iqPBzPGc z^?YFQA@#Y&i*G1;(mq_gxx~==SdoO?M zfV@8b*>c{to|5d@H&dnQaxHPSrzq()V`nZCHB;wvK0$w}n`;CVkS{HcW{CZ%@;`X#uwP)2%4(O3<{LjV9Zgi!^4L_M&&7N)XV!uwx zPR=rm(8Jh6^0_OckeDwr^uKOHrkz%i&$rpRnEXBBx1v&A%|k#Z2>WwIpVdKYaQ~LL zMB?s_s)8vVXVXW?&OP(c@54<-eYA@&FAHwe=|2Kul z^wJ*NAr()q^J79mtfnQO(|oKmYNvOIBezIZ9E)DC7E2}_Q4H0$+WYG1JnGGT-O*#% z_?9dhvz^{+l6M@3%NPIRvQMe!M?A`GI>`$&4Wxpjo zf4@CAUGi*F5mb{CEnjFU9ry2>h5PwRU7`>mO)tIH_RGdqvhu8yR)_z0kS?{4cldOr z*v)M{fIB0qedP+W#@Bg(DkR8%9_n~;G}+73^>*lCmJ-T@S#P|c=5Y}7822#(p~uL* z(sudz?%xn&$exOD?cXNdc_T|L+N1mYJYU_<rqfS6wF zh;6f#+vokrg1$39Wln4}uZgqmVEmt~d~_TiwoL=GPKJR_Zeo#6Z-0vOe;dxG-mU+Y ziq{zyOZLOKJAWp|OLoR~>hU*i|j$uf7P0&iWfb z12#{egVvvygV-^yt{YKz<0z9SKKB#(c~7}h=z^BMTfke z9E-c!DGO~5#-+JGJ6$zn9=jhWsu5>AymdBDRh!+&6g=l1#m?x%G(lys)&7V6~Z39Yiu6r;ne_Tr1kU@2>mW?yF$5*I+h; zQ`AbU`=qq%^R#^a?;2_)NOc;yf1bWQQ+J2G)`kKb%EAFq4qa@ezu zKZE9vaxbkMfBuS;NyO7O6QyUuMzU*KDin3#-M^moDytL7*Ti^LgbE>2Amns-8ug>k z=6pW6!g!&1aI10R3|F+@sS=l!Hmv^1G5*VO)onvKju#;7&9aJ3-jGnjfyNSik&M+hrO4-K!+4Cagx$ktFp<46scd&Iwg~*q>!|xf^1OR%S3CSgwny?HrvFKfPQ9O8h^i9~ z!Oc-4x1Z|{oJd}~x<_kQ*SL1hma89z=R5gfyxa4Hj2Z}T|+9^+_O{vYN`;eK$cBOTJ-Ua5c*#=0!T^j15b^KY>G!QQd83tHPSg8&93ImsfPI>l8}!Cn@|Y*pjxkYvL$hrAZ{}yJF4JCv zV?dodPQ;XT(*4P}z+Ts3f)HRPCaDMdC<2%t`$y)b)2TnR9feLS0;K%!0K1_lP{!RS z0CCcLqMxcP;PM9NPVpc2acHIz=xLgN5M{^WRp5`Nt^VKC7=ZnytmMY4>Zv@?fRZ9u_P&+aN?dR=UZJN3yFPFp?Tw+@7oHgU9{hV#eba(?H%|PAQWoF?Ls5dG zSEsHt)mt@e;8R>;0#$eWM~vR{Lz1AX-8}x}djtFbP|bW*#3*G{!C%tP(bSv2QbR7^ zvMq!Wfz~J%qPC1kD{e1I&Gnyyh;aa>c&UqYpN(MmpxN3A{UGr;AMs@;9WDp_ri{BA zFG#*_*Rh07SVu$t_N{kHEC%~B2K*p&@fGlPfYg%SA;MA%!*&gX97i!4eIbi561`P7 zJKj8$*O{wbJ;Y|<>nh2S>9wKhz#rpqz#V^&LZwy$rj6jercaiq39>j0kI{bLK{`?(j~EWp14XTZD6u2Q!y(nU-F$yCJV`3=-b)b2T?BM589(z_ z-WI;Q`7*RJJ$&$=Y3EyV&?Xl&OAIevn#N_*rTQ;-LIF6DJ>S`{t~e<_fc8Z(L|(p{ zkiHsnjY$X&_5*#fj8|;-IlEjNkFQj^9DNy>_+S~?eZ-J!h9LduN|1Z%P-}~IA8xmB z8-Dtbkq%sPAT5uvEYVOIiOrcx#A(G0g+=gU0cRtz)l!dtU5@_35zFWxE*8L0fDKqZ ztWM;qv*^;ZF?Eyn7+^G&T^(e#H}j8QNS9QCU}1?o@4hc(YMrsAmMedR^T0PX46gcb zXGmd=YZuT2336nOx+HQAyIN^J)sD$`8R!#)luynzU>jDn(xB7KNn=|SoR>Y$!QzVe z;bfjpnPvj#$d=KG`Xgd%!^mqSDi`avsRv=ZBrVzeP)Hf-t7S>0PUcPg_>eC%^rIug z`!=|n-ec%e!ih=Y#hy5EZGHhy<2Ke*_E{9Y30zleb!LFxwlilED%e&arU#-CaUaF(&zkmw-j@38syvu}wZ~W69zTHSmY)pqSAy>0Y6}_U0S+pAq&E9sxr>9)R)k zQyV$hhVz`>_9~xs7eIs z5f)yhr8Icp@3jOof}!;Vuj5&sG2QS~J2Xd?rvRB_*lgAnP~>*GLL!7kN@O4e*V7dt=%4ZPGi_ zh0GVWU5CHip|(*njvRm(5quFB)Iq$A`*7L~<>h4~Xk>%S_>?XC06=y~*OP$V=Dcu* z{>6XD3P&(R$)fu->nZBOH9kUh?~9BR@4I%ihVh03_s{yZRLmgZXi&*#o3W_}Qbfli z$nYq!1iYbSi_jdkCAaptf1AiH`Pw67b?*XoJ`t-gAxCVlmg?2sD_ zpvoy0di;dSigy$T$_(r|;AV|G1c%hrv^O8yWVMUcAb2Q(h=TeOto$eJ++pGOlOzQe zFEx7s4~HQcKQ+|2w~b zYI(NefImT4JkHA!aQ0<865esuYJeTE3Ni~vnll59Y`|Y107A^@YYP}82C&K|c>dnu z^t_n)4%cN0L?eua)2V;`?U0G-=s04(IJ{oknR5dBTnzn;5NRjI`x{7F@08Qtvbm!k zYgwW<9W?cNI;i(G?*~e`h!WX@9Q$59TZP={6QzfjJ@kD+K*fA8F%!8@4)9WYgf!!N z_?!)KuSVWEsuyr^f@SQDX>#TGT%U;v2kEz!BctbjKkk5V$lQFMYQ>nyA;9jz5mu}8{@+fC5Sr>@mU`vs|eKDVByk$jwsPCwID#2{wa5pae};| zq0His3jw40v%QFjom>u4KU)#=*$1V)g>y;F3%4jMbxRy8s_5F-+~NVg-AGbi|3Ck> zxARCve_y)$)E{agy1XrJ5R`L>e8+2D2dpB(TlZ<4qf_YJC+3H~P`?i{*xQFj?}VH2 zi1}LXXQ#rhTl^Z>G%y=2Lg?`pyJ~Qp=$`zBE9@jPYggVcV{JZIty$zTX;gS^j0;Ban<+UOxWk;D31PPK#WSu@R&I&+ksKz>3YPJOx7N25ftU2FJf!C$xSG-k?ROkvW4kD+FhA9_E@oq} ztrZDWcCV5Sy)7zx`BKzzCg<`;7pA<^Po~G9lHBfcLtx_$fN7J@ABVM= zZUP1g_Ug0WNK6qm4W6kh?hQ=%b7xV$BX$m-H2o=HmD+~7XS5$fenk-klRZc1esCOl1KetgOE@2%F|>%@oV=tt~L z|H{ZdmciJ+_aj1Vp&O?BmW0F)lNF}-sRefE9f+p3<@!b%R#e@P)FW1qc<2{9<7hUL z#vUW`j8+@u~Ua%NCr2?>juy??`@gmJIHuNIY5Q1NVL6aTG@dXU{(c zZJ9l$z)QHll0hitt6MCtB1r!4>0j=^>hzIgb=|JN-e9YBU9 zBJ~zBB=Z3>Ct=j`-n`Kn-*9(7+?6U_&PEvAdH1rESjujx_C@?hXg8ZY zm3J36)W>3sk2W@u_AA;`6`|sCMFRy>xrzoeG4_uwBr6u1R+2jeUwFs8BwsyNjRi!K zr)_;Z&bqmWZ!qCGp8}HXpLpLJEGpMh{$ai$Z89*{1N}v$+)_6$JYql~uVur-pN5v{}TnIR53&a7K6W96EqxRXC&PD-=zqp3a|s|$DWiwnP2)7zrZs7P*Cm;N-@Gp zX%y}=Axk0;r;P!}=ChIVCV3X=d2X-SD8~`l*dCTEv#sjCPE%njy6}s3rCRZKA5Iq8 z`5w;)ZN6I(qWmuwtt6N})l8d7`IbY`|A#}*JDOVw^0=Q}?Y@__bovY0q%iQgGk!)6 zcw^V?dMcM*=4kBwivbg-4A#}-od?HL9OGo+eDOa{zM=&k#^B(;?%#tQHL@o^)%&s96J@4%nCZR1_>m?ot# z4kT^46$$Edv!61fC^`X(i9O5Fy1< zV+fA4sBBL%SqE!8)7NaOM^~mXr^8i9x{b)JP07%;_39o~Tk@`}=K879J$IVSa?a%? zC04T`G1HAiDl=1qEcryJyM@ofIcG_pUkV>>^AWd;><6w(PKCaSFBi0u%6u=web$sJ zb8ffu9`3xyYE#owsVGUc^L{yXvGV9_r1AloC!8|JsuVllXNBYom2Q2T?6t3-^gyS1 z)}>P&pbT3$zz;oe9}(gBx*veA;{75xcbN}rcHU1ba!yup46S%oyDfmZ6O+$@K5IEa zu&mCq=W%O~4Cmrek%RyFY4a6c%U$TT_bQK-`4+CDHCb)hL96Y^dzqlsGXXRkLfT*C z;d0E9F*Hbb-$_pB>r-)MKK6vl>#JV-yOZzn_w%)m#dgM&^z=N`ltvxDoDbZF*ZD6} z+`GAii;;$MuI|IGfX7JH5w#r`QKVGfq2?)?zdGa)FM{F|4p{`aNTKP1z21R!rGatp zv$q%w9co`_^J54U|5RmlIfS2gYPbJC_TDq72`~BX54gGpYma^X+6=z)MoAFNVlwv>vs+tw}nDzJG_>Byd&9dWAcFXUA$-5 z;6pIx9z#X434s@gp8uC4ZZdgE^2-9KMl`c9IMdUZIugdsBY0uIfhbTP416{*TAV+s$G z2#UNTY!~lFi}L!Dmk{g$Rou0cbe_L&O0A=&_LAw>yZoGgxd##Cw%rrrq~*R23b8G3 zG&b?ukUaaeN4gAr>a?;j+`+icawnyJ%gYRC2At9sBewabw zb$oxDFF|pj1~M&qK1QEv=@F#%M|z9UzniZe{+1L8+4RlTnGn4X{zz{q@l9ttxoo`L z_!@WPgyz+PAkV2aN#L3BBfIw0{W+BAWf76;qfeJ=e6vc;`)eQEsb9YO zB1zQ|dwWJJj_N+9Ka=x@y3A>9J+WHdM=W8t}}jA)yvH@x{eu}N25?~ZF!#RRulEOfdiJLnz&5`K;PBy4EmML4q@qq9u`Mrbo6sZ z;T%mq9{a-^GoAMTj*XJofFmo(P_$owd80;ZN_h!`ogL=Nn0LXsqt`fGxs5A7CZL=E z&~c;&Io%?)92m@xNRV!g(!J8fLtS{U;j&MR^5$!0hZ#$K0#14Jqt-L79w>&*qV8Al zFp^v{t=*Pw?~d!u!lc~dMtZeH#$ zi{C+;oa_usQdrae51Y8JEn!Kt($S=`lcx@clu4-g&22*ipHTd(bD_i_nAeB-%&Xt^ zZjX$)I(fIQ>$+j1(T)2w{&ybr?vRDHE;DQIr;{b{5aFXNqcE?b&mRmS)S4O#DSC&K z!XeH5--03m!J7)+@f|dafSB8g)BBswX@t=x7lc;jDk%ZU%DMAQJC1c>VQEH>_D&Swx!9@VziTK}kP5WXNZp`IG!0 zAnbdKeC0W4kowd%_So;}aLyeWQkNVSqr#JsPg|T>?4%V^m;Ff$@V>I1x%BVN??mZs zBgHQGgU9r^zHmR+VF3Yax9`T&PGdsV#Mcq5&^i~L6##O2M4T=YhXdNs=;zx(a)dkQ zUQnc~R5ZlV_V$d&zgiGNoqiyBNIvT|zS@_&Z({X=3C4@!YO6M`U7}!9OZ965k8&^& z!=dUWtutQLL|4n-C~1RhA*LO8&-u%)XZenYH6Ef{Mxbv%>b#}Q<1ZqQ*+Ljz_%WjA zY(CFl!W;C^;hsd0t^2HUIQc%D7H51I*Z_Gi-Qub?L}BvQazN%G_2h<38?LK(0|`?r zyXfreMCof0I(-!S@wWel@91eZvHRSI6TRt5ToDS2;We=u=W^kf0m%BQWxOxxC%y6V zpw-d`e^XDS;jnCXvbobd)p@EjxZufwmbjGy1+GHKb9I3_`U(+`T0xZylLJ)2v`A`P z|KQttuG^sDQ4}_dtgf{Lm0y+;K7JiUW#lkTd(NHrO}0=qth^u~7GXTp zcuXkO^X$q7fcE581B-P2s~oIIE#wJwOyQ?9o7p4ql~^6!<2_q=9Um__kk14u)TVi3 zkrn>?dd-o&>t3N12%1aCIX2L?Aa{$Z>$J;7!0{>Jks!c3C;j0zD`m2U5Jk5i!G}s= zh;2H|GR7Je_ug3UWa>t#WAJ7~lUx#1_T=xrSbOn5PU9r`G%!-cV)gxRhT$58IUSQo z^@89|X~Wrj{lztFoNcnl*6hhh=K0&gxieJg%ZOO#f5@@C2QiZP&3C&c_9aa(ojvBQ z+EAm67d{QLJ&AO7dr)Rj6%Ii#m@;O`N(k7JGw;F2J1wgh#h_rGYo6v2?ctPN`GAu- zWdQB#(g3;Feb&QO+Z%m+!$R|(PBHEZM(-Y;iYcV0{5oJezkWnKtt=Rc8eNOX2xAfs zxGPY-nO5}Fp|;|2cvAPb8*k0V>y66{Z>znS^)m3egvSfx zaG2u5z0honXx5jL1j zWPK1mvH@ZlO9Hg}lrUu)*cEQ9U1lM!;Zezg@03>dD`~5?zw&Wr03uT7J8;=I;p}8} z(P%T=CIHz=#IOn(6H!H{D z`-PW!ma@;klns`w=I22WR2nzs-|#a_f^V;!9?Om$7@-a~VRZig=5TLCoa)wJN31I> zvF)9#-sw-LqB(wIHlHr@c7a_BLqCxHx<6Bm0v-3_TnrJhno(@3 z#?CrZWKfZ_ZloxN6DMXp)tJo3*DW39M zK>z%@3`~#DK0iJQH6lkjQ7CXiWDG)Z&#nT(xh4+*W_ApQHUzM$(Ks$J_RH0wtQ0E60WXTn%R*SF!O#{KQg9DilwxL&$oLe(nZMMbI<* zqON?~$iI0X_w4Lx$23DY#|>?6{;f-buP>YQT~d|sce=+zE9#Y1(VyEL)Qm(1_UHcc znLiEI^(7sq4MZV9hPla|fae=u1OKe^IcOy^$7XDzF~9p9D<4oOSqFBH49VZeNO(O{EeGOQ01`;e{D?XTFuxwXAh+l^yBrS?{@w#@JZ`` z*n%ZD&L#GfFCtMlg|z?t(W#pgi8l1lpwZaHSY>LhQC0+A=uvZRo6GOjcVD#iC4FH5 zWV)8Wm0^9oRPgbQ+dVB&>^W+>h)b?2;0v)LU2k_+Or3B=o#&P*-TC`ghBFrDmtE>z z{5jY89LYE6N`?C(-fq-9K=@{O1`!x(nFpHxut7?Ef64{D<1*gbcodxNH|#|s(~UB* z`eA&}0X#CcKeO9oc6XFzqS0zSxD=qr6z*l29E@>nQXdWmBDz%V{{uh$h=(~Z?oZPi zH#Khb%gGXn{bl_J2n}fyC;j+GxiP=B;@i&!Wl+~aoh6;ZC>qiF!DX_GXNGG4806;E zh2@i;<<~;TotP6jxtusc)I zC0DLoZWt@?uEU+(bC4oUf^B_na*~U)2$M$^*ehy?xiL;BcvnQwFX0) zfcJ~*rJJFg8!pB$>}ATz&W}r)-u)#m{vr?%`2GF;iZK@A>?zS*t}^4~F!oXGTp`cC z5fR1ka;8*n0@w&w2EXTI*C=FHy$4}dkE~$yJ-u(eK6dg`=Yh=8Qy@xVq7Re#s3aP% zP|w_kMo6rj@mYhxGwVVTym!@FO(E*IIp-W+;6dCtr0pIRdL|XZM~OdJI7PjGP1?UJ zQb)laE_nP7Wj#wzDVFC#vV6JthOyYtYfnjk@Foy`Ocxg<?U`lW<_%3}&9}X<`zgjvuWdZ$MF+$aq!-Dx+4~YQdz?exScZ3JP$X&^d;^K^ z%i87{oIkDBj14!=o;NhBG|oE3@zhW^N09`|emGydc$$`QOWlOa>=pIc{H;oX0hGwy zl)SL9uEw&v>Zu~DvxJgl&tp^Y1^&Ti);Yz$aq(VU2k!Vjg!vH)8Ww^qwHoNf`N9)_ze$`R|3IiXQxuuweH&x-)f@5-KDYl$ z#V+3(__=O)$5HRj9l4PEMfldAVYt78w2mMMUZabS5oO$lI=5Oo8k9M-5AC$KxBpVj z+moQH&NOj4R8(QJ%^66-D%F3dcwK5p#P7LZx(4;Qo88Ne(L)N92je(INHASV(*eQ9) zr#5Z2#iW#9_z^`&tkRgUNiy%F0a*N5>(kM6#Z~g=A>Y4+cLb-suY}DAS%lk+yISW# z?c>2oj#C-yM>wt zP{9C1g^NZtEZ~JZ+}CJ1$cr3mL(A8$l(|f!{UC5&?WB~0iVv2fq>dmn&9WU7JePCNls8ymQ>lVa-Dr3&&3n(1f_ipa+)11ff%3tJBc@%J?BZiW)yg-5Z zlC(+hFS;5G+=TCO`1%Xo`fBoy!sK!CsI`;PsP~FStu?3M_XlkvJR%+~jmX(74#!$Z zp9LA^P2aV#rTo;Ek@Fh?LA`q*=iz}roIJtyk-n7(3WSD)L`CPn6Br0-8WAt9Gs%G} zNFCfukwSW^Gu%Ywm=8LEX1NRbEPNU7%6Fna93LO9q`P~~oGwgw zmR09AyEugwnbCoal&$iv0~U$c{VsK(-B7(8Uz#;PT}R^iyARWKaze{p1w<|>r>T1` z2fr%Pya-}M15N}DE3yb1->__Sj}l-D8T^XI4hho6>rs!emVWK!32JNDE&-;(9vFyg zHUZr@1`{3!vx57rWv>sJ8y{2N2FX{vaNiqWXMVqUgAWpJA+KPiBQKh?O2~;ZIXIm! zxjbI&v@R#^l7qc>Io*6|*|AkT?{Z$hgT7Ubt;X#zacC#%2CM+}4l>>W5Vf9RyrT;5 zoPhRqVtn|+48AA#w}dS1U>_%MZ1ob>b1Oli*`VYElpg05f#su_&wn+R|0H=p^up~c zsk{6E3p0LP>dvQrTgOGC8-{-Px*zFGkA$t@k;`-ntdY5wVb9Ocn`*>_T$8^Xt7xfr ziTnPV>LObG#lAnWrieHd(3txWGF;V=tZq$->3oTpibioT#jgxEAJz1IV;I zEe{0jy7(R0J*i)j6G$*Z6*g?Yoh7hc$4W+TnElu;vV5PupL??LBRwsFP&p7U+I7&{ zJ-e(FyKA=%1r@xv@wP2hwLQwL!m96`>VM~+U(VhB8auH}43@w2K?re^D<_PTPb`v+ z>ipasa{L%In@(llrkwnWhV0{fFd6jhFG-cM%ZLRYj7A{p27-Y-_y#{h$_4%i_7HAz zGd@W&5?pP~WS%v~Od6`5Qrx;|wIvikEF2NW@e^Tui@0|QJDH-!+i@NZZQ;6rfp+ld z@q9!0SHg1Qc*)(tBKVeCALNX+#XLI^et4;fI<$4h`OX!F|Np$GMUfa8uYZ)WSNa_d z$d3n#YM2rQlK@+D5n(_fF!Sb#nle2ND-HQy^bb@pntnDkdGIr@4IV@p!`p<%&R==vCbMDiAWMqdnxV`~1S+ z+B_ZoSRIRNVK_6gxCv^8!DyR6?o^l~Ls~oK z0FD<;_6tklwrz|!29p~_VqnsUeHw7k%Q`8+_ zW?Vxg!d?O(=nnvHR=6#E5WcM(W^;*&UW5`4_;>wejFIJL{0R^FQ%Og%bsrT?|Ji* z?{a+HTVnj|R%wwo|0;j{alKt}Q>IbXkbYEE_}$Ob!q!1y9o3@+Gj}MtxVlX3lXaNc zL*MSY-AH^G{Ok=)9hbz56pOoij)sxFJG4U5^o9-poP8uC%)6>q!_`0Q#!g##R>e83 z%|zBjhlgrKx?@+Y1w3RTMfm@Q-f((9HvYouovrShu!0zlEQKBEh(Dc`_83f$Z@9q8 z9o|31c46F0t2)D5iVk(_e$76l(Z=-N>a>OXUMx!^UL*fTu9T?nHFYViCd=Hj?(s4k zyW;YqrMrS?Nr5z7$G*gekV)VpPJY(=7>q?ZtA5XFak@EiZC+|vspJLH;ylv=oq1GP z2bt$hEqjD{-@EWL#57T9O0WBJU6NUo@bjCOtd&)RNBjGAD(r`&eyx8cO^K=dZubwA zV$aU)m@=EP~V zd=$QGUY9^skyp{P6mU5a^)&@@;I^ zQaN^-U>>sP(M`+I{Dz*`cnvykX6j`vC;h#qhdP1ABHwsZeNYhSxfMH%azll=y7Zag zS>JRX(QrX2!zuzlR^zVj3o|Ri!d}U3+Q)fJme1W2(QRhG58z%eAYMn)q7*ch`2BMu z*}sd@LoWfZngKA=I-C!J>8utbCtPIH3Hmpg-QI_&N=lDZC}rcJBJmh(aSfB)3wfrO1c-SmdFJ)#i?E(Kznwxn)f@{eX;nb8`~ zYw^D_>_#K8B%Tq}Rd(l=8@q8N1%veLc<--_>GTd`;B4p^0ea|PVsPu`5x1bb8`Ld| zxal5tiyL*lNANBB*JgWd@L460A{&ww4k9TzPT74v+^63FUW^M=sL-SPM4uJK5aa{M-K7kkqV|=5~0NetLM~{@I|4e}(>Y{Ixz} zs}~e>K%f9XO(W@<`lYxG#!sEn6l5Ll9Zu)z)DZl7=Okt7_xiTBlCBF1CNS#XN+7kB zrMhw{={DXD-mD3`VP5111p%byki(HoAWPptV`H$ml#OV6sa!a(EiL~5t4aRG&pp!5$CH=0;2DhBj&8qbtR=DueZ@6Wg! zZZVEz!-1de7RABkTER59uu3A$&y0SrtZ69viys2T!mso}Nj=@m1lgw96oai4*Y>jM z`PA<%={T{PITua(if&u22IEAb;a4rjZK;BH!>)VMFBh zdIYT;0`bCyirk`-`u&d3+YZuRuk7|mRO^nvdreN@zovQkjYU1Kwv4kJw@6|hjk;gG zFlKdk{!X!+k_F;!)PNuIi^JEo(7EsFL%Q9JS|Y=6$w&F?Y?a{0QrxACHUvYBu#iR7 z6{QQ@@A(%(3uD;qu+^zjf7Ze`(%!BXUyivW(YyCoHX`>_B>~>oWpyX(4ai*E?}Ua~ zCUm9wtzhQuZhX>~?6B%Bz7p7NbM3ArB&dufIi$zTFHw~o8Kzz~QaX3zai%e*;#X%< zNSv(|#ao2bSZ;3XC$|!^pOtL+&JphZlpsysV0$J`PnPtI>+@gQFl@A&XN;CM!4pWs z*Qb0BDx&V@dB032>J1_&R)YQkPz!|sT%tJ3`Z!vE`>bhawR4eWzm(Cz$ak_A>pP#F z;(k?HM$G-+@88>6iLI)B(xrp9n>ozLL-c2bH!1JIUh;z~uaA!gvJ857y2{7o{!t8^ zUYq1Z0h>qRLEyO}PPj!*0}E+3thvX8Gr#(f5Z%8LvG}}T;sS#{I8{*t@TbZ7@QfHB z+{fNzUC&8_eBZlxBfU%GR(k%kTf@ZEUS({Buss6;Nu__JFjLyf&5bA2`n7J5juuEB z?aEWw-`Ys6N-nCwFBvGX^BZ| z@Ho@v&wKgflAQEuG`9YLa&Asbs6g8ed%;4^sS#6U@b=RmDV-t-e%(*n#X|)~jChSok;aS_Pb8VML48B3s?9iJw+e;=+K9j{excph#qn2?bt&$F~vR;d2?N=SCTxiSy z;3Ox1G)J;LiOLRkX3y6w@p|zic5HQQ)zNc*NbqaA9RADU&2g)u)UnueTztKu7X9}K z&;boIyi^XpF*ALnL_7eUZRM(6ImuPsIoy&XNb@EqXOg2q0gR+z0u=tJo{3N(1qV0F8^M)J4}D zz?bb(O~)XbyYz~<=Imz97a=fxaJHr>P*@N8Jc{%FGc{HvtWIE&E}IW7E=oyr3G}VL8 zg#1_zFY@zSa;Q1m3N|;76Dk>g`gi-ld&oMn;8|hc>^D(z@Gg8-@=9Nk5ZzR|qxJ76 zBl#4d8_?`~cCk+n{^S7+*)UC*_WA|~MiE&U@G+0P5HjrTKb3=v=K)oHcAGfP#H!Ja zzSRZ}35Le2D)KYalw_Uxc3j$)R#sN>dpW{MZL~AT@$B@gUzH@u{(?rlup+=o>idLK zHB*?s5M)}r|5lsSG>j2gB8W*IWf>F`4;>9BPZB>o?s{lxp!X~*IQUxm&9c(!KYW`` z{l)+>SJ|D1V41eNL386eY>6BCe!KNON9{BRIb7K5M8RW*3IWCW6;GYOo46Q7j1^?* z8ld|up4CZ|q;Jj8EK~WR8LOJhwQy`fUE6u-m9&y_2-cHqrE55(kzc$p_R~{vBOx$>~hEYQE^rXpcgIcbMn33XGzjMvp{6hP%{ofYi{=I73x(VchvEH*hRmG_Q zw~$`^sqCi^T_9Zd8Ip0x>5X9iS3tKzit%E?-FSzXzItRWeq(ywNiG~rSAB|uXM6yC z-cA;f?*i=VFoXc0(<=1*xOoY%Qo8g&my|PO^3BRd;@PLoT`bedQ!i1ZROK^E*BEj_u8DgsV3PG;qcPhx2awSI`v!mY*A2RJ72A>cQ zN~I4&Qv6PYy!Rian&_()eclNEhV1|LjjN|e==bTVnb=Z-_k(4&LvMDvdMey@=rstF zY3TVI+^~Xc(B0%6j`pqsC~i3G1{11F3nKmts`3oLpU^--sVaAJq*Fze8@fGAb zCkaJ*<$rcK}r-+(u^?xyymZa2NM{ zT#!;aNgq9GJmInxoV_h3re0C8!_IvMC!P$9ml;8E<)K-K{;P!-FHxYN9>~gRV{M_i z|9nR34X`^08V`PHGUE&eK!Y*)*7}gJuyY9V6#q`6oK_YPGqI^v`C;}lH~i{?p+1D; ztZ&@UW%doJVWR8)_ASkorrtlpG2zG` z{joC~GOL%Bv1f)X=_g;>V^|KPAmKzkD1!dleJYUEM|aAYp){SodRo61E#$kmZN5=^ zrtXxQV(fEuua4@)c;52z-Q={iY=dHBCB5@4SScv!Y3F7s1Sa2SK-cjFju1a&)Fr9% zX+Qy!Iuq&)ir#39r9?Ek++#w2254>fPswmHGxXL*bCBKVhvTjE?95C~R#twETf;{; zmL?0e`KP@4=JrX)Z-<`~yC7{vgNau&Mi{Sw{wJa?07dS&c~2sMND+2pLpMjWaQ>GZ z>D}U_>%rOe_^v8{Redl?%CdTjHs5NVS{LS@-#J)od^s0vEVZ%A zAvbqfIoX%r9|1J|HD@S*sWT<<!F@AuhH_G5qZ{s zZSCwnbbFP0nFd;Hv%Fp8h z<$%lZU!9H#Ghn%^wk-~BL7UOKD6mV!yzg4DDbUWDiJftK3U;=*t&wx9LnU?dADukU zhNsTfhkFhR=@dX8Yc4tB2Q(wQ`hSMuou;wl4(<*OyW2&^(vp%#G~;eh56Y{amGpi8 zPS?{bbl&`C8&VQGcy(`aToVD_-T!?k$>CED`OO8bR3@e{=4w#M#h7WS4|K_(UFlp8-GX} zmewDMos4R`1%sI(a2z#D2EA&~ML-uIQtcmhRUOkLf9882^JTw?g|tbic9`57GZHu! zQxcb!R`+hpuV>!V5~r5n)Q)E$mFPS3uysa3%yFkP$_1n=|3 zZ1qZ%gW0%la^}tblSI}0_&Bo*E^V?PoOQf@o3HBNUWkXEw|-5UDK|4H~+-t5XM zEWDeXn!M#3oX+2ZPv#??2`nzKl3VaHCG7t4$5cROYr2~$Nw7D73kIA%&MK1U6;pg) zlNsbeDwmnTr+x>s|7TL^^Y-{#W@0m=YN&@88`` z-7piHx4xrPc&8v?Tj=_x69j_x-98eIYbVPoDz!-~tE}M?hjI5uHZ8#femC zjOc#|R*;NglBlMYYY@}rqr2lBmn&AEmL45@PZ5)8340~Cg?5E?vO^Ft&h=NoBpLwK z7Nl4~Su??Zen%BQ`s2qplHcE=>$0aEA8JM<4G9zNT5aVH$;kA)&ce~A(k(5aLtWEB zW5;QNf&(Ojpkck?{#>6ERmKOIG341TBHoDrQ;NX+v+7ihEE5-wT-VGzWSok#X2$)5 zqH8~5B7iClpm^So0jTq7l+CTjn|%oS==V1gx{erlE-N{%h_DS|iPFZT*_!CPf6qN- z4CUA300mSqkU9X=Ga>*YoAo9YvH>3L{M#6WnO+zG$CuZ3 z_*g^awfUKS^Qb;+$8;@7vcKvh=1=*|F_vtYw&jH&o@{K%08Nb($Y(j=A)%Jsu+F~2bnT$Ba=og0u5bSPBl4kNm8xmuNe%4iI)(+5 zJJSx_zxYHA{^SwN=Iv>XD#nZb>UE|JLlBnqZlXqZiwkX40n998AO3_kivuFGx%s&S z69}tJr0TQn6sBXn%9@oq^Vg6g|H}Kkh9TmKDqO`v741&{(UxTOej4u}>u0ho1Zp2{w(KCMS}Ucva8mj} zG!K$aW}F|gG=gt*i%=(n%9eIGrd0h0#1`vuTSNWtISj@d5T}# zd2OunhV6B|vn@7DRi+6fHqXy+pd^MmmvlM*oBXDd^U7zs_e{|9=OI*rhY9cDedJkR zi+A!(!}1A2H-AB6P~iI~B_C$6dZuGz*#EGt3;IM8AZv?w^#Ki@;Y<2sd?~qdej63F z>tznu*e^Hj&PO-w492N>^}LIwOko`bEdvISFnLyv6n`_}wpW85#RR|kfyG}^i?fSU zo{Pq^R%DzYg|B##!pm!AWA@5w`X|v3b*L-7>16UmL~f8NW|s*JzI-Mdp!^%tKOT`& z4k4GuZ>O=&Xf_$Qh;`r0Qh?|ZFuqqj+3w=Og#M;t{7>FJz5)o-qikaD%vfL{sN|lO zueMxds-YJea}6Lgyfd5kj{*BUoq4Z6_4-NKxYJQ*mCQ|@HwAXc5LUSf-QJ( z4v5@TE*8&vaF!2o@rx(p8xM~#)!Zznt<22d>ZCP-@m86b?B2|S^il^dgSIh%=JBYc z`eswIN%GiETE&hn8+*=hY}6lQS1)|tI4v={Z9Bd{Sy@{<;Q_J7l(U@{-CNn%kWT>9 z9fntQEmBnIze+GsXkUbQ3{A10rfAo6wM@KG2nw|xC08G;PE3FtkUpWA(J@^Ag>Uyi zJhZ4_C^~{n?QnB*zwdRIp^7s_zV>!{h8^n}#%}zsvLCJ&{PNfMk`oQcQjxt13Ij!+ z=CnN{l}r=I?6JPhmb$0A^FM-ft=%@1#qUboC;PehZ*oroVw~PT^&c9fmMWH=``X>q zsnF)e{dolQwjGL!=N1f(fSd-BR8d``int+G5P5tKlr^rH+I|7(_m%JrQ)cvMq~;&; zNW#Fza04Z7Q!;SvgCzu~64cD52y@0u_C;%!c??7liFF)JOIa1wCwjJxe5lhadf+%? zyF#Q7(KaH*zYvDaS}oKAS5QvL`*!YL9!Ha(1LcMOZn~^JKhv8;kOkE`svQ zr}oT;CqC?opyPK>#CU5L`u^pMP`!iDFI5Z-L|*~6e`-i^1bF(Hk_;xkg^?MiC-;HP z$ZDO=+)Z!>`wvcFa2M4nmMm-vFs-fkOBA8{Cr35f{KQ?sQfyDC>`~`I&+$Kl>sd6+ zaM-<$-(unj3_h56tKslxHg>Ow;8SlT#xZ_0Ijfme?L>H7WiWX{89-8zV4UKAH=TXv z2V(-x6$YI9rT72^TnQI?bDB_79(K)Z4f&$?*Dx45p#f$0R?HuWF_G&xM3W0irtZ%C z*xNxc@y~2Lg z)n5;V_@3phLjx3=k=}Gn?27Cyq*=3Tq_l&N#Ai6<&7wU6-faaf*6xF=nHHQxuX#NsqG*!O#r(R7YaReu zy8btDKrw5##N;w)SqmN)9IMPrBw6 znDCY=TbKBh>6H5D6XDi9W(ds4g$1h344I`SHN^*?RuiJm4t6hqfIsBS^lu;=?#r zE$IBGU9`6_B?ux{Ga+GVkI2hme*VSsW2dtX^@-QL_tTf?h>r)dlqDUqKT03)AWkFX zCp_Psji*EH=& z0c}N&hlVlaMftsMrLWoWo*Bktt#Y5;Ew8vwF5>(4+08BVeTM}4Z|)iAP8&0vUY+;4 zG|WxWyw=!cCQWF$eRmDPf0pE(E1(a|003)M3=w%6DMM6h6L6&?H(Eks;;Wn== zkR{k@5JX>1-&f1K6gU+!NLv3$*P0PK!^!`lek$*AumUk{E^Vj#_On-=EY(NILe`MX z+13kB5O83E>d`%ASHO_(TtE4p&~#F{O4``(HTcljGMV(EJ(E0YeY?98(=;yXXDnWq zt|e^?$!H?MR>ij6@j1)vnCH%=xMlGX}4*W#ne*wp2Z_6)|K?oqO-GJV>26jin zZNb)ym#I`40RYkZYLLu&U6iIrKZj&^w`&%vw6?aUDOc@mq)8m34X8ZV+*$UX@2O{v4H7xbBDm1 zpM}yds65JTiAvFU9*y?=J_*KDR@8?n-N5GhlsrR!t0G>aE$J+pvquYZPa@>=ow6E= z?~bT*f>#;`;O^hTwBLRj03H|mYnr|m`ZT=iFTA$m8b@~U&T6*Ob1!VUBg-1A9maP8 zuge?-Uw0xjHHt+EF!l2f9oa#E6nU%0iwuYJ+60J0wKYyt4Gz0KmFH6{yPj=VEK@s zCcCa!`gQhSg^u)SFG558DjD%u3i_raZ{z4L&D!oU;~y9y5E@+$^PN_Lk}c z0;zexMO6Gh!ZWjEt?t?S4Bq!xYicuY!}u^Jx~1F{`BXa^?bSJ}C5{B<|3ok@H(V{k zQoYyR(>!;I@zSl;Yk!IzsF?Jt9~;*E%L@LHI~|WY;q4w`6*`cp>>_2Iw=hSQtc{c`a+K)vIH(lLW?e_CD(;zoYC{A;Ulx95jC z8&IR^$#fau!Wpds7tI^j=F8c z595M#-F+LK{%Wd=wDCc@_cb*MgIQ3Gzv{E80VAc_uQmp|`}+Jo`;qZl6>sys=JAa# z-+aoj``S`2y?=<~dGu-$N1Qe?ICuwsvF&SbxbX$_!U@8dpe?Jphj3w68KYkcv>YXG zJn@dNdsPg5`uKJK*~{($<89{jNhPHDWFZA=fXoA6FyE14Nb^uc|J>v_Sp_h)(=THWg?SuJn@2je#&*+Q1PsKfy2usF3{#qDC#EGyZ)|c$OLtY>F%if$2@~Np z4c5+}MF1euwmqn~jO94kA07QM`@rdBKELM0ckTI{ov_aZ|!MW zj>Zbiq{tURZcT}m4gtGeSd0$;AO1gflLOZh1pc_QAAB43J7Lo`x;wF@6DuMaej5h3 z;2^2}(rKxy6MmzKdZ=kmCf`U{M&{)Ffg2evlv`3iR_j*T5qUF+_0;L0Bc9}(Dvyit z!jFG&<@xILP=yIVVH`*9DL=G<$lmu-jWGeJ`PWbDXX?*;Jvfc#W7Ldq(`DAZJAJgm zrOk`|WnU$w!+*)F#PtHwTwAP1*XM5>%d?#s#`Nkk^8_f9JPgq68pR+Z%eW*0NE!$G z_9b;kWrU`ALI^;J9rDu2~vgC z{O6QJ2Qb3|p_?&Wn*4&uI50ka5pu*|-g9++$CH(Pjrq>o)Ut)qUZ0;u*xklbhn2&h zd2O?}S>20NssVJk$lr9tbPPGo4mWKzlDpy<>iSlQ9hN?|-<`g1c#)QP6gW*V3?hw) zh__qJcr!rteD|tQHG( zXdtyHm-_x9;J0g|p1&GIKoGQ6h}7N47IMs2+T75;GXFaLr0unz=b2N}^hnfoZWAl3 zG%|m#RL%aXOz!qr_u_fmni^kQ&L_A;A^$DYm>Z|RG^Sqwe_6WEKda&&ZVJ&${2l$- z3!SDWJpvNz4*rc#S|{IUt8kmM9F-60gH9MhOSwlEoa~G0vMDex=C0 z)x9|f_~8I;lLET()BGDS5r}=B4|Oh$sJZS_QMTgthZ}m)Q;j-oEj!2MWN_r2ikYMR zn93$`1%(7yvX$T81~Prd<>gg!ZE=?7@X3k z+#s>rVcxhFjzaA|^?3jIz4gZ=u!RAm_@|wyV`QXCJd7Y8P696H>&!QoHL466S0(%- zHEdt>?z%@2$64^d8k3%4aQ6~^`fsB_2k40(!fokB2|)t#2^-#ubDw? zi#}{KQ7x$XPhQpiHY)l!#d7DNRo4nWXl?X|h5URgyw{+X@gc)@)2n8(9MJ-5L6JKD zejs&+aOo5~Z*Gl0o;tZotUXb%jd4ZXKMN~Sd z$QxpGwi1hYmJaB2urL#f`BUC_k=;YZ-8-@}4X}F!!;e2bZ7fZ*h`dbRTuVPm$tDqf z*?)+zqqwJG`N%fCH)P`SdL!wK&gh&FACj5lsM}?MS8&ZhC`1}+xGdk_eDMiu=o8X<&igXw)5B&R=*`j_VxZBY8d?CpU3Q3=q zo4C5Q`W{9w84)^XJkMbq9VhSHyCsMq*+{dTR(w?=x?Y4pwLhN6MC46~LC#A-{EIFz zsoUXfl9UeiI~hi0v_4qYD1zG&v|Z^^r=9J-8Rix8Z7q46Q*_&LS^Mk#$)I1RN4+m zl2r%q{#oiBPI-SPbYg~4(uWBgc1ooh!6tHaTW62e;E39qQaGaImtPAWf32+eh9d0Z z(*y-)={u#Fhg<-z_R0Ik@+%)N4?bqsadfJ6wS!ib!RkdwWL@2lohZMtEz*$26)v&czaFwknX{Sl~~MV`8yLiLH|YV6TVOH&8q_5wB{hvSR@Up$UnEs?A&(-5fh=Uo z^fbMyhOwU*@0B@_?roTJcPEveOr}LLIe5BI3*Nfb=SmTO)G0?R!6 z$8koUwT<&AL)en~W+nDb{u4ci%f44Hc#QNb;#$-m(CM6v|Fo&O9La!Byi7q0p~>ci zYD*srcBw!5<#%S=OH5#Kzu3#v|3!Qe=Zpe5p@DB~K6sh5NV_ZX%J8W$z4LFO924|1PMX9b3vpGu&J9hV( z`}=x+f56Vn&ULPHop_(mfX@IX?i+Nek%2_t@8@A(x(-WUrco(r5WC1;O^6hcQ@uK= zqMG%l%wMHwEjR>gOo~5Y*w)f053%(F|9&UP;V*0!Xql}Pf;s>@?rAG+s>4kSN1`?e zcBCoZG^C+&YQJACDcJw6uA?8O178MG?A(lFwx@N^ZRv9H0|FCcf!dmm-~8@y6TblV z@I)q1TZhdL{qhrEqOc`Yw>`wyMx?j0M!Y_2)-`N@V|!_!uzxggSmd4CoHC14&c0BeKtq^9O?r`^iYXR-?&SbAN(At_}Cx6>uVyyayZnV%s}zY>Dp z5u0*e=RK%kqZV!}=7#msL00gv7@wFskTs6o5aD)W6_YRvQV}T0x#;K1z8Ei#st_&r ziC?q2Ao9}3dGPO3!8#>`-u@S}(_rf09OCqtYUw&6ekFe+Y!z+~J`0JxJ1Hg0&f<9* zYQBEoBJFlLXrStTL;b<5)MG=#Y6Eo4`^XW5ECI{HnCK-PYt|0+AvwonC2UDQ$gqzJ z@+R(fU{`MYH#BiKbowTRNe6%H-c=iS>PHrvrA|ukAJ?_nA*?YSpr@PK&8o+diB;SH z;kHelgOCe^=RaPhf7TWxTlg?Q_gQS*6Z;X=x$Ni9pM}1JY)lP(pZFaM-m}4eS{)rt4kUPbjtqb{ifkghwLGMF#e3I4^C|lj%kFmdan~KLr>g z2IK_Wxca(!Igog|p9Htva!y&2pj%!dqwg>tAf)y@qrfS1Rp!0rNes66cJvWqR2GYv zM*E88(8+i+j_S0^evX{wlPPdvWVL6wpKVnb1S2)U{sMIF@tFs0hjP7QxY>ph z*_V_Y6kSq0;*e~Gi+vILED!0owiL;7dr>Cu5-P~xcB?r2iV+^O%mF_h1E2>qm161_ zlByb9?5jE9XSvqWeRb|b_XjGo1N#d>vGwuskIjEcTq8lAk~9>^VbHDJ^DJ8RVLm{& zZy#i3Wd%kB&i${_$VRoB_&5)1N$HOolfI;5ybPzQp@v@W{mnkN*{jyHl&RCvq(ur+ zvIjo}jsr^;#~?;ZX$llVC2C@c=lAhlzE&5SxJkWq@2M_*k%7Jbv58vw7@zw_F{c0y z3@3oQw>Ge|FI(m!f@Q8}acj|}bkb!Yl_jfDfmBABoj;*y9I<5nvFctkSy?DzQu8MK zPSck#LWtcmC$uIUyOFk-gh*nfaetu7 zWo*OaxzD#lFU^<{1ZAW)`l9j|`XT}`0AoAbbR@Z?G$&Yo&QE=`&tS!gjn$jQ<^%+K zP@1OEyKN6ZmmeOkG7CbTB}v&inr_WCIkWWmS@k_nk4>m|>K?qz66-E9FQM`wx%X#C zrkpRS}>m0uHB%4(9`%GWVHMP;fcS8=c#zAZzPaP;Hm)KW=WA*T4l{U8-sHi z<=20QhP>RJQkwrw3dy_pKm8r~>HY6`Oib~>){R)mm#T0C3=>7AO%QqQVf6E<5C|zx z9~dLT)Bwc;E_7-B`b)#VGSC=+UuJ-XhFqI8RLM?dIN|qmjy`rv3%PjJ+JJ@XII+5O z5kFvW=t{;E4%loaMJZG+_ax^Z@TgQ#s(eL zp#e+m9|R#YddT%~$YGv76r}*I^}#-{du%Ei11egDU$^Y&We_BG2m<+RZMe^=BXa5q z+Cd$;Wzt#J96DG}m3wisI?xSf!kxm6w}o_ij~_QNjk4$dnZkwQg8M=VpE61F+07y1 z%UMBs`W3=C*fG{Qz%iAZ$LadhLti!CC@~F1ga4ex4T4GZ68~6VoGAyTj;cXOjDJS7 z%2{Mo0pFHRs3iG9syQZZbN++w^JPbT zu0I$qB1hrC6Z-CH`$%Wyi@K8`?775!<)&2@0f$I1=HHu_6&?~(*9>pcz~+y0;nT2U zM`d?B-(cR{mX8$}c=h8g$Dq2hUSV#o*mWOKr{U(9B|KH>xM|a7C8dUZ^q%aYbO<_8 zaag*}`8*fQV(`Zz?xCN>q^r+M=7U`1z@vdemXp{t)+PO#NOi~r9u%1?+N}|__2iW+B$!~m*{U=odA>12lcmq`tG z^J~mU$%nNjyFp!VUf2!&s<#RFnMuCSYwp@509W*~qyFaK!K_hsA|Wel(R9hQq&!gd z?<`JSEtcM6p(#dZ%(Dxj!Yf0hcF*rLo1DWCd!f6?N; zCH>lB9SI~QnjSsHbD3bN$KhQX0Ku}~;)X_ijx<9S_J9a~Q4-e6r{_Y_<0;?*?{eJb zgBESM$3(XA37CYQe%%6$Xe&K3cUZy`;_cZ^-d3ahRWwJKCvl!ofqSKc-a=39rlJ0S z?Ew1hPa(4Q0v%Ye*cqp%gJ1E<{ThK#%ilPDV6=nyINSA)axmF74|5G3ZdyhpT5q)5 z`+E_c=EF7EEFZTyhBXJsJ!Mk(L~Ph)-7gVvT|7j{`if>B7hmI^-VI?B*NqXJJ9jUc z+9_AOEn2k(Ev1)!pr?$&3m1xf@LwD+c7WZDzc9~l11bv4(4sBgN{&$s6iCvwg1Ql^RCk}lU`~P2W~F_13%OL21-d|!A46b za5W%&v+Yv19$Qx@8?T$mw(z)a!E*%F@y%ha=kSV-Em;?x;9(J&0(nLAZGLu)<@6$# z3s1{s4Q>ei88XI%T}CnXYsmP~&_OKEN0V{c8B-GOYJuOX#^$knpFY>GJTpEeL{blX zyMXsD3aqCrZQ9JjZ}T~usHbLPn+vq#M?L^IGVH(FWX+$}Jx(^|lP?1xM>s#{`)^*g zHsiu>mvktJk2K_ol$RL6!+cB+5$5d*3-OTnDENH|n|DV)u)T-|dmY^+t-;VAIh&F| z$Qv~PCmrCYZ0>>G&v9I$engv)uC=)uztXrWqf2S);5ks0bsn0Kb$bN5k`~4%EbIU; zVDBCg$-23Co?jkv!6#pr;J-2Qdq`yT_wN>?rQEO)Eav`IJ|>0?gAdDmfY=r1WV3RN4|yPjA{dx1Hfv2T0wzOTMZq+GD& zlWQC8pkkM8-kd4M2?T4?Jmb36Gk_h6413mly~4<{WEQXxbr_4Pu~{kH#I@c;0ozLQ z%vwJ}y&OM2@Hx__-(jmC3IG}_kB&TBu;{|l1K#NG01=qP`IFtt)t_?m-C(e}`Q&1L z(@5+w*Onqo8*i8+gc}*%!!yZ4lOV&p5;WCl3}<{6>(k1ZD7M+ohWZBX9wSY974G}I%3rKU#?Oag5ZGQR3m+_F4mOA#}Lbji~VV*1H&j# z@WZ@7#ugvD^B6ZVG*%E$H0OX3J;rg?_gmA$*IKw@(K?Tpp?JuB&iCkkf;p_t|+)sDTX7BKzFses?1%vtZ)Pwf(Ab{lwp>?fh!kp zSzDhx6rs5d9*%lUne*}TCz78X#rCUAtRnQ^nRlYDTp^Sm&*Ek?@Bm|{S;=hwLyMh~ z9k>VD_a{aWaFn=IzWT6<8CdywTs^<;yU$2|)Q|d+6hDFxV#Sa6l|X=TxGTxT-cDD# zjH;EgJ`{1~hb#O7)4hAdW5B6wvU56c&CJ#-_jIr1sp39f{A!IlkjF=DQFoTh8Lzaz zBpw2Y=)trNX#wT5u^aiX=W;-+zP&E8 z=4-b|yo|`WjM6qih=j3*MG6&*+n3j^G|2O&qe=NcThn|)^a2FFB(DJooMW(27{96h z%T;4cw!B33^3yYfyE|AM3hvmG6@18pwwt$MY0x7)6sr|KUeZDD(qEZYixh275LJ~; z)a0xronG)UP`39JM(P&Y#e^R&D-=hEICU%1E*U zig)R{!ewl7M1KErtZyHh;+n$E?ezR6AJ=Z5WSb40Kz;k_ciAxKsWj~NJLwc3L|9@0 z>@kJW-clvuw%?eqE|HHPJdOVPG(5c*mUHiMhU3CL)?o7chC+~g%NHid?Y@~;%Gj$I zlg9h%(OMb*#{w`!dJD*;(E&9B z=izp{zaiCUx}@=)#UGCEW$~@NMz{)_>UAF*B#EW+u;UT{cbp4qnb#K2Ys;e_4fZ; z^?2j`fV-Wl`eTsS``Pa<`N4@zFXs0;1IO+q#w7>-*C&tPOs?Hy`0(NRKV3CR4b>=_ zPbwfm{!E#J@kMZv(eHVmsU=_S)d{*dn`-mY#~_QGe5@xT83H_!J5%-nam-L(>77W3 zw>mJ?iy9HQyr?gaAYiBV=*}~Yj25Dq=Mf|+y2F3YWd)!69@Fy5usrjNA>^gKyl?i! zR$k`Iy(#EFy~d3I7q}<|02}+)iw{OHFLxSwCX3H_8tV6^Wi{eg36AdiY-6EXt6L~# z7jn!5VR2_t%aXo2uvCL6oa#m8ZoYj*i=>DxLm+dUC!fFYTaN@MO20kLJmZ$aht}W( zms4GYA!A9Zm^Y`T+s;Zob6TUE*VmC|6i=WOz^@atmqNFGLum4H|E<45o}lD-`j@<} zuJun7-!9CPk}x9SYns@up%&fyLF=Z?OaIU+2ynuXfIt9xnsvgKzbI3bf;(*WKIAFT zN7QpPQr;DqXUGi?$W~kVdVGirR8@Fn3eItB2nj3f7C=;nORW6pZ%+Fkzs-l8Jkg0zSJasA`c5$qxPevqrK@bft9S3|Z+VbFFP zdMynC0)8k72_`T@OCyU>YlRF3$7gFyOvfP&D#CEI7qJ%_v8x6H5j@|P>1SJ>?27Y8 z_P{UfE^WY~1clq2H~rj=e3}iqGTyGMThfJ{NV3d~jAP2-8gj77bY zJqOMX5P-=z9c81T`4*3IBL*k7^1<$_QtLtxY55w$9%m@79gislXBpT?E=VsOhBYZ7 z9ks|>)sVw3*t=@TU*&#Z$quE<=Fz5=OXNOLA!|E&_=#R7#(OfMXoEAryl9_o_)C+^ zoknZ_KlCa4jW?JfU+RHod+v6yga>sNw)O@KW}8FU4GB8h)U4e_aA+GQCQOWVSaTFw z7G2F`c2}9?^uCjK__A}vi?gLo1x56W7AF}jQ4LlrqbwiZ7xNWEJ+mrxAL+zwESLNfm2`gCc@du55ERSp9SK%ue-UA5z`~fA zyvo0k?~9EeG*O>pmW#3p6E((Vv2d6SO1x4qlX*^_K(5W{`nSc4#%9GGWhwP56edLl z25vauk0f2`^inJ6eK9{vb|R{R21&udzqFTH+ZN~%@LQ(sdI^+axALz|Fu|hNN5wnPwJdZU7AM7MfKmS@{prb|m zG=`|2`8jkeoCu8zq<~&d5cF~uW@eaQvYSCpQj{Ya9J6!m;h3g7rVy~su}okusK=6r zb;>>&oSLm`{dzXz%RDR5eNu~X!9LWNaxnR#uQ8K{T_L2r#1|;zdAF(D;kT^iH;bYX zxlFrH!|rH7uxH4>^xh!eV6bZ_otFb?pgTgP*rLN)Llvo7g)X%A6CrR;>~vmLU%H-@ zzu!c>r<=cV?TVzL04}RUC~G&%<`G!cl6uc2w7FksRFsQ&rmJZ{;LBUiN2+tYekA7K zF!;onIqZ|NBv~pxCM0>tD~xXQ&ss8?#D%h*+!e8v`g^>t4$!T+o$COyahRej*no7j ztQj>~Uq8lIx=0Zzck!IgB;f$ZX<$%*CnFDg(^zkHxGrGrB=37;jI7%m{26prG)v+XdThJ(a8j=+k^uMFeH^KF>`^q|rkB_~>te@RJ1B@{7_qt*$ z*V%=J^6V}+Q|6xZEq!pO(1RVydJ<)6<61?-<>EO836xd0pdR!f$yHGJFttDBBK!8L zTDsx>U1B6B1t8N-FYtsDjT$s<3z*nt>3KSF?Vdpk#%kIZqy*fY;0hDa_d9xzqv%4X z@CcTi|5~5%6qfh(LWi5(w)Yg1esEG45=)m z9$e>ribkJD|%dk4&kgjD))B!A$(ao{S=?nrfFD z94(v4UzhO&Z23jIl~Z(}BuU7?w$~cN;yYrDg^4|LIT@YZMge5Y%fK!)-YJa&2JA?y~Q3qRCb<@@v@6RKt$?MYB zNQ7Tg^M_No8sIah4x5oP2a>sF&o=s?&J{bR(hKJy7w^9FfmQ`T;X&tjP30E@cG;xk z<8-sO_S?Y_q4%%S^$;c3rd#orAwFY6uSBU4t;UqH+Bo~G$DzyDP+h_;w8!|ea->I6 zGr!5h9TkD5kwU5DKd{IIB@fb3BpF&4pDnM0o^wo6ajt*8Uw-L)5xbZc>FoF})-pa; zHxq>YL6N{71pBD%W_3z7USj;eWgYze8}weS_3tjfef1bsxE2wiSnV#2!%}$Oc za>LhW6u=4;!p_RnSIek;|1QaJBT6nT;yYml@hLx${tO4hD6kGAy69QWIuUah2 z+R#6VMa;*pTf{W+>`6Rfkq{X2&A&~|;ag(iz!dwr5{qn*pq!b(RWWv2b}XO2MI1Ti z84t`c=o4f6NHE4^xAK3t+~AZ*&%>qS1cb7VGJhFP;#=QM;;Fe*cvuvm^tfo2%jk?4 zpddal2kIh4_a^uyAF8&=hr>YwBCvN?q^u2*o%#8ItKMg~4Dl*0JtM=4 z0j<|ZPNU%>snQ5}I@5uQ@1=w=c3}Gt9Osv_i6P`HW1xXFI#NhDa9hFTi)x-jd4q{k ze8~XC3c;9py0M?5D}k)no#?mc?-bTEh%3Vhz$DE^?41&G9kO ziUEZVv_#ID{KViJ72%5~QRG?6GcxaLfn0Fmp#RNsm_Hg^&W_x|;7gb-+)Y~35v5C<&< zt-?F}0LSu4yK167=x@>soXnoPI-V;lzCAC5+6#&-G*SZ)cE+0z0+-60EuL79S_4JU zR_yG|n+(;oMm~o1w{>xZj$o&a3!Z@vhdI8K4|>Xal@|C%{U0~!Gt80Hj{u2tRgtB$ z;bdc8z#t@bVDN#1k;()^h)a*b6DD=RQ zOSB@TRF) zaof9a3QDXFas;M$hwxg806##dN(NLa0fC#nc?pb?>7gEYRJWzFM1cGK%{lj!;@|&N z0}g+#jJ}%3<>ppT!0?O>`4IU2GSkJhaVVi}7R8RgKa91c=vl3ro&^rLz8EDO^$HKpK3t1$@X857uO?NE8BIg& z=twNT#6E9s{l0Avt^8KxU6tdXr0VonCw z5+^K!c8MJO{QjT}lLCGhTf|0i?*d4`>&43#8+ZN@?KnXJph|1u_;E?u_zw1fm=62K zc=r`+IgAASGhYApFo!ASR!1B?-m@&jl0q3aW;<>`faB;Xx!VMruco>i+^Z1p%P_>%QUT2XOxFDF^WwSZtW$er|C!FQe- z4VC0j1W!=VQN5_>rSzJk(l@rZ@pp(J(8rr3>A)5mfIV1wYgab~bvBZdu0PbcxVRy= z7i$-V0|b9GUizFp5^lV%c-eUS+%I%HU3U9%K5|?Tm$k+9?WE{XSDN7jxOVDrDkaAeiVW{TfmcPhN00E#93Qz#u)8-tEuEANK zJ_+gS{B9Wsy+y$AmhubUczarMmCT4)wT;FRB-N&n%aG zN6Bk^=o1MkAg{%MhB0%J3Lk&5?sK`#mh#(}LJC?O60jBrkxaR#_pXmKL1E`1Hak6C z@AVN%i?>F+8b5#Dpg)~kVH11uYbk0g4_g)Hti*ZQ^6woVOK>eVrGKpymjYr#M}1gA z3~tehl7??5MakS+B@bW#P=s^{D74TU`rX=B4T*u^L80xo_Y-$7j&78j_H**rj}7N> zuZ1!1g+KAiNu!*Xd|ogqgQF4R%OcR%_}J7iPAutg0#~l9eG$KmTLh610VN#9|M@9! z`gQRx@F^7?Hr0k+cweV9#PFO#U%$?#2?DVd1>Y97`KVrmYlFHxT86()yI?s8TIHp57h0n= zGV^%kEAn(zhHR#8Z}Iu(|eCAglE**O3zL?^3wmxxNJFlV?&hG zmVyGfUVVr~tu>pnnShY@i(p@74PxRdTI?=)fPai+Jq&e)-6?R0A=>;ve|DfQsT_uj zEoRP3>$T>qAVX#d$q^{FriRiA<%NDYRtHGI&-1e5j-9rV4L>{m29`4RG+$Gz(!$xm z*?lLGi}y?OzEd&gSjSjU7URy-)P+_$ApPr*YP$H4TffW-$0zm?{*K@^RNkF@I-K9s z&Ym1KVZtyfh}V4x5cDiI$wNvVxxpwwu6){CGVj36b95gW0tdEKB+!Vsz&UWbewD#~ zj|RKmdM)y_>gwdnKmC|es|g8yyHn*2g#&g(7y}W@ZQ<%|@iPYGk30X0M+4;mdXoJz zxUSCJv7l(PQP~?9(k_Vz9B*YJ09t2aEdAO*Ni}@Uao5_OS|tgM{%_b_o$K=7r)*$ z2ml~C(pjfi`GeaN;)QH5jqj~vX=Dw3t~KLHjOzTGjuFXCQk`8B%Vq0(hb7xzUdpNH zKwR4EJ(VWcYD$n>(8T{XR;UV+!9edfG1B&C`sEGXOdIw8tOKlr^H2amwy`w-K?`G- z<29PVr%VfiXOs!gLfZw>uiHH#@P)rw*CHG#$~C&4&uTR=SCWr+n%s8C2=2vTSco_P zpmi8~ZIToKQdo@!O5Ux3s`iY4ofX?KFQ&m1>txe-*q`@1!{2uIQO`3;RK-W6MMEec z`YEvkrNuFQKy&MKzGJ$q3vm1mxwq}Ys0$Bo4h2J>#J3Jl)yB=z2HC+=gzRc_s`bcB z@2l=7yk!u3L6}4DaB^IaSzQE-Vd>I(y(J%GdxE}CZ_S0>Nu{Iygc+I$e99x{rHGeu z%*m{Y>14~fr;d03YQce=rS4R`NrRhX{5UN{~4JqmABsJt9eKCvUL<} z)3Zn#s+$--GT_Kf-|pIM9{4@<>Vhkt{!2++|AO~KqLi*4qlkicTjDYR|CybmRO9UWtj%oz)_hRm+gW<0 z1|F~+l_mYfJ?}_1W?3$+9(y+Puv8WsQiN!mxDZ`sKM{OoD+fwQNjkmQ)^-SGlWA2s6O%f#n+Cu6U8Q#ju1hy zc6Gl)Pd?h)aQD0uE1Y|A)Rgcibm~L+@L(|Hn-QjL7v0)#W|Lbqbmpl7l%z_#;Fpq)1L*(&Buy9WT|XZ_ zUP*S^t4r4>0KS025+K6Nk^6UYGd=z7&trotmwoY=XD~nk;X?G-k~&ui;7tPBt`fFx zbb&2lhWku#bPXbrgx^LDP*eR#fGoiUY-bl;0H5ZN`GftYLdw%}&i+llgegdXiv63T zSPbGMQ#rV4wc=dlql>xGccb+{TuJriJi@F1xyU8LGBLML5wrQgPufnkv#MC}L{>_O6>9flYfQCIBA?EnxJs>LIeCU3$ z*@gQ9L;jk(Q-2((dhmE7!StaB@!m4(DZA@o_FswZFjIjXDM%ur8UR=>^F$J}LfYAj zjoq+Yn2-aGzq)`hJMd%KAHC!=g>^)k*M@lQO4zH#Jn99@`U@zNm3UH4EC8}C;2uQs z>`g)Lv#q)hC>?(s`=f*`l10t6@BXLZVD>ETrn6KU{a1D^8n1ty$Qp|en2uB2xkM>c z%)Q`~ULnQo3F2d2Kl_2H(n96KJA=a%kl*J{k>FK}M7w)^=RI-QSIJT66XhQ#wBf)o z4BAdqvcTrM2YwM1gQ}nxL9-3fXM|A|LR_=I8H9Wyx=Q)(l1q#TRt!k3NyKHROw$XxDl-;sqNGJImZ+L7Ai8zaoiOLjf+#9>e?*K?uE;m5mexc z1B|g0`fX=_Rt9E}dhMkevnVD4LI40~ zaR4AP+@TQ{2;Xp|YlXHm5&&uxfH`=Oq&L2`XRz>h-blhEXnN^(M2!JHkCOvBlmTE1 z7qk+%kvRkKLzW@OvP5YBjkd(y1t?Sic95=#oYnhBMJ16Bj(K{{J0wB?B*8eryubel z!)@kwV$6h$4FF(@e0@~G$5!j8+VchTpXYNMhMq0!bzdhpEkj?%R{rimrF#N9^k~$- z=xpY`>1g&RU}gPjYEU`wgm!|J#{bUVv`HAY8?#M}@lW2s;MCwO=s#r#bAg{LGGvX_ z4Gei-iA7Mo)pbk@2`*sV*;0>w; zE8X8t#}lmsr8i+n8VHh-Qupzn02p#zT;m9CJ}hk;y>|uREZE?ejEG!HbH(2726A(9 zoFXNrG5{^EeHuJU;2YyD%)95fjS!hCKr{3Jsj5l=umcpNA9jyRJ_=|ypaktP%392~ zawOa#OmAr*0l3(pKPC@0nXQEIoD~2y2qgeeocc}HwK4z&4lE0pid5%vh4sd!{JZJ2 zKn5{TC*QGfq1ezZSsHA)WLWChUBsRm2oHq$0=PG{ZrJQx*x{fJY-W|o@PI=caD%cF)a|`dl8;9>#Gp>%d}>mig(#C$G$!ewzfU`;k~Y&;yLS)X zaE$biCV^wn)rqiPBALyn-PnKC=Qf;|7iH%|o@?3Ct^v5uk*~-{H46!z{AWgo9o`BY zNbgRTdgjWyt7qOxu{RQJ6tl^&9*2K6M&R%_5s<(rh*UxJ5(W!&IGP2vy|aN`3ab%88ExO0H(25+tgXeu?n9(9Ef z(4UJ*D=ysyv7mqtPY;oV_wM92i%r>xDeGKWen-oK3NJPL8$0slZSNWIXI>*Y#S3t9 zdZ0NXb*qvuo8r0=si|q%<3yOKNHXRyAkjeq3U-)}sTQ&YXb1pw$50-@sk5c%9(H*dB`i0O;jlh1d>Vej8!}U90xnSFc`4q*c9WKk#~U zpX5M;EE}`G$YpZ4v`Ygui1NB^aVM<($t2afqTZAs?6K_Lg$tTxd)#_D9$ZqoevJ|! zv%rP0$9$Y;qoqw_JHW(B1HE_A2@2cFKOg6o;!u1gdz>%l$G6UbhXn<7z!y_JWvIeD zY-6OpoIbMrO%>M5ZZ<`9+P+T#6gy5xOv~2-;N?gfm5oYjaptpkeGJQ_;bMp3$z(sj z^qlu1BtF%_|+E(05+$4WB(nnYHG3mg@9RVaN^CY zwoeN(GS&ExS)lON7qz%RH~oYwUoZ|Fb{b4FOjqeq=DO2XB()!&@=yE5FQWrBM>2I9 zqFyFQxQ%7!{Vy?i(4@8D{s6X&Tc(jC@>mlOx%vhdNt)32g86eF4ha86nT#rdvLf24 z4vGa=EMncgRsXVXN(f$z2o2v+p;*ucg<>K~auI!@9m;-cx^|J1TL#xS^(^bws||U; zcFx!pMVmh8)Dk`13k?CUa}+o}P|J2so5nj8BowsK`wf7zoM1g$uKu8-dTj^&)e0Oa zJ3n*uZA~p6EB^VJ38=km!EmkPVLJ>74E$U})rJEDLR0%_!8#HITq=g2N6|pzfejkn zQ>P>-^g)Fo?yZFX@OTmi(uayw#_Srw3Sk$MXWAUS-jeT27s9FADzG8pb* z{67}Je!uH_FMr2~()!n7)Y#vmX@2YR3sKtQHh(-XbscVa^q+I2>cf$wFp?FSMb;Jv z_c;|cP(TIjHKAuL2}DbvNO>G2SoSadjpfO0>eC0b&|eJqaE$Dm>M~qrTsX8BK_S?C ze3zyxt;p}VLc0$py5SmD?!#e6Pe8c;k08KN$#U><|Ee)RyolzOYUGbU0q`_81=1cF znM&J#(~OeTebl5ns(%)$qhCK7SyPbu5tqU-Atec`;U&y{nLvA4=y7VZd4=tGGQwlr z3T2larvWV`*Or9=a4bE4bFqm-KIka;xi7px0}tM;DQF^);DdPD!vuWG-48F0&idX& z2G4c@q5}VRDes|}y$*7$)rfD$(gkvx5OB8PG_}NhleeHESDlw71Axb1BsG{K4f%05 zkDbD71 zpS-|)!QvrV2LObGApflnK(0jlx6wL+em9i2Knt}g68(;j>X;l*smQQ=vreSwzhuvO z72@SZ@yq+Q;1@?3ZDIg(w}ecpe0Mg&=@kQ9>TPbmWlEv{#Qu4Cd}AV3TN68IU*lL( z;ANW8RaV#)zerv3bf=2jmW^*XWF#wgF;= zo#=H`0okL5Un%uL5)cK2fAH&R5v^u8rBfT?axNiZGx-NIn{^|UlLrX$JNRpIedD}# zPJ^rsFmaU}`>K@G5V0BzxK@+E?aFgw1~bn+JA*qj}z87x>VGWmU1 zKT)}!%70MN?JU-`tR=`bFye#$u-*%J^PA2)6}vilQGWt$?;ix5dp`)Wh&zOwqF*?o zvAta+Kr~HD?FOl4igl)&i!{Yemz{;+0nfHvRB6$VD?PuTmX-!LUlh_7y1BS>?(4gB zSl*Ys=b((PC!Q{@30N{di+^El_QU*P2xrEJrFh3-*l=bG_he_My}pV|>?zUV!UFmS zaCo#s8d;tTB+lU2Ui5`H;=!rAhz~zVvC*0{?Ykk><69YxOjW4?zP)(Q_UE0-7IttC zY2T8d9n|0m!fjGWRf?#NVgqmAO=Bs%kIFbfz>@BAwx|p*c?mQ-h(a+E(IBAmIWx-l z&6|&uK-mQ-JWSO4@oM>yT>^)l@k$Zch>eW&rH$tS7=o`GnOK@4d@Ofu(hwp zUZYu?xv@TM=<<+jlsSL1-lLRK>y%Zj|8zO1&YKsa*Pv!jdz)9Z|x7yhUFaOs5L1t;6zbiNzV!ykec9{$rX8`yNVy%B57dv#|g+PfOBVlRMC z&t#(O|J%ZUIhAp2X%hKPY-Qx|Y;WVWfTY!WV4UnD^xGfzN!EVKKUdWurgJ-uwLEpQ zRzy#rt4Y|6@dO@haVqUIqw!Ql=$Al?tbT>E^?k?nCr4YK-F-s?;@>6>y2d&1rq87V zQbl(k5=cc3cjie}1p*YYxm#+-9xUwvX1mW6dCb%y?0Ls(og<983-tOJD@rm^1piY% zK}XWYMSM7MZ3ZrTopvF1MALf~3xsd={+^zHR#{?v)PxwTO`loJ1M!z&ouPwzbFnfT92!rLr>m6e!;=-Zqpk>r$NA)7zMmMbv}0#7Ol ze^Uj1?h=kcZboinw$3JmU+kNp9vzjpLXHvd32(FnFa681U%y8!oFDcJ+%oz zyX(%>r$-ah3AjfiT;;S22bBvyAIk~8m*0}*;~^1r6|vJ_t;4q_{jG*{+`;-#LT-Id z4wvs@UsGt$Z6EYh1pN1Muks533Qd|p;FCYn?SX-(tE^4KB7RPElj*rWKfNheQVdWP z5{r3(ovF1sdEfk0xrC!BFw! z0|%3>Hz(b*TMJdR4!|k6sra{&fPN`Z0;(l3e^8kXsSwYpR(6(nWk+MfXD|>4(80Tl zj3dv(y-gL=DUnIvZc8v5vI6aYk2$z@r9NMmw_k5yB5B@{8A+Hh_>&^)8&LUN=V#@E z8>GjLv;&HdasJs>~t;Y6!$8i9c>^)QiNr@epZ?b2Mk7` ze^Pi5Y0;KFe2Z?sdM#_bn@;q>q}7^Plm@q$baag1)ukfn&ee+ib{{0Ihv=P~BrKPL z9xix_Gfu+i$pi@?Kkg~3PB@kSvXvx@Vn+B}SUjIb7*d4q_c}I(ca0=J#^T~BP{#Q&2H2|z$Mb%O zQD1Z;%0I(=i1_nhm`+#c{;q&Abi#_uzrrZ^%#HHo4l>YFt|D-Xzl=$g8n^!!f8kAW z7#uxYe69YRcqUm)9XUJ%J2VT@%KnQR(#xmrNCkKQ&6g-^w~mXHF|mT$QtdxndO3X9 zl=^_xlqSh-5L&cnfUFE=HGhWxY&b)hkiJWmWQD&Mq5D-~r#!1zjb4=dw(NmK%R`T3 znG05{*(%uJlKux=+3WmC${)NpHLHD+=P*bD|Fb&goc*b?{Uaer5RK_Oh5CVi*g7)g zWU{+VS3fb(#Q;p;88SJ)fNfnsiX><~_~3TRF}E4mX9~YW8Ln(n9;Ist^(v>EIWCc} z3&(71p~lm{j9@c+AJ#x-DyFeaiqmSGbYCi>VEy zG{-gbhagA)6(Eh<@P^3U42Ya%Sy^|h$mpgP-z+hz9(It}hluxGmiOxAeO@5fL z8Y0fhgjV`bU4Pe!afcThyfNig5Q6{KAiGeNVRJXSD^fh+s0O?Lnj8M|Y9Yl@Y`3pd zl_hoG+u+jP0X!QUzrH(dal8S>E8f-U8#7FY$Sl%lN>d*$&TSgZtIboj1r*afg&>fRkCR+Q? zM0_aMFA8-?%tDN8{@ivWSxa7)`;XIR-8wDfBB_f%V^Ft60>R}c#}Q4F48*?nq!f;A zbefonzWJYoknTKH?!6RDLqqM+g903Z)e_$141-K7(c5Wv38UnPw_ln>HNMyt<2`ejWd?mq` zpRV9D5RUhutXAxMW;rM|sdV}`b3Pdh;+Xw;3Y>31YJLj;w4J0@KZ+FFvr$|={qXrO zi%)=>_SwZAB?8ST^}6ucgOI*|mc6+eYmP&)M{MWrY3rkd6)||}ik_sSz|Z}Eq)hK9 z-sM|_82Fk6{YzNl&M@EH!CP~S3E;LthP)-o#i6LWAH2c%4Z?UX z8hP%4zp2lNd1v$D5b=JJKQ>qR5DILF9;5yREpY7E7{`bb=d^LOzp2Omj*+3@TnS)O z^-R|eYmA0WrUJWbf_mBCi{iI-j>?I@g&;Md? z7}iQwRp#@SuvLhmXDu7s!nJva66rdd7IqK2YB)$@ly!HcHeG2gVCeB=?m|9HVy?+f zHNH5_vRlLr(=SA2wy%^z!KkihO=+e_Y5TVP>w8?mZgh3=FXfJ6VnEyPd$UDj8LTnB z=tLYD0J`1)K4et7$@E~XT1FIs;{&*y6XX3fzB!3}yFQGXzwniae>rvaCSTI`*5}MK zg6({LBEOqce={XERNr-8BiU)l=1?BvwyHXqKi-wiJn7#O-#pZs#h^RQpC|Cr{zgY#5!-=v4GDDJ!d zhP&6RTw&H3)8>GWL>jexoiC#ruZ<3Mvn}xpn@+gyPk^Gux6GcRts;+b@;SvXv{-%^M9oVLsE`BESA{5M`58nw)pd@BQ+9 z>R<#>y+`h~l%1ky_!h-r#fOJ!v6n+?NLt>Ud(huMN1Od#yM1!9;=S{Yz?<9n4?Ryx z*oB?af(s^2182{KxODPTPUoR#e(UqR{rmodJFaWy%sFRfKI7#t<)M~v_sVsrtv;b0 zGahdZpUN;wg(shZk8MOCZs^0FDkysAxnAleZEI!mXm;@E+45(JQ5j+v2WT$6SvrL|H4Tdw65$M&CLi&IVGUG5a042?Vzk*r&-N$KhDfaJS zbWT?swAS${7DRNNj1ig7$jH-*jyK1juv-1jP`X0SrIn{NiFs0wh2zbJy*~|)a~a+! zVl0x4(%omje@SK)3Y%os4tIgN+03!bT0kfAS%gS1jf63sc6kvpuA;Q!K^Nry+J(Je zGb=n@eKG~V)gGpbsXa}czDBvJMHZ2`IRXatM^6WT457n&V90MI%sS7JBqXFNxpb$n z094`}>;AYWnH(^~+@NkM!r1UeA{-Z2*XR2X@e?bb1z7>Y@7nSmKF2(35(uft|8!<}Dul*MHE{AbnZ|fb zx)`5pKw4Cpx?jZ@RsFR-3-)jUU4NLaeEBvAmMA-31khJ5@DShr#8b;OcNm;yD;ntd zX%K4M8xhGp>DufGKYnE<4q|lFF2ux%jJ&q6#d|llwg0kt(%JPhS#>Fm|0M2Q`Fyq9 z4-c2hr@F$a%f2jK9wmDh`6)d`Tl_5&(ONi#3<56EwTQrvy2FW`Qot_>Szub}o!Zwk zKnVuqv~+BIU9G>0U#2^iLGl!_$y`o&8KH`z~v9ESwU6iDsS{O=E7#IC?hg3(6WcNM2kwK&Engf_VTiXJGbtZ9TDhA zN22x^8sN#BY5Rs`l2lTE1Ba&~C&8~>a^*@iq1#58;li@5fE4ZZBRaD+AR65XT{bhq zS023(P$n(2hLhL&S0;h?B=c@~uz|Xtr0aNnfJ>zXx-(^t|Dt!tXV3F~<(1Upa-WK2 zXpBI2X99OB8I|Uc%e-dFHXdGOuJJ_a-DlSrx4}jP+qIQ-7;thM$D3k#OPrxl<2nXJEB;Z<@;F8`Nr zA)d`DP*G5-jGAG9n(%#~Dv64$ozD@O(x=yt5?QV@(eP@Yi5bd_)WDhx{7*BVry^_u zUr0{knBMga3I|sCU?QHNXZ4axDw0w$)1CU_t06?CcYw4snO@{Vh)pZsX@kkC3h7-; zkiDzTr(qxxyK(fx`qAqh^S!iOpWpFCR4D=6+Hv`DIK*|@14Wm92`(=X{uuN$wTWS}n5@Nj^sc8@{*B=+auzpUHiFaQLc$fglV>6C& zEbp!&d8!Y4$~t-0>KeoonTLbw)u zpwtm~%_DPnB^-Kx@_h2EFv+6bdv1=orYZ*w!nrM{woNe41s&RtHNxVkGJKa?BDJS% z$LGsn+b+sK>~t$ z{p86}O6sAeOPGkIV1DGRIu&_a@}?DMfZt8kzfS1Hd&NP_ZQ% zPVHu!$vJJhNR|rJPb;ebiH{G9~R{%+@CEYe@+3Pb+Nt=~b!-tltS%!eilu-UbFmfl7Xr<(5gQ!+=!V#x2yE)ykxoW5;BOQTGq9qF3QhL>($c>UKl^;D$iSqrAV3$zeJ~n$l5{9L7s>&v@ z0*3eA@SR_2p+1y-(iy#2rgNB>z>G@lMIy0{9V*M-X~WuxbT5X&Q|YKb`5vXq3pueJ zAp(Pa`6LgIC4)#;;8QmE&L=gC9qvple?B;eoaL5!?s*=aUppvN1M= z)9Cz53M})NknRp#`}8bNu980K-|ciYG3^KY{Bu2DkcOnW$%(ul*lu)Nu1 zw?e5>3Pqb~rC~ca?*eU4aN%29Y3HlwBt_l9G<(RTyob1;TLE3E%91YVM6O}`<*hV; zS?u3O9I%Ac(lk~m(&tp)r)i17^wZuEUr*s;_YQxEN^hLRz5j!lF6P@j8A{f zCtaHfCX;<-TU~wkVP;6jb?an)?bpMg(Xp8a{ZP{h*yfv`LqQ^HT6fawB`arcMfoUvcSi}@CxOW5WLZ}SGRcub%VhSyL+s}$&EN^ z(ZNc2_d4W)OQG@Q@IRag8c0nj1Ga+~>2+u(UtcScu1TPhl?A#k8ApU~r+vcDkz@Qk z$=~HSO3zu|eVKCF7@M~ox<~ej06GUnEyUqNMjok_<`Uv1t+z_iPjQjA_3b8mMBG4; zSz?5-GH`W$raX8&sk5Oq+>e>1mx`Nxr!DFf4 zbv>=6c&c`{xD@Ea&Z$d1QUSOHuC5#Fg?EA$C+3*4p75Dxup=-WJO8M&zE~~d05dRi z;_Cb=vpUT&%z^o%DzKc{7v_vn2qlEsb%X;;*peZou5bFGTs!Z`iHN6qM2Z|Hm3jBe zNAe$ZQPqbK*(bf4OTXW4zcZ3|*( ze*urNPDL_~T*H(So2!-r?Eo8oN$IoauOG{t$%oNZa_zIjBCKbIxEVG7EMS{DiMCz* zC`Z^IdT~<6_oFs*r;}ps^L^2z77v1n!|&3<6R)rRqRZazHLnjf*#hNc<*$gIxre^! zkD?=aywFYn-E2$6cV_`h*CzNfKi-+brV2o>OuXau`U?&Ly-zgiXoSV)a&$?3ZBr7tyvs0AMFSjjZ_n)bS1u7PD zqWfuvE?HxZ6~Ag?8YqRP!oI*+E?Y$JD;lKwD$}?bwI@WQI8Cg@xG1n?kz-C4YAs`C30FDtZ1@+$MHN=Eek{S_eJ>iht$qio#F(+ZPB! zoX}aqZ+4Gb107UUFUY1Fe>3=OGs@dcluy|N6B3K`joXDi-GvBU)Dg9GV?^y^mj=eO zk1J2g3m>yeZ^>Gi;Ph-Kp!2-1;2*+Lt zjXN^PBWO~rW{0G{^+ImGe|q3d!bQ0Uiu0|93edjQ1AIrFpZLWJw8iPS|86di*8Ily z&2!Xf=0Gutn3qeFtZ*C)aW9%4yHZs$2vCgFgfol1MgiiX7*9d(vMfq$_J$$<&=m!xk$`I|lyXDL?h_4SC3d>!on8m<=k7GGINd3x(9c)M4oxJi**KGV!QBZmw zSJDany>lWWlzW>2LqoDdR0WOQ zlqqw*G!gBUl^gjC`9d~kBh8p=$=VQfw>=ZNnA+X4il^S2FY58#F2O1A#&EuaE80>8 z7fg-*Ug=^Q4GA}l$fOK6jvjkuu97pXeb5!UFLfzZBh*6&hV5uNB#Rme?tm*4Ncwpz z3)8d@>?Am5Wub<;B#s6(fn+5MPHuEiE;A6lp7+PX6jIUoB>Q2QQ&w$U0F+656Q`I$ zwVHFq^u=3xjBScoy=>v!_v~Wo55ljsxxY8~;Cgi4OQ;fCl?IUl#qX({Fc}mT66ug! z1tMhb+w?-f%>@a9y|f=(@7C3W4-GgkwGjE^W%sR9c$A~zr!CU@Bij;0spAGGl3)K8 zH_La;lO?%cRKo++LDqlozTdwvxU_n^sdU`uk1lfA{UC3S&h2K3GSN>L$aA`r%F~!c z7D-GT$!ogzvCmTt7E|j+2I3&CQicEN@BMC1ufYSA*Sei3v(Nk;7!VEj2#~`Pl#n9> z`M{nRxVST8qjn(X-iddHX{rk7lM6c<$E@&5>G>8^&N{IbxZbH?6Hk-GLO(}TkiogQ zEbKF;%Qs`NRF(p_QrXIfiV|7MRitwJia92MQ2<=+LzB3) z!tF=_61jav5 z5A;1NbVYyO*jF1Fk>2<`nDxDx3(Nj>aNt=X(`ORVDL2=RolH=w^5meCEcC=fnfkb5 zM0wG^Nf}1LMC)c*8{dsQ2=z*#HI^S%-inNf>MtrFzta>2rz1<4+k_j8*OyjuNpv?g z?*_Qqm%UtTtOG|802GfB>~7ChFE~+*B`(CBVB=GNs?ypOyY=KiMQ09VlXx%tX>dCp z$oXpgTAP~$@r62!pA3&J!;24>FeSdbCe<^hA5@^Zi4|tUE0OGZHO23wSkKr96(gkH5tEFnqyM7Usxx6TW!|#yW{whDzT^87*S=^ovC6NSwAg(v zHiS=5jpdEq%YM+V{{DmzRHx{zSaXmAM!)40s4yNBd9AEM`~KMCP{iM}>Na&IHIBbJ zU|UM6;1?d?rONYVyrb#w^otEEL7Sik$Cj$~R6+u%O{ivpsywWsS-g(pFXv~8gP@x~ zL|4?vTq=Z#Gn>c(`mV|MwZEy*nPs?A5vH$f%(=zIb_HBU14zwEq~5kz0I)p|V1&)0 zb3%&Us_ta(guEw$9eyZw(fA@`pFW6$!J7J3e_K+;n`VkzcW0E#JOK6z^_b|^l4TBB zZ!IOOi8XyT-GW9QjrO)5Vlt-dm^YG9)jpQuhvdZxnb8efK+!cf#(-ai6Ds1NLe7CO zUyy|n<;MK|yTv!2OWUX0bph+A)lc|iRt$g|N6YEb*B{%(o){XPkaV}2_|F}`*k4yE zE(KqEA8j7I4*z`i%-HyHM=ft5#zJHAhslOZQOuP}YCI+Suxu~aQx%qiT_367wu~8> zbf}i;eK_0B3a#+YoQh(JU8e^C!WTN@GpD~cHAr^dF@`YfCV5Hc{lrpr_UlF_f=lxoo5Z$KEYy*BVvP_0NGVQuJ2{4fm7I$^N`o2nUY30N*r~2Q zrJ-{V1wiDkxX@13r*rGb-hhcP0Y1;C6%@^s4tV|Irw5vdm&1u;-p?$YqQ>BA{tf`3 zn5U%k&3OZ0*Jge&z8}*K@_N)rL7W3VFeR?sd(gs+U2fr<&`m*V($$^K@!8(Snq4S0 zCgc}05(~KX#OR&<=O_>Rf@osJQeVJoiEuX-$Bje1wkZ8?3Cq~QYRALL;tE$ifn%Ud zk&2trz-T>Rboqn}td+FZ#75bkPG{d;!eod{Nuc=C8h#!!Wqtl~j30G8idv?GS}y(q zetdGWc~s}I@#Yp6umKGaWDJ$Ind|?564|uz|4L*{&f9Np=xQPoCQin`ImPYPQC=A- zR%7c7+bSiEDd;JiA>A{lFVw9++p^Z%O~fSx7>1h#jxPE7yP?O9g>v4C_B24}?6$he zRi{cukj)J$Xl|rcXx1Q;mo=l&XplPVEbtsO)z!wt4$LEe#!A^(RK#4?r26i?0-t$I(#3NQVW+vm0Rjt3;KrFA>L5hwz!dAMmZ;62DCZRk4G` z>6vII+>4zw9i&B~D6z2}=g`I$Arr51?zzpLN1%4YH(CO55Om68D6w$^q(;ttFBxgw zKpY9(=Iu67vuQ}i$b}Rn9G}qbHl%hz!hpi90wW_P-I!Slx!WB^xY^W5%rt^dH|s0U zQGcP^|L!KUk$h=F;U)_Bq6snTWiI$Q>qWtziVg7P?)ehv=3k5s)tO9-Rqv`H0gbD% zMYbRJGbQo2alLhvqt&01Cyt%a^6?}Yf5eUnw!CbN zJ#_`mK$zm!6qI~9yqfRANgw1}lUaEO&TTb3{f<;}|BSgGiF}^Yb$%2+{4gq{rt_>;4!1a{w??+d9^l}tU4Fw%)S zu0J(JSIRW-h*&z_% z<+Cft!h*;7hiA);iZHU{)Eff=RUOXTQRT-fiwH*inf%v*=W>K6FcCh|w?Q}&J79SY zhNM?Ub+ohD4v?vO+lpO`L4&7QW^rvt$(x4DN~4kTpPh(e>P$IDmA&YU%Hk=x8MQYi z8{aw37f4OTx%}uf%^`KRGvbs7avPeL)I~=H|Aa3ty&Z0BYlbma%RD6iO)XLpUK%KF zd|CI_o$f?k!U8o?F@ab>dh%9Nw^Go3#99O(n;3#>ccYNgQBwU~(|YBCq$fogrQlE| zWo%CSOFz?#%AX(l*SnC&X*9kY?fY2PyN{y^6l5T()UWJYnHg49U9sYy22Hk5QU5Ax z&SqUbmyt5oQ81xvV~EA*vP`-3l^6?%S)T1W0t4mIc8xAq$be$PYwWwZJu(dUF0{qxgcn{75n zJuhlOx!bpXVA%F8QSE#{8z|R^Izc^CHvz>B;-T+pJ=31yrUU_=9l$&E&pf1nB!9T0 z-v0Pi-ty0E>8zFDq8Uf6DcWOex;tgZ?Mfos3WoRwkFTpUsnJJ1?1W+JF?mVlBr>EF z$GlyzpG8gd!N2>1k4kK|7Mc_`WuPkw0o#4NYtV#cR?Mcj6&a_pnVu9{^MBP+K^lGv zOCiaUL9#BldnQL8X1eMB%o<)Bk#0+-G!!~i&2@y^$VEwsEz+g(;tBgly^ z$9mj7NdQP1>4fQ@)Fvi?yst{*EO{4bqn5{>t*`$f{a5&ieXxy*&Pw3;)Y?qPt1iTY zOci=tM&ve-LW$Xh{-nZ&pQR-fCj%J|4wG`?L9Z-gG-yd(6D1m<&hH)_z3vO%>G=YPg|KgCy2^22E8I=!lpFnZyDxCRf9I=<3&pQ z5(w{U{2durGZ|507#9Iz_j49A9CA#We@NrOv}%a&;{W;@zT#T5D+9RRzx<)Q{+p79 zckDsmXh#|#UR=3)qSu#>`y!CT>eE0~8}7-2tr3~HRpB9qIeii>tsWA&a*v6H1VAgh z<7`j-97fpr3o{4N-*9!>u&#owkyp@uxj6G{aBpkD$aSp>EX5{+@l68)zKeHvxBvFE za$7A2Hif_Bgg$ogUQa6T_y(w5rY{Pm4HF*4_PO!MFJ5`=9ZF(FOf-o*{6^e4of5mp zt{c7Vl%TgGf_?tMd^LEP-E${%mIQ=hIhWAQyUg0KL&ve)Z#i84Uf&!-1c=jPN>gbc zxve~XS|pe#o)(WSonjj+V0;VOHe@{IsXl#ErG7^P$lAPlRaZ;#bwqy{Z0?gbr^V}M zU%h1b)ae|&uS4~vFNiU`87d`D$}G7%%Gjin_E#)w+)lrp{9eb+g)2|x7vt>PuPB|u z!s^4sZ2QLrOK~S$lKgcR<8mV5N>-8S$=PV54piSAiP^);K^cH-v6tw8lvs6{Gx?!r zsm#gj3^$po;2Ne+^tp_p&Bij>Gv)86y(k-;x>p`CMJT0b54cR3qR|&z&6RnNX|`|9 zE5%wT6g@7C1p`rjy*fq&FEu#566K<6YUOtGV~y~6Bqb@PNFDw?+{#fu#tHwy<_!C@ zI^p?3VuapD3wEtqSu!P5?@2`6|Dmi&3r2J8ZnsPc)mi-eHNX&gZ~R+hvxBK}*ul4a zjgdFLTp_5D+>F*Di{}C?l@fw>9fAo09s81VW@gT5A?l#25H^%cS|itr(}EKq?5)Cv?92T?)x$ zmAl<@$y)ng1$Pxw?<{16U1wF$D}%bdX>?C5EYI7jhuvh5+C@YH?b@V7r~5L0lThvx zxgo}FSK<~e|4C9oasU$(8G=kN)3#0us`DbA4R$epR>30J#{-37*Q*T|0@cXznqz(Sng50sOXN=Q$(>@)tB3rPKrEo~KIRPz_t z`mx7Y7Wwy*Xl1x1j)$5xYBV2yR#m&@A-gC{@eBnc{L5$;YrQopuD0?Yu@9{xYZ>65+KL$vkyxy zjZ^sf#dciG~~2woOjS4U_*;Y4#AXRE@jq<)}CPqRSb+&us1;*PYE7T{48^;3+#4Y|Lnz5rmyLaktlztkRHI8kJym01V} zermc0f84QW`x_|;y{)?zZuy$m5Uqt&RMPb#N}VF=h}^Z^+NiH}(icuJ_c&R1sV&gc z<^GbKPeyFvUT%YM1psd_HN>vzX~`P8Qc|Yac{3^(eP7qjCIY525W}DKr23g9`kj{) z+Gc%}V3}xav|GS+SUSyDQK*k9?46SQpMF+P*Vo#e!N{N0sK|F86?rw%{1QEzsScQg zNh9!CO@DSfNF&}wgyG&%0bJ};3O2C|+kS@_9>v$ne=|IE!4_NV`HT0G`P7!2pu&QV zjD#5&#Vm_PC1&yGZ8k(ff2eL=GPyWM*^Q2YUk7MxM(=w$KJnLk%X?K;r~$wtHRv0 zZ*}78ffD^SQD;1Ca2$ygGAGQVJXTrhhjhkZ-9upR-c6-o2OvTa3jP2}y7hTEQ%9R~ z?RQwW#vg@^?2;1}`j8BZLY1WMmiTt3P^SRH*`sq{cq*vLc@29SBcjjLRVqE?OseOW zn5nlMkO1u%{dIQxPe~jsK>uA8rX}_kcCgz37z_yFbuE=M(SJ>=^BW{XCM?6?U7NMC zpJ_m#d2w`vrVe=@srn-EF&;wlA(wP)crYU2x3}}9+m80Trhbsj^wa7BW$q3!Na=rK z8Pt4tBu522Hdjer$a_M+cr3E&^rHbB3X=UId7IQ#`_|ddD{x!W@!Rva769(l2ddX^ zNaHAdgO43z_Y$j0D+j@JB+QZ*I)aHLfXg^q);3#&vg^P$dB+=p#6 zoUhq+V}>-(Cx*(KxE}wi&T7K3OY5 z9#5n{%k|pgh>H`^%%K1B52mQ&0>kOn&6M;v8DI3el-(}}>wox=LFC$HESuq*>VGl; zXrwAI`I`&R=mU_y#K*t}xu@4=ofLN(o|%F82%gTRDy)LRsHTx5Bs%%8b)_hLugIVqp_RJ2Rj zS-25&^Y`q+N*`W*8t!=QOr|;_-@uB3{USN-MM>XRmq~2XK$oYNB2n(2m65aKp8j3C zf6}J$`4Q};{0nw?t;!QwX!Gr-Uce{X#iMP1kQX(lZ8H;*yTeFpR6+2O1#Wy%x0I6e@N6L zn%=>z8^f1=3_i+1keQJAM7~f+p)R+@#1x% zqo(pUhTMW;45T{sV^51AIrhKWR%)60{9-QuXNLh9!gy33l$8LwXl$z=6aF7MNz;Bm z6M&JhXybGWjW=9#QA={=h`2TEe|iCwc~?g0w~_!!t1>||7zP&L>kN#1qb==Bp%J#s2^0W7Uvq5Zo8Oppa3^xf^LVulZZjOqVBao)qPT#2WLu2aJ) z1Cy23I=%WHOq-jM^6j;$;Klu&f6^bKZSZ1a3{*w3?nb3p-tSrhT) z5HD|$5c?*z^#3!)qgBj^l&Vo@%7->T8aOj?)@U=*js1zS4d?uIQ4Aj)q>#GDdaDo6 zZQpw?L!%BX`hve4o@{71Hp>#N{p4M&4oA_nKnz6@LIt>3R~DWKEv32+3hw3;kts@P zW1*}d__|gV=A2-3frW9<HLKNQdwcgd3& zzcRB@J8js&cDJIx9A$e|V&f``XE#E+i%Cl8#u|yA7IIwCbB2WC0pB#jUoso~rXneV z{p*SSMSR`8_$~4KNM8D*H$}?P>%%|t65C7w|5jAlm;b6%#M90E$PtY>8Hh*fpQiV` zNfVi?K4{me!k&B)km1mWfcaX_>5+u6({ItgG)}bZa#6l!$@RVS{`Nw+$Z*cwOG?dJ6zMqrxkmt;uhov^lY zz<<*t2@(KUs)MDmYG&t$60Ao8`Sd*X;8TJB0){h}HlRS3Si9jQ$8$RznR0xKw1w;_ zZF75@V(-OY1pO8bi2dqQad|mfWGU_QPQXwT`Mw~Z{Hj+P3uep^aOnN%J|iPRKvQUI zsKc@y+R3^2EzAf#=Xu-@PE@|%$PK?-y`{~bw~{U5=g3Kycz1wh0%I7OtAn>7?M)DJ z1z%~~Hq&n%gd^F_vGc5ZG!ImO@kwVLj%PD?ZFo9LV}{EQZBhFN3&frIype{8Mp~pv z!5`nzN&@rf<7%IWYs(o($6HFO*HsOY2I}Hu-$ZwB7>+Ql@sXHVp z;w;0jD;o1tXP#AdDv#I(_$PytfVFFQvN83e3-NhAh}B1xI8sz-+k z;D5))Z{>uyvCsUAp|?k{BrZSOpw0lC&S9V2ZGD#8!>vt-Q*u5tms>VNsdI*`A+0ke zLxE|C+VeN1o{s(CkR3iUM49qGy9Na@$aJDeuGXFl4j|S~1Rf`4|3+~i)+oB;qVC3# zJq^lGjKDaaGmUE`^bJ>(rX;lhOe+7R1J^X0Mi7#Hk2i3_%;_JjZ@KynjA6WAFLCpA z!j@Hp&0>eZ8`GdBdI7T#8H@^uiwbgU=UHdj?VrNj|{Bxm+6_>Z||yg1$u4iW>N2eRtmY znCBpZQ>u&YKSGCvv`0(W6roiyUF($6RDWI;A9$5N)~d=Hp+BSk#XQEMEe@vxP#lR7 z8qV_&#B2T6KR`}8<`ws)&azX?NpB;fixv6F8Lq0yK#Ry7WWz1sbvSX9laXc-8@!1X zDXSpy1;^(q8Y=%n;0hj6ALOzO{{iO%Mv=4rD5_{xa+XVaAiLoLr)Mj>T0SwL^Q-U+ zxM7zg=me*YIiEpWZX`D>k1Fh^i%*A)kE?k8`m3wBM2^6q!K{1M`Icz{u)UD zydOF<@}y`)Y2+OMt7vbct`83uBc4qJnLihPin9XjVLPY|8HjrD)$i`Ay;01Fw+X-; zl{ao2;?y_Li2&f3!!tP;#iOyam`k&Bidv;eC-@YorOQdFJ!lw0RZrqi{pya~sOt-( z{fEnK1+5$a2Jy7l?n<1tOtsGv1+Re2WeRq+2`$wdEoG+|>4F34A;O8uuSFyvcfaMG z^xwaI=iL5RCG~98KS>rAM1X~6d9vQm%xIT78-on#t`<}3XO5_WqYQa4$o}uI+U6Qa zoE~TY_v$!H$+af@`Ymz}#iEi|U$>m~QuioFj~$vUSO0o!4KxGP@kBzXg7(Ocw9%C@x z>rW+oJl_Y<674wU4`r-oL%M=F!5aB>j(vaK(}{uzcSV z6(peXy)R~{wyn5zeFgzXe@-98#qD1wxffux7XNX5Otbr8NrWBlS9A*24k9P=v_+Kb z-{@uCRn&hzmyo4wRE)4ULU^o^h>jW6kL~pEWP*^=cJN8cj$^`;g4=qO`8S()24Z5! zxc_??w3G%*CBXx@_VR0#x~R<0#Ur@~JIV;`m=78c#m(MjSHa)YA#y%fkn%*D{wLf!l{DieE$d=c}^pokQxg^IPR%Se!j#~$=P|$J$ zqeDNKuFlW<6nT+deTEZ2A1;zQ>EfMT8H)j;%1@UIlMC1{h>$~5O2dtuPl=EZ+k4Zg zcyq5%p<;?9t`}Z0$YA=C3}t2*xcu$`8-qAvgZxD3qLSEu_B1320xTrOk0d%ppb$NV zjM|xzj=X<+TZanqD0|LhR~=diye&3`2zdVSwaB~EIO@#V=6W|TBIUrsIXw*8F~!OY zOPpFr$3pi1xQ1f?s!X6fg-`U~;i{WTVD*DXS4^>%kC9%qp}GrW;s4^wm_)tXeC;4= zhRxkgx06;oPdONwtEj+xVxJLRED|fZ;6BFjO{7+^gc^~wE{3;jmT7Q1mmKzLm8jT) zH3B(XC|JvujzL5?t*8((&gC~QQ&%e>H?%VP6J8oM4>oa*Lb;m&x{%~C`K5lJSh@W zRdG)^DEp7wV0iTXYivC_zYZxVFOC74QHzQ5ju;J%f2;C%Nm5Mz?-jlahdqIL#^$-; z$7VeJ-8sUqU{if{p10>LfN?-lu}o6}$Q&6&pKNq)4abTV$w&H2GV})gWwFB>ZyF6A zitcKKDx|Xe*3%=M7pqY>AWKJyr5VDIiBA5k5cK~GOxAv3flCm?vG1(y0|HV{4={eq zQS<{-Qg(O#`u}8&uta#!#ESZbM`WW&SF`^Y*~jLQ9`~l@$GPG#t>W)aCybd=3crxt z2A;gz-4`*Bl7MDUk>fRB3H5`4ArY?=5#C2FuK)AcoTWxT%sDeLw2z|#R2PSvH$U_4T;pl?-nFR=`shcAa{K{Ny$3+Ac&(LV3L)Cfu)(~x zM*~YgV7AbxdL6{)`aW`bVnC9rDCsJeRm-;!MQ^9|Z&Z<-R8wrSTx0swcA z_j|#~MjIQ#wm_bWB{DI-I~qpEPj~m|0dmW}TW0@!q2T>Lc%keB4sfw1A1zH&JV@J< zh51hJtV-D~bXuM`;#`KffGjjx6h{_&_6G)sAj&Hid7^Al3oMrV&<0*s4mf2#qRQe( zg+rx0F2yZt;>(p39Wg=)8Tf`A+bwCc`zfGUGvHnTLG{ZC)61iO$rGaphK59mN_>%B zs`?0X0N+M=gz=xPZWB2y0tj-b_AlopVRpEhgfTw`L?_YtjXegSwLXAqKH!Wzb>h=q zHuLA0t}>C%_5-*9F~T6{bRubI=;+=azU-9lTU6OR@~@#Xf;1XPtNmo;TRhDsD(3DvM{vlB+Sq&J zx(#k)K_DsC+Am#5vbguY+({$%E-HvU4b*zSS+?bTrO05@x>G~3-ih0;zv`A^$iveR zG~mDu$g<;%fHqZS=(3Ey1>Vcj+1&uAA3?cDqvbcF0<8Yx4prWl*VN};m z;XM*h^+CAd*@)S=Y&u6H7+7l~%FQuU19y~yz?jwoU=1>V*-jl60 z?EnTj%7>STgdIJpoD`U;e?X!?33CL`@SJq74DzT~KrNAL1FurIO*}-ow7NHrU=+gK zBr!tuPIe;5$W`Cb9{ya#X6I1uYq{0t?`{&d(NO-{ZcHnR@<*Tl66?BL7VNm>JR%Te8#RtHXv75lpFp@GsPNQI%h*P;?&%^fi?#lU+C z094cuzOr?8lZm=(@cHU5wk`NHzuc{)xFxTRbaScwhb1>@X82bnd_t!pxUl5R!dWv7 zQ63)Y_}#tryTGKq1FHNo^+Kqyv`F|dpzD8=B>#bQjjMVZU)}Xl1Z_6=5hWzZ&V!^d zz~9O}O@Icl(qCw)<=N=lQt{`(QWF1RcHxUxPJciWxAcwKj$>5xhPvB(Cwk&#); zMb1-itWpU^fI&6aa~pi$g2KI91Gr>E_#a!W{62#dEz|!{g)x{_m;6tW{>$EC#GSyU zFG8wIx-}|lztVH%y0V*>y*Xq|7&|IeLFYy>BB-f_(Qjzv0*>sue1R-(=UFHi39Yos zHYHw+aIhg7TzO3HQes-71=LaC=&7@Z#V$wzGamsyQN~r znA@#jsktD)%JZ$ml2m|NZX6D>xBE(08+}3U!q&;!txFUtX1Z7B;s^?iw_HV-L2U7} z`+;h8dG(3&4}xlyE+!dnNX5$(X~X+;XdVSa3PX_d)h0(pcdi%A6XOFqA>1E7smqX> zsi(munc?j9rq7^a9v??YK!W$kEt*P13Y}w9Y;e(?1Uf9SDRBC{Jq!GRcFEPkfBPj~ z7|AasB?0Z_BbF#G1P+o&f02750E6mj7!w7O6#Md!As;pU!FrZ&j?i4?py_^k+C8Cr z_{V!t+hqv75}Gxw^(SLy_#3uTPz}>#nYM8uDQGNsubg7$|0C-y%VysX+9`l*m-}LpLPq~~(UVc|Vvw9vRp68D;k!krJbqE_5P(EB zj4Ax%Up}hd&e3E0ck4Ff@m0oJw!ivh#OLs|ieIQExsM@oqOt27yIvFdo?Oe30FrRp z+q*e^M{8B8Uuu~}E!_K&R%z|HBn6q%m^TiCa>iI$i$5M?M?D|@%z3)ddRf_#5493o zQ63J1bubkM=gEw;|1)yEdjWTX?)Tu?(Xue&ecmw2_=;$URf{bSKHI~L?wE-eK*b&d zX|ivB70OyK_kzvkGZ&xqy$oywk5ph4JnsYh!~jKUSV!JvNCBjEE+wT8tndqIQga(l z5*EAOGD9zOD|Yd0c1=YVMb6e%F?8qkV1|TDm&rudIWIwfdp%_YmPZ7?zqSP(Ma#?$ z8D)4QQuJI_vL6iQco$9_o|r4W%eUleh%kFD8H)f`Nz__duUJB})|{HC?9M}*k4*Sx zCg5f-yWnq-2o1D;>)igD3PxAoS>1}2S5{x07XA=o5bIJDT?;~nTzds{Jig!(G z4QfJ%eve>XL%NH9JYPX~2+^RxAmz|FF1^ztON&-uD#ke#jZyef9&?yCK*`gp=_GGO zb=J^vd(X#=eDcIiCOm%o%@+LMFG>{-+ZTGW{A{ke-i1yfC@{cpCA-u~>0X>TciF|f zg))&)Up~bDI>}squ%($in4XL^s6GAPVJe!QRM*m)aI)x%JC*INFeL zFERm{2Pk#g?*=7!D)6b@E&AiYG~pkAKeV$H0{!{_-gxoD8=sAO{qb6N1k_Ytr-wY; zwDG?NbHf&H-z=HwZsvb!3C*(nYz6B-T8QEvT`gbt0*gpMRhm9(+%s^^>QswjnmyKM z(@zuJO)}*I96;?yKi5C1<`Hlbn#F)(o>IT|VMC1@M!NJ$8~)Cx)!NI*L@lrrxOGc~ ztr+dNSue>Z044pjci(RkY!eUD>yPvHug?Fi&tHvlYPcUp^B|S$A3y#LQ3q208t56< z-zGvby|$>*;WTF0DA?FM)w`NV%h82fmf`_o7tCcB?I&V3-l8{Mc-d2qbL@jjh>G^RWp^MSAPu9>xkOdzD0u+&SZei zWbA*G*gnf)(R34<+d2#pI}TWf7dHrLrW0TTO(fu4ZeAS=44RQ5JsQM`!FcxqxYxi@ zt*QW+H^jQDl2)kmYbrh)4UONo67irlV3c3ei^sb9z1e5?kIPl(3m0yR`hWT?RVxUh zkc@G+9Z}jP)ri33eHGOpF2++W7sDEux~7{@dls6I+BPGcn@Gpr6XGGCaRfZ62L zQ2Rbe3&80B)zCVl&yq8}FRpvOqstjP>gRovpEQ3qa>RxN`>CJmH^e$*UTXwMYEemp zgg0w<78Jr(Te3Yii2@dyZHzEC^9yL7yyRR|Ey=_xTPN$5s37C`nI+WP{*Um>3cJtp zd+dF|WR!iA&+<6pA-Id*wzhDdC-SRQuXA6;|onvj)s3-Ie=`0+R_v4}srs{1t1WiIxd=YJowiFK8Kn zBc$n5Q$Y3BV;tyq-z*6+_-}Cmsev~g#SctR1ige(%wNp!Bi4Q7PYbgK0w5LT+!1A) zwSY37sI^3aLaCK@$^Oxo0>>cdVYW;=1dn1_luK|{3weSzl~-)AE$8ugtQ5H6D|4WWPwlw_gPi# zScZ|q%I5C|Ss<7CmR_pQP%Gxxbe^dYz(TGa#W17cWX}}c|AdNYuz8LzKHKx68EKy# zFY`X_4sSNZwE&zXf*i%Zb%x>;jU|;X6Hk)D1gp$}uHxfUzZ3aP`>d~b=XLy9D8S|} z{g62mLMxbjRe>B|N2&A;RwpP4#k|`)Q-P}po1xVt9Gk)P+%kx&L>VDErAQUO%g@Gi z`O_z67Z4Zi65#NwpIh={nX@tHiyHem=lz63xY7?|~M6Iz1T%ED=rk((qDOn}GokZ66m36wHH zP0r2nDQO^bjXP)<4Je*j%UB`LP)Dsp#>~)(`y^^H7hlpKbfbZdUS&z(obd|2-3F=i z=0iDjZ5HG$f2NQ5;)5GnH=w+qU{|^P^K(O;i!A?Fq|XkMyimHo$%QwfLL-e-haH%| z4g!$rZI|=XJhpQB#o^H_bZn`cj1Y#t@MijM;9O39WkbYd8gG$;xsxL|WAACQY%77L z(xrum;^6FiJ8I?M%Pbsi^Zmo<+DKf0Voow4{bwh9RHZr7b3m9L?x9W!AoDXf%1}+G z=QmioZoq%o?tGeD@!pk-W-@M92TV^d(>AUFwcH={0klibB=D==SH$2o|5n9YRveL! zJQm};Xp?=OzIy{Dk~197lQVnp1d9BDNJxgjURjk~79so-b(5_7euE_v?C3BK5i9 z5QbSai09j7WZK04vH&FNN-VlV_}aE-`3XPXW+SLZ8QV`Fc)0+K*+zqJ_W>|{JVib>h9`u~xU{mz zTLN>#PzqWM#GGEzNm-;p-{E>opTMt3G;lqxtD9i*vV6c0n6P`GeLbmVN;k8b zi*Fbfi=U*|Z!pT*|IVM*{k_hW5a=Wv50BFZxvMp-ksym?C`{i=A_K3LXQ4jYNnbbJP*iC zYpl8ma6G3Y21Z3^qF^+3LIi+4h!@1{s;p|R`?>(c_!zo>?=}{XT{qMxQ{R=mf+d?< z$u-Keea3}lm9efy5RL)JVZ9_J90^HWJNNC^4ui z`z&?br;IV{RDsLOQ{A;Ub^+27S`VPkdgQ>mf~W_7KeIjc5c3686VB2Ce)Cjd~`&R)MLXKo;sFK!Yn zCQl(idSzuY5YE&S>Ew8!N(&`_etz)QOFC687Djcy#EK|lf_%GvMyMD>p7f2~;6G@V z9{BM=@OeP9kFgbcO#FkCyTF(V&aXXlg;=4VH|Dr@YSc-XJXN3a5tf~pA87^`?QhJ! z6{UO|jERP5_7>*pu4UI)mA!o*0c<0V56#)ed}qYEna{xNdhyty0ZWgdX4yB!)6mJ&#UVdzz`Nm%b#TPKDXVU8jAkFRuoTfXm=QKN}1 zGgeuqx#{zsIznnHw~(CfXic?}>OmbTd&PQckAkwLGZ_&ThAp@c0IT+of3vtMGBJ?- zP{5#_?jw?*cE*M$=0dEg1w0RfR}vUYRm95J|AvkhaDceu(0!uTK!7(|1I z{lUJ6kDxd2iyoh8;jQyjL+o9m? z^!zRDs)(r62hPp>W> z8Z=OQ+sKYe&i!W?{9K6=1vOXG74$a^#+i7Fmrmf=uRr=m4xZY^q%8(peJ86Q0(M%{kYC?Fio6k+86`Vs0QU7`YUEl541X-~?8|r66Q+_W zJ?bhss%KuA!zq@9&w*oIm5f+UwZ?27ZH``raoS0`?YK>DN136rG=u*2iySo_x5 zDKSbFfyn%BqcS{|7s#&|N@mR3mVwS0k>uUszeXHWeE8eDaX&qQw$0QTKVO*sKLoC3 zEG5Ct@C3-tR`(vqx$xe3fhkd^`%L`iCo6GRo6_IfqmFjGwv;p4&7eANeig`60LY!) z(=RQuus6QxWJ4a%8+#-PS*?lL@#Q&FBziJqwjEcsSNm--|BLj9Q@!{YHe{5NB!qJ>Wp21AM3e z-n+Gj<@rG#q!?*U$0+On8~F0qP5!rOyLVbfVt4z3QsSt}5})-?S9 zH{5u3U;U`buNMy5RpYSf_(c4mjy`3&eko>i52W+xvUJi{BoWLA1*1MHzVdyPik&3kO;fb!Re zHC`Fe@3Ia(R|jZMOIdL0`^uvam&cok?cSyk*ZS}}8?_R#-uO-jpT}Dm-J!@01Y_^! zD(r^5+j5jIwp15)oo#QOl{Qd^dp{;TOxv4p6Uie*ZZ63jSQt840UEuP?)T>H_vnu7 zriN4~6}wi;SvYkZU$P_pGxDvP|7}Uc-<&S)^uL)?07(*&uEeO3gxEtQdKW_-#~{tr zaYrOQFlQUhv`A2CT>>!*6Wd5+h^{jkSbW&$yNj$We5t+RP0jJzkFomz&?*^nIb~9y z{&!sZg9Xl%-t;IwL>--~+9-{7ETwa$i&fJ|n1d0y%ak#{*nw=Utk1Qv)6@sH(0Bl4 z>6Q%1+)O(P_lyRsobjIL3>N?3p}U~RJ@ns{c~KFFE*ph8pF^d4PuQI4x4!)WI8l6x zUF9tbMkXne$c{?7htbxwWyZ>Mx_(s!5LTHHx?{NOZUops0Tdb$weXkk4l}jS0e1#z zjKk7rd81^MZ%5Pr#YRmI{>p&}zU52LDWeLI#%4{}K~l0S0cnL@+dtuAZw&~jJ!`9j z4B5UfIVYb-y&OAs`M8bDM!RvtFwZ@dwiE+2RzES0rwE%p$Cdh6OSMZ8r9{{Yz@iT$ zDqhcU!v6g7hTa_TCP;5uHn~#OM1g-@U3iB)CiJ#x3_{lPQO{|h^Ko6qu%mPIU;G9~ ze4+xem*}0zP$8R7cG+WMYe6L+)E5!V{=;wu(JLg`0!@u z^=n@70IQEHSVSk6M|M~aI5@8`?vYCYGdwB@2dW1qT_9wM|ugHC?@5M+^rvVQtYw>9Fl|31=QWyh}ftU47BEP0cf z>fq;dD`z^Ged%ChZGSJ^1Nqq{9aw3#v6c1RLVyKsfXbD!Y4OFVcQP6&kS>kFFf(LL zhjz#~w)5x4Y?L|V+X1rgrW;ZgN?pmw&wDRAJ$7V?74p=-4Sy~CYjuyzMhglrRO>Ey zJ>UdyC>r5=Mp8J7$y`WGidSr{3bl+0-Me{yK9SB=xML&nscvhFE&aQ8 zY<}T_xaJQ*huvq)6qJufazPt$W41F`lV7CjC^>PgzVGBe2bMM;&N5rV(HKS3fyK(G z^5xA6c1l!;$#m^@Gm+bhwjP<@)GhPCCSQmhlnHJsdG~}=t)Gvb()p=idK{}yPs#Lg zl~D!8)B4eqxj9jf!d76MpI##xOlxpU%`x*}N5$<}T7X_uX3&AfgEb?bK#G;QBDxIF=6eN1T`O;zw zY7x38CK<^FCC!gvc8@6bMYqn+sQhLQIs5>oh-|8}VYuK%`Lw@UxtP6>#S=Xo2Hu=Q zyFE~7$VBY-UY|t<`bTRgNEZtz!<0x1v#je*BFiUvp((nscM#5I{#a8~>5G%<%L##^ z(@;i4s`;663f+PzM#%I`9lrqOPQ6KH}EyK32TI&z~;Xe&WC^`K50# zpcTcdM+Qp|MwKjs#el|yQ-C=om92&97sAFP!9|kJkJ9}pf9?+lFr!b&kF!CEjCpBd z#LvLeX^#y5Cfr0RzT51lX>2P}Kj>7}?_ZW07A z9wO5Xh1HQEWRp%N>ZAkJT$PwTt5F?skC?j~V)y#*5QA*QgKXT(!%jT{tRQ^l<{3p* zRL7ZZ5AA*E<4p8|Sa5%#V3pWCLsB(WX)O3sS5%%p1NRzP$@xdT2SS&8_*(!Q%x*fH zIh)>+84UXy6!&Lw*zYLg4htK6_-07pxxELQW?P-jQ^_;6HuBRybE0*5j+Eu`o8V?J zN^K2T(~aaEeO(Lw#sw*YjzA^1M%9A1Bx({kB>j*PUMjL@9?r;`oWU6dRqrVgXuh?r zJ4NWPY*w5NFsCdxlVxP;ts&}PG!v=v!{{&~Crd?WexVvDO_sh-=%Yz02nW*cKpMh} zpok>l_AVQR2XwM9tbB{9hHqBx*?&J-Xsvj28S=UrRk+&fDa&A!s6-!c{+fV*4W zD?Ooa^=}6&b5XoZ4bs96l>Ffex{L8ZNI z9Y_5MNddnK1hC*A4aPen^EdngU3N~%5qSLjmb=x#>15FdC@WaVJiJ+>RPjU&nECsarUnWkg1+iEoj^2!SGf&C@n_SeJ+e)~OV z6X|YJ;HI|OOt%UQUi2!_Z+Hb7aHReZ8WqBpv!`(H+e|yAKTaO&+o*D_#|P5Lc5Pak zwCJxc29}x;?=POa^lNZTNe^VqHJuY4n@~yi*oT1^E%?)cMZImd+o$gJd_DBqVPN&6 z>dk!+1*{6)k!Y5=yDms2gb=gIyS9SJ990(h1c`1RvuuGd(HI*_Pd{Y-4SFTx6E?Cn zQ`9isl&x1TEX0T~F=6g~62v95NWz5X$$2ULpOxy)3CrI8gc2KS<|tatu5fTqutUF` z&+mm}@<0z@r}6AMvq^_}#`9)ncr8)O>Ca_{?Sc9$lthEPlSGWcRzfdwQy6D1Y1=z@ zqSDkEb{APO)}Rqp3ku(p0(BA5Tg4>hlA$@ zLS}l)5xA6?*(WROFC^y1<& zk-&_KN~+_ZLr`o{zj;(J65Mf>$2!FVqIR4+{X$#9R+KR6_LYZ-bvg>%|3*md>`jTB zk*hDo-VE{?9Szx1%n6Z^baz4sqzLLI(4&8qguB;l>t~l}}M+8T|BbQI?A8g0x@O=@yn@cgJ zzqur};mDa&>$?KqN8n zlP|w&A&d;%f0v6+%}Rk(u)O$@O1G+(k||OzMPro>a(8cfVP_f!`A*^R^)qSe&NW&0 z#OL6!(B$`EMgY6J%HK0WkGUU?3OY~m3n%Erp)ZHWX>;&_k-cBQ9}Ww;wuB%-%UwOZ ze&qHBDNpS$_hp3?KdEsA5=1U-rmKpBpl6FZ%z;}&h%HrbRr=dH4pN!V!_71wElIed z#p|Bo`+83gjbA~ZC64x;vJ~hrt|Ii2IV#AC1!ePK)10(hF>eg+@EQ2U<842_T1siV zfH=M~zpYh4Hxpz9*+d^;w-Shjfrm(gjx*UwMq>s&KO(Pwi!RSM$7p|){v`BJHJQ>G z378o2!|*sM8<-$rv4&iqaGzp)?;5bgsKef*2h~`@FvI>V#xtM7axHq+i=Rf%yc*sw zAt!kp4laQC-dsZU`@k5Y*KW1~S#|Atm2P5Fqj0B3 zdUhQqI_Y<%rbYScFvAo|h`$d_M=4f2cM$P&-Xg|wY=Y?UjifxIC~i0!8P6?2q7lcy zi+bu@&tI6@ZZ3 zFgOVN{a26jx@Yv(ISl;HL#^tP*Se&&+SQqNh}y+I*DZYy-FVwofwVj7oTYxvS9+-_d)G<@(a z4Rbc95aG5swMsWfahP?-YbJ;FqJTKw$~QZ--`2@VJg+S28ZEioKZS0$-ibbq zW~&M(LC98yf%!8xS3ng~PAX_j2SYr)sUW-pY0oA>4vuskI2v%4K-;ahrnLhqQiF~2 zU$?iOUY4^{Aq8{e8?%t@iMJ^r9<5ci3I@^k7(8Y1jv6=M=sJxs3j#Pcm%s>*g}Gnz ze9k@CD`&z+PE&uj(qbWq={FgQDpBsmj$)pa`%i)O>z6AViUCj5;}!%ex;STp6OV&-Ekb!Ch$h2k$L{3XA z1*=7kA~+wPA5snJpWl2pTL%XdjBq~GDB`BX{v~NDX&hog1-QcqLKv;^cHEU!OYY`( zoQjbs-XB!M{sfzqsG%0@zfJrvOy&L*;Ue*MQDp)zUX&1*&EXE}^Oky?R6ZKU%pljE-%=dW`Vl zvud>Kdi|dD#+9@A3C;YirQvg34JQ&>f=`6X`!0`<$!|Gs<#dTuv8l z0d0`1T+tn}dJ~L8k69Oo6T%!|pr-<&d$mUfiqGdp#9mM|zdC*v?>oh5k|X%*JiF4S z(#kw^$Q}pmsAk5$YpOtus4@nd*lb}XKF=HrZ~u|kX&bFwQ60O&2seh;heL$krohVM zjaNV8P*v#hT+cySI-mQg@FG$fYhaKzPXfu_O8j-7UFylzo=2j^Hm|o1x-HW6MbI43 zq4W>%xx_yn5AN{gM6SXQ#7Q1Q*UeTDl2M>K!9dPy*abSzFx3;%)ADec*7fo}Z?0=DIk^!{(%w)smk|x zwf7h6{4MXNJ#|;R;i$VYy_&?K4RANJG0voN#Kw~^Eb00W(AiC3Ps&jL@L%6bO+}Al zL{Lzj#|CECngBJ-vftv}VYx|ck0paC;+W0R9B5rzaKRcjOywuM8Hf$&T_&}Dtw4k? zfcAz5+|1t@XC*0P&u4q`SB@>}i8(q`#KSSyjllsHbs-N$*e!4kDyS{u)05vnuml!A z;DNlz{m?@X`jQ6oL(bdafU}}HK;KSwkO{0udDHu#N?xqyBofBC#00KRg1rTQH!LHD zLW|ygq$gKB4C@=ZEW{MLTai)qzBbL-;*%*KleV2H zx|a!*$Q9>PEH5yCg|7nQ-e(7(o(5b~x>C8SUUr%v`vTAc9O&E6&HlRDpzu~5l_OknqfOlpU0`x=B$Cz-BiLyMhe z^%ba`_*glrIfizIH%)+zu8Kf!|o5qaaIe`@JvqKof= zrFZcze5IHjo`(zipk_44fk{y*n|w%&_&tZ_uL}XFT$y1YrD0s=m6DPlvVZN32P1TX zB1XT|0ySf*z_llT`B($+oYh`Bo~&KAS_i)|V4sc#YL|uoEiwfgJWe>;@}<$^+LEwi z%#9DY#Fl^HzfVvSCK7_=W*9%6B#xWEm;q##g4Tpf#3$9tHV1K1!`KVwamwVtu(1aF4_A z3W09(%!(%8xV`73JG$@HX5vVtsJpfM(y;m-E-&mCRmWp(0FFbpIGh;~54fk^Jcjde`D4nEwhy8G)_Lq^mU;xy;=C z07`#v8F_$fA@pTcnCaa@5<0b0#{D1!OY4KZJTzmbCfIW^cAC=5P&QmmQ>`YN8$H$~ z{bWJWmZ`Z3*G!sN1vaSZ0yJS8T|1)j+{TP)PWziJ*x>(jKb&kSTOE4B_k>DLY6s5p znkQ%u;YkK?w50>cJzna6dFlUp8jX=Gby%-S@21`0UrInLq5U;D3`=`i!|+W^hONhP zMB~dUodqx77)|Epr3z}A8>dlRxn=DqP<+{@Lds?=xpUWFQjnP+f%2a3=rs-R^e2Qw z#6SSTS&W)M1yr*mmVs})!NE7)2c}1@)u#jfWrNS9tJv=uOI4Wv=dxEioj0=4Z`nz4 zd};^-n<_Xeb7AgS)bl-V41=iWyIXr;v6_8vBsmuex!AOn-MHOes3LI(0G5k%kwz0b zvGidn-Am*Mq2_Q^$q_!`MK_>ewfi+Y@ zra|$0OSbQ`1nz3_6pwdV>OW9SO|%X(t}qtN-~uJE%dw_7)da?Q zMVazVp=|8^zm~1m2%ExUI2Stzp^HR)4)Od1U3#qJ+1crXmJ^zh=BbO!(}U(45B^x? zbwK{9>wsgvQzS)*WJ})px{G+M54`HXp+dmdCx0H+t6lVSh};?y#9w~)s|0Pl?Df@5#iLf&>QRMTX&DsnWB)Px|CKU@A;z!VP|bj_iE#x+NBgoqIri0~8R& zRFWh5;2w`z959dX2BJkU&{=|KNcz+L^hS$57p1()=Y&M}Z4;cyAz$MpLi9SL`uRj2 zV7cn)vAtc|0QBlD$updd>>D>FQmgNU5TEyEMYN5`A`>QzkeipNmYmWczQ#E|arCBq zJ_FMhC75Vuk+r>8b}qD3>v==RDRH6VN>mT{S^8aMpPYNP2~6+qUeej^CHBvHTSm`M zeIa4QsBUiqtF?PpS{*Gyj+%o{pR|WV)-##RU}{Ryk6N$Xw$u|;TJlaDJh6`49$k+g zh=a27&x%toTT#m@L4lpE1l!|Mh0G{Yex{KT8OZ!xx!l|q&mHBM5-kvVH28Z%LYNN= zisJ~vGzopOEUDeM@Ww9GJqD~d=5?7JCQDSiAy+snux+d5gg%qV4> z>*LhELw4Z;5~rt{nk4#xv7K^q8@M9;vg@OUy3?Npm+W=bDzSU=h4TC1w}rg z6Mq6mE$opB&59f>Z83XiNIBb3@M1>5lAwJZS>*ny6xs=QrZ?rZ?6=RyM z+ol#5ynX%Ca%TTwmV2Ru#xr<)JvA!d6yn$I&J>e*1F*nI?&4%%d*SfwD8p9`Ms{K+ z>Rj5zk(BYTf7Dsw*45S?4YqMiaFmUc18ky1y2ty)vFG#H0AJ*9Bf~*5wnU1mw#;dP zt_?u%x~(fgy73yjJ5Ik;Loj}N3AMn%--x&>VOZ&cCaEey@u%L9iR1KcOJ=pX*TcF$#CGX)7q71axZQ8 z#jaz*r!raK&JUc0jLl4aaj$wyt+JL(O2GC+G3#=!xwU>CQXp!I{{Mw!0ETbx=cwq9 z*K;qe9{m@E&0*&OV?XnZU=E9q?QlRkv?i|>pOo~tWY~TXs>d1oMd(f_!KcKA`0z&^ z#GVumc_uxnx^)`R>K^x8t{)s4I_(@Fids z{?HTyfP_;9Tz5wia<<6PKl9F z0qsGR^4~bfMH0^m8h!f?SYr2Z0{{1uiIdY`W4XX~fAynmz;pThcS{b^SuqTz2w_(E zktjHqH4FY7@RknW=fU%@DEry*`CVk<=`fV6G2_Lagrs9{kJ3httKLtKf2F@L-hWTI`bp29NhvtkJHkKOXXJJ6KBTE%aDa6PpS# zt+Sc9Q_6dCa3LN7*iRC^C?l-!*u_V`*b|B63{W!T;?_M-N;VEUW^>RT^%v!PQ4z~3 zfQU>kzc^LRl*mjMy2!2)ayANy<3Ox=e38CM)5MMVQ5eRqP$-$qju+d2g?tlN8y$%B=hX>!&Pg5Lec_+ z^&oW&@#>=9qy0KHD#`T2Owjd#n({eoBA7wb)tG_ImI(ELNNvkiu&aaUoz3Wns}9H6}} znz9Lc*Ivf%3~|FB)T#+eBtN4^K(g-U_K)hQu$ja$TqIX!)G9YQLcI2`wX-{IlEQml zj)hatCpvJ&&2ox}b)aJ_c=UR@iOvM`!Csj@4lHM>0nf{XUVQ*N%)LhL`u|*gS@>MM zG*~B#gq;o5C6|?Vp)OAwwjz}SM7rT*tRiWfP5fPAOTAiX+bF)c{R)b$!g!-FgBnBb_uGLCh zNFJNQ1Qi^c+k<w zA1>6MX~6~)v_~GjfUWd{(KUVIgz=E8C4Hg2SYi^AgpB(D3P_TO+}2vLZ?}@{4r+bX znd^)b@?n_!N?N8O05192rV?Tw=1*p!rL@C<)+e6wJaBU=|45=S?;#yT@|<)_`0Lz<`A~fz0(zz@ToMlYldb$c zN9kb8-r4|FJ{-);Q~XZ~B3$uA`lo=Vvi$^i)9>@!EG`#fm_c)FJJh_E-c3{t(P#at z*(MfM5oYQ4chC(e7Cxw z=m-B^t%2I)a)WG$0R!g^R2PeEAA`FU2)AYdx)V3( z16juU(14JE_qVr(XQur{=Jd}p1Jl z))7=%VhJDURNO^Fs-XnVTvcLO_eGz>^%(4Cf9_z&rGmz=FD1Ho8XsN?NCiIOS}d+{ z_~Fm$ZMTdqCmVOkE8@{oJ@a@l%;Sz(?`Dof=3*mvPkcmN1kLX|JNTQ&IN>*)!^$tIe6gZx)}q+;U#%1 z%H%_8qw)BWA*RU^IfmMK4kO^b%jBDJ!i|NTLcjFLtnm4@`MMJo4@arbSDj3Jj2;b2 z2m?o4B3|PMheCUC0hz9UhU2RvE9^cZW}>l?kBcPp4=JR(1iI#$>95ufI0jE<`%7zKVHSEc?| zL-%fv{aPKAde{CRnuPc1?aW`AFKyWwV3T(R#lzUwM90qi+lQs}D^KA!U4O_CC^E7g zuM@kkLcZa4+q^oYFAS`6FMV8z`S}Uz4=q&Yy+{Ktq}wrxwrILA3h`5|d{S>_6ad~H z8^cq#l=&q*yWzI>!U(L+nv!G<(2Xg`?$k_l%*gW4wU{z_>^}|t6U0S?1~!<82PN(g zHPG9Wg}lSB49PLVBV9rNA7#nL&1c4HCK(=m3CqCsz>Aag0>!vj*-tQU`bQGp5i%vOH@N1Jo~CL|i>O+Vnswh`2M+I0E&#eAQ1Qtf9bd@K0q50UjSRG)GxNgnh`?UpkBa&B8Zunzm}Wo(BS zHSHh;LY>6KRTFUZ(?0-S+O0e9t@AzX&&<6JDopxn1=KUqE6USJHi{y4o6(3CV63}@ zpGy)3+0UjJ9ZsmXhvs*91&BS$-<&DdikE+A^IM5mdTBr${3Cn9X50Bg4ArQUU9IKT z^3P8wpW<{Y-8TJr-w#BFimZ}TL3<5IvUC{R;8YBA2>Wc<9qSmv*~I1ND;H~F-e{f% zTGZ^H{fR2B!?(e}Z*ILn#-{GVK88Nv`7vMmE|b{QAIjTILszel54dLK8l!)n+28N< z$Z#UpnrRjfs!583Wf z8#%mRp&n5wJnZBtaaUu3SFe&tK)h|zLz;gnR9*SnoBrANMGUv#%BHI=*W)sbiT%p> zk%z7uG^daU)(6z;oK^*>qqOou~Q$CKQYUV3NHd$1R&N2h2V6%cL9`BZ}PHefqvO#nV5Z z!UdIa;AV}u4B^<-A`5O}=HdjQHXdS^(C0+8myP{j)A3&3tRhVJ-DsQ$xY2-(W1{!z z$eDlFV>i70#L$lk8~m@$`Z|S&Tr~Vc49$nmBe;ip&Wi2BWhQZuUW?=TXdr4O^KUjP zv=h{iok^C9RT{!|w4F&AmJYyT$N#A<@-J>h(K0#9KksVYX=S4GafEu+H5xi8?9vld zyt{uCKcr??_`U31ZFF9Hkn?{)Y|^{`%Wbi{2OvSWUeRwX4bz4Ahe2lFW*(OJy{IR) zQRRlW-ye;LQXwi}JMQIw^fY7cGYr=Ie6&RUVgrKB4_!Csyce9%gi$MDrN-0ZOPLMA zO#flUMLIOh6o{pW(#X)pmr@e`s0G|T`AF%i)w~m4>j3v+0m>ZLp|iR6z>=1i?DSDr z(Zs=3{o*EbKw|3j6Uh5PV*x0BQQ?>hXuJ~P7`JWkMP8N}>@$hErN2HP)c{r1=@fId zCCD*)5moR94=mhvh5cY-si>ov(LLDF@QWp-YBB_KaI`@eu$WSX9sX={UA=?~A@sqG zqZF_-A0mOL6P0c*!L+DBDb;$gcRp4vEP3%AfZ^{N94ZdHmT*DRpE9nCwLb5TS<$DZ z3#xUX^piI`Kt=*+F|C`Cy5C*l2}Rm$YW)?3&7+r0LX#uU2vyOR-6dti8lU3rTrNV3 z)IjnIK*lHVR124}s>Gv-0$F7!Jw_uPb>sePOdsZwdCwahsBzF8^o<|e#0_fMI^-iP z%q+6_AHae}<@9(XPjKkyq!)5j_rFpsFUcfy^#XTfLEn!>JSx6zSgGQq74L)(u*2H< z(sB-V{;V(ib<};bM^^znMh%!L_inC5lKpu1k)S9M83J&IE^=&mhaVmfv?#sS-+>2?&e6A%36%s;Q3<2D^O>>Kf4?DSCx>hKuIUkg4aYy$>Tvnfb=ska=pa0 z6fk(*JZlM0{fOEEHj?0WQe-?I>76l=Yqe>@UR=NzBm0LCGk(6 z)P$whOSkDPw*Voxi)TR;pi3-qr1bi%YKX)PT8rhWR};F7CkF690?R4r*i^_b3_Yf- zYN%~mOYKxT&9xTg!ddnx+V)6{kjh07c?S}}uSPC1uFU;pgmZi3w6pWGkRteSkSEW< zUY)Ubky=IA;PN%T6}{;H0<%B#m~&BQ1Ahm_pV)8VMg#=zY`-DEE~FO_`+s*~>8n50 zVEg@Gmo)IQ7$h70kOc9WapfP)e4e;0K!y0J%=k7Rd9bTAQ))PoWCBaYqUH~W zeC=TyPS%BWlpV@R=AA_9TDF3g6#?asOjRxW$a91E~Bbju~!isqt=n zs7K}w>C?A_RG>tRl&NFdknP`RIG7flw4%PLnTe;EZEWlE%_u$Ik#w46mK{k)8rE0! z$h-vF7{<-a8av+iN7-hbD!ew0CL zIordEfQAP_&Z}4U$$JXR@v&${Ba^^K`wqA^c%}Mzbp#HIo;irxesc4>>`B9Uijh$P1m(x)j{mkgdc0$8pn2$Il_3o@C=b-DSJoY4CVb4a7B^S5J-L zdf4EWbfi&#TliHHKgaL{My`QMz{Yp5qborKHfW7MJj>rSd2m#_PcWFjaR3YH(d0o< zL^*~BYtmADV`nS<4L2P=uF7Y8b)NioR7T}ib3#0k*3z&zoem*vox7X`9eB0|H$O^D7lW@knJg-aoz}36NfEj3vTrnGxuC zI&4OHPxQ#ma$Bv9PO^Eb-xcRR_N+7L7JoJ@O?4Jpqsw!g%KjyvCf(r^3L@)yJzY4# zcnKQaalo*R@<Ua z3q(h+Gg|U;MumBu3}Z7cX-Pi;lEk`sJyfflP`aq!NhUC#J+zExxIU)Bk{Eo0|a5aJavg#PgoY{D6SMZbgU`pO#UoDJ;2A z!KdCeI6Sa}hZq@#o~e_)S^MqY$Ut;!hUDRe+w+P6{9uFlf~Vl(97B(>VZq6vk+!En zg)zbx-4dgzaMQ@nrEkPbE+TxlIw$}bc;NOUKwZ3E6}J}Q&B=|6+fq%vB?^h8&DgUK zA1MC6>O}E#-agqdQ_vMfD7en z0)_jYui8oqN#c(jgkwGwWeY+;n8DU+FXjWTb|>aW{)&82{C(4=NVecI)0DQc6xD%J z@h1ZK`P8colO39hh8^jJWpY-M%c36p!0}B$iH`enEiIZp!Cvo|-`<%jyulzu9{tHFnalq6c}eMCv|KwLqlc1LxO_}Cy}Qfea|C{QHGUNhm+S& zm|U+JUdy<}^6d_7Y!UFS)%KKrQ{w>M7fOEm;ojdwj7_P0F5uuEEHdW-XyDr2oT(~* zus>X0OSnS`XB5wu-e|k~m*p^JH2I$NogGK`nob^JNQ#@?>djcoc?L2=B&|5kHG}^e z-Q8ECJG;*vvnZpK@NO*5E9p-t#9xD2(S5V3JC5OP3+M96l-)Yu)Im9S*pAe)WxV53O?%yfkahdrhR0a zr_?Qd6^+`oi56v6zR*mwF_Z*r(&&7fKK>1dI%l_HP{f*D`MOGsfN5P<0HoTFy~C6v z{a?$e94M!XjWC#S|E1IF!VySAX6|%_c^4^Ocd^c^TV7}blv;O-0S^$A9jMXu{eEFk zNDPM!APN@j<$*GeECE>5g-E*M_29ic4$xi21W{Fxdy1}BE96rYu;1MNn!xtFTlbUk zFzz4H*Zf#!3X%zsnHLxviGAp))j9vhdkA{q%fxloL(%}}k7vp@=6nfB!|v8kzcuo3 zku2H2>hb#5(YXwSt*@;O7bv2YGaksz9_6@v#DgfzTm5^^d5GF{T_Ub;Uf)Y;er8Vn zJOKFnuCC5m<901p!Mo=AGiOEm(V#^nyw$(NG-}K9EI)RoGrxP6{#U1dmYoAF6&h>q z2R=ruCkqDxc?cH_@?c-8685ZD7=RiW%=kLlF57+$dBBEWZgv*u5et5VV&i+rnm=0Z z>EQY3%gEr4l2|3?may~Z5McR0-%E%L9#C4m)4XKHjyMT<92OoO-_@SEIg5(@2 zTAgkIveZ{b+O`Rh=3|9<>blPcF+d@|-)#6e0iwGP<@E4dnGDT|V+&p^1irjfy}X}P zr4PufE-;#AV4?{N;N=bW9uQ-*<=+5VgMBqwuXlxFv8?4N-$UnfJ+_+3SP5Pb8NXnA@)o%F*G1(r;MAiZJB-F8o^uRL{(XbiK#^ zK^?GxqGC0b`@NC;f!Iv6PYrLr4>voNBgc5$Q|{4V!$PGMmW2J_vRoW8qA3*&n}!um zC1a?B_ZI}{4Js6CfUFeF2M+&QD)~?;*yV`6XVne!xxv1j;-3s1m2Ev;@OwL1^DQ*nv0n21d@cWw?~r zJa)@0Yx9kt->_A`+3lIhiDgZKiN>f0KcyF0H&(jJkp$B@X<(Okz|uyF?#(^8X*p3# z{q-FmnOW~0o&H3Lk2A)dov)v%lWlTWKI#PWe`sos<73~S$@K_tHogL(@tO56b?jH9 z;jYOi|B~#y$h0W_f{oQ6_yR*wkk%(o)|aaytM_VIk@0Q*Bl(BrUdDHP`nZA=f z1zM2GJ@wMwxCwp#{5p4OEBn&IVj#LfxAxRo{!aW2Z-0Uqz~5q?@PwyVjJH0Xp*~~m z6Vs6XytPATMNRVTzFVkBq+*cZB0$zuZT44o24FS$-EA=Y9x}fS)BN*ndW{VdDJMjk zM}Tv5PwUQB=l0&wf`f%}g-|rWPFXC5cNMsWM0hI`uDq`WM*OtR@*e8m#Ei>l8!ekb zH5ot$Oeff#N)fhGSuVW+OKCR7%_l|oh@W9EP&ufm=dp!Nqi45FM+K+cEDtj#&ZpoD zJ-4|=pWwq3Q5UtuF>eN%`7#GREXpNK zijf_f+Z#%!rEIdaI(O2Lrn=z45S6H5_qc+?bo5nSh$*tu$VsE2hfpUhOcBx?~i`gmxquAvrfaJ|k*R>l54j1)OyWq&w?N1>Yk~zktdsi<}fK zSc#ZwsE;av$b@+QAbRdtV8~hZ)8$+2z^fgI)zoO;Wif^cwWC*iW%>C#p*ccZXZK2) zXNhT{Wtsqy(u4VYJ>$~hPb8H_EEj70XWHIPkq`vV>`((+ywlTm=2SjRd@DKAGi6nX z1-H#*G{B{b-`Ma4x63T2XxC=vm!Tnm+4V0_kh3M14J?fQq48bYmWS)iw6KWmFu>zv zugC(gd0KaerI8B05b}s=u@@a_@u}RO0AsOn*`Dv?S1Cz_9+l6`;Q7;O4QBOvrZpJV zWOV!m;|Fzcm_hymPQZK0RgbqLiCa4YfN%>Ne?TX_j_fxzD(?p zQ$^M~*2BpB^Dlh74t_Q^69Y`w`X^GR=FPNtG1GZ8RLz`9mMn39E&z8uWXfMj?MDW~ zPAk2c-+k|H53mf$y;ok`ApYXG2F;+wr^ejQWELliNDQcvI4n!Z?Fn0gfI|hvI#y`Ct8@3|C_3C9Q`Y$zBO-*65 zq=iwy2C(`2us!pC>&}2%VC^i^Q%k4F&yd4rHlgp0 z3m$rVxfsdZ$0-c@Xisi7V)~s&694U|&v_O(l6m>y*$DS6YpVC*bS#J$^`o^oSu^8E zmc?zI$eCh34CDw=rmM~Ne)Qq{Vb=ywT&F}u562A{L1UKK$DRoSTNCwjUHpqoW|Vj! z`p@rc3=B~34oOA(rG@5+c-n+gsU(DVw>=MLb7q!wQ!Zcj#;eIm*ks>&_}^hIfOWD4 zR7Wz*E3(cj;e!S!!PvuE*(;qJ(M<8T!7;k)9j;U^T~|s(7bWrGzO#e$kd_ydCOMM~ zwT-DtJh*XGxcir(Wd#rL%^KDh?wKy*t%p@avO!XeVK*G`2B|Ks1$p%o?}k<8qBHn7 z?tF^xuM0L%@G6}0;K(3NXnB@%HN|?2wo{)_e^flTO`V`X^42LNTffNdy!(EqmkUldZHqNRth>J`yWJipxm+J~M^PA_tyM~e zcHC!VC9kD<{ww15_p)v}>LlX2Dp=#lgelTtxESbCoa8g%vEQE&b<8*xof8gTU9Eq1 zz8xpMSbFG^yYT&1?HAG43UQt@g~18?WJ-K$*e|<1Z}(?GT=Pn{RIuw9kRZLX_(j-M zQHRJnU|IuDI86?_AsqGWY3t_jB2r}gsQ~l!`^=~<>ggoi-q6;~cz7o{IW)p(NNv0f4NKq)5;I><81icwwO!uB!8$9xNSG8*{22JF9HDW;5? z|C!Quk3(VO>T18{y`|4gNw%I>Q=lJ(l%PFda44PaSk;@fcHSL(d-x;u#8LCeI&0QX zvaQncIR#|f!2~Fur_W&hDYzrPIVNB8pPOE|=C-lhbXlC#KQ#?G) z{Exp>#mEHQ-Fp5O?Odp_)3f(g3s|{BB5! ztFM`aG8XWbmWwo56nnS7Z;E0998TmnfRfPknPl3_1Huq8@#iIUnbgbSobj$NyZm!1 zbdY#2!NyHPGTXkDY%u#rkt-61Jlu6!%e=ws$B#^v(>Io9FsdUq*{?17Z8DlMVDa&Z zr?%k0s#|W|{%EWkd=v?x`lZ9iuJrEqomh6J`yN5q`t6XE@h7;OXOO+zBCpKW>*=(InrM##WHtr)AX5@#Y zS|Tzmy=EIs{^MI0e1(Y9go-7&sQ}vYGaJefWdPMPdH8VIBxtXd_5)%sr`-?pf~Zr; z^X=o24eo3NgCMn&y1yu=pJ!HM5@hEp?~S@Ll>&DhgVi<;_ypwS&%BUsD$@eSXkN`; zj%a+%$7kMsx=jlh5w{;aroFF|0q4BUvq|~a`zH-I6^lvVI&80^2x!8X88}Yu)GOoI zjE*Q@QEJQ8K}#gV2cpdr!vM~-CPIR2c7)&PwvERw2u-B1zFpJD4!hdTT$L!%6=g7S z8>^*Z%a8alH6IdUXs4U`qRT^0l;jk1xky0Ow-QCPWB!3o+RKTCt%`fNRXLG~Mk{7R zXqq2jHw)p%YEv{LXL^cCX=W316XVWM!*(@;S{8-)3SsikwPnRMuK%&iPr~lJz~Cr& zJz2`uwxYnjpAT#2hrpkaOlZ1r6sE|FfWdSn#Eab7BdYw++!N? zyfeN2BFlC-@XQ3B`}5$Cq@`@YTpkywR4d#1%nA!S-yBd4e)?f`O`4u>!444X$To1h z>!604*>1hT<-i)v+KW0}pyDSS!@m=l_fEAO_)j@094t>-5))e6o{~Vn+upl3K|A~g z0L#(X&0+BxJQrOx$4{nVLqpROX0i-WFmzen;M>qnj|@-nAjV3b$mrPxiE8Z?pKi0=lNd%AvxNu$fe39;jAmJiS^+Kv>d<3z$@lU$rwR-f2{ z>*KYQN&9*J<{htFkTc~X1wvo{;iMQ16YCt&z?&2Ldf4`1FzaUDHKw9|Omy-mIPdy# z*BqdX@E&PFc5&X%(*fj z8OMj}cRTO+Dv&>XuGbH3Jb3d2eejhJ%dEZuH|zJ{AYfrw&^WA7{(MEQ{85P08++&_ z`pn*{CuzsUGx!){T*sRWndqUeaIEx`kY(Ap#{7cG@{>>Xf9kR_4Dm-kaD%u-XdxkO z`%@Ij;SP8hqy+EjkguK(q>`nrH-53msR9oKLg6$R(3q%|+~#n=^0S}x8IsVWI=0`O zBB}oo(#GowMbd`B`Y(*sFHp63*^5>I_D;R@nF+)%3Io2R()Nw-G4fC4XD-2;^h@J~ z)ys#)FW-|jxWj< zd=p?Xe#hhJGMvO5V@nOgwaQV=4Oiy-+1s|>1ai^A;h1UHdoso1;Fs}%wM9@qolO=* zV?eAtO#AKc4)|kYnZeIYzaDuRaKUJ2dmk>QPjNdrsM2H4Xo-CVnmJ}SDJZXwOXv(A zQ*0%5dnKf~aVA*?zF==4lru7;C}^xb*1tl4vHO7bCZO1UvBb!!`jG}*s_!|q;bLC( zfYGSrSitNvtisHk3@vJb{YwuYdYhIXb;Y28m+h75mNE!3N~ZR>f%&D-eS(lMTDb?| zlKGj|nw{!G&$Lq+yK%8bPRN`!R*XBM`16C%J+QIp7XZ^tKbmBd;9BoIsjM0Y^vd}Fa4fC>X>xhe^;3Nlu|8NWWwJ0izuxMtK z;rKe$l4)^WJq8lKvhsx6#&!2EINnd!M9Omu)Gj4whfkiLb)BChlA2H!X!YRwFi=Yn z1@nkytQh5akBARE9uQ{*=$KFg*?nX0Wx#7Z?^P~_0c5^RgadmkQ z{r)c>Is8v$ML1DFP#a*U|1F+SqG<6>gLK4-UsTI_-9DH5m>fOx=1nR&has;QIr&~| zo#e#;ZKenDnClXWc33MI&%d;^^EICoRJ>v5K5A)CxhPs46Eme9pnyoWJJg3Iv%da6 zItQ7d!T@k9?b7|4Abg_&Z>7M{^ApV%B;GoSg11AAClW8CzFpXJByN6Z`8wl1u>T$s zJwP|oOK+`raCs;f$|d?xAg$A{GauF-^aGCoCc_AG;G$MN9#T6 z$B;3hXsM^w#`J{>(OgEnOM4NLUfG9W>tB0D%`^GobNCcJeFc!pzgaBaMXfs>zfNz@ z)tan6tqyu7x5JoFn#qYW22=)a@FYPQ_OII}4l4g~pW!P<>hQ43HB}gPP@*9qyZ~SM ztZaV^-1DSlG}p_Rv)}(18n}p6$m{Xaou|dMts&%6XKg-@kNSNViyFbH0>XR{SvCB$ zy+yRYlFXq%KJSS?dRUb_IPnIe3_& zHfR%>a8x(q|MXR)+h~0jOV6%b+_9e8<>F z^`h?-_71h;vKFT|WcW*rwCz=G?ymV{ihdrb$p48iU!P6#9H^b#5A`<#`p@7C#?Env z?l4YhkrR=LI|ao%mbs#DAWf|Qj#RqWhXKjkk=B3GJ z(r@x`;Z@8j>JiVQK+do)!`EC#&q+wcL$GQ~g67|Kvz5nD75^5$Kb+?HTH|M$``51?fj)(ntgnwb07!LXZtsbD2%|1b`-Cw z$FMGgaW7uoE3IOT!m9Dx(%*6UDDXx`XW(~TKyQ++X5Ma(I-h zqjMp%-#`2sM0)3#F--`PW~A=%H8giYcTAk*HNHKl+T%B~cy-I;C<$_{_Nv)t)dWj+ z>Y_5{seWp|hgCB?8;9*7I4WHaFL?=|aYIiYI2dwe459sp ztRyXCq!Khz#q(XqWg0bO8a)F`KkT2b^wlshwzjP#(D?XzhJSGQY-A7M?3}uvm{vvU zeA-Kl`(e;q3EiXaTS2Fc2w1=pHybWPAQHCnc@HD0&Jk#-&VkH-dAnrliamSN1CrT{ zgl=#6KO*pg=f;ei#DaDQCnM3sM#aZo$4o=&f;tA*xKeXy?emc#Wo zwu6FudT5FWqmAhla*E_#87*J=Vn@Xo+*y5|cJ;85;rXg4Bs^HU4vy9@k7Vt}QwllJPjx zlc3>b{1|d5SISBCd6Z+Woh!ij| zMTxRwt<964vHc*wE}W+}`K6-pRj?>)CdpZtb%9CxA1Zw^oEzYxkwMq$f#grWroheU zZL5EMR2=Ha2UF|VkM*8UoufpvmKXNWI=)o0tB{X$?p_}YXnu0|r~8zE70E&*X$#l0 zNq-EqFjFMxOFr3tQ?$F40$dBdQ?5$_^z3d-j~JJIB1bI0D!wKzm!{TuxZG?5i~L-1 zp}~GzVrk(!-V=xxfAOMY4Yt{cVgG6qXbyhNJGST2S=>C&(#SE>6*9PS5gKO*F6Yow zHAws9bKSr7M;vUr=MF)D=6#IncG9PK&xw`!GxSw#O(ImMKjdr>zxg5d(rS_nda}q+ zzoJ2n^S_YnQ0h|{WhwBl)gOt1FH--(N1q`k4VLyK2I^i*7~#%_L7Vyp;ZUgwA2^Jm zs3o@W*G@aQ7EleOS8YweYzV)NU(Xq7yO}=xuu&!tELvM>f4oW1v?ejTE4Is;5YRLc zBJc&0U@;1q2NgITZBjPb|q6OA1Xwk}+7W||W*y+P=$98feqy8*6&c;ELd*R@16 zy^EU;zV%;Pay)e`-!uG|g3GOY!k>wVp8|X|v^rxkMF33zaplQgQQx)O0S}59m%MFk zkSdedFIWCyB7aAXG%v;0rzR&m@QIMjNDiSC-_qfMI)z% zJwW83P`Qo`=^%UST>41<^N)lhvCvT^F2=s3X({U#7N*9$p0l%q!D=jY%H51VG_<+_ z03FQTy;OI5Y;iz=ru3po(Ng!`zmGv79Z4`72)%hYqi_A@n6myRuIFD$ZiR^AyR+P& zfXiBSP>YPZDidGC86L(} z@;?!72KlrBZ3zNzbN6sI3>N}H_0FHV@eIfCZ9jbXUjj;t3tYi95WYZFRA`if9ZOYo z6T~YfM*lKzqXs6D-rmsdE@kXM~rW5s1@^PX7d;TqM>S?|6UtI)f#DS905=jCgo_R_f_^;G- zHrY|tH*X5DtJicavm~b0nJnHA&<^sMJ>17apDfx$RU4D$T?r`d9i{veZ&TG(2^OqE z3xDyVE-hoTzXY?ZzN;3VL=ygQ`9v@j4E#mlQ()Xd+t7WG7D)QgYn-WJ^0IxK_%XsF zFyga0Ngh2~ouQq5pNiB3PlYjgrtV4H-1gz0HQ7t?ZO`f(1j#w8nB8L_=pW%)}gHgxQ9qch;fUefdIN(N60pL1i!s6EHd$B^J-zm;i|Qj-EyF1B3_7sFwN6gZYwp_j zOTJt*^LC18Pih&reofJC6yk7{pFCoKyu){c+VKPyWv4Kn1fl;0xch6A-rHGR-mw?2 zV4j>UTv#=RBAkhc=BNEX9*on}_!|@Wn?9;h zUVsy$FCsy`aI8b5#Jv~e!pDdToNBS56ymZ-p?fbbbj4O5cSY z6T*Cw@>5lZEsiymQY}}fbpk*^nM}JD=FtBy&-br7u3c(si;{uSYj)v*PAkTkV;gtI z{Dk$cb7Fc&G5rlo7bmjsc=dh#Vfs_qr@RO-Dmho=Gd0#~ z*NOdp)#C7yG~l)oxz`+)9Zd@Tx%tSGLVQV3@rLy|%s&Alg7h4<;e0xy+J9dqPo67# zSg@;tj;e0}{>RkFpgW~jmnRn(8ZlNdy`oT-MiEenBC_QI1e&{Y>Ph5d2N90I-SMqWh7zx@bz2Z=t(@J z{QR{w(Q@TP6(RbtPqnZp26V}|gFM|pC#JkL8M*`A7L0!RwnhqH8=z&4diS8oM-YnK z`gs!rzsqdOv+ZIBrTd2$W&BQyJF!$Fp{?Q!<9TvmuSSog-RG+e34=)o@-w^P4QG;F zw&Fp%+pCQEZ0c^*aMq&2T1~V)EK9mJzy=!d*ksG5Wf(gC+yKN;;(lHS`H&j2UYzXC zxlbCWXIrjfL2njz1LMsm=dO>u3STj29G(mhYwmhq^S5B3=wCAH3a#th!`O?1L);t}wj%pD8JTTCdogb?xu3IPbL5dNQ(O$@G^d z{PNwc^L1am{Wc3N=tQt=IER)F3r{-O3>kb@RB$h7K6CF0B zZz~#BW3Qx9=lsay;>b4qtuu-3<>PO6j>3(}bFR7pRLn#V1=c<}-oI^r-@nz?hnxv6 zclQxyB*vlR$Z+CqFjJ$TN`QGy!A!$0W*A}hN#;f`wKYlG)s5#;e3Sa37i~iJle0xMea%+X&)Y*sYuVY4&Tg6fjVj0?8JFuGd1kYxI2AY_ak0tLIygns%TEXVZ`La zZ%|e?s|MFkYA<|3OloU*3ANg%c5pduvlC^%(pp8CEAy8Yw+IAdHu^Y9i>*}i^;w?A z{-dUaDt=4zyWW^pR4$TntVNLkL^j0@PVV5wW&8sF!bEb6IVStaGf(u*tz|Z{D7dNM zHg`qxwd&q18V5=6#p;XLx+?U?J34=ninBV00Q-lL2!!{A1~V$Z=?A_?Afjj;hX35> zxP)+Q5{tipYg3z0DezT(hP-;tw2svh=HNPH(JY{Kv`tEL>=S|xGHSAU?_M1xKMr}r zN&%4x?CAorw#Hu;8>|M}648m)=+(4+J4}fR_JHk77OqO`9a(+l7w61PB{H8&c~ZBPYB%_ z*9`&^T0hN~`|OimyZihr@01>wqYZIYw_OnxGqB)Jw{^bS2&}ys?f4n7K4^8(jq4Pd z&~FIpjO}+0`_`O#Tf=o9E@Ngc^KIdbS*zA zbFw>eMM~VSa_&=(eNW2dG@105Mh)wUx_(^HaXdCWd6IHd)rumtHIGV&qx!|Sy$656 zv|dSIsZgrya@@)>j01)G%`p#shBu#glw#cD(LXLg0romeu-66hPB>gzu#pwmSaik( zo;yE8Ze99$C^=S;!WsRRNFZ98z<;!I+AK!G>CN=rH`YD;FwRYDaevKK=5QFOYc~~t z=p^KKVucFces)VIu8hK6;0L(*#@N~lp4PHxf8SQ z78RG!hMMQkXZ|kd=Jj*Hf#OnesjS_)H5}Sf85tX-wg1i}bSA7|Qe9N2^xMB<^Kmw< z-8F{AYnn?zGd1`ab8j>+Bq1k`ok;_XyRlcgyVO5X2Zt91Q1ALc=mY_5;)T4^+oyj` z*NEFUaQ@)ZzdZo=dC(b3psA44J#?j4zScZEw@m?}1rG120-*dtMgla2PDC=5eLLx= zBHXfQ#Q2JF_5W_8!F>a;In`hv@b?==E#0Eu9fy!7ml|bQXz`7?ce$-kSfW!} zIk^V0v|T8@kAvGRto_MJk4OSQb}1!15H+hOTF!Em>E#0mlpaftj9V0md^{k{u!Dmp zKdF~T;RYIdxmb^Rn|+4 z7X%3&Ks}28I<{rFYubgo*Np5pGgV&kf1A@Pozs36LfN(w%dFJQ@JBi8J3phLU1^Q* z;o1G0mvtXw=pOP(gfh*GYoFyNYyWNJgP_ZEG-3RA{K#{r6=a>z?Ak#y1C*V`ZsH`4 z5k(I_(pp{Iz_6G+-&iqiZF<#$p!k?BSS{*ToerW5WFT_-H$7VvThaO~>%u4QaT@?z z-pcX&?JFcp!drXP=+{;x?!M2pGq!yz_!k^59pTUxWIlL6{|o(l3Y-eunU_Z4XJyY5 zdWpZY5xWDuv9?j3`WBK^OyV{}6Tys%wp8vWRU*XtO@Zv ziAgJp%0=W+0r)RgZx1FqIjxd`N0H<~1uL-x+UnH*mIDL4lPY;k;xYxFVjC^IVYIXt zHEyCw@iVC6&0#^sW}l@jqg+&xiYn5(?3j?9ZRp$vCjvj{co`G9O!LPXN8jMa;&c~; z6KAse8QiCs8*W-lLpZqpmEQ7=2^ZtGH9a}&P`&o82gwwmupsi9IyPkixRH9AY$72m zLaH+Q_-}qcfBO(;N78zGmpA3Ud~*+`wL+$YvFV#8`B%1gb9a`8f2ZSLd659r)#axt zX&&xQUCg>+iq2m8KJ9^8`R<>4kCE&b$eCT&B6CZiyca)4U&J^7wC-`%^%!1oMD8yw zoUfvRyS%*{Z=rjh3$YYi|GaOYaVfQm`zb2-A%`P?e36wp{=nrOzg#;B(Yu% z?+u(o9vN1=k|Y}fRdOVtj~j%@NgsQYGmXAVWIxv>_@j%b)w22Ewn`tURuEv zVSiYzf%vve3)vF-rh& zs`UFk^YqWOSygyYRk122NFv<&%p9C2bL(0Z7@nX;OguOUByk_3c143%zwa6_;@y?- zH5Uu63`}N0+4THwW?8{8X=T1QX-9JD0#v7u8{%*ss@8^7m#!@ANnejXXmOY zYGHp9C(FTGpW?TUezY@HkLR5zbM-4+N*1?f@4kGub2WKIBG~`JR7T4@8S|@je+q59 zU{@e6anns?^d;k>e%9Ko^+#K3v^k3iaJ6)Qb+P1Gzp+`TO5mX$v(rJIB)aKkz6uTCO+QeS===yTV~x%dM$wx+RxW z*fwbtNbJadP+d>DI=)Ln?YzKMgztXUHvU+kT?4H5mx@7Er3`#CjNKe1l1w!>KEqe?d24$Hdt>Pv1%8To zOLKAA@!jrC+5|q`25FU5d-pD@;bW(VQB{G!j*6-d>M#G*8bxw~CT8_rrYGtAqaxGM zF{vCrv1~iiUUl5!%VM`sCkSX2ULXZ*2`ejjjf`%_e0?G8E2Jo>{9LhbqK{CQ{#>r}wr@2c6J8~a8jldD*&|#e5pY>NaLw{1q4)?~H;<7Q_+B9USt$*N*?Y&3F)UyE1(z8T0#&TA zS6ahaSk$8FX7SL3mYA|*9n0~gjBRcig`ZU-*H-ua==OjGpBYW@QhgRMAyvsh&5d{S zz+9NPo!!b(XRzRnKSN7=Bgns0M-AKj_&m2zMwvqR#UfKK5nb_0nwV|Yy^D=7)5wXogA;I25|_OM&`e0vJVcf_hd0P5#ND!4K@LgyN8wB9 zr8We!((h1r|Bqst@nr1*<#g3^n2g??cTUdFxR0sPU0s@`l0KBC_w@z8 zP1T8w3jy`=i{US`36yK8b*uN{g}s1EsL1o%O@SI6G&*7aP8L~vDFgd(TxNozVmsYo z&02=u70>*&dbTyflX;ArReUP+N(GqG-%;3T37Bd{tw0{%uavEl3J%Hhw0>~0@Ete^ z7U6I4*6I}H1U5BaLR^jgLERuzY@S4!R z7u7!`RyuxTE}birG2P!u;$_-C{P-M@!HHU5HpK%UBQ@dtABG+^;`P|={<-pLqcG@Z!!$5(0g{iW>7>7WyNU6WmWw(bJMRPsu|=PH z05kuyl22SmhgxsS-iwr(XaVabXomw-Z*|tj*A$fz&q&XK$sLEb$#7C_O*#ym9DARM5;>0GCx zg+CAORyHRnE{0P@icm7yoBuOiPES2*JyZnz;)JGMA zr&^1}3bGSZD|eAnQ}L#zYc2P;mq-N4EV;=4LN?o!UVWBXOGO+VhWkJxSs= zf(xbS9&yr8GYauz~TdTRauD-e9(7L8KEh8m*Bi*?VSwmvs&^KTnHagqFW0>Zm-elYy1}J%K z4s%bEczO8C47iiH})JzNoT|TrhT3J!->&;uKq_5sC4?!^*51o_VsB0@W{od z@N7n)4SHvGMUL;uV6>M64oUVyVUBhg;WT9HOMuYWrAN~ZYr2f}uH3S76Wbt%l!QUD zN>5#-MtX7aSF%8P!kR7}f7h)_1I~QKwMm(=x;a*AIl-7rckoU%zm3FER1MdKTZfGUO1sWGWS| zx_uRLp;wuHFz6=mw-Za2n7cn@0ffez=Gd%x9$)9c<|^3YN`icGHw^CeZw!S72Pnb~ zw*mt^Y&tCp_m}uk!jgJL3M{icsI(%yCJ?9k5>>;C89w<8uG-~`@Yd0Zw3&j{!Ip`5 z)`Hji$y?4;=VfO6<+h&$#Po(^I?2Wte_N18G4YQD$aGD}%I-=-x z;V5lA!fkMX2T0NO7EhlRwKFG@cvW$X45F*Fn+ya%+bihtg2=AnY5BSoapJ!fTVee1 zAT4?D*St;wFRG-gP|~4;3_ZQkYl@`V4;#d4X_5Y^zXb{_IA*Q%ih4LedG%oW^B=CX z@$_D9%r`MK`;4b8;ljRa+*5r9ow!GO|^wVZ@+21^~TK!BjK;~ zNkNTL^)Y4c$NS4F%kz%>8kMKs3ttbA^43;LN?loG^-ovF3WAC(#MiB?trVmf_YQUE7U&kk60+@9i`v7}cK5WVYA^JmhazIh$AzSr0;#||W0#gj zCxE+d>pgEVemtx{CdB_o4ijbb&9$!2wax;;icYtEWXrX$*IaQjk@9RKaR)-;KL4N( zFVggDFT=%Tt9>4_rhn=MUhqdBPgiW*7dQGTC-KW~#zE-eCSJbRWXF{tOiM6&N4-z1 zc zZeM!qQnr=}3gFygP=560@@^*Tksv87Q1bVR!VM-gU*$YQgSqDM^^bFL!?;4yPb6s6 zE7xuMD~gCA;qUWHe_Pm>Z>ZE>Ls{8Y3=p?#iP$D&tR*TGkZ&M6op#9lZAs_6B$?PKkGF|LhoP`GP{ zmHiWa?o{5(l$44L=?^B}DR$=X<;{vaOcODaTE&Qr$&=7j{SL-HQoZM0_tjp=h~E4? z_160NuTHGEjR83&wN&Gq3o=31x_xK6kdkXS+!0X5w6dlTvQbW-h+w?WeG2`##Oke(8|*Dx;AU<0bit zcvlnE9AzF(YzBQ=5t2MbWmTp!$1>>ponHciJ@Nye^eMxoa3|kMqzOwdYa6R2!OP-} zxd`Z9YCaR1h`%E{L}+nKi+?}tuK$eG!%f|E6V)1B$86E+4zp|>Qo^LZT1`bQhnlQ?V$}$!fDVdU zru_P~N0XjH(MLJu`rt16P9Ll}_s0RqRgr*8?)BX~JLRmLx(9Y1__jPqaZ#^L^yP|I zwl(LiTNHHhE|rh~dR3Pv(A&BKcX0ErW#9j@0IKLr4ns%yF-s-70{BX6``8Nsa`e&h zkWYf?Kp6VTeS{KQr$(9A?y6TT@amhYP3XBKjSqJErlZoU z^y{mA$NQ=6KM!z9vq=MHMDSYQ3atEL!}7vSi@!gX`k2FW?jh?oY=L(A==2f6^k>Wo-y~vCEJ;a6*eK$=DlSCIzzoc4G zc10<-%Ss=`U)@=`ckx>D^O8Q8OCeS#|7mdjI3Z!M;Q?ZkS)pfo8>r z)8m*$oONO^g~u5(c7v!lESLxSvvF^*h^em(T59e&F^oVl7Q0q#kU8wuJ9S|OuN`yzGE0g`C#2m7vz@_8^-f{y zUc|f52ZQe;2+sdZs(V|jAHRj7nj=OL3K=<=Xb6i~d(RZ(zJbhRd$j#}Isxoeyhgz( zW&{k%`NIVIf~*SgsT&FDn5P~V?$Jbx#L4rBb0Wl^D_5)2mlFgiJ`c|i+=PBP<^3*I zo@c_ylEDDV72xIS`Av@_a>Z*_8=-d07h{%gkeeThx^X(#riO89&kIFhPcnI0n-jSP zIp|FcIPYi3tlLr=LErsRmXHDNv>);f5q>AR6OGR>f(#T14m^Dj=(*_mZb8NMbCPG{ zPsg&H=IV+QK1m&Nh>x+?hHL^@fk)mvlvl{dtsSzd^?)Efe?2TEzmeEA6~<#9MAzP9 z7~JvUw&SBT-qE|Ux<}VaHgJ~*-W+?3bT@`m7rgg>jT)IgAG!8aFC!23@y>o_S~Ik@ zyGzi3S0KEk396lc(klC4lm<&hn!0mRV<;)1nJM)GDj%X^Ne_3KBY#xOBy%T3iJAzD zD5t8isZw=O0*%a_ZZ-Bp8!W?Kv^79usw}P{uQKih_oqt}Y|#DTv~b=MkwrvqasIyqY8Z~V| zK0WM*rHQa2YQJWlKv5iCi<-|M*$KD%o_4FpqkPE_GjGtVmmTh>e91qoeQE4-jJ~R( zUE@PU`<5*%vUR=hJH{u6%C%4V$hff*ZA8P zL+ZMJzKx?uq=ms*_w;zc&To=I9-D)MtPy-?)t;%s*AHt#>^9fuFM)IjT!`Ur6DP|; z>%`ub)DJ*IgFxcik)7=5eD^X!Xe z2q^hb8C|IUC>s?pOc4b^9pJ1#S{=Gmtt7uAe=t@~RGaokWdkeN?2sjfA!%{yNYTMhT@(+^Wb8WsV zRx)m;?holO5YFLQc4vaS%ocl(da+{m%p}rY@@>YCj7$^?B3)Z&~!=7CucFTR~*}r{4k#$_@G< z@^?AWwX^0Nb3u*=^Kqz{seEH=R5n+7wITT?3r78HR4MHNB2uW|h7z>3uuzKC!p9zC z9#|XHc8|M$=dqNX<6kLBBLBxYW#=Xcz!1~~;~>!#hxd%1DpRQK`@3XBcUL;HHX0=t zhtz9`acIx$>ht4JJmeo20+?9FoK&~oWGGz~#s z3kht@@3Px(9F~*TG^p=fwx}H3u8~d2jU}4yb+)i-w9eq&zdGt)yo| zAir>g2Pz|7+c@?OVNf&;7#!4c&7kOQ{cGsjE2*eO#HM;5@ZevM9RvK~TQSMuLiG$} z=+A*HqDQ?J`@lnI$9&>N6ig|%^d?f7xf5|>=M&V`XSzLNBTLMTPijCkqy}KR z$&J*l(}BTI@g9Gcz?e18hL7FP@lTo4Lp^*_Apc8n(%Dm?uNUqFz2URs=f_X@#IIo{t4w#sixub zp2ZQE43Pg<9bvr3FKu-TxJX?pKN3D%pJqAwh;rB@E`~kJPazm}#08lKTaiMs!!Li8 zq?Tf=Nt(VzvsR*MIU`Fw8g}v8xU9^6R^35{rSs#$FY-^ zQc>XTxw%(3HAzQh(Ga4{aQfO~$f(9K^F1d&j~r)bg=Xsjw?=%DSEsPOc3^fp-+pcF zhv{)?Wm9Z^TXW9%ev5E|DV&lXl;D}IC&RpP@g;CscabBh>nq*8527h&& zDJ$f|GRZba^2>aGUHpd9+n82lngV-bjTamrhunz|TiM-M^JfB!2am-R55feYiIpS( zQcMYcv%Kwfob98?E+EfHxY&;eJlv4YCa03A#$oUfqLZkHa7ZnJz~HBUiC&!~8J0vd z9Mun_(&cR7_&bGt;;P+Lxy7`gLC|w=vSuf0UU-2 zBd8Ij35OeEwQgK;2TfN=A4qMZ!CzQJvwycO+40p44tc^}U|L^%CItoVpWL(-kLtI3 zV-^5W5u}AA+ zqnB{sgpD6m_!L-H4JNvqS!>uD#63xbo`MJVHx4VwmUl?hp@I3hh$A2%DTxy*9G%(6 z?HWk5es5=mrD#x$&M-p=LA?pRTwv^W{U$-l{AlDT5;gQTv>@Fh#hERC@*F}nC6*c% zHYWI9+`sAP^57-Ye(8LYMLYEN_JX*jkQJltcYRcIw(V{S&+VgjYhD!FXTq;Pr_el0 zU>#YK&EX5VG3b~5DAg9>7nI_Ie{b(ywx-4<38K&OU^~qeIE?osUF&GWqw<;L$Yna)ANoX;N2gN0 z(fK(k!w6~6OrC`Q;mtSb#O!r zNw>os_#S*uW-X9LZ>@RV5ocv{1|u`HSuL(#GFj`EDRJLZpJC`S z6Fm>GIjRV6+(rhR7Z$8biL%?S$xeF~w%#0=C0{jy`B&GuHk5AlPzdbDB&nFrCQC&{+4gPW19{bH*subC}G8^Sw_n(vC`Kx8e*-xZ`tFWWk*PoV0kEK_kJku1AdqVu8O1{YTJ8Bi(NvixCR(W?` zZwOho2FzZpW-SZ`lk}VBdhB!ufN75PjGoceZh*W~(0C1aavuxTD%yKvm^tO-U=k+m zr0Yb9joHad(NGp_coZ~>0}u0eL`J%Oa<&km(u`_aKKM8+isQ>~poR6}Kv*(g*0c`u zBYtg+R-d?194MkUsGLo=k6j$@!zY}Gy%aMX52?@UgWXt67wHHl%vP7^UCNeNyVg>! zo`XO=SvWp5$<{uZa6k0`OQ=nVp+A$gY<>Jl0;crUl4Ov3$l0+~)_u=LF$$c%6RoG$PU~k>bZCAe{JGS0hw7A78&zTY4#kROB z`i6KWVeJgfC_2gOvjAjP*2hK6ik#A#%`L$q2%q5$vQ68rA@fi7AB`&7i<2+gos#|{ z0ReYQwjF-vTObsW!i85p_f#M1u4igQ1oxZ9b|>SQLhMNms5K-GP5-`jqUHU^QJ$z} zR|2n;?tFK>NfEYS7Usg#{qR+&!^>5eC)Tz1NV9C!DNYR?BkuKB(~xi53*%OpuHqYn zwcBb;(;@vBtg-;OGmIB;4>PK`&B#MPsh6=-~4)Mr0j3Wn1th)P|CewMLC)^rHQZL1w-Wv|gC-m?% zuh(lf0Ggt)|C|Dc#=la-?@U?p8xi-vjk^T z{)j)BwqLU=Ph`@!K0 z%kUX8i1uZQS_IVJJ^GVCM^F6UG6-1d`qPNcH$T$+K`sT#-U&@u{|z-0&*okSMF4wO zqQrT9u(Kpw6ImM#z464-eDlaVVxqQzn+_eA21Xfk)e^eNo6-E^*NeG^AV3k!i(m2o z?6m@LrA~v_q)3;WN7SEhIVJxZoYx%><=CtbQaw&TfM}!vDh=wUBG=GDx$kL)4 zTffbfF6qJf2f=Mts536)OEWanar^VF$Beu`xZ*ZP?Pb~6I)IOv9+#fy0yU4JyGQF0g$D`i?(N#r^iopD(;p(3PNNk zsX~lTe9g(XKT?V*jTpc@>13rU2|nI5pJxDloPgli2v$fYkPJ z042ot(|ov5`dWS+VAHM4z5WnBGRG%+Ww{-Hu^Ia$Oa0s3($}C?9}J&!es@w2g~5LW zVlpEs*C2U&mn@2jB6SU$#A# zpK>sW{h_bmf$uq*i>dh;m(rnV&DB9!&WIfhK1BU(3^vA0n3|)ChN$iRYdA2kBN_$q z5iWFrVcs5RV5)AvlfWz9%ZJx5ZRjodB7E{+y147~H#Bvm^ioR&R51;FSxl@+vYR`< z#)z>Q!^7MXA@NS8cU>V0;%h0mba#g4;7^5{LID>zo2otd7-p^>iAJ6_YnG8Gr9^%vD zTo>p$-VdYD>N$QlaWdfG-jrhI6ddx*iMHBLp+7FLMGVU$7dOF`?sL+RV)|4!(_O57 zf9U#~o6e2^(>^t|f96q^tn@YaCBKWp_hEufb}apJ^W*i6g zvgusFkaKyZ3@n0W(r5`ZbI&shewdf|^n!>AFfBY|%ilKVf;K(yTes}~&Z!j)=4&#m z6n!+v0^r&b>=CSsZj6FBG4-W08Lo@f*zn5O`__ydKO6moDgrW{&c^4?l*(szo5qn7 zmb!W04wT++Ti(6_9E-z^mnMZOOjLhvj^?y|TAuJBO7Fh-Oel;%PNr@9Zmt_^JD&En z0(Kp}%NlZASfBowoblNJS-Shz@&FF_v3yOF)oQ^^Hfk9!)sD6wJfOC(?mV`;By&`z z|LY0)&G>ug9zHS6A|>Nbi#Un+D)wb^jZV8(CSOMPf*}XvAZo(AUAkw>UtmE&(75oO zDC{KN%@2<5@3q`?Ak6yI9a+eL{_VL6`c9BO+*E1pTM#|G|0|@zmF-$`#RS}wkO29s zfR-=4+3)o^d<(viS~ZP%P6eO%GpP6wZpsNcMp4mMAHS*})$)U#%(oR<0xJL|P$HVh zkQ=q0uK3yF-A}0HD&-ewj-%>dia%?QT9BK-mXlv4a z39ct+u45~1;~Ebi)*gP|paszq8qWl8{DrSa{eNd9W+mzV9<9;E5u4 zG3~CiHx%>w$VEa?V{0jm-J-97$A|6cpT?cjh7CmzIo|Wn$fvM}gE|AwgK}z+9T|T= z7G86$p65BPF=7(S5V1K&?;mql~u*N>9lugL@EHO>7Ux;;=7n!7Jmt@C&( zAIawJVr*ECq2sWcKG{{Uz1B)-pXAwD--b{V>UW z$v;QWpbh?D97Ij?)oJz5i5hcn(6F*GU9tXpbhAwEvsiCGH+%`*0=|mpetl6FM`RGe z;2$BiGI<;IGNZs(0aiv&W{mWCmsJOL^x@LwV-i(|;*gXv?)TDx-+q|`3|;Z3PgufrQ?tciJG}^PpJctDMYX|RX=p1g; zmrl+LZ7waXs!TPDtf-LVzX!LmpHtF}j4!o5bV+_+63M9&_3X^TBi4r$N^O?QA5rlE z5The70%eWTp$M<+q2*l0%9t zxv&xr`i6$00=9f&VWTvdgXlXoHs~lh%6E!;K~d150~`?3j7-kUygAvR#J@!eu6+_F z>p(kva?gWUiR!2YpdL!#eW2;Q*Sp_(vWt0f!3e>cQ25(M&5zX*$0{?t+NI6RTPnNK zOFgUZ`{1Us%{ceTtgKrpuuCF$GZ1&E&Y5Q8GL=4iFanaL^ZM?5{n1u?Y7N!a(!^QP z9~)z~Z$idHE%OqUP?BT%f7Fq$*w^BW1O(85mrTN;4~+!7sTZ3*?y!IVU~axD<`>6E zh+VeY|8xBJIm9E7_s0Hi;9)e;&pw>z-ZbgN_*G{u-*7_cMoO@yk-s*KSH+!PiFF2^ z*Dk>5pC3#vmOfyDzl91IU-Uyess*=N&7bz?kH*E-rS;{!OFwh;2%%GQ;xc?kGz(KM zMfwUK&45ISQ0MpSYAW#X+Bh@$I+7d$>KvfsX4x90FVl_(gM)3614b;>Pu~`m&XVuH zejmv~nPlD;F`h1dAd@u$0jwBMBvRz*$60O~x_5N3nyhSuXOuscy-Y6JrI)9|Ee_n> zW^FSIfa9mrH)q**_i#}STtWvTUjw7S4_GmL(>Tlo8$q!Fzf}e{QW*rDLQ$>7BHbP* zw4@^&tJLXMS8=5Q_pgMlaOSn7GGV8}nCODO_fa%VDG z`*AZ=`&Q?Z#c;5K|0+Phy;Xneszj;S!Zmg7#~w2s-JsiV?NcMX${s* z?0|w`pLY zLpR`6-W#<3Bg@Pg<%_P!p;y;UL7NW^-fIJ5VtQRM zSvnlGCEJOnY0<=tnWU#{%NLrie#kavcJ!aM>&@kn82|2_s-I8&zbwGVve8d!gi~+O z|4?vSs5LE*a5w%ap)8^BD@#c9H;Se>dk)d-^lLN? z7%C4U1vlVh*6XVta*;#Wu3RvCFM&cWSZ*!wI(zw2R*DFBWAS$Tn?U_aS+Ab^yFRvr zVmzAV`e38gG;N3&ifX}EA?N7}?)P+E>ZBUUiDXg`#EB`9)9WV@RaV#Yxtq8juBz8A zelml63?#-M{VqGs_FRm6w;X12WB&OyfgwQroe#F-$0G83>*yOW0H72lLqec%6&_?VKL(&AIMXfR4xtE3`{q~Qz;q%d>&U#bYob3+_j(cpv$nW2J3C)@nmYL3fNMArZ(BpgUk6UB5 zm;jTKHxZuwVel1AySbS8N_>cBTB^!}Q&Sg|PiCzfcOpdhG85IYRGMNsj6nkz`v$!- z(5fWt;Ej8)FEyVfiX!u&Kb;UL@~wa^K{Qp$I#SGp5lXLHO|LE+W=-R#^v9wgs!y4+ zQ9~(<(*=YVj+E@DO!i~@H(CVS`Xh9Y`u+*W)j*=J7a-AxzO72)Mp2$%T!hP=#%O3m z6-_@hr3xiJF;O?-z||vUY|->29nX{b@3@3aDJIf<2kGBY5A+6rhfu{g_|Vl^YFR@> zA%%2zCdRtd)_YTMZnrQBigFYkU*GY z5l?Jax5`d>U%eDZC-DACCko_}-!-FJo>Gvq79MoJ3v8|h9B>RI*9^R_DY3r)b&kZo zZ?UkijI(YZ&WO1p(TB{0_L=hLPjH_gMdrl6CETsUTY#}0@SlbE!!ky-(<+@5XgLtb zv{c3q*}a54yoP-LN-Xr9UG5)>_V*j85eS@)Y_g>I3%|vG`?s;o17fA>Bd|rcH=X|M z?)Wr!+Me5sybTL-FZ4_OEEZHb&@?!Vl{DS7@X$#zNPU>S>y^d%u~~wo3IUw8&3Kht z`$DU1lN{28fwd2w>>HTa1^d7!G)gzd_wCOjd_HtYtQ2h4XFno=+eLw*UQlEi+eS;m^XdZU>8DkX4C;SfR-i)B`I6hz8kK??aM;i_hU_L7 zDcM(Bvo+}oce(G!kHybs-}X#kaEt0DgsoxuPEXgalh%iIcYcf(Y5AwS3ImT&K_o^7 zVKNRP`|rG3SIm$O4~K!Nv`5*hfNvBVmw={*dF1@PeTFA)NOr_4mL_G+ym$9|O^uz% zg$q91C0%4t)@HfnY>aTOcQ9l?9W=WO+CyKnUzQ#`T|Lyibc6CrN@lNf^_ZGOef%%S zm6rSLlJ}U>qAIm9Dx@ZpKb>n=%%j?Q-?MUn>e;9rHkN#@UkPJvXul|o&{9KJ`rbuj ziios$F9OJ)lXp9=D`M&uE`KNG?d-d{1TleSg2#&bo*#HZd{~d0$6=%T6T6uDC?Gq= zWNahfUZ_YyIX$N7HICE@jxD-4G%N3GIs0de3|))6tj=%6-p-(kb=gYB0-9hCe*jR2r6#9Oxc_hO#ytX&P{buE9 ziF3nBpoXlIfw4!N#TK+}89Q+ON?9W-XZa=i2DUIU(alK{QY(F5y8DflZLvEC=5W&E z9gyx2|FzM^kWPmcHg*(5oCT9P)OWpV%tH{cuH6@Wm4@8Z9ox9QoHe6Ke($f=zu&IBE@ z;cDE<@hU@2l+WP(?36c8`Z1-pMK7g+rcs;89!gc5A2-Knl z`?n!o>*~7if^CAUlB-pN!joeIs&U~v0$`#PQAk9Y7eJ8lvCF_LT6A0X-0 zc*i6{x3E`RdilGXZDG`|irYH2TioX%-_;{Vk`7}#xn30SV#ZuO{DAGbWfWh&hG&&~ zXC%5xjm@28Xas+32?Y$plVDQouxcs;wgEd(dhE&WQ;mtjsVeEHR*CbQ8g~!q_ydOiqkW{v0=Ow<`{!W2mZ;p?ygJlfu0Vnjq z-M|a&h|0|6ag4V>&N_YmbkN9mS=o-r6f{0q8m)a*neT;>*1XelvQc`I4NGs%mF(yC zvcB`ePWAiyl2TFo;JB&lMN%zl_onEnmIsWsmABn z?b%wp3d`lruxc?C{P-<)dG>1dap7NV@3-7^O;CI@CFrv2tG~pl3;sk=17R>OdNyvI z(TUuK05lnmHV|Ugf01|U&oi@GbKaz3-8gP!yz#Unf}@f;(Nup624xlgQ#VKn1m9v? zp0PbSG`8t6V8W|;wqk&3(JrybYG z&DAsV+0 zc@y(xKu!Z){g@%=p1&hdFg0}-Pxg*KQOdn1ajnkP;QpzhwXbhnU#9pdY=4yeldN^apYqPJI0<5?zaM}IK=(t8fE0ik z;7PI8SOHIjqaU|4mVi0~FGFu2Q04)pe!t*&Y7*1wzak@VB9VZDWK$_5z32()s9t@o z`lxdGIc?5MlTYC=QenjWNZ`%7RO=f?wtb#*e)V)9b>}F%<2VvQMTe=*Y$S+Hd*{Q9 zxs&Toc3ay%w;EUm1Tg@dBOe2q(j{ zJqFkI!t0+?@QG&ZhCkTF53zP=!K(dn#(sV3$0nDIk=%7job$7Uindciv@sWVPEwT! zGnmc`Fc?YE2o3r|EMOldnYM(?f zWAe64vBFsjqMd#xM53PNTH>GEZKQ_56G0TML?M8=VjuTF6BEFK(XSMs#L~XO@SB!9 z&)CGr% z9~T3TtbkZs#lodFgxcwpKj*^e&%~%JBeNsz3^k%riGV>K zCR6sPqb1hHTU12QmTbxu0QHP*J>~TCX6<50;;gjsfiMMG*Q8cdH3G& z6&t4bcGpfrEJjn5^yJ4B&kz6WzDd!3PVAkR^dS88%cnyUY&?br^B=RardUU^}Pf$U>t4 zF`jhHPuVb+|E%V3@i_BWJ`isW zI8(>7jDJ|}?Cs5lp|1s_Io%yQFV15Mos{K)G-xQ}`g9Q^*WDEpCs)qet9derZkFO} zC3x*byJazq?mEDOC6}Zwy}Him9Wt>h>5yJJbbD?wd^Z^)t7rA!RD!>Pi5|h5rLOt2 zO_#Ul#C84Sgl}!;>xR?x)U(lNT=LZdn?3`)S+WQw*kG{p>El;$e)tI0$u}h&8y1YT zC$%EhiyiXJ<#qz7XeQI(Jq5I1&VA>NTcAtLa_|)Hq6RzkOXFuFeu0)5fxOk^>S7Th z)cNL>$wcPl1AO&m4r z$v@y)0j1|)yB27wu^~G6NnwbO8n9XLfE71PPLJHrI*$Q|r0noLZ;g58Z0)sz-|zgl zLsBM%(O)R=;T3CMU=qZ!r4p9!a+k~}2>NW<(?)veLs~fhdtsne=;R8@xQFqD?JT`a zw!!($js6KW_6>xSGTY`tv#ZTT+rY>y)Xg6crRQ+|B&@50WB(6QAectEr`=oM86=+q zF;=FhcXF2e*3r`P0}-0fzXi|uPmkp>yMs?brwpH8xc{Lvbq?s&TfVfpOwejx&%I$R zND|Gv=SzI8Xt*PIBx*y@BUe_5=(*p8{4SLiF*L!}Vf1bwnYS`yG%#-Tv}szS}<5!=E|wd__Fu#_x6GNAt}FX4_7I4QkelSqEY_# zT-RKKpmlhxv`zY*vuk6Eogw_4zVVA15jVgl(#dp^Z1RV^mVP{FIsB#S(;51q!)}z^ zBB9*0DRqEi%y`K)A&>9>8YDlfQqPPZ_DqBM#?m_vU z))g9NWvGNKoPVlFv!vJiyk)3#c|ptbY52v;O?s!%OTv()^$8Rdpfs; ze=l+csg4tqn({=GA?~+TOUu^|ptUDJ(Wvt6!{4=056N#v<>Py0IhXtgms;tq!+%7u zLJS3pu?vl@v}CHP%Lw4doy31})(x+_nYOB;R;auxe8iY|cI|&nc(WZ*!K9(lbRWcw zXw|dEHkQ4r@?BaVeJKgtv-Y=7Nse5$Yc8u?klJ?H7{4;EFIMcI^lrRBT9R-0dgzuP zy4L^b>(a1}S$cV=((z75+8$wIxvYf$G#zheD!$o_@ zq0S~B#tZcK1itpZHn{mn+{1i0SQnS7>Jf$(emac3ewEU`nl);Pj$61)SCmZ2b^iAN z-yNCY$COyQ`H+d4ezFLu#soZiI`%Q!uT03nh8vioL%+KDCz-&TgbU#=wdQZK^+}&m zk&CorRE3XT!{csCEmh*83J+=G(Re*s@vcc?2~;xg9Z$^K5M2LR|AArm*PZj9Cux-a zxXO~k`FvvS_p0ETWwKU9!&FM=-eX!oT!SnteV5OL-^wM>49Pggp|{gp1?VrhM2Fd1 zety0Le;8XA?}w}{XmKn96FeX=s1|bebfcW30=8UtWl9SyB#`5q>d^$m;4Ym}>+q=;uZR)DtGLSl)7>YMS3FY0j{jXjgNHe>jY8KFu}&rzGO&zibfaFI{T>Ghc<2X zVa*rl?AurYLt(4NduXFz|(D;hOS z9A`!?;!O7V-dAc+x#x-NSj{HKo1X$<&o8F zqd+Ch{+Q`IW=7)TiET~QnVREya>z2(!sd+g!8{Kl-2&>FTlb!RJyDZ*x&>#G^U8?K zbsJ9dUdnGQ4F7nrK6vj0Ln@)OfA-8+=k&y3a{n;U^dauOo=C1*_=)>7lKw*2_A6vJ z&=bvFCnH7d+QSWh2nm_-tB;dYKsRbI)B4rKz`3SU?Os@KMi*hQ?Ti3a(Eu z`r$*Hkl}OFh`v`xT)%gpXWXv*@K`V_Qh#3rbPTLfR`C}NQXort-WDkYX~V2KTFM0a zk%vOm_iWwRq*$qc^4M>CnoQ5<(?Ciqs?rBaP#j$5p^oNjpI3?KCNTY$gs?*|-bX zT(@)R%JnAFkO~#sh==)gakn69xFjXkJCOcg)GW>92ljRg1{Yq;D7n%giw>k!%9cl? zPEt<|4j9goPToQn0w{nC?oD{dOD8oSIFn6!Cd!8sYm}+6d(7As)i4%J?ZhA$5j-M3 z0{-q$poAqKu9;P#8!_Q2%|s>8{lyqQAOT+fYbl&9863q^G=V^$skIW@hf^3~#~x_s z^`7FX`-6hP7AIHyj5s&g3ID;@gBwu6)Pn*cgY>E3vq8Vj)dj8JQ-h6B&?h(L2a=dt zF6^TOYXc&Q4{wxTU3#G~8!_Ue6Fjq=DLH+VwP!7hdyGfmRp>sOpzfgn%c`TQGJ53U z@7Q-UkJlsuYhngTXgW9MmIO#nA$P8T&4gA7G*M8K?jTDrlb`U{zHixg)wo_LJ02iE z;v(^*Ohi{|ILhN6J`D&9-aX(mr)B_=|J+4Az47LHA$|P; z=nME>oqT)3-dbyU+rBI*3O`oC6fHa)pxSsgH&@afgfe;eH&1xts~OR40{+AgwU!r@ z#;i~bsobUS2Y@O|n%xmE>fC=*jpb@fCZEw+trt!;YDqRG_C3d=-yW(KH<7hQJ)+;=raSs<+iwcvM>cYP zR zDu;NVy0ixP8JHd^dRH+uZkP{UXL@yvX}YHDrAc=V?|FC!6FH6dOg&08lx}qZ?tzcAXQCAP&5w%maBAH#d`_{QwJ42?lMml>#y(( zb_oKu)FoSVeiCdvD1QqkqY!$tiGKsq zikYqEJSe=^!LaJgtR25in&%XmaQ+rN+mYzs4!tp92u1B*lyG4DyEuVXIWbvzGf_-* z{To*MQ*bdx|8pe-zx^~I0{w4v_YP-RTLf>9v^q=(irsMEK8w?Fym@lN;Pq<@ED7)q z;9f*?JMVBwNnBQw5~(YfefCO0cC?_Uvog8bo~ItM%I|PGK7($d)ia3S%a>?MdClf$9HsVw4?5~TE66@dV4b;ie(+puX$)M~h3?z9SPT=QIrP^WKbnwjFACT`|mYs3q zlkuS1By8Gu{JTG#9?S6twZ`3sWTGbe!9=Ud-72b3U*v()igZU|qiTc{BEJ{d@M6Oy z{^A9?&x(T+Q~Y4>J?C*gtS7fYOlst{rMigPa(r<0+2pG+Cg8(04-Ufqmj#d_sepMZ z!$5Dsq*wF1jUTIabIE<@&^)HBd(*f5kLxE<;2BZi9&lO zTr`*(gT9hMx~RCLAiBmmr&pu5ka*V8Xhf&fV6!Xp?UGfTkOc6`E6e^`>2x%3dLM7e z8ehZ|#A++s2m3rz-OvQZgg#MdOF){VkLi~~4q2}VLb?ixX&zj&VTr5%z}(Vg5bwPcX5N;eS_M;>KIbQ_-;08)xp$mpe>Iktr1T4C&KL)9$c$dT*3i!f6IOs|jKfUUC0fJ}y=Y z3h5e1Jw2`lCTj}c>66ym-#;D#cJceEk&62 zzLn=+pl@r`ciaCTO5W8XM zXIsj%veU938&i_ANE9xV)mf?j^;7yFu$od~l=Jg)m_Oo&JSNLv8Qo`Q$&Xx4u!TrayLphuR*6b@Z5?*_(>@!gqC$`q_1m<#vk-@=IyS{!<>iDhdiVF1(iuXyADm>R5D3HH=` z&K<_S+52o8&pBoVmw055Xw zLn!!JCf=zPXgj_;u&GUeUB$nIrdA$Ni{z$r^py(Aw5owq>{*hRT7T!TbxQ`m>&c-k z)d{o-UGLlpXz{#uxcTcNvV~C6|HqA%9Y;BpTe}d1nA)U8LToRqlPOZ~hZ9z%eNg(3 z#0i*UQ66mt>u^jHPpLh>?JvnRySU|Od_m>Sa2Kir9A1@X0p^fy3VZ3Q%@{7t%mcOM zj`NYB@7fhs2BH@KU{=Kd7$4>^zqFufrve3M8ZAp(=e%DdKw>p3t;R5V#qEJIqLJYA z;MDU|xo1)LX8B6>f@!teb9^Ao;BW7^WEK1R)6-fnvnj_=Mr&r%S3HrGwKK{?3K_A` zMnQ~7>4RW|&KNL1LFqy(kqExj(rWxH@Q{OU)3t__C;2%3*IgmCaK0%q6*pa2$(Z*wl2AMmlH8Hay=JO@qA#2w;&MC}L%V0! zzH-5P*YY#8U=&dW-edaDKKvy*A?~5oN;b`^Y<8`$WG~aIpGN!;o$GCAnegT6{^`xq zF>Bni$n|(BM4UP?`rsBPEdAUhmxpPlE`U_aQEvo}E0j$gf>AY)vUQH76U%9n=zLA5d0By}5(7+v4{{eU{c` z;9e9~EU=%WAge$m^Wuk(_twhVqu9TAa`=}f`W|+BjzMYI53$g6*d2n_%Izx20(9Jq zQP{jDn=2F00dc;pU+lkZ3>6{ev0clF($Fzlc7GI)!6Oi}@3<5~kO-vZ|}? z7)jTL{4#m?A6`+=D(LOq1&QG1+$Bk|lvFoBI1yW+cRs?ywJ+!=l3fixa#V?06XR%>X1ZYO%zTYB4D$|4Wt? z?TO`8oK1lAx?n~}+M2@SiTLA_IOz`@?>|=gQ7-evr_?>naQK656jka2%7+CA0T|ul zjuGyP>5^(@>g%<_9@(A^>nBxh00ou#>$C@4W6yqZ))X81LEl-6*`)?I*-yL{zdGQ< zc^-DHjV8-!VSo>PB)NW;R#hAYeB%|!-2mm13jkqe6*3=s(_whwh~$}X|HOe%zE(D| zOP&JBMXLe_TspV?4DBcJQV*@8?}e(iviKK!1>WqD5X1gZj=;2kaPxlI8@|}v3~C~Q zpCO3cM|`wzI4f#r76ZQnZIDiHWA2F{FOnF?2qZtYZN@3Uec_d=S17e~ytVspIOd=q zbTfmymGA0QyppIv8gOC9X^Y2nmyZ@05qppjNq3w2jU52cyP`O#APU-%T43h73S3^Wvf&>On$~kFasDTL z|9>%Y3_qPe=q2{--aJ3!znDMhw;*(C3nEq=MpKkLXVP=%Q>|Z@Tq|;vztSA)Wtotw zODJ#0d)%AhkvJWlceYTwmU(Q&Xh#)BI+b+KF_y}{j2Z)8 zfLKbwzYnD&VwMf&g7ca_fi;TpPr_0JI=EktWdi~g@MPhN1y&;e^Qw07VxaP>DKdw` zzT4?SZahGy#%S$G7-mT{NB@B`NMFgt;zju%h>zk^)u-;?f%Ic2sd~R7A-Xm#4IF=# zR68yZW=ZcytGA1M1^_FDmy1LV%z%VItHM5Xp5Sri^0WRu25Kqce&8R*+ymnCztY=Y z7$?il>vuCUMk1^oauH4XJ!)`WgaRqll0Pc9Jx0~=lIQIS`oN022}NF7c&M~WPR)lT zmb`_v2?X_Ew>8?66ABUKlq!7KW|Q)$MKClJQy}e_)Iwtb01+D#fraDcrwQwN&LU

aE;mCiyWQv* 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%0A^#O=93;hZZz2Qceol# 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%0AcgD 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%0DxvgT~6U=|! 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%0DI#~to0kCS7UKJOF(F2LR@$bs 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 diff --git a/launcher/Resources/MacticianHero.png b/launcher/Resources/MacticianHero.png deleted file mode 100644 index 6f1edabfdd203193c74e1effe8513eb7681d493e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458005 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

jBAk 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

SN5{q+ns*&u7rlw?3JVvx7o<#B(c}nT2%ra{~ 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 diff --git a/launcher/Resources/QEMU-Hypervisor.entitlements b/launcher/Resources/QEMU-Hypervisor.entitlements deleted file mode 100644 index 154f330..0000000 --- a/launcher/Resources/QEMU-Hypervisor.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.hypervisor - - - diff --git a/launcher/Resources/emulator-host.command b/launcher/Resources/emulator-host.command deleted file mode 100755 index 022eec1..0000000 --- a/launcher/Resources/emulator-host.command +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -if [[ -z "${TFT_EMULATOR:-}" || ! -x "$TFT_EMULATOR" ]]; then - print -u2 "Mactician Game Host could not find its Android Emulator executable." - exit 1 -fi - -exec "$TFT_EMULATOR" "$@" diff --git a/launcher/Resources/en.lproj/Localizable.strings b/launcher/Resources/en.lproj/Localizable.strings deleted file mode 100644 index 8549a8e..0000000 --- a/launcher/Resources/en.lproj/Localizable.strings +++ /dev/null @@ -1,151 +0,0 @@ -"header.subtitle" = "TFT PBE launcher for Apple Silicon"; -"header.pbe_version_format" = "PBE %@"; -"settings.open" = "Open Mactician settings"; -"about.descriptor" = "TFT PBE launcher for Apple Silicon"; - -"hero.eyebrow" = "MACTICIAN · TFT PBE LAUNCHER"; -"hero.title" = "Keep playing TFT PBE on your Mac."; -"hero.description" = "Mactician prepares the environment, starts the game, and keeps your local setup in one place."; - -"footer.private_build" = "Free and open source"; -"footer.apple_silicon" = "Apple silicon"; -"footer.developer_website" = "Developer website"; -"footer.legal" = "TFT and Riot Games are property of their respective owners"; - -"ready.title" = "Ready to play"; -"ready.description" = "TFT PBE is installed and ready."; -"ready.advanced_summary_format" = "%d%% · %d GB · %d vCPU"; -"ready.advanced_open" = "Open advanced settings"; - -"field.game_language" = "Game language"; -"field.graphics_profile" = "Graphics profile"; -"field.resolution" = "Resolution"; -"field.effects_quality" = "Detail and effects"; -"field.advanced_settings" = "Advanced settings"; -"field.interface_scale" = "Interface scale"; -"field.android_ram" = "Android RAM"; -"field.vcpu" = "vCPU"; -"field.vcpu_value_format" = "%d cores"; - -"effects_quality.high" = "High"; -"effects_quality.high.detail" = "Full detail"; -"effects_quality.performance" = "Performance"; -"effects_quality.performance.detail" = "Fewer effects and simpler LOD"; - -"action.play" = "Play"; -"action.update_game" = "Update game"; -"action.install" = "Install"; -"action.pause" = "Pause"; -"action.resume" = "Resume"; -"action.cancel" = "Cancel"; -"action.stop" = "Stop"; -"action.stop_game" = "Stop game"; -"action.view_log" = "View log"; -"action.data_folder" = "Data folder"; -"action.repair_installation" = "Repair installation"; -"action.reset_all_data" = "Reset all data…"; -"action.retry_installation" = "Retry installation"; -"action.try_again" = "Try again"; -"action.restart_game" = "Restart game"; -"action.copy" = "Copy"; -"action.close" = "Close"; -"action.ok" = "OK"; - -"game_update.result.title" = "Game update"; -"game_update.updated.message" = "TFT PBE was updated to version %@ and is ready to play."; -"game_update.current.message" = "No update is available. Installed TFT PBE version %@ already matches the hosted version."; - -"telemetry.notice.title" = "Usage statistics and diagnostics"; -"telemetry.notice.body" = "Mactician sends one statistic after the first successful game launch: the launcher version and a rounded session-duration range. The event contains no persistent identifier or device characteristics."; -"telemetry.extended.toggle" = "Send extended diagnostics: Mac characteristics, launcher settings, and the duration of every game session."; -"telemetry.extended.data_link" = "Data sent"; -"telemetry.privacy_policy" = "Privacy Policy"; -"telemetry.continue" = "Continue"; -"telemetry.settings.title" = "Privacy and diagnostics"; -"telemetry.settings.description" = "Extended diagnostics are optional and do not affect launcher functionality."; -"telemetry.settings.basic_note" = "Mactician sends one unlinkable first-session event with the launcher version and a rounded duration range. Resetting Android or game data does not reset it."; - -"updates.title" = "Mactician Updates"; -"updates.description" = "Updates are verified, installed atomically, and never remove Android or Riot data."; -"updates.automatic_checks" = "Checks at launch and once per day"; -"updates.check" = "Check for Updates…"; - -"install.required.title" = "Installation required"; -"install.required.description" = "Install the verified Android environment and TFT PBE once."; -"install.cancelled.title" = "Installation stopped"; -"install.cancelled.description" = "Incomplete downloads are kept and can be resumed when you install again."; -"install.requirement.download" = "Download"; -"install.requirement.free_space" = "Free space required"; -"install.requirement.platform" = "Platform"; -"install.requirement.apple_silicon_value" = "Apple silicon"; -"install.what_is_installed" = "What will be installed"; -"install.android_api_format" = "Android API %@ · ARM64"; -"install.emulator_format" = "Emulator %@"; -"install.clean_profile" = "Clean profile"; -"install.license.accept" = "I accept the Android SDK License Agreement"; -"install.license.terms" = "View Google terms"; -"install.license.hint" = "Accept the Android SDK license to enable installation."; - -"installing.title" = "Installing TFT PBE"; -"installing.phase.checking" = "Checking your Mac and installation files…"; -"installing.phase.downloading" = "Downloading required components…"; -"installing.phase.extracting" = "Extracting and verifying files…"; -"installing.phase.creating_device" = "Creating the Android device…"; -"installing.phase.installing_game" = "Installing TFT PBE…"; -"installing.phase.finished" = "Installation complete"; -"installing.phase.paused" = "Download paused"; - -"launching.title" = "Launching TFT PBE"; -"playing.title" = "Game running"; -"playing.description_format" = "TFT PBE is open in %@."; -"playing.fill_window_tip" = "Control + Fn + F fills the game window"; -"stopping.title" = "Stopping TFT PBE"; -"stopping.description" = "Closing the emulator and restoring temporary settings…"; - -"hotkeys.title" = "Game hotkeys"; -"hotkeys.description" = "Always enabled while the game window is focused. Accessibility access belongs to Mactician, not the emulator."; -"hotkeys.grant_access" = "Allow Accessibility"; -"hotkeys.status.label" = "Status"; -"hotkeys.status.permission_required" = "Hotkeys are off — allow Accessibility for Mactician"; -"hotkeys.status.ready" = "Enabled for the next game launch"; -"hotkeys.status.active" = "Enabled while the game window is focused"; -"hotkeys.status.unavailable" = "Hotkeys are off — the input bridge is unavailable"; -"hotkeys.shortcuts" = "Space: Shop · D: Reroll · F: Buy XP · Tab: Items / traits · V: Players / damage\nControl + Fn + F: Fill window"; - -"settings.title" = "Mactician settings"; -"settings.description" = "Game, performance, hotkeys, and maintenance."; -"settings.runtime_locked" = "Available after TFT PBE is stopped."; -"settings.game.title" = "Game"; - -"settings.performance.title" = "Performance"; -"settings.performance.host_format" = "This Mac: %d GB unified memory · %d logical CPU"; -"settings.performance.recommended" = "Recommended for this Mac"; -"settings.performance.recommended_format" = "%d GB RAM · %d vCPU"; -"settings.performance.apply" = "Apply recommended"; -"settings.performance.help.title" = "How resource allocation works"; -"settings.performance.help.balanced.title" = "Balanced starting point"; -"settings.performance.help.balanced.body" = "Start with the recommendation so macOS, Metal, ANGLE, and background apps retain enough resources."; -"settings.performance.help.ram.title" = "When to add RAM"; -"settings.performance.help.ram.body" = "Add 2 GB for 4K or confirmed Android memory pressure. More RAM does not improve FPS by itself; avoid assigning more than half of unified memory."; -"settings.performance.help.cpu.title" = "When to add vCPU"; -"settings.performance.help.cpu.body" = "Increase one core at a time for sustained CPU limits. Keep at least two host cores available to reduce frame-time spikes."; - -"settings.maintenance.title" = "Maintenance"; -"settings.maintenance.description" = "Repair the verified installation or open Mactician diagnostics."; -"settings.maintenance.reset_description" = "Reset removes Android, TFT, cache, and the saved Riot sign-in."; - -"reset.confirmation.title" = "Reset all data?"; -"reset.confirmation.message" = "This removes the Android SDK, TFT, game cache, and saved sign-in. This action cannot be undone."; -"reset.confirmation.action" = "Delete Android and Riot data"; - -"error.installation.title" = "Installation failed"; -"error.installation.summary" = "The required game environment could not be installed."; -"error.launch.title" = "Couldn’t launch TFT PBE"; -"error.launch.summary" = "Mactician could not start the verified game environment."; -"error.runtime.title" = "TFT PBE stopped unexpectedly"; -"error.runtime.summary" = "The game or emulator reported an unexpected runtime error."; -"error.validation.title" = "Installation needs repair"; -"error.validation.summary" = "A verified component is missing, damaged, or does not match this Mactician build."; -"error.reset.title" = "Couldn’t delete Mactician data"; -"error.reset.summary" = "Some Mactician data could not be removed. Review the technical details before trying again."; -"error.technical_details" = "Technical details"; diff --git a/launcher/Resources/launcher-runtime.command b/launcher/Resources/launcher-runtime.command deleted file mode 100755 index 47bfa3b..0000000 --- a/launcher/Resources/launcher-runtime.command +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/zsh -set -uo pipefail -unsetopt BG_NICE - -readonly REQUIRED_ENV=( - TFT_RUNTIME_PROJECT TFT_LAUNCH_LOG TFT_ADB TFT_AVD_HOME TFT_AVD_NAME - TFT_SERIAL TFT_DISPLAY_SIZE TFT_DISPLAY_DENSITY TFT_GAME_LANGUAGE - TFT_CPU_CORES TFT_MEMORY_MB TFT_UI_SCALE -) -for required_name in "${REQUIRED_ENV[@]}"; do - if [[ -z "${(P)required_name:-}" ]]; then - print -r -- '{"event":"error","message":"Runtime environment is incomplete","code":2}' - exit 2 - fi -done - -case "$TFT_GAME_LANGUAGE" in - en-US|ru-RU|de-DE|fr-FR|es-ES|es-MX|pt-BR|it-IT|pl-PL|cs-CZ|hu-HU|ro-RO|el-GR|tr-TR|ar-AE|ja-JP|ko-KR|zh-CN|zh-SG|zh-TW|vi-VN|th-TH|id-ID) - ;; - *) - print -r -- '{"event":"error","message":"Unsupported game language","code":2}' - exit 2 - ;; -esac - -emit() { - print -r -- "$1" -} - -typeset child_pid="" -typeset stop_requested=0 -stop_child() { - stop_requested=1 - if [[ -n "$child_pid" ]] && kill -0 "$child_pid" >/dev/null 2>&1; then - kill -TERM "$child_pid" >/dev/null 2>&1 || true - fi -} -trap stop_child INT TERM HUP - -mkdir -p "${TFT_LAUNCH_LOG:h}" -emit '{"event":"booting","message":"Starting Android…"}' - -"$TFT_RUNTIME_PROJECT/scripts/run-asg-experiment.command" >>"$TFT_LAUNCH_LOG" 2>&1 & -child_pid=$! - -typeset emulator_pid="" -typeset emitted_pid=0 -typeset emitted_ready=0 -typeset locale_applied=0 -typeset missing_game_checks=0 -while kill -0 "$child_pid" >/dev/null 2>&1; do - if (( emitted_pid == 0 )); then - emulator_pid="$(pgrep -f 'qemu-system-aarch64.*-port 5582' 2>/dev/null | head -n 1 || true)" - if [[ -z "$emulator_pid" ]]; then - emulator_pid="$(pgrep -f 'emulator.*-port 5582' 2>/dev/null | head -n 1 || true)" - fi - if [[ "$emulator_pid" == <-> ]]; then - emit "{\"event\":\"emulator_started\",\"pid\":$emulator_pid,\"serial\":\"$TFT_SERIAL\"}" - emitted_pid=1 - fi - fi - if (( locale_applied == 0 )) \ - && "$TFT_ADB" -s "$TFT_SERIAL" get-state >/dev/null 2>&1 \ - && [[ "$("$TFT_ADB" -s "$TFT_SERIAL" shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" == "1" ]]; then - "$TFT_ADB" -s "$TFT_SERIAL" shell cmd locale set-app-locales \ - com.riotgames.league.teamfighttactics.pbe "$TFT_GAME_LANGUAGE" \ - >>"$TFT_LAUNCH_LOG" 2>&1 || true - locale_applied=1 - fi - if (( emitted_ready == 0 )) \ - && "$TFT_ADB" -s "$TFT_SERIAL" get-state >/dev/null 2>&1 \ - && [[ -n "$("$TFT_ADB" -s "$TFT_SERIAL" shell pidof com.riotgames.league.teamfighttactics.pbe 2>/dev/null | tr -d '\r')" ]]; then - emit "{\"event\":\"ready\",\"message\":\"TFT PBE is open\",\"serial\":\"$TFT_SERIAL\"}" - emitted_ready=1 - fi - if (( emitted_ready == 1 )); then - if [[ -n "$("$TFT_ADB" -s "$TFT_SERIAL" shell pidof com.riotgames.league.teamfighttactics.pbe 2>/dev/null | tr -d '\r')" ]]; then - missing_game_checks=0 - else - (( missing_game_checks += 1 )) - if (( missing_game_checks >= 3 )); then - emit "{\"event\":\"game_stopped\",\"message\":\"TFT PBE closed\",\"serial\":\"$TFT_SERIAL\"}" - break - fi - fi - fi - sleep 1 -done - -wait "$child_pid" -readonly child_status=$? -typeset normal_stop=0 -if (( stop_requested == 1 || emitted_ready == 1 )); then - normal_stop=1 -fi -if (( child_status == 42 && stop_requested == 0 )); then - emit '{"event":"error","message":"The TFT PBE version changed. The old OpenGL overlay will not be applied. Prepare a new verified private launcher build.","code":42}' -elif (( child_status != 0 && normal_stop == 0 )); then - emit "{\"event\":\"error\",\"message\":\"Could not launch TFT. Open the log or repair the installation.\",\"code\":$child_status}" -fi -emit "{\"event\":\"stopped\",\"code\":$child_status}" -if (( normal_stop == 1 )); then - exit 0 -fi -exit "$child_status" diff --git a/launcher/Resources/release-manifest.json b/launcher/Resources/release-manifest.json deleted file mode 100644 index 8e70e61..0000000 --- a/launcher/Resources/release-manifest.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "schemaVersion": 1, - "minimumFreeBytes": 26843545600, - "components": [ - { - "id": "platform-tools", - "version": "36.0.2", - "url": "https://dl.google.com/android/repository/platform-tools_r36.0.2-darwin.zip", - "size": 15711207, - "sha256": "106a5d31fad8c1c0c5a180d06f5779767d129d7d5edbe629005c11a85eec5b4b", - "archiveRoot": "platform-tools", - "installPath": "sdk/platform-tools" - }, - { - "id": "emulator", - "version": "37.1.11", - "url": "https://dl.google.com/android/repository/emulator-darwin_aarch64-15917651.zip", - "size": 394555844, - "sha256": "22530de9363f34ea945ecb5cad74523abd4b615f27f3c1a9899efb183ea9e144", - "archiveRoot": "emulator", - "installPath": "sdk/emulator" - }, - { - "id": "system-image", - "version": "android-36-google_apis-arm64-v8a-r07", - "url": "https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-36_r07.zip", - "size": 1872691175, - "sha256": "fb47d861d6f87230ee0fe70f610d579935ca77f41a0eefbf391595d3dc4b5ee2", - "archiveRoot": "arm64-v8a", - "installPath": "sdk/system-images/android-36/google_apis/arm64-v8a" - } - ], - "game": { - "packageName": "com.riotgames.league.teamfighttactics.pbe", - "version": "18.1-5212127", - "baseSHA256": "2f4996a620623d0b958383bfe58bdec78fb70cca095099ca2474f3d08c62ff18", - "apks": [ - { - "name": "base.apk", - "size": 102984963, - "sha256": "2f4996a620623d0b958383bfe58bdec78fb70cca095099ca2474f3d08c62ff18" - }, - { - "name": "split_config.arm64_v8a.apk", - "size": 92943423, - "sha256": "a7332efdddf070e724f75c41adb1a829bc3c442bd53ae79fe8cc55075e951939" - }, - { - "name": "split_config.en.apk", - "size": 41369, - "sha256": "b57210f98779e12d6f6874c378942f67a55459e75549bbf97487a2d6e0084cd5" - }, - { - "name": "split_config.hdpi.apk", - "size": 90687, - "sha256": "f3b653ba01a8d352f6a25ad6ecbae8892b13aa44daad6b74aebdb5a5be05d756" - } - ] - }, - "profiles": [ - { - "id": "balanced", - "title": "1080p", - "width": 1920, - "height": 1080, - "density": 320, - "memoryMB": 6144 - }, - { - "id": "quality", - "title": "1440p", - "width": 2560, - "height": 1440, - "density": 416, - "memoryMB": 6144 - }, - { - "id": "ultra", - "title": "1800p", - "width": 3200, - "height": 1800, - "density": 520, - "memoryMB": 6144 - }, - { - "id": "4k", - "title": "4K", - "width": 3840, - "height": 2160, - "density": 640, - "memoryMB": 6144 - } - ] -} diff --git a/launcher/Resources/release-notes/1.0.0.md b/launcher/Resources/release-notes/1.0.0.md deleted file mode 100644 index 2deb211..0000000 --- a/launcher/Resources/release-notes/1.0.0.md +++ /dev/null @@ -1,16 +0,0 @@ -# Mactician Release Notes — 1.0.0 - -Mactician 1.0.0 is the initial public version. - -- Native SwiftUI experience for preparing and playing TFT PBE on Apple Silicon. -- Verified Android Emulator, ANGLE, Vulkan, and MoltenVK runtime components. -- Built-in installation, Play, Repair, Reset, settings, hotkeys, and secure updates. -- Runtime data stored in `~/Library/Application Support/Mactician`. - -## Verify the download - -`Mactician-1.0.0.dmg` SHA-256: - -`c83a95ee84434f05e40425f3fa8a3f1a57d207a218ac62742d20b3d0c32a9a28` - -Free and open source. Built for two tacticians. Shared with everyone. diff --git a/launcher/Resources/release-notes/1.0.1.md b/launcher/Resources/release-notes/1.0.1.md deleted file mode 100644 index 2607b24..0000000 --- a/launcher/Resources/release-notes/1.0.1.md +++ /dev/null @@ -1,15 +0,0 @@ -# Mactician Release Notes — 1.0.1 - -- Adds a dedicated **Update game** action for TFT PBE. -- Downloads signed game manifests and split APK files from `sergeinaumov.dev`. -- Verifies the feed signature, HTTPS origin, file sizes, and SHA-256 hashes before installation. -- Installs game updates without uninstalling TFT, preserving Riot sign-in and local game data. -- Keeps a verified bundled APK fallback for first installation when the update service is unavailable. - -## Verify the download - -`Mactician-1.0.1.dmg` SHA-256: - -`56db03369a3e65b6a20474fc2bc6b8c4ffe016cfc889084012e50d322ec92cfa` - -Free and open source. Built for two tacticians. Shared with everyone. diff --git a/launcher/Resources/release-notes/1.0.2.md b/launcher/Resources/release-notes/1.0.2.md deleted file mode 100644 index 296608d..0000000 --- a/launcher/Resources/release-notes/1.0.2.md +++ /dev/null @@ -1,14 +0,0 @@ -# Mactician Release Notes — 1.0.2 - -- Checks for Mactician updates at every launch as well as on the daily schedule. -- Shows an explicit result after every TFT PBE update check. -- Displays the installed game version when no newer hosted build is available. -- Records completed game update checks in the launcher log for diagnostics. - -## Verify the download - -`Mactician-1.0.2.dmg` SHA-256: - -`5f364644acdcf6302b569f96f8ecdda00238bda8b65a9a4da5b93f5f041e2f02` - -Free and open source. Built for two tacticians. Shared with everyone. diff --git a/launcher/Resources/release-notes/1.0.3.md b/launcher/Resources/release-notes/1.0.3.md deleted file mode 100644 index 47fdfd4..0000000 --- a/launcher/Resources/release-notes/1.0.3.md +++ /dev/null @@ -1,14 +0,0 @@ -# Mactician Release Notes — 1.0.3 - -- Checks the signed TFT PBE update feed automatically when the launcher is ready. -- Shows **Update game** instead of **Play** only when a newer verified game version is available. -- Keeps the update action hidden when the installed game is current. -- Prevents launching a known-outdated game build until its update completes. - -## Verify the download - -`Mactician-1.0.3.dmg` SHA-256: - -`82be8dde6097aed2e87af33a2d1dd1017d4019f2ed7ee094588999bd5924b12d` - -Free and open source. Built for two tacticians. Shared with everyone. diff --git a/launcher/Resources/release-notes/1.0.4.md b/launcher/Resources/release-notes/1.0.4.md deleted file mode 100644 index 9ed990f..0000000 --- a/launcher/Resources/release-notes/1.0.4.md +++ /dev/null @@ -1,16 +0,0 @@ -# Mactician Release Notes — 1.0.4 - -- Restores four asynchronous OpenGL shader compiler services after the latest - TFT PBE update disabled them in its inherited Android device profile. -- Moves first-use PSO compilation away from the gameplay render path to reduce - recurring combat freezes and improve frame pacing while the shader cache warms. -- Keeps the Performance and High detail profiles protected against the same - upstream profile regression. - -## Verify the download - -`Mactician-1.0.4.dmg` SHA-256: - -`6b935ee77d109c6bac1969fc926d639890967cac5951309b30e83d44b8d11e4f` - -Free and open source. Built for two tacticians. Shared with everyone. diff --git a/launcher/Resources/ru.lproj/Localizable.strings b/launcher/Resources/ru.lproj/Localizable.strings deleted file mode 100644 index 52e2193..0000000 --- a/launcher/Resources/ru.lproj/Localizable.strings +++ /dev/null @@ -1,151 +0,0 @@ -"header.subtitle" = "Лаунчер TFT PBE для Mac с Apple Silicon"; -"header.pbe_version_format" = "PBE %@"; -"settings.open" = "Открыть настройки Mactician"; -"about.descriptor" = "Лаунчер TFT PBE для Mac с Apple Silicon"; - -"hero.eyebrow" = "MACTICIAN · ЛАУНЧЕР TFT PBE"; -"hero.title" = "Продолжайте играть в TFT PBE на Mac."; -"hero.description" = "Mactician готовит окружение, запускает игру и хранит локальные настройки в одном месте."; - -"footer.private_build" = "Бесплатно и с открытым исходным кодом"; -"footer.apple_silicon" = "Apple Silicon"; -"footer.developer_website" = "Сайт разработчика"; -"footer.legal" = "TFT и Riot Games принадлежат их правообладателям"; - -"ready.title" = "Можно играть"; -"ready.description" = "TFT PBE установлен и готов к запуску."; -"ready.advanced_summary_format" = "%d%% · %d ГБ · %d vCPU"; -"ready.advanced_open" = "Открыть расширенные настройки"; - -"field.game_language" = "Язык игры"; -"field.graphics_profile" = "Профиль графики"; -"field.resolution" = "Разрешение"; -"field.effects_quality" = "Детализация и эффекты"; -"field.advanced_settings" = "Расширенные настройки"; -"field.interface_scale" = "Масштаб интерфейса"; -"field.android_ram" = "Память Android"; -"field.vcpu" = "vCPU"; -"field.vcpu_value_format" = "%d ядер"; - -"effects_quality.high" = "Высокие"; -"effects_quality.high.detail" = "Полная детализация"; -"effects_quality.performance" = "Производительность"; -"effects_quality.performance.detail" = "Меньше эффектов и более простой LOD"; - -"action.play" = "Играть"; -"action.update_game" = "Обновить игру"; -"action.install" = "Установить"; -"action.pause" = "Приостановить"; -"action.resume" = "Продолжить"; -"action.cancel" = "Отмена"; -"action.stop" = "Остановить"; -"action.stop_game" = "Остановить игру"; -"action.view_log" = "Открыть журнал"; -"action.data_folder" = "Папка данных"; -"action.repair_installation" = "Восстановить установку"; -"action.reset_all_data" = "Сбросить все данные…"; -"action.retry_installation" = "Повторить установку"; -"action.try_again" = "Попробовать снова"; -"action.restart_game" = "Перезапустить игру"; -"action.copy" = "Копировать"; -"action.close" = "Закрыть"; -"action.ok" = "ОК"; - -"game_update.result.title" = "Обновление игры"; -"game_update.updated.message" = "TFT PBE обновлён до версии %@ и готов к запуску."; -"game_update.current.message" = "Обновление не найдено. Установленная версия TFT PBE %@ совпадает с версией на сервере."; - -"telemetry.notice.title" = "Статистика использования и диагностика"; -"telemetry.notice.body" = "Mactician один раз отправляет статистику первого успешного запуска: версию лаунчера и округлённую длительность сессии. Событие не содержит постоянного идентификатора или характеристик устройства."; -"telemetry.extended.toggle" = "Отправлять расширенную диагностику: характеристики Mac, настройки лаунчера и длительность каждой игровой сессии."; -"telemetry.extended.data_link" = "Перечень данных"; -"telemetry.privacy_policy" = "Политика конфиденциальности"; -"telemetry.continue" = "Продолжить"; -"telemetry.settings.title" = "Конфиденциальность и диагностика"; -"telemetry.settings.description" = "Расширенная диагностика необязательна и не влияет на работу лаунчера."; -"telemetry.settings.basic_note" = "Mactician один раз отправляет несвязываемое событие первой сессии с версией лаунчера и округлённой длительностью. Сброс Android или игровых данных его не сбрасывает."; - -"updates.title" = "Обновления Mactician"; -"updates.description" = "Обновления проверяются, устанавливаются атомарно и не удаляют данные Android или Riot."; -"updates.automatic_checks" = "Проверка при запуске и раз в сутки"; -"updates.check" = "Проверить обновления…"; - -"install.required.title" = "Требуется установка"; -"install.required.description" = "Один раз установите проверенное окружение Android и TFT PBE."; -"install.cancelled.title" = "Установка остановлена"; -"install.cancelled.description" = "Незавершённые загрузки сохранены и продолжатся при следующей установке."; -"install.requirement.download" = "Размер загрузки"; -"install.requirement.free_space" = "Требуется места"; -"install.requirement.platform" = "Платформа"; -"install.requirement.apple_silicon_value" = "Apple Silicon"; -"install.what_is_installed" = "Что будет установлено"; -"install.android_api_format" = "Android API %@ · ARM64"; -"install.emulator_format" = "Эмулятор %@"; -"install.clean_profile" = "Чистый профиль"; -"install.license.accept" = "Я принимаю лицензионное соглашение Android SDK"; -"install.license.terms" = "Условия Google"; -"install.license.hint" = "Примите лицензию Android SDK, чтобы включить установку."; - -"installing.title" = "Установка TFT PBE"; -"installing.phase.checking" = "Проверяем Mac и файлы установки…"; -"installing.phase.downloading" = "Загружаем необходимые компоненты…"; -"installing.phase.extracting" = "Распаковываем и проверяем файлы…"; -"installing.phase.creating_device" = "Создаём устройство Android…"; -"installing.phase.installing_game" = "Устанавливаем TFT PBE…"; -"installing.phase.finished" = "Установка завершена"; -"installing.phase.paused" = "Загрузка приостановлена"; - -"launching.title" = "Запуск TFT PBE"; -"playing.title" = "Игра запущена"; -"playing.description_format" = "TFT PBE открыт на языке: %@."; -"playing.fill_window_tip" = "Control + Fn + F заполняет окно игры"; -"stopping.title" = "Остановка TFT PBE"; -"stopping.description" = "Закрываем эмулятор и восстанавливаем временные настройки…"; - -"hotkeys.title" = "Горячие клавиши игры"; -"hotkeys.description" = "Всегда включены, когда окно игры в фокусе. Accessibility-разрешение получает Mactician, а не эмулятор."; -"hotkeys.grant_access" = "Разрешить Accessibility"; -"hotkeys.status.label" = "Состояние"; -"hotkeys.status.permission_required" = "Хоткеи выключены — разрешите Accessibility для Mactician"; -"hotkeys.status.ready" = "Включены для следующего запуска игры"; -"hotkeys.status.active" = "Включены, пока окно игры в фокусе"; -"hotkeys.status.unavailable" = "Хоткеи выключены — мост ввода недоступен"; -"hotkeys.shortcuts" = "Space: Магазин · D: Обновить · F: Купить опыт · Tab: Предметы / трейты · V: Игроки / урон\nControl + Fn + F: Развернуть окно"; - -"settings.title" = "Настройки Mactician"; -"settings.description" = "Игра, производительность, горячие клавиши и обслуживание."; -"settings.runtime_locked" = "Доступно после остановки TFT PBE."; -"settings.game.title" = "Игра"; - -"settings.performance.title" = "Производительность"; -"settings.performance.host_format" = "Этот Mac: %d ГБ объединённой памяти · %d логических CPU"; -"settings.performance.recommended" = "Рекомендовано для этого Mac"; -"settings.performance.recommended_format" = "%d ГБ памяти · %d vCPU"; -"settings.performance.apply" = "Применить"; -"settings.performance.help.title" = "Как распределяются ресурсы"; -"settings.performance.help.balanced.title" = "Сбалансированная отправная точка"; -"settings.performance.help.balanced.body" = "Начните с рекомендации, чтобы macOS, Metal, ANGLE и фоновые приложения получили достаточно ресурсов."; -"settings.performance.help.ram.title" = "Когда добавлять память"; -"settings.performance.help.ram.body" = "Добавьте 2 ГБ для 4K или при подтверждённой нехватке памяти Android. Дополнительная память сама по себе не повышает FPS; не выделяйте больше половины объединённой памяти."; -"settings.performance.help.cpu.title" = "Когда добавлять vCPU"; -"settings.performance.help.cpu.body" = "При устойчивом ограничении CPU добавляйте по одному ядру. Оставляйте системе хотя бы два ядра, чтобы уменьшить скачки времени кадра."; - -"settings.maintenance.title" = "Обслуживание"; -"settings.maintenance.description" = "Восстановление проверенной установки и диагностика Mactician."; -"settings.maintenance.reset_description" = "Сброс удалит Android, TFT, кэш и сохранённый вход Riot."; - -"reset.confirmation.title" = "Сбросить все данные?"; -"reset.confirmation.message" = "Будут удалены Android SDK, TFT, кэш игры и сохранённый вход. Это действие нельзя отменить."; -"reset.confirmation.action" = "Удалить данные Android и Riot"; - -"error.installation.title" = "Не удалось установить игру"; -"error.installation.summary" = "Не удалось установить необходимое игровое окружение."; -"error.launch.title" = "Не удалось запустить TFT PBE"; -"error.launch.summary" = "Mactician не смог запустить проверенное игровое окружение."; -"error.runtime.title" = "TFT PBE неожиданно завершился"; -"error.runtime.summary" = "Игра или эмулятор сообщили о неожиданной ошибке выполнения."; -"error.validation.title" = "Установку нужно восстановить"; -"error.validation.summary" = "Проверенный компонент отсутствует, повреждён или не соответствует этой сборке Mactician."; -"error.reset.title" = "Не удалось удалить данные Mactician"; -"error.reset.summary" = "Часть данных Mactician не удалось удалить. Изучите технические подробности перед повторной попыткой."; -"error.technical_details" = "Технические подробности"; diff --git a/launcher/Sources/CoreModels.swift b/launcher/Sources/CoreModels.swift deleted file mode 100644 index c165723..0000000 --- a/launcher/Sources/CoreModels.swift +++ /dev/null @@ -1,366 +0,0 @@ -import Foundation - -enum MacticianIdentity { - static let appName = "Mactician" - static let bundleIdentifier = "dev.sergeinaumov.mactician" - static let applicationSupportDirectory = "Mactician" - static let userDefaultsDomain = bundleIdentifier - static let keychainService = bundleIdentifier - static let loggingSubsystem = bundleIdentifier - static let websiteURL = URL(string: "https://sergeinaumov.dev/mactician")! - static let privacyPolicyURL = URL(string: "https://sergeinaumov.dev/mactician/privacy")! - static let extendedDiagnosticsURL = URL( - string: "https://sergeinaumov.dev/mactician/privacy#extended-diagnostics" - )! - static let sourceURL = URL(string: "https://github.com/tweet9ra/mactician")! - static let technicalStoryURL = URL( - string: "https://sergeinaumov.dev/writing/how-i-built-mactician" - )! - static let issueURL = URL(string: "https://github.com/tweet9ra/mactician/issues/new/choose")! - static let gameUpdateURL = URL( - string: "https://sergeinaumov.dev/mactician/updates/game/manifest.json" - )! - static let gameUpdatePublicKeyBase64 = "Nadxne/Zs1kndXT8OpaShZCEgK/LqUtMv4aqGQNzCcM=" -} - -struct ReleaseManifest: Codable, Equatable { - let schemaVersion: Int - let minimumFreeBytes: Int64 - let components: [SDKComponent] - let game: GameRelease - let profiles: [LaunchProfile] - - func validate() throws { - guard schemaVersion == 1 else { - throw LauncherError.invalidManifest("Unsupported release manifest schema: \(schemaVersion)") - } - guard minimumFreeBytes >= 10 * 1024 * 1024 * 1024 else { - throw LauncherError.invalidManifest("Invalid minimum disk space") - } - guard Set(components.map(\.id)).count == components.count, - Set(profiles.map(\.id)).count == profiles.count else { - throw LauncherError.invalidManifest("Duplicate identifiers") - } - for component in components { - try component.validate() - } - try game.validate() - guard Set(profiles.map(\.id)) == Set(["balanced", "quality", "ultra", "4k"]) else { - throw LauncherError.invalidManifest("Required profiles are missing") - } - for profile in profiles { - try profile.validate() - } - } -} - -struct SDKComponent: Codable, Equatable, Identifiable { - let id: String - let version: String - let url: URL - let size: Int64 - let sha256: String - let archiveRoot: String - let installPath: String - - func validate() throws { - guard url.scheme == "https", url.host == "dl.google.com" else { - throw LauncherError.invalidManifest("Component \(id) uses an unofficial URL") - } - guard size > 0, sha256.isLowercaseSHA256 else { - throw LauncherError.invalidManifest("Component \(id) has an invalid size or hash") - } - guard Self.isSafeRelativePath(archiveRoot), Self.isSafeRelativePath(installPath) else { - throw LauncherError.invalidManifest("Component \(id) contains an unsafe path") - } - } - - private static func isSafeRelativePath(_ path: String) -> Bool { - !path.isEmpty && !path.hasPrefix("/") && !path.split(separator: "/").contains("..") - } -} - -struct GameRelease: Codable, Equatable { - let packageName: String - let version: String - let versionCode: Int? - let baseSHA256: String - let apks: [GameAPK] - - func validate() throws { - guard packageName == "com.riotgames.league.teamfighttactics.pbe", - !version.isEmpty, - baseSHA256.isLowercaseSHA256, - (1 ... 32).contains(apks.count), - Set(apks.map(\.name)).count == apks.count, - apks.first?.name == "base.apk", - apks.first?.sha256 == baseSHA256 else { - throw LauncherError.invalidManifest("Invalid TFT PBE release") - } - for apk in apks { - guard !apk.name.contains("/"), apk.name.hasSuffix(".apk"), - apk.size > 0, apk.sha256.isLowercaseSHA256 else { - throw LauncherError.invalidManifest("Invalid APK description for \(apk.name)") - } - } - } -} - -struct GameAPK: Codable, Equatable { - let name: String - let size: Int64 - let sha256: String - let url: URL? -} - -struct LaunchProfile: Codable, Equatable, Identifiable { - let id: String - let title: String - let width: Int - let height: Int - let density: Int - let memoryMB: Int - - var displaySize: String { "\(width)x\(height)" } - var displayResolution: String { LauncherMetadata.resolution(width: width, height: height) } - - func validate() throws { - guard ["balanced", "quality", "ultra", "4k"].contains(id), - width >= 1280, height >= 720, - (120 ... 640).contains(density), - memoryMB == 6144 else { - throw LauncherError.invalidManifest("Invalid profile \(id)") - } - } -} - -enum EffectsQuality: String, CaseIterable, Identifiable { - case high - case performance - - var id: String { rawValue } - - var title: String { - switch self { - case .high: - return LauncherL10n.text("effects_quality.high") - case .performance: - return LauncherL10n.text("effects_quality.performance") - } - } - - var detail: String { - switch self { - case .high: - return LauncherL10n.text("effects_quality.high.detail") - case .performance: - return LauncherL10n.text("effects_quality.performance.detail") - } - } - - var profileFilename: String { - "Android_Codex.DeviceProfiles.effects-\(rawValue).ini" - } - - static func selection(saved: String?) -> EffectsQuality { - EffectsQuality(rawValue: saved ?? "") ?? .high - } -} - -struct GameLanguage: Equatable, Identifiable { - let id: String - let title: String - - static let supported: [GameLanguage] = [ - .init(id: "en-US", title: "English"), - .init(id: "ru-RU", title: "Russian"), - .init(id: "de-DE", title: "German"), - .init(id: "fr-FR", title: "French"), - .init(id: "es-ES", title: "Spanish (Spain)"), - .init(id: "es-MX", title: "Spanish (Latin America)"), - .init(id: "pt-BR", title: "Portuguese (Brazil)"), - .init(id: "it-IT", title: "Italian"), - .init(id: "pl-PL", title: "Polish"), - .init(id: "cs-CZ", title: "Czech"), - .init(id: "hu-HU", title: "Hungarian"), - .init(id: "ro-RO", title: "Romanian"), - .init(id: "el-GR", title: "Greek"), - .init(id: "tr-TR", title: "Turkish"), - .init(id: "ar-AE", title: "Arabic"), - .init(id: "ja-JP", title: "Japanese"), - .init(id: "ko-KR", title: "Korean"), - .init(id: "zh-CN", title: "Chinese (Simplified)"), - .init(id: "zh-SG", title: "Chinese (Singapore)"), - .init(id: "zh-TW", title: "Chinese (Traditional)"), - .init(id: "vi-VN", title: "Vietnamese"), - .init(id: "th-TH", title: "Thai"), - .init(id: "id-ID", title: "Indonesian") - ] - - static let english = supported[0] - - static func language(withID id: String?) -> GameLanguage { - supported.first(where: { $0.id == id }) ?? english - } -} - -struct InstallState: Codable, Equatable { - enum Stage: String, Codable { - case empty - case downloading - case sdkInstalled = "sdk_installed" - case avdCreated = "avd_created" - case ready - } - - var schemaVersion: Int = 1 - var stage: Stage = .empty - var installedComponents: [String: String] = [:] - var gameVersion: String? - var gameVersionCode: Int? - var gameBaseSHA256: String? - var overlaySHA256: String? - var updatedAt: Date = Date() - - var isReady: Bool { schemaVersion == 1 && stage == .ready } -} - -struct RuntimeEvent: Codable, Equatable { - enum Kind: String, Codable { - case downloading - case booting - case installingGame = "installing_game" - case emulatorStarted = "emulator_started" - case ready - case gameStopped = "game_stopped" - case stopped - case error - } - - let event: Kind - var message: String? - var pid: Int32? - var serial: String? - var code: Int32? -} - -enum LauncherError: LocalizedError, Equatable { - case invalidManifest(String) - case preflight(String) - case integrity(String) - case process(String) - case unsupportedGame(String) - case cancelled - - var errorDescription: String? { - switch self { - case let .invalidManifest(message), let .preflight(message), - let .integrity(message), let .process(message), - let .unsupportedGame(message): - return message - case .cancelled: - return "Operation cancelled" - } - } -} - -enum HostSizing { - static func guestCPUCores(logicalCPUCount: Int) -> Int { - min(6, max(4, logicalCPUCount - 2)) - } - - static func guestCPUList(logicalCPUCount: Int) -> String { - "0-\(guestCPUCores(logicalCPUCount: logicalCPUCount) - 1)" - } - - static func guestCPUMask(logicalCPUCount: Int) -> String { - let cores = guestCPUCores(logicalCPUCount: logicalCPUCount) - return String((1 << cores) - 1, radix: 16) - } -} - -enum GuestResourceOptions { - static let defaultMemoryMB = 6144 - - static func memoryMB(physicalMemoryBytes: UInt64) -> [Int] { - let hostMemoryMB = Int(physicalMemoryBytes / 1_048_576) - let maximum = min(16_384, max(4_096, hostMemoryMB - 4_096)) - return Array(stride(from: 4_096, through: maximum, by: 2_048)) - } - - static func cpuCores(logicalCPUCount: Int) -> [Int] { - let maximum = min(16, max(1, logicalCPUCount)) - if maximum == 1 { return [1] } - return Array(2 ... maximum) - } - - static func selection(saved: Int, options: [Int], fallback: Int) -> Int { - if options.contains(saved) { return saved } - if options.contains(fallback) { return fallback } - return options.last ?? fallback - } - - static func recommended( - physicalMemoryBytes: UInt64, - logicalCPUCount: Int - ) -> GuestResourceConfiguration { - let memoryOptions = memoryMB(physicalMemoryBytes: physicalMemoryBytes) - let hostMemoryGB = Int(physicalMemoryBytes / 1_073_741_824) - let targetMemoryMB = hostMemoryGB >= 24 ? 8192 : 6144 - let recommendedMemoryMB = selection( - saved: targetMemoryMB, - options: memoryOptions, - fallback: defaultMemoryMB - ) - - let cpuOptions = cpuCores(logicalCPUCount: logicalCPUCount) - let targetCPUCores: Int - if logicalCPUCount >= 12 { - targetCPUCores = 8 - } else if logicalCPUCount >= 8 { - targetCPUCores = 6 - } else { - targetCPUCores = max(2, logicalCPUCount - 2) - } - let recommendedCPUCores = selection( - saved: targetCPUCores, - options: cpuOptions, - fallback: HostSizing.guestCPUCores(logicalCPUCount: logicalCPUCount) - ) - return GuestResourceConfiguration( - memoryMB: recommendedMemoryMB, - cpuCores: recommendedCPUCores - ) - } -} - -struct GuestResourceConfiguration: Equatable { - let memoryMB: Int - let cpuCores: Int -} - -enum InterfaceScaleOptions { - static let defaultPercent = 100 - static let percentages = [100, 125, 150, 175, 200] - - static func selection(saved: Int) -> Int { - percentages.contains(saved) ? saved : defaultPercent - } - - static func runtimeValue(percent: Int) -> String? { - switch percent { - case 100: "1.0" - case 125: "1.25" - case 150: "1.5" - case 175: "1.75" - case 200: "2.0" - default: nil - } - } -} - -extension String { - fileprivate var isLowercaseSHA256: Bool { - count == 64 && allSatisfy { ("0" ... "9").contains(String($0)) || ("a" ... "f").contains(String($0)) } - } -} diff --git a/launcher/Sources/EmulatorAudioRecoveryService.swift b/launcher/Sources/EmulatorAudioRecoveryService.swift deleted file mode 100644 index a5cb7b1..0000000 --- a/launcher/Sources/EmulatorAudioRecoveryService.swift +++ /dev/null @@ -1,404 +0,0 @@ -import CoreGraphics -import Foundation - -struct EmulatorWindowSize: Equatable { - let width: Int - let height: Int -} - -enum EmulatorAudioRecoveryReason: Equatable { - case startup - case windowResize - case halWriteFailure - - var logDescription: String { - switch self { - case .startup: - return "game startup" - case .windowResize: - return "game window resize" - case .halWriteFailure: - return "repeated Audio HAL write failures" - } - } -} - -enum EmulatorAudioFailureClassifier { - static func isHALWriteFailure(_ line: String) -> Bool { - let isWriteFailure = line.contains("pcmWrite:") || line.contains("pcm_writei") - return isWriteFailure - && (line.contains("failure: -1") - || line.contains("I/O error") - || line.contains("failed")) - } -} - -struct EmulatorAudioRecoveryPolicy { - private let startupDelay: TimeInterval - private let settleDelay: TimeInterval - private let cooldown: TimeInterval - private let failureThreshold: Int - private let failureWindow: TimeInterval - private var startedAt: TimeInterval? - private var startupRecoveryPending = true - private var lastSize: EmulatorWindowSize? - private var resizeSettledAt: TimeInterval? - private var lastRecoveryAt: TimeInterval? - private var failureBurstStartedAt: TimeInterval? - private var failureCount = 0 - - init( - startupDelay: TimeInterval = 1.5, - settleDelay: TimeInterval = 0.75, - cooldown: TimeInterval = 5, - failureThreshold: Int = 6, - failureWindow: TimeInterval = 1.5 - ) { - self.startupDelay = startupDelay - self.settleDelay = settleDelay - self.cooldown = cooldown - self.failureThreshold = failureThreshold - self.failureWindow = failureWindow - } - - mutating func observe( - size: EmulatorWindowSize?, - at now: TimeInterval - ) -> EmulatorAudioRecoveryReason? { - if startedAt == nil { startedAt = now } - - if startupRecoveryPending, - let startedAt, - now - startedAt >= startupDelay { - return requestRecovery(for: .startup, at: now) - } - - guard let size else { return nil } - guard let lastSize else { - self.lastSize = size - return nil - } - if size != lastSize { - self.lastSize = size - resizeSettledAt = now + settleDelay - return nil - } - guard let resizeSettledAt, now >= resizeSettledAt else { return nil } - self.resizeSettledAt = nil - return requestRecovery(for: .windowResize, at: now) - } - - mutating func observeHALWriteFailure(at now: TimeInterval) -> EmulatorAudioRecoveryReason? { - if failureBurstStartedAt.map({ now - $0 > failureWindow }) ?? true { - failureBurstStartedAt = now - failureCount = 1 - return nil - } - failureCount += 1 - guard failureCount >= failureThreshold else { return nil } - failureBurstStartedAt = nil - failureCount = 0 - return requestRecovery(for: .halWriteFailure, at: now) - } - - private mutating func requestRecovery( - for reason: EmulatorAudioRecoveryReason, - at now: TimeInterval - ) -> EmulatorAudioRecoveryReason? { - if let lastRecoveryAt, now - lastRecoveryAt < cooldown { return nil } - startupRecoveryPending = false - lastRecoveryAt = now - failureBurstStartedAt = nil - failureCount = 0 - return reason - } -} - -private struct EmulatorAudioRecoveryConfiguration { - let targetPID: pid_t - let adb: URL - let log: URL -} - -private final class EmulatorAudioRecoverySession { - private static let pollInterval: TimeInterval = 0.25 - - private let configuration: EmulatorAudioRecoveryConfiguration - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.audio-recovery") - private let lock = NSLock() - private var policy = EmulatorAudioRecoveryPolicy() - private var stopped = false - private var timer: DispatchSourceTimer? - private var recoveryProcess: Process? - private var monitorProcess: Process? - private var monitorPipe: Pipe? - private var monitorBuffer = Data() - - init(configuration: EmulatorAudioRecoveryConfiguration) { - self.configuration = configuration - } - - func start() { - queue.async { [self] in - installAudioMonitor() - installTimer() - } - } - - func stop() { - let (timer, recoveryProcess, monitorProcess, monitorPipe) = withLock { - stopped = true - let timer = self.timer - self.timer = nil - let recoveryProcess = self.recoveryProcess - self.recoveryProcess = nil - let monitorProcess = self.monitorProcess - self.monitorProcess = nil - let monitorPipe = self.monitorPipe - self.monitorPipe = nil - return (timer, recoveryProcess, monitorProcess, monitorPipe) - } - timer?.setEventHandler {} - timer?.cancel() - monitorPipe?.fileHandleForReading.readabilityHandler = nil - if recoveryProcess?.isRunning == true { recoveryProcess?.terminate() } - if monitorProcess?.isRunning == true { monitorProcess?.terminate() } - } - - private func installTimer() { - guard !isStopped else { return } - let timer = DispatchSource.makeTimerSource(queue: queue) - timer.setEventHandler { [weak self] in self?.poll() } - timer.schedule( - deadline: .now(), - repeating: Self.pollInterval, - leeway: .milliseconds(75) - ) - timer.resume() - let installed = withLock { - guard !stopped else { return false } - self.timer = timer - return true - } - if !installed { timer.cancel() } - } - - private func poll() { - guard !isStopped else { return } - ensureAudioMonitor() - let size = Self.mainWindowSize(for: configuration.targetPID) - if let reason = policy.observe( - size: size, - at: ProcessInfo.processInfo.systemUptime - ) { - recoverAudio(reason: reason) - } - } - - private func installAudioMonitor() { - guard !isStopped else { return } - let process = Process() - let pipe = Pipe() - process.executableURL = configuration.adb - process.arguments = [ - "-P", "5038", "-s", "emulator-5582", - "logcat", "-v", "brief", "-T", "1", - "android.hardware.audio@7.1-impl.ranchu:E", - "AudioSystem:E", - "*:S" - ] - process.standardOutput = pipe - process.standardError = FileHandle.nullDevice - process.environment = Self.adbEnvironment - pipe.fileHandleForReading.readabilityHandler = { [weak self] handle in - let data = handle.availableData - guard !data.isEmpty else { return } - self?.queue.async { self?.consumeMonitorOutput(data) } - } - process.terminationHandler = { [weak self] finishedProcess in - self?.queue.async { - self?.monitorDidTerminate(finishedProcess) - } - } - - let registered = withLock { - guard !stopped, monitorProcess == nil else { return false } - monitorProcess = process - monitorPipe = pipe - return true - } - guard registered else { - pipe.fileHandleForReading.readabilityHandler = nil - return - } - - do { - try process.run() - } catch { - pipe.fileHandleForReading.readabilityHandler = nil - withLock { - if monitorProcess === process { - monitorProcess = nil - monitorPipe = nil - } - } - guard !isStopped else { return } - SystemServices.appendLog( - "Emulator audio monitor could not start: \(error.localizedDescription)", - to: configuration.log - ) - } - } - - private func ensureAudioMonitor() { - let isRunning = withLock { monitorProcess?.isRunning == true } - if !isRunning { installAudioMonitor() } - } - - private func monitorDidTerminate(_ process: Process) { - withLock { - guard monitorProcess === process else { return } - monitorPipe?.fileHandleForReading.readabilityHandler = nil - monitorProcess = nil - monitorPipe = nil - } - } - - private func consumeMonitorOutput(_ data: Data) { - guard !isStopped else { return } - monitorBuffer.append(data) - while let newline = monitorBuffer.firstIndex(of: 0x0A) { - let lineData = monitorBuffer[.. EmulatorWindowSize? { - guard let windows = CGWindowListCopyWindowInfo( - [.optionOnScreenOnly, .excludeDesktopElements], - CGWindowID(kCGNullWindowID) - ) as? [[CFString: Any]] else { return nil } - - var best: (size: EmulatorWindowSize, area: Int)? - for window in windows { - guard (window[kCGWindowOwnerPID] as? NSNumber)?.int32Value == targetPID, - (window[kCGWindowLayer] as? NSNumber)?.intValue == 0, - let bounds = window[kCGWindowBounds] as? NSDictionary, - let rawWidth = bounds["Width"] as? NSNumber, - let rawHeight = bounds["Height"] as? NSNumber else { - continue - } - let width = Int(rawWidth.doubleValue.rounded()) - let height = Int(rawHeight.doubleValue.rounded()) - guard width >= 500, height >= 300, width > height else { continue } - let area = width * height - if best.map({ area > $0.area }) ?? true { - best = (EmulatorWindowSize(width: width, height: height), area) - } - } - return best?.size - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} - -final class EmulatorAudioRecoveryService { - private let lock = NSLock() - private var session: EmulatorAudioRecoverySession? - - deinit { - stop() - } - - func start(targetPID: pid_t, adb: URL, log: URL) { - stop() - let session = EmulatorAudioRecoverySession(configuration: .init( - targetPID: targetPID, - adb: adb, - log: log - )) - withLock { self.session = session } - session.start() - } - - func stop() { - let session = withLock { - defer { self.session = nil } - return self.session - } - session?.stop() - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} diff --git a/launcher/Sources/EmulatorBrandingPatch.swift b/launcher/Sources/EmulatorBrandingPatch.swift deleted file mode 100644 index 29b2f0c..0000000 --- a/launcher/Sources/EmulatorBrandingPatch.swift +++ /dev/null @@ -1,189 +0,0 @@ -import Foundation - -enum EmulatorBrandingPatch { - // Google Emulator 37.1.11 (build 15917651), darwin-aarch64. - // The instruction patch disables the single call to - // QGuiApplication::setWindowIcon(QIcon const&) in - // EmulatorQtWindow::slot_setWindowIcon. Leaving the rest of the method - // intact preserves QIcon cleanup and QSemaphore release. - // - // Android Emulator also formats its native title from the AVD name. The - // replacement removes implementation details from the user-facing window - // and uses the same product-first naming as the rest of the app. - static let sourceSHA256 = "eaa97a970b81f81640db73ed79e19ee173323653a0a1203217e1199d078011f3" - static let iconInstructionOffset: UInt64 = 0x5af688 - static let sourceIconInstruction = Data([0xf4, 0xbf, 0x4d, 0x94]) - static let patchedIconInstruction = Data([0x1f, 0x20, 0x03, 0xd5]) - static let titleFormatOffset: UInt64 = 0x1a1e891 - static let sourceTitleFormat = fixedWidthData("%s Emulator - %s:%d", byteCount: 20) - static let patchedTitleFormat = fixedWidthData("Mactician: TFT PBE", byteCount: 20) - - static func isSupportedOrPatched(_ qemu: URL) -> Bool { - guard let iconInstruction = try? data( - at: iconInstructionOffset, - count: patchedIconInstruction.count, - in: qemu - ), let titleFormat = try? data( - at: titleFormatOffset, - count: sourceTitleFormat.count, - in: qemu - ) else { - return false - } - - if iconInstruction == sourceIconInstruction && titleFormat == sourceTitleFormat { - return (try? SystemServices.sha256(of: qemu)) == sourceSHA256 - } - guard iconInstruction == patchedIconInstruction, - titleFormat == sourceTitleFormat || titleFormat == patchedTitleFormat else { - return false - } - return (try? verifySignedExecutable(qemu)) != nil - } - - static func apply(at qemu: URL, entitlements: URL) throws { - let iconInstruction = try data( - at: iconInstructionOffset, - count: patchedIconInstruction.count, - in: qemu - ) - let titleFormat = try data( - at: titleFormatOffset, - count: sourceTitleFormat.count, - in: qemu - ) - if iconInstruction == patchedIconInstruction && titleFormat == patchedTitleFormat { - try verifyPatchedExecutable(qemu) - return - } - - if iconInstruction == sourceIconInstruction { - guard titleFormat == sourceTitleFormat, - try SystemServices.sha256(of: qemu) == sourceSHA256 else { - throw LauncherError.integrity( - "The Android Emulator binary failed verification. Use Repair Installation." - ) - } - } else if iconInstruction == patchedIconInstruction { - guard titleFormat == sourceTitleFormat else { - throw LauncherError.integrity( - "The Android Emulator branding patch is invalid. Use Repair Installation." - ) - } - try verifySignedExecutable(qemu) - } else { - throw LauncherError.integrity( - "The Android Emulator binary is not the supported 37.1.11 build. Use Repair Installation." - ) - } - guard FileManager.default.fileExists(atPath: entitlements.path) else { - throw LauncherError.integrity("The launcher hypervisor entitlement resource is missing") - } - - let fileManager = FileManager.default - let parent = qemu.deletingLastPathComponent() - let nonce = UUID().uuidString - let candidate = parent.appendingPathComponent(".qemu-system-aarch64.\(nonce).next") - let previous = parent.appendingPathComponent(".qemu-system-aarch64.\(nonce).previous") - defer { - try? fileManager.removeItem(at: candidate) - try? fileManager.removeItem(at: previous) - } - - try fileManager.copyItem(at: qemu, to: candidate) - let handle = try FileHandle(forWritingTo: candidate) - do { - if iconInstruction == sourceIconInstruction { - try handle.seek(toOffset: iconInstructionOffset) - try handle.write(contentsOf: patchedIconInstruction) - } - try handle.seek(toOffset: titleFormatOffset) - try handle.write(contentsOf: patchedTitleFormat) - try handle.close() - } catch { - try? handle.close() - throw error - } - guard try data( - at: iconInstructionOffset, - count: patchedIconInstruction.count, - in: candidate - ) == patchedIconInstruction, - try data( - at: titleFormatOffset, - count: patchedTitleFormat.count, - in: candidate - ) == patchedTitleFormat else { - throw LauncherError.integrity("Could not apply the Android Emulator branding patch") - } - - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/codesign"), - [ - "--force", "--sign", "-", "--timestamp=none", - "--preserve-metadata=identifier", - "--entitlements", entitlements.path, - candidate.path - ] - ) - try verifyPatchedExecutable(candidate) - - try fileManager.moveItem(at: qemu, to: previous) - do { - try fileManager.moveItem(at: candidate, to: qemu) - } catch { - try? fileManager.moveItem(at: previous, to: qemu) - throw error - } - try fileManager.removeItem(at: previous) - try verifyPatchedExecutable(qemu) - } - - private static func fixedWidthData(_ string: String, byteCount: Int) -> Data { - var result = Data(string.utf8) - precondition(result.count < byteCount) - result.append(contentsOf: repeatElement(0, count: byteCount - result.count)) - return result - } - - private static func data(at offset: UInt64, count: Int, in executable: URL) throws -> Data { - let handle = try FileHandle(forReadingFrom: executable) - defer { try? handle.close() } - try handle.seek(toOffset: offset) - let result = try handle.read(upToCount: count) ?? Data() - guard result.count == count else { - throw LauncherError.integrity("The Android Emulator executable is truncated") - } - return result - } - - private static func verifyPatchedExecutable(_ executable: URL) throws { - guard try data( - at: iconInstructionOffset, - count: patchedIconInstruction.count, - in: executable - ) == patchedIconInstruction, - try data( - at: titleFormatOffset, - count: patchedTitleFormat.count, - in: executable - ) == patchedTitleFormat else { - throw LauncherError.integrity("The Android Emulator branding patch is missing") - } - try verifySignedExecutable(executable) - } - - private static func verifySignedExecutable(_ executable: URL) throws { - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/codesign"), - ["--verify", "--strict", executable.path] - ) - let entitlementOutput = try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/codesign"), - ["-d", "--entitlements", "-", executable.path] - ) - guard entitlementOutput.contains("com.apple.security.hypervisor") else { - throw LauncherError.integrity("The patched emulator lost its Hypervisor entitlement") - } - } -} diff --git a/launcher/Sources/FPSOverlayService.swift b/launcher/Sources/FPSOverlayService.swift deleted file mode 100644 index 1f6b1d5..0000000 --- a/launcher/Sources/FPSOverlayService.swift +++ /dev/null @@ -1,386 +0,0 @@ -import AppKit -import CoreGraphics -import Foundation - -struct SurfaceFlingerFPSResult: Equatable { - let framesPerSecond: Double - let newestTimestamp: UInt64 -} - -enum SurfaceFlingerFPS { - private static let maximumTimestamp: UInt64 = 9_000_000_000_000_000_000 - private static let initialWindowNanoseconds: UInt64 = 1_250_000_000 - private static let maximumFrameNanoseconds: UInt64 = 1_000_000_000 - - static func gameLayer(from output: String, package: String) -> String? { - let needle = "SurfaceView[\(package)/com.epicgames.unreal.GameActivity](BLAST)" - for rawLine in output.split(separator: "\n").reversed() { - let line = String(rawLine).trimmingCharacters(in: .whitespacesAndNewlines) - guard line.contains(needle) else { continue } - guard line.hasPrefix("RequestedLayerState{") else { return line } - - var payload = String(line.dropFirst("RequestedLayerState{".count)) - if let parentRange = payload.range(of: " parentId=", options: .backwards) { - payload = String(payload[.. [UInt64] { - output.split(separator: "\n").compactMap { line in - let columns = line.split(whereSeparator: { $0.isWhitespace }) - guard columns.count >= 2, - let timestamp = UInt64(columns[1]), - timestamp > 0, - timestamp < maximumTimestamp else { - return nil - } - return timestamp - } - } - - static func estimate( - timestamps: [UInt64], - after previousTimestamp: UInt64? - ) -> SurfaceFlingerFPSResult? { - let ordered = Array(Set(timestamps)).sorted() - guard let newest = ordered.last, - previousTimestamp.map({ newest > $0 }) ?? true else { - return nil - } - - let initialFloor = newest > initialWindowNanoseconds - ? newest - initialWindowNanoseconds - : 0 - var anchors = ordered.filter { timestamp in - if let previousTimestamp { return timestamp > previousTimestamp } - return timestamp >= initialFloor - } - if let previousTimestamp, - newest - previousTimestamp <= maximumFrameNanoseconds, - anchors.first.map({ previousTimestamp < $0 }) ?? false { - anchors.insert(previousTimestamp, at: 0) - } - guard anchors.count >= 3 else { return nil } - - var total: UInt64 = 0 - var count = 0 - for index in 1 ..< anchors.count { - let delta = anchors[index] - anchors[index - 1] - guard delta > 0, delta <= maximumFrameNanoseconds else { continue } - total += delta - count += 1 - } - guard count >= 2 else { return nil } - - let meanNanoseconds = Double(total) / Double(count) - let fps = 1_000_000_000 / meanNanoseconds - guard fps >= 1, fps <= 240 else { return nil } - return SurfaceFlingerFPSResult(framesPerSecond: fps, newestTimestamp: newest) - } -} - -private struct FPSOverlayUpdate { - let fps: Int? - let emulatorWindow: CGRect? -} - -private final class FPSOverlayView: NSView { - var value = "— FPS" { - didSet { needsDisplay = true } - } - - override func draw(_ dirtyRect: NSRect) { - super.draw(dirtyRect) - - let background = NSBezierPath(roundedRect: bounds, xRadius: 6, yRadius: 6) - NSColor.black.withAlphaComponent(0.42).setFill() - background.fill() - NSColor.white.withAlphaComponent(0.10).setStroke() - background.lineWidth = 1 - background.stroke() - - let attributes: [NSAttributedString.Key: Any] = [ - .font: NSFont.monospacedDigitSystemFont(ofSize: 11, weight: .medium), - .foregroundColor: NSColor.white.withAlphaComponent(0.78) - ] - let size = value.size(withAttributes: attributes) - value.draw( - at: NSPoint( - x: (bounds.width - size.width) / 2, - y: (bounds.height - size.height) / 2 - ), - withAttributes: attributes - ) - } -} - -private final class FPSOverlayPanel { - private static let size = NSSize(width: 62, height: 20) - private let panel: NSPanel - private let content: FPSOverlayView - - init() { - _ = NSApplication.shared - content = FPSOverlayView(frame: NSRect(origin: .zero, size: Self.size)) - panel = NSPanel( - contentRect: NSRect(origin: .zero, size: Self.size), - styleMask: [.borderless, .nonactivatingPanel], - backing: .buffered, - defer: false - ) - panel.backgroundColor = .clear - panel.isOpaque = false - panel.hasShadow = false - panel.ignoresMouseEvents = true - panel.level = .floating - panel.collectionBehavior = [.canJoinAllSpaces, .fullScreenAuxiliary, .stationary, .ignoresCycle] - panel.contentView = content - } - - func update(_ update: FPSOverlayUpdate, targetPID: pid_t) { - guard let window = update.emulatorWindow, - NSRunningApplication(processIdentifier: targetPID)?.isActive == true, - let origin = Self.panelOrigin(for: window) else { - hide() - return - } - - content.value = update.fps.map { "\($0) FPS" } ?? "— FPS" - panel.setFrameOrigin(origin) - if !panel.isVisible { panel.orderFrontRegardless() } - } - - func hide() { - if panel.isVisible { panel.orderOut(nil) } - } - - private static func panelOrigin(for quartzWindow: CGRect) -> NSPoint? { - var selected: (screen: NSScreen, quartz: CGRect, area: CGFloat)? - for screen in NSScreen.screens { - guard let number = screen.deviceDescription[NSDeviceDescriptionKey("NSScreenNumber")] - as? NSNumber else { continue } - let quartzScreen = CGDisplayBounds(CGDirectDisplayID(number.uint32Value)) - let intersection = quartzScreen.intersection(quartzWindow) - guard !intersection.isNull else { continue } - let area = intersection.width * intersection.height - if selected.map({ area > $0.area }) ?? true { - selected = (screen, quartzScreen, area) - } - } - guard let selected else { return nil } - - let left = selected.screen.frame.minX + quartzWindow.minX - selected.quartz.minX - let top = selected.screen.frame.maxY - quartzWindow.minY + selected.quartz.minY - return NSPoint( - x: left + quartzWindow.width - Self.size.width - 10, - y: top - Self.size.height - 5 - ) - } -} - -private struct FPSOverlayConfiguration { - let targetPID: pid_t - let adb: URL -} - -private final class FPSOverlaySession { - private static let package = "com.riotgames.league.teamfighttactics.pbe" - private static let pollInterval: TimeInterval = 1 - - private let configuration: FPSOverlayConfiguration - private let publish: (FPSOverlayUpdate) -> Void - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.fps-overlay") - private let lock = NSLock() - private var stopped = false - private var timer: DispatchSourceTimer? - private var process: Process? - private var layer: String? - private var previousTimestamp: UInt64? - - init(configuration: FPSOverlayConfiguration, publish: @escaping (FPSOverlayUpdate) -> Void) { - self.configuration = configuration - self.publish = publish - } - - func start() { - queue.async { [self] in installTimer() } - } - - func stop() { - let (timer, process) = withLock { - stopped = true - let timer = self.timer - self.timer = nil - let process = self.process - self.process = nil - return (timer, process) - } - timer?.setEventHandler {} - timer?.cancel() - if process?.isRunning == true { process?.terminate() } - } - - private func installTimer() { - guard !isStopped else { return } - let timer = DispatchSource.makeTimerSource(queue: queue) - timer.setEventHandler { [weak self] in self?.poll() } - timer.schedule(deadline: .now(), repeating: Self.pollInterval, leeway: .milliseconds(150)) - timer.resume() - let installed = withLock { - guard !stopped else { return false } - self.timer = timer - return true - } - if !installed { timer.cancel() } - } - - private func poll() { - guard !isStopped else { return } - let window = Self.mainWindowBounds(for: configuration.targetPID) - guard window != nil else { - publish(FPSOverlayUpdate(fps: nil, emulatorWindow: nil)) - return - } - - if layer == nil { - layer = queryLayer() - previousTimestamp = nil - } - guard let layer else { - publish(FPSOverlayUpdate(fps: nil, emulatorWindow: nil)) - return - } - guard let output = runADB(["shell", "dumpsys SurfaceFlinger --latency \(Self.shellQuote(layer))"]) else { - publish(FPSOverlayUpdate(fps: nil, emulatorWindow: window)) - return - } - - let timestamps = SurfaceFlingerFPS.presentationTimestamps(from: output) - guard !timestamps.isEmpty else { - self.layer = nil - previousTimestamp = nil - publish(FPSOverlayUpdate(fps: nil, emulatorWindow: nil)) - return - } - if let result = SurfaceFlingerFPS.estimate( - timestamps: timestamps, - after: previousTimestamp - ) { - previousTimestamp = result.newestTimestamp - publish(FPSOverlayUpdate( - fps: Int(result.framesPerSecond.rounded()), - emulatorWindow: window - )) - } else { - publish(FPSOverlayUpdate(fps: nil, emulatorWindow: window)) - } - } - - private func queryLayer() -> String? { - guard let output = runADB(["shell", "dumpsys SurfaceFlinger --list"]) else { return nil } - return SurfaceFlingerFPS.gameLayer(from: output, package: Self.package) - } - - private func runADB(_ arguments: [String]) -> String? { - let process = Process() - let stdout = Pipe() - process.executableURL = configuration.adb - process.arguments = ["-P", "5038", "-s", "emulator-5582"] + arguments - process.standardOutput = stdout - process.standardError = FileHandle.nullDevice - process.environment = ProcessInfo.processInfo.environment.merging([ - "ANDROID_ADB_SERVER_PORT": "5038", - "ADB_MDNS_AUTO_CONNECT": "" - ]) { _, new in new } - - let registered = withLock { - guard !stopped else { return false } - self.process = process - return true - } - guard registered else { return nil } - defer { - withLock { - if self.process === process { self.process = nil } - } - } - - do { - try process.run() - } catch { - return nil - } - let data = stdout.fileHandleForReading.readDataToEndOfFile() - process.waitUntilExit() - guard !isStopped, process.terminationStatus == 0 else { return nil } - return String(data: data, encoding: .utf8) - } - - private var isStopped: Bool { withLock { stopped } } - - private static func mainWindowBounds(for targetPID: pid_t) -> CGRect? { - guard let windows = CGWindowListCopyWindowInfo( - [.optionOnScreenOnly, .excludeDesktopElements], - CGWindowID(kCGNullWindowID) - ) as? [[CFString: Any]] else { return nil } - - var best: (bounds: CGRect, area: CGFloat)? - for window in windows { - guard (window[kCGWindowOwnerPID] as? NSNumber)?.int32Value == targetPID, - (window[kCGWindowLayer] as? NSNumber)?.intValue == 0, - let rawBounds = window[kCGWindowBounds] as? NSDictionary, - let bounds = CGRect(dictionaryRepresentation: rawBounds), - bounds.width >= 500, - bounds.height >= 300, - bounds.width > bounds.height else { - continue - } - let area = bounds.width * bounds.height - if best.map({ area > $0.area }) ?? true { best = (bounds, area) } - } - return best?.bounds - } - - private static func shellQuote(_ value: String) -> String { - "'" + value.replacingOccurrences(of: "'", with: "'\\''") + "'" - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} - -final class FPSOverlayService { - private let panel = FPSOverlayPanel() - private var session: FPSOverlaySession? - - deinit { - stop() - } - - func start(targetPID: pid_t, adb: URL) { - stop() - let session = FPSOverlaySession( - configuration: FPSOverlayConfiguration(targetPID: targetPID, adb: adb) - ) { [weak self] update in - DispatchQueue.main.async { - self?.panel.update(update, targetPID: targetPID) - } - } - self.session = session - session.start() - } - - func stop() { - session?.stop() - session = nil - panel.hide() - } -} diff --git a/launcher/Sources/HostedGameUpdate.swift b/launcher/Sources/HostedGameUpdate.swift deleted file mode 100644 index 5561ad4..0000000 --- a/launcher/Sources/HostedGameUpdate.swift +++ /dev/null @@ -1,75 +0,0 @@ -import CryptoKit -import Foundation - -struct HostedGameFeedEnvelope: Codable, Equatable { - let schemaVersion: Int - let payload: String - let signature: String -} - -struct HostedGameFeed: Codable, Equatable { - let schemaVersion: Int - let publishedAt: String - let release: GameRelease - - func validate() throws { - guard schemaVersion == 1, - ISO8601DateFormatter().date(from: publishedAt) != nil, - let versionCode = release.versionCode, - versionCode > 0 else { - throw LauncherError.invalidManifest("Invalid hosted TFT PBE feed") - } - try release.validate() - for apk in release.apks { - guard let url = apk.url, - url.scheme == "https", - url.host == MacticianIdentity.gameUpdateURL.host, - url.user == nil, - url.password == nil, - url.query == nil, - url.fragment == nil, - url.path.hasPrefix("/mactician/updates/game/releases/") else { - throw LauncherError.invalidManifest("APK \(apk.name) uses an untrusted URL") - } - } - } -} - -enum HostedGameUpdate { - static func isNewer(_ release: GameRelease, than state: InstallState) -> Bool { - if let remoteVersionCode = release.versionCode, - let installedVersionCode = state.gameVersionCode { - return remoteVersionCode > installedVersionCode - } - return release.version != state.gameVersion - } - - static func decodeAndVerify( - _ envelopeData: Data, - publicKeyBase64: String = MacticianIdentity.gameUpdatePublicKeyBase64 - ) throws -> HostedGameFeed { - let envelope = try JSONDecoder().decode(HostedGameFeedEnvelope.self, from: envelopeData) - guard envelope.schemaVersion == 1, - let payload = Data(base64Encoded: envelope.payload), - let signature = Data(base64Encoded: envelope.signature), - let publicKeyData = Data(base64Encoded: publicKeyBase64) else { - throw LauncherError.invalidManifest("Invalid hosted TFT PBE feed envelope") - } - let publicKey: Curve25519.Signing.PublicKey - do { - publicKey = try Curve25519.Signing.PublicKey(rawRepresentation: publicKeyData) - } catch { - throw LauncherError.integrity("The TFT PBE feed public key is invalid") - } - guard publicKey.isValidSignature(signature, for: payload) else { - throw LauncherError.integrity("The TFT PBE feed signature is invalid") - } - let feed = try JSONDecoder().decode(HostedGameFeed.self, from: payload) - try feed.validate() - return feed - } - - static func loadVerifiedFeed(from url: URL) throws -> HostedGameFeed { - try decodeAndVerify(Data(contentsOf: url)) - } -} diff --git a/launcher/Sources/InputBridgeService.swift b/launcher/Sources/InputBridgeService.swift deleted file mode 100644 index 08ff6ec..0000000 --- a/launcher/Sources/InputBridgeService.swift +++ /dev/null @@ -1,627 +0,0 @@ -import AppKit -import ApplicationServices -import Darwin -import Foundation - -private struct BridgeConfiguration { - let targetPID: pid_t - let targetBundleID: String - let adb: URL - let width: Int - let height: Int -} - -private enum BridgeAction { - case shop - case reroll - case buyXP - case toggleItemsAndTraits - case togglePlayersAndDamage -} - -struct BridgeRelativePoint: Equatable { - let x: Double - let y: Double - - func pixels(width: Int, height: Int) -> (x: Int, y: Int) { - ( - min(width - 1, max(0, Int((Double(width) * x).rounded()))), - min(height - 1, max(0, Int((Double(height) * y).rounded()))) - ) - } -} - -enum BridgeHotkeyTarget { - static let shop = BridgeRelativePoint(x: 0.96, y: 0.93) - static let reroll = BridgeRelativePoint(x: 0.955, y: 0.79) - static let buyXP = BridgeRelativePoint(x: 0.032, y: 0.925) - static let traits = BridgeRelativePoint(x: 0.029, y: 0.04) - static let items = BridgeRelativePoint(x: 0.059, y: 0.04) - static let damage = BridgeRelativePoint(x: 0.947, y: 0.04) - static let players = BridgeRelativePoint(x: 0.975, y: 0.04) -} - -enum BridgeKeyboardBinding { - static let reroll: UInt16 = 2 - static let buyXP: UInt16 = 3 - static let playersAndDamage: UInt16 = 9 - static let tab: UInt16 = 48 - static let shop: UInt16 = 49 - - fileprivate static func action(for keyCode: UInt16) -> BridgeAction? { - switch keyCode { - case shop: return .shop - case reroll: return .reroll - case buyXP: return .buyXP - case playersAndDamage: return .togglePlayersAndDamage - case tab: return .toggleItemsAndTraits - default: return nil - } - } - - static func isActionKey(_ keyCode: UInt16) -> Bool { - action(for: keyCode) != nil - } -} - -enum BridgeForegroundActivityState: Equatable { - case unknown - case gameplay - case nonGameplay -} - -enum BridgeAndroidActivityClassifier { - private static let gameplayActivity = "com.epicgames.unreal.GameActivity" - - static func classify(dumpsysOutput: String) -> BridgeForegroundActivityState { - guard let line = dumpsysOutput.split(separator: "\n").first(where: { - $0.contains("topResumedActivity=") - }), - let marker = line.range(of: "topResumedActivity=") else { - return .unknown - } - - let payload = line[marker.upperBound...] - for rawToken in payload.split(whereSeparator: { $0.isWhitespace }) { - let token = rawToken.trimmingCharacters(in: CharacterSet(charactersIn: "{}(),")) - guard let slash = token.firstIndex(of: "/") else { continue } - let activity = String(token[token.index(after: slash)...]) - guard !activity.isEmpty else { return .unknown } - return activity == gameplayActivity ? .gameplay : .nonGameplay - } - return .unknown - } -} - -enum BridgeKeyboardEventDisposition: Equatable { - case passThrough - case consume - case hotkey -} - -enum BridgeKeyboardEventPolicy { - private static let passthroughModifiers: NSEvent.ModifierFlags = [ - .command, .control, .option - ] - - static func disposition( - for keyCode: UInt16, - activity: BridgeForegroundActivityState, - modifierFlags: NSEvent.ModifierFlags - ) -> BridgeKeyboardEventDisposition { - guard activity == .gameplay, - modifierFlags.intersection(passthroughModifiers).isEmpty else { - return .passThrough - } - return BridgeKeyboardBinding.isActionKey(keyCode) ? .hotkey : .consume - } -} - -private final class BridgeAndroidActivityMonitor { - private static let pollInterval: TimeInterval = 1 - private static let stateMaxAge: TimeInterval = 3 - - private let configuration: BridgeConfiguration - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.input-bridge.activity") - private let lock = NSLock() - private var state = BridgeForegroundActivityState.unknown - private var stateUpdatedAt: TimeInterval = 0 - private var stopped = true - private var process: Process? - - init(configuration: BridgeConfiguration) { - self.configuration = configuration - } - - func start() { - let shouldStart = withLock { - guard stopped else { return false } - stopped = false - return true - } - guard shouldStart else { return } - queue.async { [self] in poll() } - } - - func stop() { - let process = withLock { - stopped = true - state = .unknown - stateUpdatedAt = ProcessInfo.processInfo.systemUptime - let process = self.process - self.process = nil - return process - } - if process?.isRunning == true { process?.terminate() } - } - - var currentState: BridgeForegroundActivityState { - // The event-tap callback must never wait for ADB. Fail open while a - // poll is publishing a new activity state. - guard lock.try() else { return .unknown } - defer { lock.unlock() } - let stateAge = ProcessInfo.processInfo.systemUptime - stateUpdatedAt - return stateAge <= Self.stateMaxAge ? state : .unknown - } - - private var isStopped: Bool { withLock { stopped } } - - private func poll() { - guard !isStopped else { return } - - let newState = queryState() - guard !isStopped else { return } - publish(newState) - queue.asyncAfter(deadline: .now() + Self.pollInterval) { [self] in poll() } - } - - private func queryState() -> BridgeForegroundActivityState { - let process = Process() - let stdout = Pipe() - process.executableURL = configuration.adb - process.arguments = [ - "-P", "5038", "-s", "emulator-5582", - "shell", "dumpsys activity activities 2>/dev/null | grep -m 1 'topResumedActivity='" - ] - process.standardOutput = stdout - process.standardError = FileHandle.nullDevice - process.environment = ProcessInfo.processInfo.environment.merging([ - "ANDROID_ADB_SERVER_PORT": "5038", - "ADB_MDNS_AUTO_CONNECT": "" - ]) { _, new in new } - - let registered = withLock { - guard !stopped else { return false } - self.process = process - return true - } - guard registered else { return .unknown } - defer { - withLock { - if self.process === process { self.process = nil } - } - } - - do { - try process.run() - } catch { - return .unknown - } - if isStopped { - if process.isRunning { process.terminate() } - process.waitUntilExit() - return .unknown - } - - let data = stdout.fileHandleForReading.readDataToEndOfFile() - process.waitUntilExit() - guard process.terminationStatus == 0, - let output = String(data: data, encoding: .utf8) else { - return .unknown - } - return BridgeAndroidActivityClassifier.classify(dumpsysOutput: output) - } - - private func publish(_ newState: BridgeForegroundActivityState) { - withLock { - guard !stopped else { return } - state = newState - stateUpdatedAt = ProcessInfo.processInfo.systemUptime - } - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} - -private final class BridgeTapDispatcher { - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.adb-input") - private let configuration: BridgeConfiguration - private var shell: Process? - private var input: FileHandle? - private var stopped = false - private var showTraitsNext = true - private var showDamageNext = true - - init(configuration: BridgeConfiguration) { - self.configuration = configuration - } - - func warmUp() { - queue.async { [weak self] in - guard let self, !stopped else { return } - do { - try ensureShell(configuration) - } catch { - stopShell() - } - } - } - - func send(_ action: BridgeAction) { - queue.async { [weak self] in - guard let self, !stopped else { return } - let point = target(for: action).pixels( - width: configuration.width, - height: configuration.height - ) - do { - try ensureShell(configuration) - try input?.write(contentsOf: Data("input tap \(point.x) \(point.y)\n".utf8)) - } catch { - stopShell() - } - } - } - - func stop() { - queue.async { [self] in - stopped = true - stopShell() - } - } - - private func target(for action: BridgeAction) -> BridgeRelativePoint { - switch action { - case .shop: - return BridgeHotkeyTarget.shop - case .reroll: - return BridgeHotkeyTarget.reroll - case .buyXP: - return BridgeHotkeyTarget.buyXP - case .toggleItemsAndTraits: - defer { showTraitsNext.toggle() } - return showTraitsNext ? BridgeHotkeyTarget.traits : BridgeHotkeyTarget.items - case .togglePlayersAndDamage: - defer { showDamageNext.toggle() } - return showDamageNext ? BridgeHotkeyTarget.damage : BridgeHotkeyTarget.players - } - } - - private func ensureShell(_ configuration: BridgeConfiguration) throws { - if shell?.isRunning == true, input != nil { return } - stopShell() - let process = Process() - let stdin = Pipe() - process.executableURL = configuration.adb - process.arguments = ["-P", "5038", "-s", "emulator-5582", "shell"] - process.standardInput = stdin - process.standardOutput = FileHandle.nullDevice - process.standardError = FileHandle.nullDevice - process.environment = ProcessInfo.processInfo.environment.merging([ - "ANDROID_ADB_SERVER_PORT": "5038", - "ADB_MDNS_AUTO_CONNECT": "" - ]) { _, new in new } - try process.run() - shell = process - input = stdin.fileHandleForWriting - } - - private func stopShell() { - try? input?.close() - input = nil - if shell?.isRunning == true { shell?.terminate() } - shell = nil - } -} - -struct BridgeSessionGeneration { - private(set) var current: UInt64 = 0 - - mutating func advance() -> UInt64 { - current &+= 1 - return current - } - - func accepts(_ generation: UInt64) -> Bool { - generation == current - } -} - -private struct BridgeEventTapResources { - let tap: CFMachPort - let source: CFRunLoopSource - let runLoop: CFRunLoop -} - -private final class BridgeEventTapSession { - private weak var owner: InputBridgeService? - private let generation: UInt64 - private let configuration: BridgeConfiguration - private let dispatcher: BridgeTapDispatcher - private let activityMonitor: BridgeAndroidActivityMonitor - private let lock = NSLock() - private var stopped = false - private var resources: BridgeEventTapResources? - - init( - owner: InputBridgeService, - generation: UInt64, - configuration: BridgeConfiguration - ) { - self.owner = owner - self.generation = generation - self.configuration = configuration - dispatcher = BridgeTapDispatcher(configuration: configuration) - activityMonitor = BridgeAndroidActivityMonitor(configuration: configuration) - } - - func start() { - activityMonitor.start() - dispatcher.warmUp() - Thread.detachNewThread { [self] in run() } - } - - func stop() { - let resources = withLock { - stopped = true - return takeResources() - } - activityMonitor.stop() - dispatcher.stop() - tearDown(resources, stopRunLoop: true) - } - - fileprivate func handle(type: CGEventType, event: CGEvent) -> Unmanaged? { - if type == .tapDisabledByTimeout || type == .tapDisabledByUserInput { - if let tap = withLock({ resources?.tap }), CFMachPortIsValid(tap) { - CGEvent.tapEnable(tap: tap, enable: true) - } - return Unmanaged.passUnretained(event) - } - guard !isStopped, - let frontmost = NSWorkspace.shared.frontmostApplication else { - return Unmanaged.passUnretained(event) - } - let emulatorIsFrontmost = frontmost.processIdentifier == configuration.targetPID - || frontmost.bundleIdentifier == configuration.targetBundleID - guard emulatorIsFrontmost else { return Unmanaged.passUnretained(event) } - switch type { - case .rightMouseDown, .rightMouseUp, .rightMouseDragged: - return nil - case .keyDown, .keyUp: - guard let cocoaEvent = NSEvent(cgEvent: event) else { - return Unmanaged.passUnretained(event) - } - switch BridgeKeyboardEventPolicy.disposition( - for: cocoaEvent.keyCode, - activity: activityMonitor.currentState, - modifierFlags: cocoaEvent.modifierFlags - ) { - case .passThrough: - return Unmanaged.passUnretained(event) - case .consume: - return nil - case .hotkey: - if let action = BridgeKeyboardBinding.action(for: cocoaEvent.keyCode), - type == .keyDown, - !cocoaEvent.isARepeat { - dispatcher.send(action) - } - return nil - } - default: - return Unmanaged.passUnretained(event) - } - } - - private func run() { - while !isStopped { - if installTap() { - owner?.reportStatus( - generation: generation, - eventTapActive: true, - eventTapAttemptFailed: false - ) - CFRunLoopRun() - tearDownCurrentTap() - owner?.reportStatus( - generation: generation, - eventTapActive: false, - eventTapAttemptFailed: false - ) - } else if !isStopped { - owner?.reportStatus( - generation: generation, - eventTapActive: false, - eventTapAttemptFailed: true - ) - } - if !isStopped { Thread.sleep(forTimeInterval: 2) } - } - } - - private var isStopped: Bool { withLock { stopped } } - - private func installTap() -> Bool { - guard !isStopped else { return false } - let types: [CGEventType] = [ - .keyDown, .keyUp, - .rightMouseDown, .rightMouseUp, .rightMouseDragged - ] - let mask = types.reduce(CGEventMask(0)) { $0 | (CGEventMask(1) << $1.rawValue) } - guard let tap = CGEvent.tapCreate( - tap: .cgAnnotatedSessionEventTap, - place: .headInsertEventTap, - options: .defaultTap, - eventsOfInterest: mask, - callback: launcherBridgeCallback, - userInfo: Unmanaged.passUnretained(self).toOpaque() - ) else { return false } - - CGEvent.tapEnable(tap: tap, enable: false) - guard let runLoop = CFRunLoopGetCurrent(), - let source = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, tap, 0) else { - CFMachPortInvalidate(tap) - return false - } - CFRunLoopAddSource(runLoop, source, .commonModes) - let resources = BridgeEventTapResources(tap: tap, source: source, runLoop: runLoop) - let installed = withLock { - guard !stopped else { return false } - self.resources = resources - return true - } - guard installed else { - tearDown(resources, stopRunLoop: false) - return false - } - CGEvent.tapEnable(tap: tap, enable: true) - if isStopped { - tearDownCurrentTap() - return false - } - return true - } - - private func tearDownCurrentTap() { - let resources = withLock { takeResources() } - tearDown(resources, stopRunLoop: false) - } - - private func takeResources() -> BridgeEventTapResources? { - defer { resources = nil } - return resources - } - - private func tearDown(_ resources: BridgeEventTapResources?, stopRunLoop: Bool) { - guard let resources else { return } - CGEvent.tapEnable(tap: resources.tap, enable: false) - CFRunLoopRemoveSource(resources.runLoop, resources.source, .commonModes) - CFMachPortInvalidate(resources.tap) - if stopRunLoop { CFRunLoopStop(resources.runLoop) } - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} - -final class InputBridgeService { - typealias StatusHandler = (_ eventTapActive: Bool, _ eventTapAttemptFailed: Bool) -> Void - - private let lock = NSLock() - private var sessionGeneration = BridgeSessionGeneration() - private var session: BridgeEventTapSession? - private var statusHandler: StatusHandler? - - static func permissionFacts( - eventTapActive: Bool, - eventTapAttemptFailed: Bool - ) -> LauncherHotkeyFacts { - LauncherHotkeyFacts( - accessibilityTrusted: AXIsProcessTrusted(), - eventTapActive: eventTapActive, - eventTapAttemptFailed: eventTapAttemptFailed - ) - } - - func observeStatus(_ handler: @escaping StatusHandler) { - withLock { statusHandler = handler } - } - - func requestPermissions() { - let promptKey = kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String - let trusted = AXIsProcessTrustedWithOptions([promptKey: true] as CFDictionary) - guard !trusted, - let settingsURL = URL( - string: "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility" - ) else { return } - NSWorkspace.shared.open(settingsURL) - } - - func start(targetPID: pid_t, adb: URL, width: Int, height: Int) { - stop() - let configuration = BridgeConfiguration( - targetPID: targetPID, - targetBundleID: "dev.sergeinaumov.mactician.game-host", - adb: adb, - width: width, - height: height - ) - let session = withLock { - let generation = sessionGeneration.advance() - let session = BridgeEventTapSession( - owner: self, - generation: generation, - configuration: configuration - ) - self.session = session - return session - } - session.start() - } - - func stop() { - let (session, generation) = withLock { - let session = self.session - self.session = nil - return (session, sessionGeneration.advance()) - } - session?.stop() - reportStatus( - generation: generation, - eventTapActive: false, - eventTapAttemptFailed: false - ) - } - - fileprivate func reportStatus( - generation: UInt64, - eventTapActive: Bool, - eventTapAttemptFailed: Bool - ) { - DispatchQueue.main.async { [weak self] in - guard let self else { return } - let handler: StatusHandler? = self.withLock { - guard self.sessionGeneration.accepts(generation) else { return nil } - return self.statusHandler - } - handler?(eventTapActive, eventTapAttemptFailed) - } - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } -} - -private func launcherBridgeCallback( - proxy _: CGEventTapProxy, - type: CGEventType, - event: CGEvent, - userInfo: UnsafeMutableRawPointer? -) -> Unmanaged? { - guard let userInfo else { return Unmanaged.passUnretained(event) } - return Unmanaged - .fromOpaque(userInfo) - .takeUnretainedValue() - .handle(type: type, event: event) -} diff --git a/launcher/Sources/InstallerService.swift b/launcher/Sources/InstallerService.swift deleted file mode 100644 index a0dc7c7..0000000 --- a/launcher/Sources/InstallerService.swift +++ /dev/null @@ -1,958 +0,0 @@ -import Darwin -import Foundation - -struct InstallerProgress { - enum Phase: Equatable { - case checking - case downloading - case extracting - case creatingAVD - case installingGame - case finished - case paused - } - - let phase: Phase - let message: String - let fraction: Double -} - -struct GameUpdateResult { - let state: InstallState - let release: GameRelease - let changed: Bool -} - -struct GameUpdateAvailability { - let release: GameRelease - let isAvailable: Bool -} - -final class InstallerService { - typealias ProgressHandler = (InstallerProgress) -> Void - typealias CompletionHandler = (Result) -> Void - - private let paths: LauncherPaths - private let manifest: ReleaseManifest - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.installer", qos: .userInitiated) - private let lock = NSLock() - private var activeProcess: Process? - private var cancelled = false - private var paused = false - - init(paths: LauncherPaths, manifest: ReleaseManifest) { - self.paths = paths - self.manifest = manifest - } - - static func curlArguments(component: SDKComponent, destination: URL) -> [String] { - [ - "-fL", "--retry", "3", "--retry-delay", "2", "--continue-at", "-", - component.url.absoluteString, "-o", destination.path - ] - } - - static func hostedDownloadArguments(url: URL, destination: URL) -> [String] { - [ - "-fL", "--retry", "3", "--retry-delay", "2", "--continue-at", "-", - "--proto", "=https", "--tlsv1.2", url.absoluteString, "-o", destination.path - ] - } - - static func extractArchive(_ archive: URL, to destination: URL) throws { - // ditto rejects the valid ZIP64 Android system-image archive with a - // "Couldn't read pkzip signature" error. The macOS unzip utility - // handles all pinned Android SDK archives and preserves their modes. - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/unzip"), - ["-q", archive.path, "-d", destination.path] - ) - } - - static func adbArguments(_ arguments: [String]) -> [String] { - ["-P", "5038"] + arguments - } - - static func gameInstallArguments(apkPaths: [String]) -> [String] { - adbArguments([ - "-s", "emulator-5582", "install-multiple", "--no-streaming", "-r", "-g" - ] + apkPaths) - } - - static func emulatorArguments(initializeData: Bool, logicalCPUCount: Int) -> [String] { - var arguments = [ - "@TftPBE", "-id", "TFT-TftPBE", "-port", "5582", "-gpu", "host", - "-skin", "1920x1080", "-vsync-rate", "60", - "-dns-server", "1.1.1.1,8.8.8.8", - "-cores", "\(HostSizing.guestCPUCores(logicalCPUCount: logicalCPUCount))", - "-memory", "6144", "-no-snapshot", "-no-metrics", "-no-boot-anim", - "-no-window", "-no-audio", "-crash-report-mode", "disabled" - ] - if initializeData { - // A newly created QCOW2 disk is intentionally empty. The emulator - // must format and seed it before adbd can complete its first boot. - arguments.append("-wipe-data") - } - return arguments - } - - func install(repair: Bool, progress: @escaping ProgressHandler, completion: @escaping CompletionHandler) { - lock.lock() - guard activeProcess == nil else { - lock.unlock() - completion(.failure(LauncherError.process("Installation is already in progress"))) - return - } - cancelled = false - paused = false - lock.unlock() - - queue.async { [self] in - do { - let state = try performInstall(repair: repair, progress: progress) - DispatchQueue.main.async { completion(.success(state)) } - } catch { - SystemServices.appendLog("Installer error: \(error.localizedDescription)", to: paths.launcherLog) - DispatchQueue.main.async { completion(.failure(error)) } - } - } - } - - func updateGame( - currentState: InstallState, - progress: @escaping ProgressHandler, - completion: @escaping (Result) -> Void - ) { - lock.lock() - guard activeProcess == nil else { - lock.unlock() - completion(.failure(LauncherError.process("Installation is already in progress"))) - return - } - cancelled = false - paused = false - lock.unlock() - - queue.async { [self] in - do { - let result = try performGameUpdate(currentState: currentState, progress: progress) - DispatchQueue.main.async { completion(.success(result)) } - } catch { - SystemServices.appendLog("Game updater error: \(error.localizedDescription)", to: paths.launcherLog) - DispatchQueue.main.async { completion(.failure(error)) } - } - } - } - - func checkGameUpdateAvailability( - currentState: InstallState, - completion: @escaping (Result) -> Void - ) { - lock.lock() - guard activeProcess == nil else { - lock.unlock() - completion(.failure(LauncherError.process("Installation is already in progress"))) - return - } - cancelled = false - paused = false - lock.unlock() - - queue.async { [self] in - do { - try FileManager.default.createDirectory( - at: paths.downloads, - withIntermediateDirectories: true - ) - let hosted = try fetchHostedGameFeed(progress: { _ in }) - let release = hosted.feed.release - if let installedVersionCode = currentState.gameVersionCode, - let remoteVersionCode = release.versionCode, - remoteVersionCode < installedVersionCode { - throw LauncherError.unsupportedGame( - "The hosted TFT PBE release is older than the installed game" - ) - } - let availability = GameUpdateAvailability( - release: release, - isAvailable: HostedGameUpdate.isNewer(release, than: currentState) - ) - DispatchQueue.main.async { completion(.success(availability)) } - } catch { - SystemServices.appendLog( - "Game update availability check failed: \(error.localizedDescription)", - to: paths.launcherLog - ) - DispatchQueue.main.async { completion(.failure(error)) } - } - } - } - - func pause() { - lock.lock() - defer { lock.unlock() } - guard let process = activeProcess, process.isRunning, !paused else { return } - Darwin.kill(process.processIdentifier, SIGSTOP) - paused = true - } - - func resume() { - lock.lock() - defer { lock.unlock() } - guard let process = activeProcess, process.isRunning, paused else { return } - Darwin.kill(process.processIdentifier, SIGCONT) - paused = false - } - - func cancel() { - lock.lock() - defer { lock.unlock() } - cancelled = true - if let process = activeProcess, process.isRunning { - Darwin.kill(process.processIdentifier, SIGCONT) - process.terminate() - } - } - - private func performInstall(repair: Bool, progress: @escaping ProgressHandler) throws -> InstallState { - progressOnMain(progress, .init(phase: .checking, message: "Checking your Mac and files…", fraction: 0)) - try SystemServices.checkHost(minimumFreeBytes: manifest.minimumFreeBytes, root: paths.root) - try Self.prepareDirectories(at: paths) - - let hosted: (data: Data, feed: HostedGameFeed)? - do { - hosted = try fetchHostedGameFeed(progress: progress) - } catch { - SystemServices.appendLog( - "Hosted TFT PBE feed unavailable, using bundled fallback: \(error.localizedDescription)", - to: paths.launcherLog - ) - hosted = nil - } - let gameRelease = hosted?.feed.release ?? manifest.game - if hosted == nil { - try verifyGame(release: gameRelease, in: paths.gameResources) - } - - var state = SystemServices.loadState(from: paths.stateFile) - state.stage = .downloading - try SystemServices.saveState(state, to: paths.stateFile) - - let usesBundledGame = hosted?.feed.release.baseSHA256 == manifest.game.baseSHA256 - let gameDownloadBytes = usesBundledGame - ? 0 - : hosted?.feed.release.apks.reduce(Int64(0)) { $0 + $1.size } ?? 0 - let totalBytes = manifest.components.reduce(Int64(0)) { $0 + $1.size } + gameDownloadBytes - var completedBytes: Int64 = 0 - for component in manifest.components { - try checkCancellation() - let target = paths.root.appendingPathComponent(component.installPath, isDirectory: true) - let isInstalled = componentLayoutIsValid(component, at: target) - if !isInstalled { - try installComponent( - component, - completedBytes: completedBytes, - totalBytes: totalBytes, - progress: progress - ) - } - completedBytes += component.size - state.installedComponents[component.id] = component.version - try SystemServices.saveState(state, to: paths.stateFile) - } - - let gameResources: URL - if let hosted, !usesBundledGame { - gameResources = try downloadHostedGame( - hosted.feed.release, - completedBytes: completedBytes, - totalBytes: totalBytes, - progress: progress - ) - } else { - gameResources = paths.gameResources - } - - try verifySDKLayout() - try EmulatorBrandingPatch.apply( - at: paths.qemuSystem, - entitlements: paths.qemuHypervisorEntitlements - ) - state.stage = .sdkInstalled - try SystemServices.saveState(state, to: paths.stateFile) - - progressOnMain(progress, .init(phase: .extracting, message: "Preparing secure runtime…", fraction: 0.88)) - try Self.refreshRuntimeProject(at: paths) - let overlayHash = try buildOverlay(release: gameRelease, resources: gameResources) - - progressOnMain(progress, .init(phase: .creatingAVD, message: "Creating a clean Android device…", fraction: 0.91)) - try createAVDIfNeeded() - state.stage = .avdCreated - state.overlaySHA256 = overlayHash - try SystemServices.saveState(state, to: paths.stateFile) - - progressOnMain(progress, .init(phase: .installingGame, message: "Installing TFT PBE…", fraction: 0.94)) - try provisionGame(release: gameRelease, resources: gameResources) - state.stage = .ready - state.gameVersion = gameRelease.version - state.gameVersionCode = gameRelease.versionCode - state.gameBaseSHA256 = gameRelease.baseSHA256 - state.overlaySHA256 = overlayHash - try SystemServices.saveState(state, to: paths.stateFile) - if let hosted { - try saveHostedGameFeed(hosted.data) - } - try? FileManager.default.removeItem(at: paths.downloads) - - progressOnMain(progress, .init(phase: .finished, message: "Done", fraction: 1)) - return state - } - - private func performGameUpdate( - currentState: InstallState, - progress: @escaping ProgressHandler - ) throws -> GameUpdateResult { - progressOnMain(progress, .init( - phase: .checking, - message: "Checking for TFT PBE updates…", - fraction: 0 - )) - try Self.prepareDirectories(at: paths) - let hosted = try fetchHostedGameFeed(progress: progress) - let release = hosted.feed.release - if let installedVersionCode = currentState.gameVersionCode, - let remoteVersionCode = release.versionCode, - remoteVersionCode < installedVersionCode { - throw LauncherError.unsupportedGame("The hosted TFT PBE release is older than the installed game") - } - - if currentState.gameVersion == release.version, - currentState.gameBaseSHA256 == release.baseSHA256 { - var state = currentState - state.gameVersionCode = release.versionCode - try SystemServices.saveState(state, to: paths.stateFile) - try saveHostedGameFeed(hosted.data) - progressOnMain(progress, .init(phase: .finished, message: "TFT PBE is up to date", fraction: 1)) - return GameUpdateResult(state: state, release: release, changed: false) - } - - let resources = try downloadHostedGame( - release, - completedBytes: 0, - totalBytes: release.apks.reduce(Int64(0)) { $0 + $1.size }, - progress: progress - ) - - try verifySDKLayout() - progressOnMain(progress, .init( - phase: .extracting, - message: "Preparing the new game version…", - fraction: 0.88 - )) - try Self.refreshRuntimeProject(at: paths) - let overlayHash = try buildOverlay(release: release, resources: resources) - progressOnMain(progress, .init( - phase: .installingGame, - message: "Updating TFT PBE…", - fraction: 0.94 - )) - try provisionGame(release: release, resources: resources) - - var state = currentState - state.stage = .ready - state.gameVersion = release.version - state.gameVersionCode = release.versionCode - state.gameBaseSHA256 = release.baseSHA256 - state.overlaySHA256 = overlayHash - try SystemServices.saveState(state, to: paths.stateFile) - try saveHostedGameFeed(hosted.data) - try? FileManager.default.removeItem(at: paths.downloads) - progressOnMain(progress, .init(phase: .finished, message: "TFT PBE updated", fraction: 1)) - return GameUpdateResult(state: state, release: release, changed: true) - } - - static func prepareDirectories(at paths: LauncherPaths) throws { - let fileManager = FileManager.default - for directory in [paths.root, paths.downloads, paths.gameCache, paths.logDirectory, paths.avdHome] { - try fileManager.createDirectory(at: directory, withIntermediateDirectories: true) - } - if fileManager.fileExists(atPath: paths.staging.path) { - try fileManager.removeItem(at: paths.staging) - } - try fileManager.createDirectory(at: paths.staging, withIntermediateDirectories: true) - } - - private func verifyGame(release: GameRelease, in resources: URL) throws { - for apk in release.apks { - let url = resources.appendingPathComponent(apk.name) - let attributes = try FileManager.default.attributesOfItem(atPath: url.path) - let size = (attributes[.size] as? NSNumber)?.int64Value ?? -1 - guard size == apk.size else { - throw LauncherError.integrity("Invalid size for \(apk.name)") - } - let hash = try SystemServices.sha256(of: url) - guard hash == apk.sha256 else { - throw LauncherError.integrity("SHA-256 mismatch for \(apk.name)") - } - } - } - - private func fetchHostedGameFeed( - progress: @escaping ProgressHandler - ) throws -> (data: Data, feed: HostedGameFeed) { - let partial = paths.downloads.appendingPathComponent("hosted-game-feed.json.partial") - try? FileManager.default.removeItem(at: partial) - try downloadHostedFile( - url: MacticianIdentity.gameUpdateURL, - to: partial, - displayName: "TFT PBE update information", - expectedSize: nil, - completedBytes: 0, - totalBytes: 1, - progress: progress - ) - let attributes = try FileManager.default.attributesOfItem(atPath: partial.path) - let size = (attributes[.size] as? NSNumber)?.int64Value ?? -1 - guard (1 ... 1_048_576).contains(size) else { - throw LauncherError.integrity("The TFT PBE update information is too large") - } - let data = try Data(contentsOf: partial) - let feed = try HostedGameUpdate.decodeAndVerify(data) - try? FileManager.default.removeItem(at: partial) - return (data, feed) - } - - private func downloadHostedGame( - _ release: GameRelease, - completedBytes: Int64, - totalBytes: Int64, - progress: @escaping ProgressHandler - ) throws -> URL { - let fileManager = FileManager.default - let resources = paths.gameReleaseDirectory(baseSHA256: release.baseSHA256) - try fileManager.createDirectory(at: resources, withIntermediateDirectories: true) - var downloadedBeforeThisAPK = completedBytes - - for apk in release.apks { - try checkCancellation() - guard let sourceURL = apk.url else { - throw LauncherError.invalidManifest("Hosted APK \(apk.name) has no URL") - } - let destination = resources.appendingPathComponent(apk.name) - if fileManager.fileExists(atPath: destination.path) { - let attributes = try fileManager.attributesOfItem(atPath: destination.path) - let size = (attributes[.size] as? NSNumber)?.int64Value ?? -1 - if size == apk.size, try SystemServices.sha256(of: destination) == apk.sha256 { - downloadedBeforeThisAPK += apk.size - continue - } - try fileManager.removeItem(at: destination) - } - - let partial = paths.downloads.appendingPathComponent("game-\(apk.sha256).partial") - try downloadHostedFile( - url: sourceURL, - to: partial, - displayName: apk.name, - expectedSize: apk.size, - completedBytes: downloadedBeforeThisAPK, - totalBytes: max(totalBytes, 1), - progress: progress - ) - let attributes = try fileManager.attributesOfItem(atPath: partial.path) - let size = (attributes[.size] as? NSNumber)?.int64Value ?? -1 - guard size == apk.size else { - try? fileManager.removeItem(at: partial) - throw LauncherError.integrity("Invalid size for hosted APK \(apk.name)") - } - guard try SystemServices.sha256(of: partial) == apk.sha256 else { - try? fileManager.removeItem(at: partial) - throw LauncherError.integrity("SHA-256 mismatch for hosted APK \(apk.name)") - } - try fileManager.moveItem(at: partial, to: destination) - downloadedBeforeThisAPK += apk.size - } - try verifyGame(release: release, in: resources) - return resources - } - - private func saveHostedGameFeed(_ data: Data) throws { - try FileManager.default.createDirectory( - at: paths.hostedGameFeed.deletingLastPathComponent(), - withIntermediateDirectories: true - ) - try data.write(to: paths.hostedGameFeed, options: .atomic) - } - - private func downloadHostedFile( - url: URL, - to partial: URL, - displayName: String, - expectedSize: Int64?, - completedBytes: Int64, - totalBytes: Int64, - progress: @escaping ProgressHandler - ) throws { - let process = Process() - process.executableURL = URL(fileURLWithPath: "/usr/bin/curl") - process.arguments = Self.hostedDownloadArguments(url: url, destination: partial) - process.standardOutput = FileHandle.nullDevice - process.standardError = try SystemServices.appendHandle(for: paths.launcherLog) - lock.lock() - activeProcess = process - lock.unlock() - defer { - lock.lock() - activeProcess = nil - paused = false - lock.unlock() - } - try process.run() - while process.isRunning { - try checkCancellation() - let downloaded = ((try? FileManager.default.attributesOfItem(atPath: partial.path)[.size]) as? NSNumber)?.int64Value ?? 0 - let boundedDownload = expectedSize.map { min(downloaded, $0) } ?? 0 - let overall = min(0.86, Double(completedBytes + boundedDownload) / Double(totalBytes) * 0.86) - let isPaused = withLock { paused } - progressOnMain(progress, .init( - phase: isPaused ? .paused : .downloading, - message: isPaused ? "Download paused" : "Downloading \(displayName)…", - fraction: overall - )) - Thread.sleep(forTimeInterval: 0.25) - } - process.waitUntilExit() - guard process.terminationStatus == 0 else { - throw LauncherError.process("Could not download \(displayName). Check your connection and try again.") - } - } - - private func installComponent( - _ component: SDKComponent, - completedBytes: Int64, - totalBytes: Int64, - progress: @escaping ProgressHandler - ) throws { - let fileManager = FileManager.default - let partial = paths.downloads.appendingPathComponent("\(component.id).zip.partial") - let archive = paths.downloads.appendingPathComponent("\(component.id).zip") - if fileManager.fileExists(atPath: archive.path), - try SystemServices.sha256(of: archive) != component.sha256 { - try fileManager.removeItem(at: archive) - } - - if !fileManager.fileExists(atPath: archive.path) { - try download( - component, - to: partial, - completedBytes: completedBytes, - totalBytes: totalBytes, - progress: progress - ) - let hash = try SystemServices.sha256(of: partial) - guard hash == component.sha256 else { - try? fileManager.removeItem(at: partial) - throw LauncherError.integrity("SHA-256 mismatch for component \(component.id)") - } - try fileManager.moveItem(at: partial, to: archive) - } - - let extractRoot = paths.staging.appendingPathComponent("\(component.id)-\(UUID().uuidString)", isDirectory: true) - defer { try? fileManager.removeItem(at: extractRoot) } - try fileManager.createDirectory(at: extractRoot, withIntermediateDirectories: true) - progressOnMain(progress, .init( - phase: .extracting, - message: "Extracting \(component.id)…", - fraction: Double(completedBytes + component.size) / Double(totalBytes) * 0.86 - )) - try Self.extractArchive(archive, to: extractRoot) - let extracted = extractRoot.appendingPathComponent(component.archiveRoot, isDirectory: true) - guard fileManager.fileExists(atPath: extracted.path) else { - throw LauncherError.integrity("Archive \(component.id) does not contain \(component.archiveRoot)") - } - let target = paths.root.appendingPathComponent(component.installPath, isDirectory: true) - try fileManager.createDirectory(at: target.deletingLastPathComponent(), withIntermediateDirectories: true) - if fileManager.fileExists(atPath: target.path) { - try fileManager.removeItem(at: target) - } - try fileManager.moveItem(at: extracted, to: target) - try fileManager.removeItem(at: archive) - } - - private func download( - _ component: SDKComponent, - to partial: URL, - completedBytes: Int64, - totalBytes: Int64, - progress: @escaping ProgressHandler - ) throws { - let process = Process() - process.executableURL = URL(fileURLWithPath: "/usr/bin/curl") - process.arguments = Self.curlArguments(component: component, destination: partial) - process.standardOutput = FileHandle.nullDevice - process.standardError = try SystemServices.appendHandle(for: paths.launcherLog) - lock.lock() - activeProcess = process - lock.unlock() - defer { - lock.lock() - activeProcess = nil - paused = false - lock.unlock() - } - try process.run() - while process.isRunning { - try checkCancellation() - let downloaded = ((try? FileManager.default.attributesOfItem(atPath: partial.path)[.size]) as? NSNumber)?.int64Value ?? 0 - let overall = min(0.86, Double(completedBytes + min(downloaded, component.size)) / Double(totalBytes) * 0.86) - let isPaused = withLock { paused } - progressOnMain(progress, .init( - phase: isPaused ? .paused : .downloading, - message: isPaused ? "Download paused" : "Downloading \(component.id)…", - fraction: overall - )) - Thread.sleep(forTimeInterval: 0.25) - } - process.waitUntilExit() - guard process.terminationStatus == 0 else { - throw LauncherError.process("Could not download \(component.id). Check your connection and press Retry.") - } - } - - private func verifySDKLayout() throws { - for executable in [paths.adb, paths.emulator, paths.qemuImg] { - guard FileManager.default.isExecutableFile(atPath: executable.path) else { - throw LauncherError.integrity("Executable \(executable.lastPathComponent) was not found") - } - } - guard FileManager.default.fileExists(atPath: paths.systemImage.appendingPathComponent("system.img").path) else { - throw LauncherError.integrity("The Android system image was not fully extracted") - } - let output = try SystemServices.run(paths.emulator, ["-accel-check"]) - guard output.localizedCaseInsensitiveContains("installed and usable") || output.contains("accel:\n0") else { - throw LauncherError.preflight("Android Emulator did not confirm hardware virtualization: \(output)") - } - } - - private func componentLayoutIsValid(_ component: SDKComponent, at target: URL) -> Bool { - let fileManager = FileManager.default - guard fileManager.fileExists(atPath: target.path) else { return false } - switch component.id { - case "platform-tools": - return fileManager.isExecutableFile(atPath: target.appendingPathComponent("adb").path) - && sourceProperties(at: target).contains("Pkg.Revision=36.0.2") - case "emulator": - return fileManager.isExecutableFile(atPath: target.appendingPathComponent("emulator").path) - && fileManager.isExecutableFile(atPath: target.appendingPathComponent("qemu-img").path) - && sourceProperties(at: target).contains("Pkg.Revision=37.1.11") - && EmulatorBrandingPatch.isSupportedOrPatched( - target.appendingPathComponent("qemu/darwin-aarch64/qemu-system-aarch64") - ) - case "system-image": - return fileManager.fileExists(atPath: target.appendingPathComponent("system.img").path) - && fileManager.fileExists(atPath: target.appendingPathComponent("encryptionkey.img").path) - && sourceProperties(at: target).contains("Pkg.Revision=7") - default: - return false - } - } - - private func sourceProperties(at directory: URL) -> String { - (try? String(contentsOf: directory.appendingPathComponent("source.properties"), encoding: .utf8)) ?? "" - } - - static func refreshRuntimeProject(at paths: LauncherPaths) throws { - let fileManager = FileManager.default - try fileManager.createDirectory(at: paths.staging, withIntermediateDirectories: true) - let next = paths.staging.appendingPathComponent("runtime-project-\(UUID().uuidString)", isDirectory: true) - defer { try? fileManager.removeItem(at: next) } - try fileManager.copyItem(at: paths.runtimeTemplate, to: next) - - guard fileManager.fileExists(atPath: paths.runtimeProject.path) else { - try fileManager.moveItem(at: next, to: paths.runtimeProject) - return - } - - let previous = paths.staging.appendingPathComponent( - "runtime-project-\(UUID().uuidString).previous", - isDirectory: true - ) - try fileManager.moveItem(at: paths.runtimeProject, to: previous) - do { - try fileManager.moveItem(at: next, to: paths.runtimeProject) - } catch { - try? fileManager.moveItem(at: previous, to: paths.runtimeProject) - throw error - } - try fileManager.removeItem(at: previous) - } - - static func unrealCommandLine(for language: GameLanguage) -> String { - "-project=\"../../../TFT/TFT.uproject\" -opengl -novsync -ResX=1600 -ResY=900 DeviceProfile=Android_Codex -culture=\(language.id)\n" - } - - static func prepareOverlay( - source: URL, - expectedSourceSHA256: String, - destination: URL, - stagingRoot: URL, - language: GameLanguage - ) throws -> String { - let fileManager = FileManager.default - let originalHash = try SystemServices.sha256(of: source) - guard originalHash == expectedSourceSHA256 else { - throw LauncherError.integrity("The source TFT base.apk failed verification") - } - try fileManager.createDirectory(at: destination.deletingLastPathComponent(), withIntermediateDirectories: true) - try fileManager.createDirectory(at: stagingRoot, withIntermediateDirectories: true) - - let candidate = destination.deletingLastPathComponent().appendingPathComponent( - ".\(destination.lastPathComponent).\(UUID().uuidString).next" - ) - defer { try? fileManager.removeItem(at: candidate) } - try fileManager.copyItem(at: source, to: candidate) - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/zip"), - ["-q", "-d", candidate.path, "assets/UECommandLine.txt"] - ) - - let patchRoot = stagingRoot.appendingPathComponent("overlay-\(UUID().uuidString)", isDirectory: true) - defer { try? fileManager.removeItem(at: patchRoot) } - let assets = patchRoot.appendingPathComponent("assets", isDirectory: true) - try fileManager.createDirectory(at: assets, withIntermediateDirectories: true) - let commandLine = unrealCommandLine(for: language) - try Data(commandLine.utf8).write(to: assets.appendingPathComponent("UECommandLine.txt"), options: .atomic) - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/zip"), - ["-q", "-9", candidate.path, "assets/UECommandLine.txt"], - currentDirectory: patchRoot - ) - let extracted = try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/unzip"), - ["-p", candidate.path, "assets/UECommandLine.txt"] - ) - guard extracted == commandLine else { - throw LauncherError.integrity("The ANGLE/OpenGL overlay contains an unexpected UECommandLine") - } - let hash = try SystemServices.sha256(of: candidate) - try SystemServices.run( - URL(fileURLWithPath: "/bin/mv"), - ["-f", candidate.path, destination.path] - ) - return hash - } - - private func buildOverlay(release: GameRelease, resources: URL) throws -> String { - try Self.prepareOverlay( - source: resources.appendingPathComponent("base.apk"), - expectedSourceSHA256: release.baseSHA256, - destination: paths.overlayAPK, - stagingRoot: paths.staging, - language: .english - ) - } - - private func createAVDIfNeeded() throws { - let fileManager = FileManager.default - let essentials = [ - paths.avdDirectory.appendingPathComponent("config.ini"), - paths.avdDirectory.appendingPathComponent("userdata-qemu.img"), - paths.avdDirectory.appendingPathComponent("encryptionkey.img") - ] - if fileManager.fileExists(atPath: paths.avdINI.path), - essentials.allSatisfy({ fileManager.fileExists(atPath: $0.path) }) { - return - } - if fileManager.fileExists(atPath: paths.avdINI.path) { - throw LauncherError.integrity("The AVD is corrupted. Use Reset Data to create it again.") - } - if fileManager.fileExists(atPath: paths.avdDirectory.path) { - try fileManager.removeItem(at: paths.avdDirectory) - } - let nextAVD = paths.staging.appendingPathComponent("TftPBE-\(UUID().uuidString).avd", isDirectory: true) - defer { try? fileManager.removeItem(at: nextAVD) } - try fileManager.createDirectory(at: nextAVD, withIntermediateDirectories: true) - let config = """ - AvdId=TftPBE - avd.ini.displayname=Mactician - abi.type=arm64-v8a - hw.cpu.arch=arm64 - hw.cpu.ncore=6 - hw.lcd.density=320 - hw.lcd.height=1080 - hw.lcd.width=1920 - hw.ramSize=6144 - hw.vmHeapSize=576 - hw.gpu.enabled=yes - hw.gpu.mode=host - hw.gltransport=pipe - hw.keyboard=yes - skin.name=1920x1080 - showDeviceFrame=no - disk.dataPartition.size=12288M - image.sysdir.1=system-images/android-36/google_apis/arm64-v8a/ - tag.id=google_apis - tag.display=Google APIs - PlayStore.enabled=false - fastboot.forceColdBoot=yes - fastboot.forceFastBoot=no - avd.ini.encoding=UTF-8 - """ - try Data(config.utf8).write(to: nextAVD.appendingPathComponent("config.ini"), options: .atomic) - let ini = """ - avd.ini.encoding=UTF-8 - path=\(paths.avdDirectory.path) - path.rel=TftPBE.avd - target=android-36 - """ - try SystemServices.run(paths.qemuImg, [ - "create", "-f", "qcow2", - nextAVD.appendingPathComponent("userdata-qemu.img").path, - "12G" - ]) - try fileManager.copyItem( - at: paths.systemImage.appendingPathComponent("encryptionkey.img"), - to: nextAVD.appendingPathComponent("encryptionkey.img") - ) - try fileManager.createDirectory(at: paths.avdHome, withIntermediateDirectories: true) - try fileManager.moveItem(at: nextAVD, to: paths.avdDirectory) - try Data(ini.utf8).write(to: paths.avdINI, options: .atomic) - } - - private func provisionGame(release: GameRelease, resources: URL) throws { - let environment = androidEnvironment() - _ = try SystemServices.run(paths.adb, Self.adbArguments(["start-server"]), environment: environment) - if (try? SystemServices.run( - paths.adb, - Self.adbArguments(["-s", "emulator-5582", "get-state"]), - environment: environment - )) != nil { - throw LauncherError.process("The TFT emulator is already running. Close it and retry the installation.") - } - - let emulator = Process() - emulator.executableURL = paths.emulator - emulator.arguments = Self.emulatorArguments( - initializeData: !FileManager.default.fileExists(atPath: paths.avdBootCompleted.path), - logicalCPUCount: ProcessInfo.processInfo.processorCount - ) - emulator.environment = ProcessInfo.processInfo.environment.merging(environment) { _, new in new } - let log = try SystemServices.appendHandle(for: paths.launcherLog) - emulator.standardOutput = log - emulator.standardError = log - try emulator.run() - lock.lock() - activeProcess = emulator - lock.unlock() - defer { - if emulator.isRunning { emulator.terminate() } - lock.lock() - if activeProcess === emulator { activeProcess = nil } - lock.unlock() - try? log.close() - } - - try waitFor(timeout: 180, description: "ADB") { - guard emulator.isRunning else { throw LauncherError.process("Android Emulator exited during provisioning") } - return (try? SystemServices.run( - self.paths.adb, - Self.adbArguments(["-s", "emulator-5582", "get-state"]), - environment: environment - )) != nil - } - try waitFor(timeout: 180, description: "Android boot") { - let value = try? SystemServices.run( - self.paths.adb, - Self.adbArguments(["-s", "emulator-5582", "shell", "getprop", "sys.boot_completed"]), - environment: environment - ) - return value?.trimmingCharacters(in: .whitespacesAndNewlines) == "1" - } - _ = try SystemServices.run( - paths.adb, - Self.adbArguments(["-s", "emulator-5582", "root"]), - environment: environment - ) - try waitFor(timeout: 30, description: "root adbd") { - let value = try? SystemServices.run( - self.paths.adb, - Self.adbArguments(["-s", "emulator-5582", "shell", "id", "-u"]), - environment: environment - ) - return value?.trimmingCharacters(in: .whitespacesAndNewlines) == "0" - } - - let apkPaths = release.apks.map { resources.appendingPathComponent($0.name).path } - _ = try SystemServices.run( - paths.adb, - Self.gameInstallArguments(apkPaths: apkPaths), - environment: environment - ) - let packagePaths = try SystemServices.run(paths.adb, Self.adbArguments([ - "-s", "emulator-5582", "shell", "pm", "path", release.packageName - ]), environment: environment) - guard let basePath = packagePaths - .split(separator: "\n") - .map(String.init) - .first(where: { $0.hasSuffix("/base.apk") })? - .replacingOccurrences(of: "package:", with: "") else { - throw LauncherError.integrity("TFT base.apk was not found after installation") - } - let guestHash = try SystemServices.run(paths.adb, Self.adbArguments([ - "-s", "emulator-5582", "shell", "sha256sum", basePath - ]), environment: environment).split(separator: " ").first.map(String.init) - guard guestHash == release.baseSHA256 else { - throw LauncherError.unsupportedGame("The installed TFT PBE version does not match verified version \(release.version)") - } - // Android 16 can acknowledge a large split-APK install before all - // /data/app extents reach the virtual disk. Stopping QEMU immediately - // leaves PackageManager metadata behind while the APK files disappear - // on the next cold boot. Flush the guest filesystem before emu kill. - _ = try SystemServices.run( - paths.adb, - Self.adbArguments(["-s", "emulator-5582", "shell", "sync"]), - environment: environment - ) - Thread.sleep(forTimeInterval: 2) - _ = try? SystemServices.run( - paths.adb, - Self.adbArguments(["-s", "emulator-5582", "emu", "kill"]), - environment: environment - ) - let deadline = Date().addingTimeInterval(30) - while emulator.isRunning && Date() < deadline { Thread.sleep(forTimeInterval: 0.25) } - } - - private func waitFor(timeout: TimeInterval, description: String, condition: () throws -> Bool) throws { - let deadline = Date().addingTimeInterval(timeout) - while Date() < deadline { - try checkCancellation() - if try condition() { return } - Thread.sleep(forTimeInterval: 1) - } - throw LauncherError.process("Timed out: \(description)") - } - - private func androidEnvironment() -> [String: String] { - [ - "ANDROID_SDK_ROOT": paths.sdk.path, - "ANDROID_AVD_HOME": paths.avdHome.path, - "ANDROID_ADB_SERVER_PORT": "5038", - "ADB_MDNS_AUTO_CONNECT": "" - ] - } - - private func checkCancellation() throws { - if withLock({ cancelled }) { throw LauncherError.cancelled } - } - - private func withLock(_ body: () -> T) -> T { - lock.lock() - defer { lock.unlock() } - return body() - } - - private func progressOnMain(_ handler: @escaping ProgressHandler, _ value: InstallerProgress) { - DispatchQueue.main.async { handler(value) } - } -} diff --git a/launcher/Sources/LauncherAnnouncementView.swift b/launcher/Sources/LauncherAnnouncementView.swift deleted file mode 100644 index dedf820..0000000 --- a/launcher/Sources/LauncherAnnouncementView.swift +++ /dev/null @@ -1,40 +0,0 @@ -import SwiftUI - -struct LauncherAnnouncementView: View { - let announcement: LauncherAnnouncement - let dismiss: () -> Void - - var body: some View { - VStack(alignment: .leading, spacing: 20) { - if let image = announcement.image { - Image(nsImage: image) - .resizable() - .scaledToFit() - .frame(maxWidth: .infinity, maxHeight: 300) - .clipShape(RoundedRectangle(cornerRadius: 12, style: .continuous)) - } - - Text(announcement.title) - .font(.system(size: 24, weight: .bold)) - .foregroundStyle(LauncherTheme.ColorToken.textPrimary) - - ScrollView { - Text(announcement.text) - .font(.system(size: 15)) - .foregroundStyle(LauncherTheme.ColorToken.textSecondary) - .textSelection(.enabled) - .frame(maxWidth: .infinity, alignment: .leading) - } - .frame(maxHeight: 240) - - HStack { - Spacer() - Button(LauncherL10n.text("action.close"), action: dismiss) - .keyboardShortcut(.defaultAction) - } - } - .padding(28) - .frame(width: 600) - .background(LauncherTheme.ColorToken.surface) - } -} diff --git a/launcher/Sources/LauncherComponents.swift b/launcher/Sources/LauncherComponents.swift deleted file mode 100644 index 4510b05..0000000 --- a/launcher/Sources/LauncherComponents.swift +++ /dev/null @@ -1,431 +0,0 @@ -import AppKit -import SwiftUI - -struct LauncherBrandMark: View { - var body: some View { - MacticianMark() - .frame(width: 34, height: 34) - .accessibilityHidden(true) - } -} - -struct MacticianMark: View { - var body: some View { - GeometryReader { geometry in - let width = geometry.size.width - let height = geometry.size.height - let ribbonStyle = StrokeStyle( - lineWidth: width * 0.135, - lineCap: .round, - lineJoin: .round - ) - ZStack { - RoundedRectangle(cornerRadius: width * 0.24, style: .continuous) - .fill(LauncherTheme.ColorToken.window) - Path { path in - path.move(to: CGPoint(x: width * 0.18, y: height * 0.80)) - path.addLine(to: CGPoint(x: width * 0.18, y: height * 0.58)) - path.addLine(to: CGPoint(x: width * 0.30, y: height * 0.25)) - path.addLine(to: CGPoint(x: width * 0.40, y: height * 0.25)) - path.addLine(to: CGPoint(x: width * 0.50, y: height * 0.68)) - } - .stroke( - LinearGradient( - colors: [ - Color(red: 1.00, green: 0.35, blue: 0.78), - Color(red: 0.46, green: 0.24, blue: 0.89) - ], - startPoint: .topLeading, - endPoint: .bottomTrailing - ), - style: ribbonStyle - ) - Path { path in - path.move(to: CGPoint(x: width * 0.82, y: height * 0.80)) - path.addLine(to: CGPoint(x: width * 0.82, y: height * 0.58)) - path.addLine(to: CGPoint(x: width * 0.70, y: height * 0.25)) - path.addLine(to: CGPoint(x: width * 0.60, y: height * 0.25)) - path.addLine(to: CGPoint(x: width * 0.50, y: height * 0.68)) - } - .stroke( - LinearGradient( - colors: [ - Color(red: 0.48, green: 0.36, blue: 1.00), - Color(red: 0.39, green: 0.21, blue: 0.84) - ], - startPoint: .topTrailing, - endPoint: .bottomLeading - ), - style: ribbonStyle - ) - Capsule() - .fill(Color(red: 0.78, green: 0.65, blue: 0.36)) - .frame(width: max(1, width * 0.025), height: height * 0.17) - .position(x: width * 0.50, y: height * 0.64) - Circle() - .fill(LauncherTheme.ColorToken.primaryAction) - .frame(width: width * 0.055, height: width * 0.055) - .position(x: width * 0.18, y: height * 0.75) - Circle() - .fill(LauncherTheme.ColorToken.primaryAction) - .frame(width: width * 0.055, height: width * 0.055) - .position(x: width * 0.82, y: height * 0.75) - } - } - .aspectRatio(1, contentMode: .fit) - } -} - -struct LauncherDragRegion: NSViewRepresentable { - func makeNSView(context _: Context) -> NSView { DragView() } - func updateNSView(_: NSView, context _: Context) { } - - private final class DragView: NSView { - override func mouseDown(with event: NSEvent) { - window?.performDrag(with: event) - } - } -} - -struct LauncherStatusIcon: View { - let symbol: String - let color: Color - var spinning = false - - var body: some View { - ZStack { - Circle() - .fill(color.opacity(0.12)) - Circle() - .stroke(color.opacity(0.42), lineWidth: 1) - if spinning { - ProgressView() - .controlSize(.small) - .tint(color) - } else { - Image(systemName: symbol) - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(color) - } - } - .frame(width: 48, height: 48) - .accessibilityHidden(true) - } -} - -struct LauncherStatusHeader: View { - let symbol: String - let color: Color - let title: String - let description: String - var spinning = false - - var body: some View { - HStack(alignment: .top, spacing: LauncherTheme.Spacing.regular) { - LauncherStatusIcon(symbol: symbol, color: color, spinning: spinning) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(title) - .font(.system(size: 20, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(description) - .font(.system(size: 13)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - } - } - .accessibilityElement(children: .combine) - } -} - -struct LauncherSummaryField: View { - let label: String - let value: String - let detail: String? - let content: Content - - init( - label: String, - value: String, - detail: String? = nil, - @ViewBuilder content: () -> Content - ) { - self.label = label - self.value = value - self.detail = detail - self.content = content() - } - - var body: some View { - content - .frame(maxWidth: .infinity, minHeight: 64, alignment: .leading) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(LauncherTheme.ColorToken.raisedControl.opacity(0.82)) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke(LauncherTheme.ColorToken.neutralBorder, lineWidth: 1) - ) - .accessibilityLabel(label) - .accessibilityValue(detail.map { "\(value), \($0)" } ?? value) - } -} - -struct LauncherFieldLabel: View { - let text: String - - var body: some View { - Text(text) - .font(.system(size: 11, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - } -} - -struct LauncherMenuControl: View { - let value: String - let showsBackground: Bool - let menuContent: MenuContent - - init( - value: String, - showsBackground: Bool = true, - @ViewBuilder content: () -> MenuContent - ) { - self.value = value - self.showsBackground = showsBackground - menuContent = content() - } - - var body: some View { - Menu { - menuContent - } label: { - HStack(spacing: LauncherTheme.Spacing.small) { - Text(value) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - .lineLimit(1) - Spacer(minLength: LauncherTheme.Spacing.small) - } - .padding(.horizontal, showsBackground ? LauncherTheme.Spacing.medium : 0) - .frame(maxWidth: .infinity, minHeight: 30) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill( - showsBackground - ? LauncherTheme.ColorToken.raisedControl.opacity(0.82) - : .clear - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke( - showsBackground ? LauncherTheme.ColorToken.neutralBorder : .clear, - lineWidth: 1 - ) - ) - .contentShape(Rectangle()) - } - .menuStyle(.borderlessButton) - .accessibilityValue(value) - } -} - -struct LauncherSectionHeader: View { - let title: String - let description: String? - - init(_ title: String, description: String? = nil) { - self.title = title - self.description = description - } - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(title) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - if let description { - Text(description) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - } - } - } -} - -struct LauncherDivider: View { - var body: some View { - Rectangle() - .fill(LauncherTheme.ColorToken.neutralBorder) - .frame(height: 1) - } -} - -struct LauncherPrimaryButtonStyle: ButtonStyle { - @Environment(\.isEnabled) private var isEnabled - @Environment(\.isFocused) private var isFocused - @Environment(\.accessibilityReduceMotion) private var reduceMotion - @State private var isHovered = false - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 15, weight: .bold)) - .foregroundColor(LauncherTheme.ColorToken.surface) - .padding(.horizontal, LauncherTheme.Spacing.large) - .frame(minHeight: LauncherTheme.Metric.primaryControlHeight) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius, style: .continuous) - .fill( - isEnabled - ? LauncherTheme.ColorToken.primaryAction.opacity(isHovered ? 1 : 0.94) - : LauncherTheme.ColorToken.raisedControl - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius, style: .continuous) - .stroke(Color.white.opacity(isEnabled ? 0.25 : 0.08), lineWidth: 1) - ) - .shadow( - color: LauncherTheme.ColorToken.primaryAction.opacity( - isEnabled && !configuration.isPressed ? 0.24 : 0 - ), - radius: 8, - y: 3 - ) - .scaleEffect(reduceMotion || !configuration.isPressed ? 1 : 0.99) - .foregroundColor(isEnabled ? LauncherTheme.ColorToken.surface : LauncherTheme.ColorToken.textTertiary) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius + 2) - .stroke( - isFocused ? LauncherTheme.ColorToken.interactive : .clear, - lineWidth: 2 - ) - .padding(-3) - ) - .onHover { isHovered = $0 } - } -} - -struct LauncherSecondaryButtonStyle: ButtonStyle { - @Environment(\.isEnabled) private var isEnabled - @Environment(\.isFocused) private var isFocused - @State private var isHovered = false - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(isEnabled ? LauncherTheme.ColorToken.textPrimary : LauncherTheme.ColorToken.textTertiary) - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(minHeight: LauncherTheme.Metric.standardControlHeight) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius, style: .continuous) - .fill( - LauncherTheme.ColorToken.raisedControl.opacity( - configuration.isPressed ? 1 : isEnabled ? (isHovered ? 0.94 : 0.78) : 0.38 - ) - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius, style: .continuous) - .stroke(LauncherTheme.ColorToken.neutralBorder, lineWidth: 1) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius + 2) - .stroke(isFocused ? LauncherTheme.ColorToken.interactive : .clear, lineWidth: 2) - .padding(-3) - ) - .onHover { isHovered = $0 } - } -} - -struct LauncherTertiaryButtonStyle: ButtonStyle { - @Environment(\.isEnabled) private var isEnabled - @Environment(\.isFocused) private var isFocused - @State private var isHovered = false - var tint = LauncherTheme.ColorToken.interactive - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(isEnabled ? tint : LauncherTheme.ColorToken.textTertiary) - .padding(.horizontal, LauncherTheme.Spacing.small) - .frame(minHeight: 32) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(Color.white.opacity(configuration.isPressed ? 0.09 : isHovered ? 0.05 : 0)) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius + 2) - .stroke(isFocused ? LauncherTheme.ColorToken.interactive : .clear, lineWidth: 2) - .padding(-3) - ) - .onHover { isHovered = $0 } - } -} - -struct LauncherDestructiveButtonStyle: ButtonStyle { - @Environment(\.isEnabled) private var isEnabled - @Environment(\.isFocused) private var isFocused - @State private var isHovered = false - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(isEnabled ? LauncherTheme.ColorToken.danger : LauncherTheme.ColorToken.textTertiary) - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(minHeight: LauncherTheme.Metric.standardControlHeight) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill( - LauncherTheme.ColorToken.danger.opacity( - configuration.isPressed ? 0.16 : isHovered ? 0.12 : 0.08 - ) - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke(LauncherTheme.ColorToken.danger.opacity(isEnabled ? 0.42 : 0.12), lineWidth: 1) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius + 2) - .stroke(isFocused ? LauncherTheme.ColorToken.interactive : .clear, lineWidth: 2) - .padding(-3) - ) - .onHover { isHovered = $0 } - } -} - -struct LauncherIconButtonStyle: ButtonStyle { - @Environment(\.isFocused) private var isFocused - @State private var isHovered = false - - func makeBody(configuration: Configuration) -> some View { - configuration.label - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .frame(width: 34, height: 34) - .background( - Circle().fill(Color.white.opacity(configuration.isPressed ? 0.12 : isHovered ? 0.08 : 0.04)) - ) - .overlay(Circle().stroke(LauncherTheme.ColorToken.neutralBorder, lineWidth: 1)) - .overlay( - Circle() - .stroke(isFocused ? LauncherTheme.ColorToken.interactive : .clear, lineWidth: 2) - .padding(-3) - ) - .onHover { isHovered = $0 } - } -} - -struct LauncherProgressBar: View { - let value: Double - - var body: some View { - ProgressView(value: value) - .progressViewStyle(.linear) - .tint(LauncherTheme.ColorToken.interactive) - .accessibilityValue(Text(value, format: .percent.precision(.fractionLength(0)))) - } -} diff --git a/launcher/Sources/LauncherModel.swift b/launcher/Sources/LauncherModel.swift deleted file mode 100644 index 63397f5..0000000 --- a/launcher/Sources/LauncherModel.swift +++ /dev/null @@ -1,694 +0,0 @@ -import AppKit -import Foundation - -@MainActor -final class LauncherModel: ObservableObject { - enum Mode: Equatable { - case needsInstall - case installing - case ready - case launching - case playing - case stopping - case failed - } - - @Published var mode: Mode = .needsInstall - @Published var status = "Preparing…" - @Published var detail = "" - @Published var progress = 0.0 - @Published var licenseAccepted = false - @Published var selectedProfileID: String - @Published var selectedEffectsQualityID: String - @Published var selectedLanguageID: String - @Published var selectedMemoryMB: Int - @Published var selectedCPUCores: Int - @Published var selectedUIScalePercent: Int - @Published var isPaused = false - @Published var installerPhase: InstallerProgress.Phase = .checking - @Published var installationWasCancelled = false - @Published var failure: LauncherFailure? - @Published var hotkeyStatus: LauncherHotkeyStatus = .permissionRequired - @Published var announcement: LauncherAnnouncement? - @Published private(set) var gameUpdateResultMessage: String? - @Published private(set) var isGameUpdateAvailable = false - @Published private(set) var isCheckingGameUpdate = false - @Published var shouldShowTelemetryNotice: Bool - @Published var extendedDiagnosticsEnabled: Bool - @Published private(set) var activeConfiguration: LaunchConfigurationSnapshot? - @Published private(set) var gameRelease: GameRelease - - let paths: LauncherPaths - let manifest: ReleaseManifest - private(set) var installState: InstallState - private let installer: InstallerService - private let runtime: RuntimeController - private let telemetry = LauncherTelemetryService() - private let inputBridge = InputBridgeService() - private let audioRecovery = EmulatorAudioRecoveryService() - private let fpsOverlay = FPSOverlayService() - private let loginAnimationRepair = RiotLoginAnimationRepairService() - private var emulatorPID: pid_t? - private var runtimeHadError = false - private var stopRequested = false - private var installCancellationRequested = false - private var launchProfile: LaunchProfile? - private var launchEffectsQuality: EffectsQuality? - private var hotkeyEventTapActive = false - private var hotkeyEventTapAttemptFailed = false - private var gameSessionTracker = GameSessionTracker() - private var pendingAnnouncements: [LauncherAnnouncement] = [] - - init() { - do { - let paths = try LauncherPaths() - let manifest = try SystemServices.loadManifest(from: paths.manifest) - self.paths = paths - self.manifest = manifest - installState = SystemServices.loadState(from: paths.stateFile) - gameRelease = (try? HostedGameUpdate.loadVerifiedFeed(from: paths.hostedGameFeed).release) - ?? manifest.game - installer = InstallerService(paths: paths, manifest: manifest) - runtime = RuntimeController(paths: paths) - let saved = UserDefaults.standard.string(forKey: "launchProfile") ?? "balanced" - selectedProfileID = manifest.profiles.contains(where: { $0.id == saved }) ? saved : "balanced" - selectedEffectsQualityID = EffectsQuality.selection( - saved: UserDefaults.standard.string(forKey: "effectsQuality") - ).id - selectedLanguageID = GameLanguage.language( - withID: UserDefaults.standard.string(forKey: "gameLanguage") - ).id - let memoryOptions = GuestResourceOptions.memoryMB( - physicalMemoryBytes: ProcessInfo.processInfo.physicalMemory - ) - selectedMemoryMB = GuestResourceOptions.selection( - saved: UserDefaults.standard.integer(forKey: "androidMemoryMB"), - options: memoryOptions, - fallback: GuestResourceOptions.defaultMemoryMB - ) - let cpuOptions = GuestResourceOptions.cpuCores( - logicalCPUCount: ProcessInfo.processInfo.processorCount - ) - selectedCPUCores = GuestResourceOptions.selection( - saved: UserDefaults.standard.integer(forKey: "androidCPUCores"), - options: cpuOptions, - fallback: HostSizing.guestCPUCores( - logicalCPUCount: ProcessInfo.processInfo.processorCount - ) - ) - selectedUIScalePercent = InterfaceScaleOptions.selection( - saved: UserDefaults.standard.integer(forKey: "uiScalePercent") - ) - shouldShowTelemetryNotice = telemetry.shouldShowNotice - extendedDiagnosticsEnabled = telemetry.isExtendedDiagnosticsEnabled - if Self.installationLooksReady( - state: installState, - paths: paths, - gameRelease: gameRelease - ) { - mode = .ready - status = "Ready to play" - detail = "Choose graphics and language, then press Play." - } else { - mode = .needsInstall - status = "Initial installation required" - detail = "Android components will be downloaded directly from dl.google.com." - } - refreshHotkeyStatus() - inputBridge.observeStatus { [weak self] eventTapActive, eventTapAttemptFailed in - self?.updateHotkeyActivity( - eventTapActive: eventTapActive, - eventTapAttemptFailed: eventTapAttemptFailed - ) - } - requestAnnouncement(for: .launcherStarted) - } catch { - fatalError("Launcher resources are invalid: \(error)") - } - } - - var selectedProfile: LaunchProfile { - manifest.profiles.first(where: { $0.id == selectedProfileID }) ?? manifest.profiles[0] - } - - var selectedLanguage: GameLanguage { - GameLanguage.language(withID: selectedLanguageID) - } - - var selectedEffectsQuality: EffectsQuality { - EffectsQuality.selection(saved: selectedEffectsQualityID) - } - - var availableMemoryMB: [Int] { - GuestResourceOptions.memoryMB(physicalMemoryBytes: ProcessInfo.processInfo.physicalMemory) - } - - var availableCPUCores: [Int] { - GuestResourceOptions.cpuCores(logicalCPUCount: ProcessInfo.processInfo.processorCount) - } - - var availableUIScalePercents: [Int] { - InterfaceScaleOptions.percentages - } - - var recommendedResources: GuestResourceConfiguration { - GuestResourceOptions.recommended( - physicalMemoryBytes: ProcessInfo.processInfo.physicalMemory, - logicalCPUCount: ProcessInfo.processInfo.processorCount - ) - } - - var hostResourceSummary: String { - let memoryGB = Int(ProcessInfo.processInfo.physicalMemory / 1_073_741_824) - return LauncherL10n.format( - "settings.performance.host_format", - memoryGB, - ProcessInfo.processInfo.processorCount - ) - } - - var gameDisplayVersion: String { - LauncherMetadata.gameDisplayVersion(from: gameRelease.version) - } - - var downloadSize: String { - LauncherMetadata.byteCount(LauncherMetadata.totalDownloadBytes(in: manifest)) - } - - var requiredFreeSpace: String { - LauncherMetadata.byteCount(manifest.minimumFreeBytes) - } - - var androidSystemSummary: String { - let api = LauncherMetadata.androidAPILevel(in: manifest) ?? "?" - return LauncherL10n.format("install.android_api_format", api) - } - - var emulatorVersion: String { - LauncherMetadata.componentVersion("emulator", in: manifest) ?? "?" - } - - var settingsLocked: Bool { - mode == .launching || mode == .playing || mode == .stopping - } - - var maintenanceLocked: Bool { - mode == .installing || isCheckingGameUpdate || settingsLocked - } - - var selectedConfiguration: LaunchConfigurationSnapshot { - LaunchConfigurationSnapshot( - languageTitle: selectedLanguage.title, - resolution: selectedProfile.displayResolution, - effectsQualityTitle: selectedEffectsQuality.title, - uiScalePercent: selectedUIScalePercent, - memoryMB: selectedMemoryMB, - cpuCores: selectedCPUCores - ) - } - - func selectProfile(_ id: String) { - guard !settingsLocked else { return } - selectedProfileID = id - UserDefaults.standard.set(id, forKey: "launchProfile") - } - - func selectEffectsQuality(_ id: String) { - guard !settingsLocked, let quality = EffectsQuality(rawValue: id) else { return } - selectedEffectsQualityID = quality.id - UserDefaults.standard.set(quality.id, forKey: "effectsQuality") - } - - func selectLanguage(_ id: String) { - guard !settingsLocked else { return } - let language = GameLanguage.language(withID: id) - selectedLanguageID = language.id - UserDefaults.standard.set(language.id, forKey: "gameLanguage") - } - - func selectMemoryMB(_ memoryMB: Int) { - guard !settingsLocked, availableMemoryMB.contains(memoryMB) else { return } - selectedMemoryMB = memoryMB - UserDefaults.standard.set(memoryMB, forKey: "androidMemoryMB") - } - - func selectCPUCores(_ cpuCores: Int) { - guard !settingsLocked, availableCPUCores.contains(cpuCores) else { return } - selectedCPUCores = cpuCores - UserDefaults.standard.set(cpuCores, forKey: "androidCPUCores") - } - - func selectUIScalePercent(_ percent: Int) { - guard !settingsLocked, availableUIScalePercents.contains(percent) else { return } - selectedUIScalePercent = percent - UserDefaults.standard.set(percent, forKey: "uiScalePercent") - } - - func applyRecommendedResources() { - guard !settingsLocked else { return } - let recommendation = recommendedResources - selectMemoryMB(recommendation.memoryMB) - selectCPUCores(recommendation.cpuCores) - } - - func completeTelemetryNotice(extendedDiagnostics: Bool) { - telemetry.completeNotice(extendedDiagnostics: extendedDiagnostics) - extendedDiagnosticsEnabled = telemetry.isExtendedDiagnosticsEnabled - shouldShowTelemetryNotice = false - } - - func setExtendedDiagnosticsEnabled(_ enabled: Bool) { - telemetry.setExtendedDiagnosticsEnabled(enabled) - extendedDiagnosticsEnabled = telemetry.isExtendedDiagnosticsEnabled - } - - func install(repair: Bool = false) { - guard repair || licenseAccepted else { - fail( - "Accept the Android SDK License Agreement before installing.", - origin: .installation - ) - return - } - failure = nil - installationWasCancelled = false - installCancellationRequested = false - mode = .installing - isPaused = false - installerPhase = .checking - status = repair ? "Repairing installation…" : "Installing…" - detail = "You can pause the download." - progress = 0 - installer.install(repair: repair, progress: { [weak self] value in - guard let self else { return } - progress = value.fraction - status = value.message - installerPhase = value.phase - isPaused = value.phase == .paused - }, completion: { [weak self] result in - guard let self else { return } - switch result { - case let .success(state): - installCancellationRequested = false - installState = state - gameRelease = (try? HostedGameUpdate.loadVerifiedFeed(from: paths.hostedGameFeed).release) - ?? manifest.game - isGameUpdateAvailable = false - mode = .ready - progress = 1 - status = "Ready to play" - detail = "Choose graphics and language, then press Play." - case let .failure(error): - if InstallerCompletionPresentation.isUserCancellation( - requested: installCancellationRequested, - error: error - ) { - installCancellationRequested = false - installationWasCancelled = true - mode = .needsInstall - status = "Installation stopped" - detail = "The next installation will resume incomplete downloads." - return - } - fail( - error.localizedDescription, - origin: failureOrigin(for: error, fallback: .installation) - ) - } - }) - } - - func togglePause() { - if isPaused { - installer.resume() - isPaused = false - } else { - installer.pause() - isPaused = true - } - } - - func cancelInstall() { - installCancellationRequested = true - installationWasCancelled = true - installer.cancel() - mode = .needsInstall - status = "Installation stopped" - detail = "The next installation will resume incomplete downloads." - } - - func play() { - guard mode == .ready, - !shouldShowTelemetryNotice, - !isCheckingGameUpdate, - !isGameUpdateAvailable else { return } - failure = nil - runtimeHadError = false - stopRequested = false - emulatorPID = nil - let profile = selectedProfile - let effectsQuality = selectedEffectsQuality - let language = selectedLanguage - launchProfile = profile - launchEffectsQuality = effectsQuality - activeConfiguration = selectedConfiguration - mode = .launching - status = "Launching TFT PBE…" - detail = "Starting the game in \(selectedLanguage.title)." - do { - try runtime.start( - profile: profile, - effectsQuality: effectsQuality, - language: language, - cpuCores: selectedCPUCores, - memoryMB: selectedMemoryMB, - uiScalePercent: selectedUIScalePercent, - state: installState, - gameRelease: gameRelease, - gameResources: paths.gameResources(for: gameRelease) - ) { [weak self] event in - self?.handle(event) - } - } catch { - fail( - error.localizedDescription, - origin: failureOrigin(for: error, fallback: .launch) - ) - } - } - - func stopGame() { - guard mode == .launching || mode == .playing else { return } - stopRequested = true - mode = .stopping - status = "Stopping emulator…" - loginAnimationRepair.stop() - audioRecovery.stop() - fpsOverlay.stop() - inputBridge.stop() - runtime.stop() - } - - func repair() { - guard !maintenanceLocked, !runtime.isRunning else { return } - licenseAccepted = true - install(repair: true) - } - - func updateGame() { - guard mode == .ready, isGameUpdateAvailable, !runtime.isRunning else { return } - failure = nil - gameUpdateResultMessage = nil - installationWasCancelled = false - installCancellationRequested = false - mode = .installing - isPaused = false - installerPhase = .checking - status = "Checking for TFT PBE updates…" - detail = "Updates are downloaded securely from sergeinaumov.dev." - progress = 0 - installer.updateGame(currentState: installState, progress: { [weak self] value in - guard let self else { return } - progress = value.fraction - status = value.message - installerPhase = value.phase - isPaused = value.phase == .paused - }, completion: { [weak self] result in - guard let self else { return } - switch result { - case let .success(update): - installState = update.state - gameRelease = update.release - isGameUpdateAvailable = false - mode = .ready - progress = 1 - status = update.changed ? "TFT PBE updated" : "TFT PBE is up to date" - detail = update.changed - ? "The new game version is ready to play." - : "No game update is available." - let displayVersion = LauncherMetadata.gameDisplayVersion(from: update.release.version) - gameUpdateResultMessage = LauncherL10n.format( - update.changed ? "game_update.updated.message" : "game_update.current.message", - displayVersion - ) - let versionCode = update.release.versionCode.map(String.init) ?? "unknown" - SystemServices.appendLog( - "Game update check completed: \(update.changed ? "installed" : "already current") " - + "\(update.release.version) (versionCode \(versionCode)).", - to: paths.launcherLog - ) - case let .failure(error): - fail( - error.localizedDescription, - origin: failureOrigin(for: error, fallback: .installation) - ) - } - }) - } - - func refreshGameUpdateAvailability() { - guard mode == .ready, !runtime.isRunning, !isCheckingGameUpdate else { return } - isCheckingGameUpdate = true - isGameUpdateAvailable = false - installer.checkGameUpdateAvailability(currentState: installState) { [weak self] result in - guard let self else { return } - isCheckingGameUpdate = false - switch result { - case let .success(availability): - isGameUpdateAvailable = availability.isAvailable - if availability.isAvailable { - let versionCode = availability.release.versionCode.map(String.init) ?? "unknown" - SystemServices.appendLog( - "TFT PBE update available: \(availability.release.version) " - + "(versionCode \(versionCode)).", - to: paths.launcherLog - ) - } - case .failure: - isGameUpdateAvailable = false - } - } - } - - func dismissGameUpdateResult() { - gameUpdateResultMessage = nil - } - - func reset() { - guard !maintenanceLocked, !runtime.isRunning else { return } - loginAnimationRepair.stop() - audioRecovery.stop() - fpsOverlay.stop() - inputBridge.stop() - installer.cancel() - do { - if FileManager.default.fileExists(atPath: paths.root.path) { - try FileManager.default.removeItem(at: paths.root) - } - installState = InstallState() - isGameUpdateAvailable = false - isCheckingGameUpdate = false - mode = .needsInstall - failure = nil - installationWasCancelled = false - activeConfiguration = nil - progress = 0 - status = "Data deleted" - detail = "The next installation will create a clean AVD. Riot sign-in and game data were removed." - } catch { - fail("Could not delete data: \(error.localizedDescription)", origin: .reset) - } - } - - func openDataFolder() { - try? FileManager.default.createDirectory(at: paths.root, withIntermediateDirectories: true) - NSWorkspace.shared.open(paths.root) - } - - func openLog() { - if FileManager.default.fileExists(atPath: paths.launcherLog.path) { - NSWorkspace.shared.open(paths.launcherLog) - } else { - openDataFolder() - } - } - - func requestInputPermissions() { - inputBridge.requestPermissions() - refreshHotkeyStatus() - } - - func refreshHotkeyStatus() { - let facts = InputBridgeService.permissionFacts( - eventTapActive: hotkeyEventTapActive, - eventTapAttemptFailed: hotkeyEventTapAttemptFailed - ) - hotkeyStatus = LauncherHotkeyPresentation.status(for: facts) - } - - func recoverFromFailure() { - guard let failure else { return } - self.failure = nil - switch failure.recoveryAction { - case .retryInstallation, .repairInstallation: - licenseAccepted = true - install(repair: true) - case .tryLaunchAgain, .restartGame: - mode = .ready - play() - case .none: - break - } - } - - func shutdown() { - installer.cancel() - loginAnimationRepair.stop() - audioRecovery.stop() - fpsOverlay.stop() - inputBridge.stop() - finishGameSession(showAnnouncement: false) - runtime.stop() - } - - func dismissAnnouncement() { - if pendingAnnouncements.isEmpty { - announcement = nil - } else { - announcement = pendingAnnouncements.removeFirst() - } - } - - private func handle(_ event: RuntimeEvent) { - switch event.event { - case .booting: - mode = .launching - status = event.message ?? "Booting Android…" - case .emulatorStarted: - emulatorPID = event.pid - case .ready: - mode = .playing - gameSessionTracker.start() - status = "TFT PBE is open" - detail = "Space — shop • D — reroll • F — XP • Tab — items/traits • V — players/damage • Control + Fn + F — fill window." - loginAnimationRepair.start(adb: paths.adb, log: paths.launcherLog) - if let emulatorPID { - let profile = launchProfile ?? selectedProfile - audioRecovery.start( - targetPID: emulatorPID, - adb: paths.adb, - log: paths.launcherLog - ) - fpsOverlay.start(targetPID: emulatorPID, adb: paths.adb) - inputBridge.start( - targetPID: emulatorPID, - adb: paths.adb, - width: profile.width, - height: profile.height - ) - } - case .error: - guard !stopRequested else { return } - runtimeHadError = true - loginAnimationRepair.stop() - audioRecovery.stop() - fpsOverlay.stop() - inputBridge.stop() - fail(event.message ?? "Runtime error", origin: .runtime) - case .gameStopped: - finishGameSession(showAnnouncement: true) - stopGame() - case .stopped: - loginAnimationRepair.stop() - audioRecovery.stop() - fpsOverlay.stop() - inputBridge.stop() - finishGameSession(showAnnouncement: true) - emulatorPID = nil - if stopRequested || !runtimeHadError { - mode = .ready - activeConfiguration = nil - launchProfile = nil - launchEffectsQuality = nil - status = "Emulator closed" - detail = "Temporary overlays and settings were restored." - } - stopRequested = false - runtimeHadError = false - case .downloading, .installingGame: - break - } - } - - private func updateHotkeyActivity(eventTapActive: Bool, eventTapAttemptFailed: Bool) { - hotkeyEventTapActive = eventTapActive - hotkeyEventTapAttemptFailed = eventTapAttemptFailed - refreshHotkeyStatus() - } - - private func finishGameSession(showAnnouncement: Bool) { - let endedAt = Date() - guard let duration = gameSessionTracker.finish(at: endedAt) else { return } - let profile = launchProfile ?? selectedProfile - let effectsQuality = launchEffectsQuality ?? selectedEffectsQuality - telemetry.recordGameSession( - durationSeconds: duration, - launcherSettings: LauncherTelemetrySettings( - profile: profile, - effectsQuality: effectsQuality, - uiScalePercent: selectedUIScalePercent, - androidMemoryMB: selectedMemoryMB, - androidCPUCores: selectedCPUCores - ), - endedAt: endedAt - ) - if showAnnouncement { - requestAnnouncement(for: .gameClosed) - } - } - - private func requestAnnouncement(for trigger: LauncherMessageTrigger) { - telemetry.fetchAnnouncement(trigger: trigger) { [weak self] message in - guard let self, let message else { return } - if announcement == nil { - announcement = message - } else if pendingAnnouncements.count < 4 { - pendingAnnouncements.append(message) - } - } - } - - private func fail(_ message: String, origin: LauncherFailureOrigin) { - mode = .failed - status = "Unable to continue" - detail = message - failure = LauncherFailure(origin: origin, technicalDetails: message) - } - - private func failureOrigin(for error: Error, fallback: LauncherFailureOrigin) -> LauncherFailureOrigin { - guard let launcherError = error as? LauncherError else { return fallback } - switch launcherError { - case .invalidManifest, .integrity, .unsupportedGame: - return .validation - case .preflight, .process: - return fallback - case .cancelled: - return .installation - } - } - - private static func installationLooksReady( - state: InstallState, - paths: LauncherPaths, - gameRelease: GameRelease - ) -> Bool { - state.isReady - && state.gameVersion == gameRelease.version - && state.gameBaseSHA256 == gameRelease.baseSHA256 - && state.overlaySHA256 != nil - && FileManager.default.isExecutableFile(atPath: paths.adb.path) - && FileManager.default.isExecutableFile(atPath: paths.emulator.path) - && FileManager.default.fileExists(atPath: paths.avdINI.path) - && FileManager.default.fileExists(atPath: paths.overlayAPK.path) - } -} diff --git a/launcher/Sources/LauncherPaths.swift b/launcher/Sources/LauncherPaths.swift deleted file mode 100644 index b95a7ee..0000000 --- a/launcher/Sources/LauncherPaths.swift +++ /dev/null @@ -1,85 +0,0 @@ -import Foundation - -struct LauncherPaths { - let root: URL - let bundleResources: URL - - init(root: URL? = nil, bundle: Bundle = .main, resources: URL? = nil) throws { - let fileManager = FileManager.default - if let root { - self.root = root - } else if let override = ProcessInfo.processInfo.environment["MACTICIAN_DATA_ROOT"], - !override.isEmpty { - self.root = URL(fileURLWithPath: override, isDirectory: true) - } else { - let applicationSupport = try fileManager.url( - for: .applicationSupportDirectory, - in: .userDomainMask, - appropriateFor: nil, - create: true - ) - self.root = Self.defaultRoot(applicationSupport: applicationSupport) - } - guard let resources = resources ?? bundle.resourceURL else { - throw LauncherError.process("The application Resources directory is missing") - } - bundleResources = resources - } - - static func defaultRoot(applicationSupport: URL) -> URL { - applicationSupport.appendingPathComponent( - MacticianIdentity.applicationSupportDirectory, - isDirectory: true - ) - } - - var sdk: URL { root.appendingPathComponent("sdk", isDirectory: true) } - var emulator: URL { sdk.appendingPathComponent("emulator/emulator") } - var qemuSystem: URL { sdk.appendingPathComponent("emulator/qemu/darwin-aarch64/qemu-system-aarch64") } - var qemuImg: URL { sdk.appendingPathComponent("emulator/qemu-img") } - var adb: URL { sdk.appendingPathComponent("platform-tools/adb") } - var systemImage: URL { sdk.appendingPathComponent("system-images/android-36/google_apis/arm64-v8a", isDirectory: true) } - var avdHome: URL { root.appendingPathComponent("avd", isDirectory: true) } - var avdDirectory: URL { avdHome.appendingPathComponent("TftPBE.avd", isDirectory: true) } - var avdINI: URL { avdHome.appendingPathComponent("TftPBE.ini") } - var avdBootCompleted: URL { avdDirectory.appendingPathComponent("bootcompleted.ini") } - var runtimeProject: URL { root.appendingPathComponent("runtime-project", isDirectory: true) } - var downloads: URL { root.appendingPathComponent("downloads", isDirectory: true) } - var gameCache: URL { root.appendingPathComponent("game", isDirectory: true) } - var hostedGameFeed: URL { gameCache.appendingPathComponent("manifest.json") } - func gameReleaseDirectory(baseSHA256: String) -> URL { - gameCache.appendingPathComponent("releases/\(baseSHA256)", isDirectory: true) - } - func gameResources(for release: GameRelease) -> URL { - let hosted = gameReleaseDirectory(baseSHA256: release.baseSHA256) - if FileManager.default.fileExists(atPath: hosted.appendingPathComponent("base.apk").path) { - return hosted - } - return gameResources - } - var staging: URL { root.appendingPathComponent(".staging", isDirectory: true) } - var stateFile: URL { root.appendingPathComponent("install-state.json") } - var logDirectory: URL { root.appendingPathComponent("logs", isDirectory: true) } - var launcherLog: URL { logDirectory.appendingPathComponent("launcher.log") } - var gameResources: URL { bundleResources.appendingPathComponent("Game", isDirectory: true) } - var runtimeTemplate: URL { bundleResources.appendingPathComponent("RuntimeTemplate", isDirectory: true) } - var manifest: URL { bundleResources.appendingPathComponent("release-manifest.json") } - var shaderProfile: URL { - runtimeProject.appendingPathComponent("artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.shader-prewarm.ini") - } - var performanceMaxProfile: URL { - runtimeProject.appendingPathComponent("artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.performance-max.ini") - } - func effectsProfile(for quality: EffectsQuality) -> URL { - runtimeProject.appendingPathComponent( - "artifacts/tft-pbe-18.1-5212127-angle-opengl/\(quality.profileFilename)" - ) - } - var overlayAPK: URL { - runtimeProject.appendingPathComponent("artifacts/tft-pbe-18.1-5212127-angle-opengl/base-angle-opengl.apk") - } - var runtimeHelper: URL { bundleResources.appendingPathComponent("launcher-runtime.command") } - var qemuHypervisorEntitlements: URL { - bundleResources.appendingPathComponent("QEMU-Hypervisor.entitlements") - } -} diff --git a/launcher/Sources/LauncherPresentation.swift b/launcher/Sources/LauncherPresentation.swift deleted file mode 100644 index 48ff481..0000000 --- a/launcher/Sources/LauncherPresentation.swift +++ /dev/null @@ -1,144 +0,0 @@ -import Foundation - -enum LauncherFailureOrigin: Equatable { - case installation - case launch - case runtime - case reset - case validation -} - -enum LauncherRecoveryAction: Equatable { - case retryInstallation - case tryLaunchAgain - case restartGame - case repairInstallation - case none -} - -struct LauncherFailure: Equatable { - let origin: LauncherFailureOrigin - let technicalDetails: String - - var recoveryAction: LauncherRecoveryAction { - LauncherFailurePresentation.recoveryAction(for: origin) - } -} - -enum LauncherFailurePresentation { - static func recoveryAction(for origin: LauncherFailureOrigin) -> LauncherRecoveryAction { - switch origin { - case .installation: - return .retryInstallation - case .launch: - return .tryLaunchAgain - case .runtime: - return .restartGame - case .validation: - return .repairInstallation - case .reset: - return .none - } - } -} - -enum InstallerCompletionPresentation { - static func isUserCancellation(requested: Bool, error: Error) -> Bool { - if requested { return true } - return error as? LauncherError == .cancelled - } -} - -enum LauncherHotkeyStatus: Equatable { - case permissionRequired - case ready - case active - case unavailable -} - -struct LauncherHotkeyFacts: Equatable { - let accessibilityTrusted: Bool - let eventTapActive: Bool - let eventTapAttemptFailed: Bool -} - -enum LauncherHotkeyPresentation { - static func status(for facts: LauncherHotkeyFacts) -> LauncherHotkeyStatus { - if facts.eventTapActive { return .active } - guard facts.accessibilityTrusted else { return .permissionRequired } - if facts.eventTapAttemptFailed { return .unavailable } - return .ready - } -} - -struct LaunchConfigurationSnapshot: Equatable { - let languageTitle: String - let resolution: String - let effectsQualityTitle: String - let uiScalePercent: Int - let memoryMB: Int - let cpuCores: Int - - var compactSummary: String { - "\(resolution) \u{00b7} \(effectsQualityTitle) \u{00b7} UI \(uiScalePercent)%" - } - - var fullSummary: String { - "\(compactSummary) \u{00b7} \(memoryMB / 1024) GB \u{00b7} \(cpuCores) vCPU" - } -} - -enum LauncherMetadata { - static func gameDisplayVersion(from version: String) -> String { - String(version.split(separator: "-", maxSplits: 1).first ?? Substring(version)) - } - - static func totalDownloadBytes(in manifest: ReleaseManifest) -> Int64 { - manifest.components.reduce(Int64(0)) { $0 + $1.size } - } - - static func resolution(width: Int, height: Int) -> String { - "\(width) \u{00d7} \(height)" - } - - static func androidAPILevel(in manifest: ReleaseManifest) -> String? { - guard let component = manifest.components.first(where: { $0.id == "system-image" }) else { - return nil - } - for part in component.installPath.split(separator: "/") where part.hasPrefix("android-") { - return String(part.dropFirst("android-".count)) - } - return nil - } - - static func componentVersion(_ id: String, in manifest: ReleaseManifest) -> String? { - manifest.components.first(where: { $0.id == id })?.version - } - - static func byteCount(_ value: Int64) -> String { - let formatter = ByteCountFormatter() - formatter.allowedUnits = [.useGB, .useMB] - formatter.countStyle = .file - formatter.includesUnit = true - formatter.isAdaptive = true - return formatter.string(fromByteCount: value) - } -} - -enum LauncherL10n { - static func text(_ key: String) -> String { - NSLocalizedString(key, tableName: nil, bundle: .main, value: key, comment: "") - } - - static func format(_ key: String, _ arguments: CVarArg...) -> String { - String(format: text(key), locale: Locale.current, arguments: arguments) - } -} - -enum LauncherBuildInfo { - static var display: String { - let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "dev" - let build = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String ?? "local" - return "v\(version) \u{00b7} build \(build)" - } -} diff --git a/launcher/Sources/LauncherSettingsView.swift b/launcher/Sources/LauncherSettingsView.swift deleted file mode 100644 index 673ff03..0000000 --- a/launcher/Sources/LauncherSettingsView.swift +++ /dev/null @@ -1,429 +0,0 @@ -import SwiftUI - -struct LauncherSettingsView: View { - @ObservedObject var model: LauncherModel - @ObservedObject var updateController: LauncherUpdateController - @Binding var showResetConfirmation: Bool - @Environment(\.presentationMode) private var presentationMode - @State private var showsResourceHelp = false - - var body: some View { - VStack(spacing: 0) { - header - LauncherDivider() - ScrollView { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - gameSection - LauncherDivider() - performanceSection - LauncherDivider() - telemetrySection - LauncherDivider() - hotkeySection - LauncherDivider() - updateSection - LauncherDivider() - maintenanceSection - } - .padding(LauncherTheme.Spacing.large) - } - } - .frame(width: LauncherTheme.Metric.sheetWidth, height: 620) - .background(LauncherTheme.ColorToken.surface) - .preferredColorScheme(.dark) - .onAppear { model.refreshHotkeyStatus() } - .alert( - LauncherL10n.text("reset.confirmation.title"), - isPresented: $showResetConfirmation - ) { - Button(LauncherL10n.text("action.cancel"), role: .cancel) { } - Button(LauncherL10n.text("reset.confirmation.action"), role: .destructive) { - model.reset() - } - } message: { - Text(LauncherL10n.text("reset.confirmation.message")) - } - } - - private var header: some View { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: "gearshape.fill") - .font(.system(size: 18, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(LauncherL10n.text("settings.title")) - .font(.system(size: 20, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(LauncherL10n.text("settings.description")) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - Spacer() - Button { - presentationMode.wrappedValue.dismiss() - } label: { - Image(systemName: "xmark") - } - .buttonStyle(LauncherIconButtonStyle()) - .accessibilityLabel(LauncherL10n.text("action.close")) - .help(LauncherL10n.text("action.close")) - } - .padding(.horizontal, LauncherTheme.Spacing.large) - .frame(height: 72) - } - - private var gameSection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("settings.game.title"), - description: model.settingsLocked - ? LauncherL10n.text("settings.runtime_locked") - : nil - ) - settingRow(LauncherL10n.text("field.game_language")) { - LauncherMenuControl(value: model.selectedLanguage.title) { - ForEach(GameLanguage.supported) { language in - Button { - model.selectLanguage(language.id) - } label: { - if language.id == model.selectedLanguageID { - Label(language.title, systemImage: "checkmark") - } else { - Text(language.title) - } - } - } - } - .frame(width: 230) - } - settingRow(LauncherL10n.text("field.effects_quality")) { - LauncherMenuControl(value: model.selectedEffectsQuality.title) { - ForEach(EffectsQuality.allCases) { quality in - Button { - model.selectEffectsQuality(quality.id) - } label: { - if quality.id == model.selectedEffectsQualityID { - Label(quality.title, systemImage: "checkmark") - } else { - Text(quality.title) - } - } - } - } - .frame(width: 230) - } - settingRow(LauncherL10n.text("field.interface_scale")) { - LauncherMenuControl(value: "\(model.selectedUIScalePercent)%") { - ForEach(model.availableUIScalePercents, id: \.self) { percent in - Button { - model.selectUIScalePercent(percent) - } label: { - if percent == model.selectedUIScalePercent { - Label("\(percent)%", systemImage: "checkmark") - } else { - Text("\(percent)%") - } - } - } - } - .frame(width: 230) - } - } - .disabled(model.settingsLocked) - } - - private var performanceSection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("settings.performance.title"), - description: model.hostResourceSummary - ) - - HStack(spacing: LauncherTheme.Spacing.regular) { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(LauncherL10n.text("settings.performance.recommended")) - .font(.system(size: 11, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.success) - Text( - LauncherL10n.format( - "settings.performance.recommended_format", - model.recommendedResources.memoryMB / 1024, - model.recommendedResources.cpuCores - ) - ) - .font(.system(size: 16, weight: .semibold, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - } - Spacer() - Button(LauncherL10n.text("settings.performance.apply")) { - model.applyRecommendedResources() - } - .buttonStyle(LauncherSecondaryButtonStyle()) - .disabled(model.settingsLocked || usesRecommendedResources) - } - .padding(LauncherTheme.Spacing.regular) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(LauncherTheme.ColorToken.success.opacity(0.07)) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke(LauncherTheme.ColorToken.success.opacity(0.26), lineWidth: 1) - ) - - settingRow(LauncherL10n.text("field.android_ram")) { - LauncherMenuControl(value: "\(model.selectedMemoryMB / 1024) GB") { - ForEach(model.availableMemoryMB, id: \.self) { memory in - Button { - model.selectMemoryMB(memory) - } label: { - if memory == model.selectedMemoryMB { - Label("\(memory / 1024) GB", systemImage: "checkmark") - } else { - Text("\(memory / 1024) GB") - } - } - } - } - .frame(width: 230) - } - .disabled(model.settingsLocked) - - settingRow(LauncherL10n.text("field.vcpu")) { - LauncherMenuControl( - value: LauncherL10n.format("field.vcpu_value_format", model.selectedCPUCores) - ) { - ForEach(model.availableCPUCores, id: \.self) { cores in - let title = LauncherL10n.format("field.vcpu_value_format", cores) - Button { - model.selectCPUCores(cores) - } label: { - if cores == model.selectedCPUCores { - Label(title, systemImage: "checkmark") - } else { - Text(title) - } - } - } - } - .frame(width: 230) - } - .disabled(model.settingsLocked) - - DisclosureGroup(isExpanded: $showsResourceHelp) { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - resourceHelp("settings.performance.help.balanced.title", "settings.performance.help.balanced.body") - resourceHelp("settings.performance.help.ram.title", "settings.performance.help.ram.body") - resourceHelp("settings.performance.help.cpu.title", "settings.performance.help.cpu.body") - } - .padding(.top, LauncherTheme.Spacing.medium) - } label: { - Text(LauncherL10n.text("settings.performance.help.title")) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - } - } - } - - private var hotkeySection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("hotkeys.title"), - description: LauncherL10n.text("hotkeys.description") - ) - - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: hotkeyStatusSymbol) - .foregroundColor(hotkeyStatusColor) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(LauncherL10n.text("hotkeys.status.label")) - .font(.system(size: 11, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - Text(LauncherL10n.text(model.hotkeyStatus.localizationKey)) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - } - Spacer() - if needsPermissionAction { - Button(LauncherL10n.text("hotkeys.grant_access")) { - model.requestInputPermissions() - } - .buttonStyle(LauncherSecondaryButtonStyle()) - } - } - .padding(LauncherTheme.Spacing.regular) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill( - needsHotkeyAction - ? LauncherTheme.ColorToken.warning.opacity(0.09) - : LauncherTheme.ColorToken.raisedControl.opacity(0.62) - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke( - needsHotkeyAction - ? LauncherTheme.ColorToken.warning.opacity(0.36) - : Color.clear, - lineWidth: 1 - ) - ) - - Text(LauncherL10n.text("hotkeys.shortcuts")) - .font(.system(size: 12, weight: .medium, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - .accessibilityElement(children: .contain) - } - - private var telemetrySection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("telemetry.settings.title"), - description: LauncherL10n.text("telemetry.settings.description") - ) - - HStack(spacing: LauncherTheme.Spacing.regular) { - Toggle( - LauncherL10n.text("telemetry.extended.toggle"), - isOn: Binding( - get: { model.extendedDiagnosticsEnabled }, - set: { model.setExtendedDiagnosticsEnabled($0) } - ) - ) - .toggleStyle(.switch) - Spacer() - if model.extendedDiagnosticsEnabled { - Link( - LauncherL10n.text("telemetry.extended.data_link"), - destination: MacticianIdentity.extendedDiagnosticsURL - ) - .font(.system(size: 12, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - } - } - - Text(LauncherL10n.text("telemetry.settings.basic_note")) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - } - } - - private var maintenanceSection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("settings.maintenance.title"), - description: LauncherL10n.text("settings.maintenance.description") - ) - - HStack(spacing: LauncherTheme.Spacing.medium) { - Button(LauncherL10n.text("action.repair_installation")) { model.repair() } - .buttonStyle(LauncherSecondaryButtonStyle()) - .disabled(model.maintenanceLocked) - Button(LauncherL10n.text("action.data_folder")) { model.openDataFolder() } - .buttonStyle(LauncherSecondaryButtonStyle()) - Button(LauncherL10n.text("action.view_log")) { model.openLog() } - .buttonStyle(LauncherSecondaryButtonStyle()) - } - - LauncherDivider() - - HStack(alignment: .center, spacing: LauncherTheme.Spacing.regular) { - Text(LauncherL10n.text("settings.maintenance.reset_description")) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - Spacer() - Button(LauncherL10n.text("action.reset_all_data")) { - showResetConfirmation = true - } - .buttonStyle(LauncherDestructiveButtonStyle()) - .disabled(model.maintenanceLocked) - } - } - } - - private var updateSection: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.regular) { - LauncherSectionHeader( - LauncherL10n.text("updates.title"), - description: LauncherL10n.text("updates.description") - ) - - HStack(spacing: LauncherTheme.Spacing.regular) { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(LauncherBuildInfo.display) - .font(.system(size: 13, weight: .semibold, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(LauncherL10n.text("updates.automatic_checks")) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - Spacer() - Button(LauncherL10n.text("updates.check")) { - updateController.checkForUpdates() - } - .buttonStyle(LauncherSecondaryButtonStyle()) - .disabled(!updateController.canCheckForUpdates) - } - } - } - - private func settingRow( - _ title: String, - @ViewBuilder content: () -> Content - ) -> some View { - HStack(spacing: LauncherTheme.Spacing.regular) { - Text(title) - .font(.system(size: 13, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Spacer() - content() - } - .frame(minHeight: LauncherTheme.Metric.standardControlHeight) - } - - private func resourceHelp(_ titleKey: String, _ bodyKey: String) -> some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(LauncherL10n.text(titleKey)) - .font(.system(size: 12, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(LauncherL10n.text(bodyKey)) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - } - } - - private var usesRecommendedResources: Bool { - model.selectedMemoryMB == model.recommendedResources.memoryMB - && model.selectedCPUCores == model.recommendedResources.cpuCores - } - - private var needsHotkeyAction: Bool { - model.hotkeyStatus == .permissionRequired - || model.hotkeyStatus == .unavailable - } - - private var needsPermissionAction: Bool { - model.hotkeyStatus == .permissionRequired - } - - private var hotkeyStatusColor: Color { - switch model.hotkeyStatus { - case .ready, .active: return LauncherTheme.ColorToken.success - case .permissionRequired, .unavailable: return LauncherTheme.ColorToken.warning - } - } - - private var hotkeyStatusSymbol: String { - switch model.hotkeyStatus { - case .ready, .active: return "checkmark.circle.fill" - case .permissionRequired, .unavailable: return "exclamationmark.circle.fill" - } - } -} diff --git a/launcher/Sources/LauncherStateViews.swift b/launcher/Sources/LauncherStateViews.swift deleted file mode 100644 index 66787c9..0000000 --- a/launcher/Sources/LauncherStateViews.swift +++ /dev/null @@ -1,687 +0,0 @@ -import AppKit -import SwiftUI - -struct LauncherStateDeck: View { - @ObservedObject var model: LauncherModel - @Binding var showSettings: Bool - - var body: some View { - Group { - switch model.mode { - case .needsInstall: - LauncherInstallRequiredView(model: model) - case .installing: - LauncherInstallingView(model: model) - case .ready: - LauncherReadyView(model: model, showSettings: $showSettings) - case .launching: - LauncherLaunchingView(model: model) - case .playing: - LauncherPlayingView(model: model) - case .stopping: - LauncherStoppingView(model: model) - case .failed: - LauncherFailureView(model: model) - } - } - .padding(LauncherTheme.Metric.stateDeckPadding) - .frame(maxWidth: .infinity, alignment: .leading) - .launcherSurface() - .shadow(color: Color.black.opacity(0.34), radius: 18, y: 8) - } -} - -private struct LauncherInstallRequiredView: View { - @ObservedObject var model: LauncherModel - @State private var showsInstallDetails = false - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: model.installationWasCancelled ? "pause.circle.fill" : "arrow.down.circle.fill", - color: model.installationWasCancelled - ? LauncherTheme.ColorToken.warning - : LauncherTheme.ColorToken.interactive, - title: LauncherL10n.text( - model.installationWasCancelled ? "install.cancelled.title" : "install.required.title" - ), - description: LauncherL10n.text( - model.installationWasCancelled ? "install.cancelled.description" : "install.required.description" - ) - ) - - HStack(spacing: LauncherTheme.Spacing.medium) { - requirement( - symbol: "arrow.down.circle", - value: model.downloadSize, - label: LauncherL10n.text("install.requirement.download") - ) - requirement( - symbol: "externaldrive", - value: model.requiredFreeSpace, - label: LauncherL10n.text("install.requirement.free_space") - ) - requirement( - symbol: "cpu", - value: LauncherL10n.text("install.requirement.apple_silicon_value"), - label: LauncherL10n.text("install.requirement.platform") - ) - } - - DisclosureGroup(isExpanded: $showsInstallDetails) { - HStack(spacing: LauncherTheme.Spacing.large) { - Label(model.androidSystemSummary, systemImage: "cpu") - Label( - LauncherL10n.format("install.emulator_format", model.emulatorVersion), - systemImage: "display" - ) - Label(LauncherL10n.text("install.clean_profile"), systemImage: "lock.shield") - } - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .padding(.top, LauncherTheme.Spacing.small) - } label: { - Text(LauncherL10n.text("install.what_is_installed")) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - } - - HStack(alignment: .center, spacing: LauncherTheme.Spacing.regular) { - Toggle( - LauncherL10n.text("install.license.accept"), - isOn: $model.licenseAccepted - ) - .toggleStyle(.checkbox) - .font(.system(size: 13)) - - Link( - LauncherL10n.text("install.license.terms"), - destination: URL(string: "https://developer.android.com/studio/terms")! - ) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - - Spacer() - - Button(LauncherL10n.text("action.install")) { model.install() } - .buttonStyle(LauncherPrimaryButtonStyle()) - .keyboardShortcut(.defaultAction) - .disabled(!model.licenseAccepted) - .accessibilityHint(LauncherL10n.text("install.license.hint")) - } - } - } - - private func requirement(symbol: String, value: String, label: String) -> some View { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: symbol) - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - Text(value) - .font(.system(size: 13, weight: .semibold, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(label) - .font(.system(size: 11)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - } - } - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(maxWidth: .infinity, minHeight: 60, alignment: .leading) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(LauncherTheme.ColorToken.raisedControl.opacity(0.72)) - ) - .accessibilityElement(children: .combine) - } -} - -private struct LauncherInstallingView: View { - @ObservedObject var model: LauncherModel - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - HStack(alignment: .top, spacing: LauncherTheme.Spacing.regular) { - LauncherStatusHeader( - symbol: "arrow.down.circle.fill", - color: LauncherTheme.ColorToken.interactive, - title: LauncherL10n.text("installing.title"), - description: phaseTitle - ) - Spacer() - Text(model.progress, format: .percent.precision(.fractionLength(0))) - .font(.system(size: 18, weight: .bold, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .accessibilityHidden(true) - } - - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.small) { - LauncherProgressBar(value: model.progress) - Text(model.status) - .font(.system(size: 12)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - - HStack(spacing: LauncherTheme.Spacing.medium) { - Button( - LauncherL10n.text(model.isPaused ? "action.resume" : "action.pause") - ) { model.togglePause() } - .buttonStyle(LauncherSecondaryButtonStyle()) - - Button(LauncherL10n.text("action.cancel")) { model.cancelInstall() } - .buttonStyle(LauncherTertiaryButtonStyle(tint: LauncherTheme.ColorToken.danger)) - - Spacer() - - Button(LauncherL10n.text("action.view_log")) { model.openLog() } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - } - } - - private var phaseTitle: String { - let key: String - switch model.installerPhase { - case .checking: key = "installing.phase.checking" - case .downloading: key = "installing.phase.downloading" - case .extracting: key = "installing.phase.extracting" - case .creatingAVD: key = "installing.phase.creating_device" - case .installingGame: key = "installing.phase.installing_game" - case .finished: key = "installing.phase.finished" - case .paused: key = "installing.phase.paused" - } - return LauncherL10n.text(key) - } -} - -private struct LauncherReadyView: View { - @ObservedObject var model: LauncherModel - @Binding var showSettings: Bool - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - HStack(alignment: .top, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: "checkmark", - color: LauncherTheme.ColorToken.success, - title: LauncherL10n.text("ready.title"), - description: LauncherL10n.text("ready.description") - ) - Spacer() - if model.isGameUpdateAvailable { - Button(LauncherL10n.text("action.update_game")) { model.updateGame() } - .buttonStyle(LauncherPrimaryButtonStyle()) - .keyboardShortcut(.defaultAction) - } else { - Button(LauncherL10n.text("action.play")) { model.play() } - .buttonStyle(LauncherPrimaryButtonStyle()) - .keyboardShortcut(.defaultAction) - .disabled(model.isCheckingGameUpdate) - } - } - - HStack(spacing: LauncherTheme.Spacing.medium) { - languageField - profileField - advancedField - } - - hotkeyRow - } - .onAppear { - model.refreshHotkeyStatus() - model.refreshGameUpdateAvailability() - } - .alert( - LauncherL10n.text("game_update.result.title"), - isPresented: Binding( - get: { model.gameUpdateResultMessage != nil }, - set: { isPresented in - if !isPresented { - model.dismissGameUpdateResult() - } - } - ) - ) { - Button(LauncherL10n.text("action.ok"), role: .cancel) { - model.dismissGameUpdateResult() - } - } message: { - Text(model.gameUpdateResultMessage ?? "") - } - } - - private var languageField: some View { - LauncherSummaryField( - label: LauncherL10n.text("field.game_language"), - value: model.selectedLanguage.title - ) { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: "globe") - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .frame(width: 20) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - LauncherFieldLabel(text: LauncherL10n.text("field.game_language")) - LauncherMenuControl( - value: model.selectedLanguage.title, - showsBackground: false - ) { - ForEach(GameLanguage.supported) { language in - Button { - model.selectLanguage(language.id) - } label: { - if language.id == model.selectedLanguageID { - Label(language.title, systemImage: "checkmark") - } else { - Text(language.title) - } - } - } - } - } - } - .padding(.horizontal, LauncherTheme.Spacing.regular) - .padding(.vertical, LauncherTheme.Spacing.small) - .contentShape(Rectangle()) - } - } - - private var profileField: some View { - LauncherSummaryField( - label: LauncherL10n.text("field.resolution"), - value: model.selectedProfile.displayResolution - ) { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: "display") - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .frame(width: 20) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - LauncherFieldLabel(text: LauncherL10n.text("field.resolution")) - LauncherMenuControl( - value: model.selectedProfile.displayResolution, - showsBackground: false - ) { - ForEach(model.manifest.profiles) { profile in - let title = profile.displayResolution - Button { - model.selectProfile(profile.id) - } label: { - if profile.id == model.selectedProfileID { - Label(title, systemImage: "checkmark") - } else { - Text(title) - } - } - } - } - } - } - .padding(.horizontal, LauncherTheme.Spacing.regular) - .padding(.vertical, LauncherTheme.Spacing.small) - .contentShape(Rectangle()) - } - } - - private var advancedField: some View { - LauncherSummaryField( - label: LauncherL10n.text("field.advanced_settings"), - value: model.selectedConfiguration.fullSummary - ) { - Button { showSettings = true } label: { - summaryLabel( - label: LauncherL10n.text("field.advanced_settings"), - value: LauncherL10n.format( - "ready.advanced_summary_format", - model.selectedUIScalePercent, - model.selectedMemoryMB / 1024, - model.selectedCPUCores - ), - detail: LauncherL10n.text("ready.advanced_open"), - symbol: "slider.horizontal.3" - ) - } - .buttonStyle(.plain) - } - } - - private func summaryLabel( - label: String, - value: String, - detail: String?, - symbol: String - ) -> some View { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: symbol) - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .frame(width: 20) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.xSmall) { - LauncherFieldLabel(text: label) - Text(value) - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - .lineLimit(1) - if let detail { - Text(detail) - .font(.system(size: 11)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - .lineLimit(1) - } - } - Spacer(minLength: LauncherTheme.Spacing.small) - Image(systemName: "chevron.down") - .font(.system(size: 10, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .accessibilityHidden(true) - } - .padding(.horizontal, LauncherTheme.Spacing.regular) - .padding(.vertical, LauncherTheme.Spacing.medium) - .contentShape(Rectangle()) - } - - private var hotkeyRow: some View { - HStack(spacing: LauncherTheme.Spacing.medium) { - Image(systemName: hotkeySymbol) - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(hotkeyColor) - .accessibilityHidden(true) - VStack(alignment: .leading, spacing: 2) { - Text(LauncherL10n.text("hotkeys.title")) - .font(.system(size: 12, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(hotkeyStatusText) - .font(.system(size: 11)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - Text(LauncherL10n.text("hotkeys.shortcuts")) - .font(.system(size: 10, weight: .medium, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - .lineLimit(2) - .fixedSize(horizontal: false, vertical: true) - } - Spacer() - if needsPermissionAction { - Button(LauncherL10n.text("hotkeys.grant_access")) { model.requestInputPermissions() } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - } - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(minHeight: 68) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill( - needsHotkeyAction - ? LauncherTheme.ColorToken.warning.opacity(0.09) - : Color.black.opacity(0.18) - ) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .stroke( - needsHotkeyAction - ? LauncherTheme.ColorToken.warning.opacity(0.36) - : Color.clear, - lineWidth: 1 - ) - ) - .accessibilityElement(children: .combine) - } - - private var needsHotkeyAction: Bool { - model.hotkeyStatus == .permissionRequired - || model.hotkeyStatus == .unavailable - } - - private var needsPermissionAction: Bool { - model.hotkeyStatus == .permissionRequired - } - - private var hotkeyStatusText: String { - LauncherL10n.text(model.hotkeyStatus.localizationKey) - } - - private var hotkeyColor: Color { - switch model.hotkeyStatus { - case .ready, .active: return LauncherTheme.ColorToken.success - case .permissionRequired, .unavailable: return LauncherTheme.ColorToken.warning - } - } - - private var hotkeySymbol: String { - switch model.hotkeyStatus { - case .ready, .active: return "checkmark.circle.fill" - case .permissionRequired, .unavailable: return "exclamationmark.circle.fill" - } - } -} - -private struct LauncherLaunchingView: View { - @ObservedObject var model: LauncherModel - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: "circle.dotted", - color: LauncherTheme.ColorToken.interactive, - title: LauncherL10n.text("launching.title"), - description: model.status, - spinning: true - ) - configurationSummary(model.activeConfiguration ?? model.selectedConfiguration) - HStack { - Spacer() - Button(LauncherL10n.text("action.view_log")) { model.openLog() } - .buttonStyle(LauncherTertiaryButtonStyle()) - Button(LauncherL10n.text("action.stop")) { model.stopGame() } - .buttonStyle(LauncherSecondaryButtonStyle()) - } - } - } -} - -private struct LauncherPlayingView: View { - @ObservedObject var model: LauncherModel - - var body: some View { - let configuration = model.activeConfiguration ?? model.selectedConfiguration - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - HStack(alignment: .top, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: "checkmark", - color: LauncherTheme.ColorToken.success, - title: LauncherL10n.text("playing.title"), - description: LauncherL10n.format( - "playing.description_format", - configuration.languageTitle - ) - ) - Spacer() - Button(LauncherL10n.text("action.stop_game")) { model.stopGame() } - .buttonStyle(LauncherSecondaryButtonStyle()) - } - configurationSummary(configuration, full: true) - HStack(spacing: LauncherTheme.Spacing.medium) { - Label( - LauncherL10n.text(model.hotkeyStatus.localizationKey), - systemImage: hotkeysNeedAttention ? "exclamationmark.triangle.fill" : "keyboard" - ) - .foregroundColor( - hotkeysNeedAttention - ? LauncherTheme.ColorToken.warning - : LauncherTheme.ColorToken.textSecondary - ) - Spacer() - if model.hotkeyStatus == .permissionRequired { - Button(LauncherL10n.text("hotkeys.grant_access")) { - model.requestInputPermissions() - } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - Label( - LauncherL10n.text("playing.fill_window_tip"), - systemImage: "arrow.up.left.and.arrow.down.right" - ) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - .font(.system(size: 12)) - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(minHeight: 44) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(Color.black.opacity(0.18)) - ) - } - } - - private var hotkeysNeedAttention: Bool { - model.hotkeyStatus == .permissionRequired || model.hotkeyStatus == .unavailable - } -} - -private struct LauncherStoppingView: View { - @ObservedObject var model: LauncherModel - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: "circle.dotted", - color: LauncherTheme.ColorToken.warning, - title: LauncherL10n.text("stopping.title"), - description: LauncherL10n.text("stopping.description"), - spinning: true - ) - HStack { - Spacer() - Button(LauncherL10n.text("action.view_log")) { model.openLog() } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - } - } -} - -private struct LauncherFailureView: View { - @ObservedObject var model: LauncherModel - @State private var showsTechnicalDetails = false - - var body: some View { - let failure = model.failure ?? LauncherFailure(origin: .runtime, technicalDetails: model.detail) - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - LauncherStatusHeader( - symbol: "exclamationmark.triangle.fill", - color: failure.origin == .reset - ? LauncherTheme.ColorToken.danger - : LauncherTheme.ColorToken.warning, - title: LauncherL10n.text(failure.titleLocalizationKey), - description: LauncherL10n.text(failure.summaryLocalizationKey) - ) - - DisclosureGroup(isExpanded: $showsTechnicalDetails) { - VStack(alignment: .trailing, spacing: LauncherTheme.Spacing.small) { - ScrollView { - Text(failure.technicalDetails) - .font(.system(size: 12, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .textSelection(.enabled) - .frame(maxWidth: .infinity, alignment: .leading) - } - .frame(maxHeight: 92) - - Button(LauncherL10n.text("action.copy")) { - NSPasteboard.general.clearContents() - NSPasteboard.general.setString(failure.technicalDetails, forType: .string) - } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - .padding(.top, LauncherTheme.Spacing.small) - } label: { - Text(LauncherL10n.text("error.technical_details")) - .font(.system(size: 13, weight: .semibold)) - } - - HStack(spacing: LauncherTheme.Spacing.medium) { - if failure.recoveryAction != .none { - Button(LauncherL10n.text(failure.recoveryLocalizationKey)) { - model.recoverFromFailure() - } - .buttonStyle(LauncherPrimaryButtonStyle()) - .keyboardShortcut(.defaultAction) - } - if failure.origin == .launch || failure.origin == .runtime { - Button(LauncherL10n.text("action.repair_installation")) { model.repair() } - .buttonStyle(LauncherSecondaryButtonStyle()) - } - Spacer() - Button(LauncherL10n.text("action.view_log")) { model.openLog() } - .buttonStyle(LauncherTertiaryButtonStyle()) - Button(LauncherL10n.text("action.data_folder")) { model.openDataFolder() } - .buttonStyle(LauncherTertiaryButtonStyle()) - } - } - } -} - -private func configurationSummary( - _ configuration: LaunchConfigurationSnapshot, - full: Bool = false -) -> some View { - Label( - full ? configuration.fullSummary : configuration.compactSummary, - systemImage: "slider.horizontal.3" - ) - .font(.system(size: 12, weight: .medium, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .padding(.horizontal, LauncherTheme.Spacing.regular) - .frame(maxWidth: .infinity, minHeight: 44, alignment: .leading) - .background( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.controlRadius) - .fill(LauncherTheme.ColorToken.raisedControl.opacity(0.64)) - ) -} - -extension LauncherHotkeyStatus { - var localizationKey: String { - switch self { - case .permissionRequired: return "hotkeys.status.permission_required" - case .ready: return "hotkeys.status.ready" - case .active: return "hotkeys.status.active" - case .unavailable: return "hotkeys.status.unavailable" - } - } -} - -private extension LauncherFailure { - var titleLocalizationKey: String { - switch origin { - case .installation: return "error.installation.title" - case .launch: return "error.launch.title" - case .runtime: return "error.runtime.title" - case .validation: return "error.validation.title" - case .reset: return "error.reset.title" - } - } - - var summaryLocalizationKey: String { - switch origin { - case .installation: return "error.installation.summary" - case .launch: return "error.launch.summary" - case .runtime: return "error.runtime.summary" - case .validation: return "error.validation.summary" - case .reset: return "error.reset.summary" - } - } - - var recoveryLocalizationKey: String { - switch recoveryAction { - case .retryInstallation: return "action.retry_installation" - case .tryLaunchAgain: return "action.try_again" - case .restartGame: return "action.restart_game" - case .repairInstallation: return "action.repair_installation" - case .none: return "" - } - } -} diff --git a/launcher/Sources/LauncherTelemetryNoticeView.swift b/launcher/Sources/LauncherTelemetryNoticeView.swift deleted file mode 100644 index 9991edc..0000000 --- a/launcher/Sources/LauncherTelemetryNoticeView.swift +++ /dev/null @@ -1,54 +0,0 @@ -import SwiftUI - -struct LauncherTelemetryNoticeView: View { - @ObservedObject var model: LauncherModel - @State private var extendedDiagnostics = false - - var body: some View { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.large) { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.small) { - Image(systemName: "chart.bar.doc.horizontal") - .font(.system(size: 24, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - .accessibilityHidden(true) - Text(LauncherL10n.text("telemetry.notice.title")) - .font(.system(size: 22, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - } - - Text(LauncherL10n.text("telemetry.notice.body")) - .font(.system(size: 13)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .fixedSize(horizontal: false, vertical: true) - - Toggle( - LauncherL10n.text("telemetry.extended.toggle"), - isOn: $extendedDiagnostics - ) - .toggleStyle(.checkbox) - .font(.system(size: 13, weight: .medium)) - - Spacer() - - HStack(spacing: LauncherTheme.Spacing.regular) { - Link( - LauncherL10n.text("telemetry.privacy_policy"), - destination: MacticianIdentity.privacyPolicyURL - ) - .font(.system(size: 12, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - Spacer() - Button(LauncherL10n.text("telemetry.continue")) { - model.completeTelemetryNotice( - extendedDiagnostics: extendedDiagnostics - ) - } - .buttonStyle(LauncherPrimaryButtonStyle()) - } - } - .padding(LauncherTheme.Spacing.xLarge) - .frame(width: 580, height: 390) - .background(LauncherTheme.ColorToken.surface) - .preferredColorScheme(.dark) - } -} diff --git a/launcher/Sources/LauncherTelemetryService.swift b/launcher/Sources/LauncherTelemetryService.swift deleted file mode 100644 index 797f799..0000000 --- a/launcher/Sources/LauncherTelemetryService.swift +++ /dev/null @@ -1,869 +0,0 @@ -import AppKit -import Darwin -import Foundation -import ImageIO - -enum LauncherMessageTrigger: String { - case launcherStarted = "launcher_started" - case gameClosed = "game_closed" -} - -struct LauncherAnnouncement: Identifiable { - let id: String - let title: String - let text: String - let image: NSImage? -} - -struct GameSessionTracker { - private(set) var startedAt: Date? - - mutating func start(at date: Date = Date()) { - guard startedAt == nil else { return } - startedAt = date - } - - mutating func finish(at date: Date = Date()) -> Int64? { - guard let startedAt else { return nil } - self.startedAt = nil - return max(1, Int64(date.timeIntervalSince(startedAt))) - } -} - -enum LauncherTelemetryConsentState: String { - case unknown - case denied - case granted -} - -struct LauncherTelemetrySettings: Codable, Equatable { - let profileID: String - let effectsQualityID: String - let displayWidth: Int - let displayHeight: Int - let displayDensity: Int - let uiScalePercent: Int - let guestMemoryMB: Int - let guestCPUCores: Int - - init( - profile: LaunchProfile, - effectsQuality: EffectsQuality, - uiScalePercent: Int, - androidMemoryMB: Int, - androidCPUCores: Int - ) { - profileID = profile.id - effectsQualityID = effectsQuality.id - displayWidth = profile.width - displayHeight = profile.height - displayDensity = profile.density - self.uiScalePercent = uiScalePercent - guestMemoryMB = androidMemoryMB - guestCPUCores = androidCPUCores - } - - enum CodingKeys: String, CodingKey { - case profileID = "profile_id" - case effectsQualityID = "effects_quality_id" - case displayWidth = "display_width" - case displayHeight = "display_height" - case displayDensity = "display_density" - case uiScalePercent = "ui_scale_percent" - case guestMemoryMB = "guest_memory_mb" - case guestCPUCores = "guest_cpu_cores" - } -} - -struct LauncherTelemetryDevice: Codable, Equatable { - let modelIdentifier: String - let macOSVersion: String - let physicalMemoryMB: Int - let logicalCPUCount: Int - - static func current(processInfo: ProcessInfo = .processInfo) -> LauncherTelemetryDevice { - let version = processInfo.operatingSystemVersion - return LauncherTelemetryDevice( - modelIdentifier: normalizedModelIdentifier(hardwareModelIdentifier()), - macOSVersion: "\(version.majorVersion).\(version.minorVersion).\(version.patchVersion)", - physicalMemoryMB: Int(processInfo.physicalMemory / 1_048_576), - logicalCPUCount: processInfo.processorCount - ) - } - - static func normalizedModelIdentifier(_ value: String?) -> String { - guard let value, - value.range( - of: #"^[0-9A-Za-z][0-9A-Za-z,_-]{0,63}$"#, - options: .regularExpression - ) != nil else { - return "unknown" - } - return value - } - - private static func hardwareModelIdentifier() -> String? { - var size = 0 - guard sysctlbyname("hw.model", nil, &size, nil, 0) == 0, - size > 1, - size <= 65 else { - return nil - } - var value = [CChar](repeating: 0, count: size) - guard sysctlbyname("hw.model", &value, &size, nil, 0) == 0 else { - return nil - } - return String(cString: value) - } - - enum CodingKeys: String, CodingKey { - case modelIdentifier = "model_identifier" - case macOSVersion = "macos_version" - case physicalMemoryMB = "physical_memory_mb" - case logicalCPUCount = "logical_cpu_count" - } -} - -final class LauncherTelemetryService { - typealias Loader = ( - _ request: URLRequest, - _ maximumBytes: Int, - _ completion: @escaping (Result<(Data, HTTPURLResponse), Error>) -> Void - ) -> Void - - static let currentConsentVersion = 1 - - private enum Constant { - static let apiBaseURL = URL(string: "https://sergeinaumov.dev/mactician/api/")! - static let firstSessionPendingKey = "telemetry.firstSession.pending.v2" - static let firstSessionCompletedKey = "telemetry.firstSession.completed.v2" - static let noticeShownKey = "telemetry.noticeShown.v1" - static let extendedConsentStateKey = "telemetry.extendedConsent.state.v1" - static let extendedConsentVersionKey = "telemetry.extendedConsent.version.v1" - static let extendedPendingEventsKey = "telemetry.extended.pendingEvents.v2" - static let legacyPendingEventsKey = "telemetry.pendingEvents.v1" - static let legacyInstallationIDKey = "telemetry.installationID.v1" - static let shownMessagesKey = "telemetry.shownMessages.v1" - static let maxExtendedPendingEvents = 16 - static let maxPendingBytes = 64 * 1024 - static let firstSessionLifetime: TimeInterval = 7 * 24 * 60 * 60 - static let maxShownMessages = 128 - static let maxMessageBytes = 16 * 1024 - static let maxImageBytes = 2 * 1024 * 1024 - static let maxImageDimension = 4_096 - static let maxImagePixels = 16_000_000 - } - - private struct FirstSessionEvent: Codable { - let schemaVersion: Int - let eventID: String - let event: String - let occurredOn: String - let durationBucket: String - let launcherVersion: String - let launcherBuild: String - - enum CodingKeys: String, CodingKey { - case schemaVersion = "schema_version" - case eventID = "event_id" - case event - case occurredOn = "occurred_on" - case durationBucket = "duration_bucket" - case launcherVersion = "launcher_version" - case launcherBuild = "launcher_build" - } - } - - private struct PendingFirstSession: Codable { - let createdAt: Date - let event: FirstSessionEvent - - enum CodingKeys: String, CodingKey { - case createdAt = "created_at" - case event - } - } - - private struct DiagnosticsEvent: Codable { - let schemaVersion: Int - let eventID: String - let event: String - let occurredAt: Date - let durationSeconds: Int64 - let launcherVersion: String - let launcherBuild: String - let consentVersion: Int - let launcherSettings: LauncherTelemetrySettings - let device: LauncherTelemetryDevice - - enum CodingKeys: String, CodingKey { - case schemaVersion = "schema_version" - case eventID = "event_id" - case event - case occurredAt = "occurred_at" - case durationSeconds = "duration_seconds" - case launcherVersion = "launcher_version" - case launcherBuild = "launcher_build" - case consentVersion = "consent_version" - case launcherSettings = "launcher_settings" - case device - } - } - - private enum PendingEvent { - case firstSession(PendingFirstSession) - case diagnostics(DiagnosticsEvent) - - var eventID: String { - switch self { - case let .firstSession(pending): return pending.event.eventID - case let .diagnostics(event): return event.eventID - } - } - } - - private struct MessageResponse: Decodable { - let schemaVersion: Int - let id: String - let trigger: String - let title: String - let text: String - let imageURL: URL? - let showOnce: Bool - - enum CodingKeys: String, CodingKey { - case schemaVersion = "schema_version" - case id - case trigger - case title - case text - case imageURL = "image_url" - case showOnce = "show_once" - } - } - - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.telemetry") - private let defaults: UserDefaults - private let apiBaseURL: URL - private let launcherVersion: String - private let launcherBuild: String - private let device: LauncherTelemetryDevice - private let loader: Loader - private var isFlushing = false - - init( - defaults: UserDefaults = .standard, - apiBaseURL: URL = Constant.apiBaseURL, - bundle: Bundle = .main, - device: LauncherTelemetryDevice = .current(), - loader: Loader? = nil - ) { - self.defaults = defaults - self.apiBaseURL = apiBaseURL - launcherVersion = Self.safeVersion( - bundle.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String, - fallback: "0.0.0" - ) - launcherBuild = Self.safeBuild( - bundle.object(forInfoDictionaryKey: "CFBundleVersion") as? String, - fallback: "local" - ) - self.device = device - self.loader = loader ?? { request, maximumBytes, completion in - SafeBoundedDataLoader.load( - request: request, - maximumBytes: maximumBytes, - completion: completion - ) - } - migrateLegacyTelemetry() - enforceConsentVersion() - discardExpiredFirstSession(now: Date()) - queue.async { [weak self] in self?.flushNextEvent() } - } - - var shouldShowNotice: Bool { - !defaults.bool(forKey: Constant.noticeShownKey) - } - - var isExtendedDiagnosticsEnabled: Bool { - consentState == .granted - && defaults.integer(forKey: Constant.extendedConsentVersionKey) - == Self.currentConsentVersion - } - - func completeNotice(extendedDiagnostics: Bool) { - queue.sync { - setConsentState(extendedDiagnostics ? .granted : .denied) - defaults.set(true, forKey: Constant.noticeShownKey) - _ = defaults.synchronize() - flushNextEvent() - } - } - - func setExtendedDiagnosticsEnabled(_ enabled: Bool) { - queue.sync { - setConsentState(enabled ? .granted : .denied) - _ = defaults.synchronize() - flushNextEvent() - } - } - - func recordGameSession( - durationSeconds: Int64, - launcherSettings: LauncherTelemetrySettings, - endedAt: Date = Date() - ) { - let duration = max(1, durationSeconds) - queue.sync { - createFirstSessionIfNeeded(durationSeconds: duration, endedAt: endedAt) - if isExtendedDiagnosticsEnabled { - var events = loadDiagnosticsEvents() - events.append(DiagnosticsEvent( - schemaVersion: 2, - eventID: UUID().uuidString.lowercased(), - event: "game_session_diagnostics", - occurredAt: endedAt, - durationSeconds: duration, - launcherVersion: launcherVersion, - launcherBuild: launcherBuild, - consentVersion: Self.currentConsentVersion, - launcherSettings: launcherSettings, - device: device - )) - saveDiagnosticsEvents(Array(events.suffix(Constant.maxExtendedPendingEvents))) - } else { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - } - _ = defaults.synchronize() - flushNextEvent() - } - } - - func fetchAnnouncement( - trigger: LauncherMessageTrigger, - completion: @escaping (LauncherAnnouncement?) -> Void - ) { - guard let url = Self.messageURL( - apiBaseURL: apiBaseURL, - trigger: trigger, - launcherVersion: launcherVersion - ) else { - DispatchQueue.main.async { completion(nil) } - return - } - var request = URLRequest(url: url, timeoutInterval: 5) - request.httpMethod = "GET" - request.setValue("application/json", forHTTPHeaderField: "Accept") - SafeBoundedDataLoader.load(request: request, maximumBytes: Constant.maxMessageBytes) { - [weak self] result in - guard let self else { return } - guard case let .success((data, response)) = result else { - DispatchQueue.main.async { completion(nil) } - return - } - if response.statusCode == 204 { - DispatchQueue.main.async { completion(nil) } - return - } - guard response.statusCode == 200, - Self.isJSON(response), - let message = try? JSONDecoder().decode(MessageResponse.self, from: data), - Self.isValid(message: message, expectedTrigger: trigger) else { - DispatchQueue.main.async { completion(nil) } - return - } - if let imageURL = message.imageURL, Self.isAllowedImageURL(imageURL, apiBaseURL: apiBaseURL) { - self.loadImage(from: imageURL) { image in - self.deliver(message: message, image: image, completion: completion) - } - } else { - self.deliver(message: message, image: nil, completion: completion) - } - } - } - - static func messageURL( - apiBaseURL: URL, - trigger: LauncherMessageTrigger, - launcherVersion: String - ) -> URL? { - let endpoint = apiBaseURL.appendingPathComponent("v1/messages", isDirectory: false) - guard var components = URLComponents(url: endpoint, resolvingAgainstBaseURL: false) else { - return nil - } - components.queryItems = [ - URLQueryItem(name: "trigger", value: trigger.rawValue), - URLQueryItem(name: "version", value: launcherVersion) - ] - return components.url - } - - private func flushNextEvent() { - guard !isFlushing else { return } - discardExpiredFirstSession(now: Date()) - let pending: PendingEvent? - if let firstSession = loadFirstSession() { - pending = .firstSession(firstSession) - } else if isExtendedDiagnosticsEnabled { - pending = loadDiagnosticsEvents().first.map(PendingEvent.diagnostics) - } else { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - pending = nil - } - guard let pending else { return } - let body: Data? - switch pending { - case let .firstSession(value): - body = Self.eventEncoder.encodeOrNil(value.event) - case let .diagnostics(value): - body = Self.eventEncoder.encodeOrNil(value) - } - guard let url = URL(string: "v1/events", relativeTo: apiBaseURL)?.absoluteURL, - let body else { - removePendingEvent(pending) - flushNextEvent() - return - } - var request = URLRequest(url: url, timeoutInterval: 5) - request.httpMethod = "POST" - request.httpBody = body - request.setValue("application/json", forHTTPHeaderField: "Content-Type") - request.setValue("application/json", forHTTPHeaderField: "Accept") - isFlushing = true - loader(request, 1_024) { [weak self] result in - self?.queue.async { - guard let self else { return } - self.isFlushing = false - guard case let .success((_, response)) = result else { return } - let status = response.statusCode - if (200..<300).contains(status) || status == 409 { - self.completePendingEvent(pending) - } else if (400..<500).contains(status), status != 408, status != 429 { - self.terminatePendingEvent(pending) - } else { - return - } - _ = self.defaults.synchronize() - self.flushNextEvent() - } - } - } - - private func createFirstSessionIfNeeded(durationSeconds: Int64, endedAt: Date) { - guard !defaults.bool(forKey: Constant.firstSessionCompletedKey) else { return } - if loadFirstSession() != nil { - discardExpiredFirstSession(now: Date()) - return - } - let pending = PendingFirstSession( - createdAt: Date(), - event: FirstSessionEvent( - schemaVersion: 2, - eventID: UUID().uuidString.lowercased(), - event: "first_game_session", - occurredOn: Self.utcDay(for: endedAt), - durationBucket: Self.durationBucket(for: durationSeconds), - launcherVersion: launcherVersion, - launcherBuild: launcherBuild - ) - ) - guard let data = Self.eventEncoder.encodeOrNil(pending), - data.count <= Constant.maxPendingBytes else { - defaults.set(true, forKey: Constant.firstSessionCompletedKey) - return - } - defaults.set(data, forKey: Constant.firstSessionPendingKey) - } - - private func loadFirstSession() -> PendingFirstSession? { - guard let data = defaults.data(forKey: Constant.firstSessionPendingKey), - data.count <= Constant.maxPendingBytes, - let pending = try? Self.eventDecoder.decode(PendingFirstSession.self, from: data) else { - defaults.removeObject(forKey: Constant.firstSessionPendingKey) - return nil - } - return pending - } - - private func loadDiagnosticsEvents() -> [DiagnosticsEvent] { - guard isExtendedDiagnosticsEnabled, - let data = defaults.data(forKey: Constant.extendedPendingEventsKey), - data.count <= Constant.maxPendingBytes, - let events = try? Self.eventDecoder.decode([DiagnosticsEvent].self, from: data) else { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - return [] - } - return Array(events.suffix(Constant.maxExtendedPendingEvents)) - } - - private func saveDiagnosticsEvents(_ events: [DiagnosticsEvent]) { - guard !events.isEmpty else { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - return - } - guard let data = Self.eventEncoder.encodeOrNil(events), - data.count <= Constant.maxPendingBytes else { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - return - } - defaults.set(data, forKey: Constant.extendedPendingEventsKey) - } - - private func completePendingEvent(_ pending: PendingEvent) { - switch pending { - case .firstSession: - defaults.set(true, forKey: Constant.firstSessionCompletedKey) - defaults.removeObject(forKey: Constant.firstSessionPendingKey) - case .diagnostics: - removePendingEvent(pending) - } - } - - private func terminatePendingEvent(_ pending: PendingEvent) { - if case .firstSession = pending { - defaults.set(true, forKey: Constant.firstSessionCompletedKey) - } - removePendingEvent(pending) - } - - private func removePendingEvent(_ pending: PendingEvent) { - switch pending { - case .firstSession: - defaults.removeObject(forKey: Constant.firstSessionPendingKey) - case .diagnostics: - saveDiagnosticsEvents( - loadDiagnosticsEvents().filter { $0.eventID != pending.eventID } - ) - } - } - - private func migrateLegacyTelemetry() { - defaults.removeObject(forKey: Constant.legacyInstallationIDKey) - defaults.removeObject(forKey: Constant.legacyPendingEventsKey) - } - - private var consentState: LauncherTelemetryConsentState { - LauncherTelemetryConsentState( - rawValue: defaults.string(forKey: Constant.extendedConsentStateKey) ?? "" - ) ?? .unknown - } - - private func enforceConsentVersion() { - if consentState == .granted, - defaults.integer(forKey: Constant.extendedConsentVersionKey) - != Self.currentConsentVersion { - defaults.set( - LauncherTelemetryConsentState.unknown.rawValue, - forKey: Constant.extendedConsentStateKey - ) - defaults.removeObject(forKey: Constant.extendedConsentVersionKey) - defaults.removeObject(forKey: Constant.noticeShownKey) - } - if consentState != .granted { - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - } - } - - private func setConsentState(_ state: LauncherTelemetryConsentState) { - defaults.set(state.rawValue, forKey: Constant.extendedConsentStateKey) - if state == .granted { - defaults.set( - Self.currentConsentVersion, - forKey: Constant.extendedConsentVersionKey - ) - } else { - defaults.removeObject(forKey: Constant.extendedConsentVersionKey) - defaults.removeObject(forKey: Constant.extendedPendingEventsKey) - } - } - - private func discardExpiredFirstSession(now: Date) { - guard let pending = loadFirstSession(), - now.timeIntervalSince(pending.createdAt) > Constant.firstSessionLifetime else { - return - } - defaults.removeObject(forKey: Constant.firstSessionPendingKey) - defaults.set(true, forKey: Constant.firstSessionCompletedKey) - } - - static func durationBucket(for durationSeconds: Int64) -> String { - switch max(1, durationSeconds) { - case ..<300: return "under_5m" - case ..<900: return "5_15m" - case ..<1_800: return "15_30m" - case ..<3_600: return "30_60m" - case ..<7_200: return "60_120m" - case ...14_400: return "120_240m" - default: return "over_240m" - } - } - - private static func utcDay(for date: Date) -> String { - var calendar = Calendar(identifier: .gregorian) - calendar.timeZone = TimeZone(secondsFromGMT: 0)! - let components = calendar.dateComponents([.year, .month, .day], from: date) - return String( - format: "%04d-%02d-%02d", - components.year ?? 1970, - components.month ?? 1, - components.day ?? 1 - ) - } - - private func loadImage(from url: URL, completion: @escaping (NSImage?) -> Void) { - var request = URLRequest(url: url, timeoutInterval: 8) - request.httpMethod = "GET" - request.setValue("image/png, image/jpeg", forHTTPHeaderField: "Accept") - SafeBoundedDataLoader.load(request: request, maximumBytes: Constant.maxImageBytes) { result in - guard case let .success((data, response)) = result, - response.statusCode == 200, - Self.isAllowedImageMIME(response.mimeType), - let image = Self.decodeSafeImage(data) else { - completion(nil) - return - } - completion(image) - } - } - - private func deliver( - message: MessageResponse, - image: NSImage?, - completion: @escaping (LauncherAnnouncement?) -> Void - ) { - queue.async { [weak self] in - guard let self else { return } - var shown = defaults.stringArray(forKey: Constant.shownMessagesKey) ?? [] - if message.showOnce && shown.contains(message.id) { - DispatchQueue.main.async { completion(nil) } - return - } - if message.showOnce { - shown.removeAll(where: { $0 == message.id }) - shown.append(message.id) - shown = Array(shown.suffix(Constant.maxShownMessages)) - defaults.set(shown, forKey: Constant.shownMessagesKey) - } - let announcement = LauncherAnnouncement( - id: message.id, - title: message.title, - text: message.text, - image: image - ) - DispatchQueue.main.async { completion(announcement) } - } - } - - private static func safeVersion(_ value: String?, fallback: String) -> String { - guard let value, - value.range( - of: #"^[0-9]{1,5}(?:\.[0-9]{1,5}){0,3}(?:[-+][0-9A-Za-z.-]{1,40})?$"#, - options: .regularExpression - ) != nil else { - return fallback - } - return value - } - - private static func safeBuild(_ value: String?, fallback: String) -> String { - guard let value, - value.range(of: #"^[0-9A-Za-z][0-9A-Za-z._-]{0,31}$"#, options: .regularExpression) != nil else { - return fallback - } - return value - } - - private static func isValid( - message: MessageResponse, - expectedTrigger: LauncherMessageTrigger - ) -> Bool { - message.schemaVersion == 1 - && message.trigger == expectedTrigger.rawValue - && message.id.range( - of: #"^[0-9A-Za-z][0-9A-Za-z._-]{0,63}$"#, - options: .regularExpression - ) != nil - && !message.title.isEmpty - && message.title.utf8.count <= 120 - && !message.text.isEmpty - && message.text.utf8.count <= 4_000 - } - - private static func isJSON(_ response: HTTPURLResponse) -> Bool { - response.mimeType?.lowercased() == "application/json" - } - - private static func isAllowedImageMIME(_ value: String?) -> Bool { - value?.lowercased() == "image/png" || value?.lowercased() == "image/jpeg" - } - - private static func isAllowedImageURL(_ url: URL, apiBaseURL: URL) -> Bool { - guard url.scheme?.lowercased() == "https", - url.user == nil, - url.password == nil, - url.host?.lowercased() == apiBaseURL.host?.lowercased(), - url.port == nil || url.port == 443, - url.query == nil, - url.fragment == nil else { - return false - } - let prefix = apiBaseURL.appendingPathComponent("v1/images", isDirectory: true).path - return url.path.hasPrefix(prefix) && !url.path.dropFirst(prefix.count).contains("/") - } - - private static func decodeSafeImage(_ data: Data) -> NSImage? { - let sourceOptions = [kCGImageSourceShouldCache: false] as CFDictionary - guard let source = CGImageSourceCreateWithData(data as CFData, sourceOptions), - CGImageSourceGetCount(source) == 1, - let properties = CGImageSourceCopyPropertiesAtIndex(source, 0, sourceOptions) - as? [CFString: Any], - let width = properties[kCGImagePropertyPixelWidth] as? NSNumber, - let height = properties[kCGImagePropertyPixelHeight] as? NSNumber else { - return nil - } - let pixelWidth = width.intValue - let pixelHeight = height.intValue - guard pixelWidth > 0, - pixelHeight > 0, - pixelWidth <= Constant.maxImageDimension, - pixelHeight <= Constant.maxImageDimension, - pixelWidth <= Constant.maxImagePixels / pixelHeight else { - return nil - } - let decodeOptions = [kCGImageSourceShouldCacheImmediately: true] as CFDictionary - guard let decoded = CGImageSourceCreateImageAtIndex(source, 0, decodeOptions) else { - return nil - } - return NSImage( - cgImage: decoded, - size: NSSize(width: decoded.width, height: decoded.height) - ) - } - - private static let eventEncoder: JSONEncoder = { - let encoder = JSONEncoder() - encoder.dateEncodingStrategy = .iso8601 - return encoder - }() - - private static let eventDecoder: JSONDecoder = { - let decoder = JSONDecoder() - decoder.dateDecodingStrategy = .iso8601 - return decoder - }() -} - -private enum SafeBoundedDataLoaderError: Error { - case invalidResponse - case responseTooLarge -} - -private final class SafeBoundedDataLoader: NSObject, URLSessionDataDelegate, URLSessionTaskDelegate { - typealias ResultValue = Result<(Data, HTTPURLResponse), Error> - - private let maximumBytes: Int - private var completion: ((ResultValue) -> Void)? - private var response: HTTPURLResponse? - private var data = Data() - private var session: URLSession? - private var exceededLimit = false - - private init(maximumBytes: Int, completion: @escaping (ResultValue) -> Void) { - self.maximumBytes = maximumBytes - self.completion = completion - } - - static func load( - request: URLRequest, - maximumBytes: Int, - completion: @escaping (ResultValue) -> Void - ) { - let loader = SafeBoundedDataLoader(maximumBytes: maximumBytes, completion: completion) - let configuration = URLSessionConfiguration.ephemeral - configuration.requestCachePolicy = .reloadIgnoringLocalCacheData - configuration.timeoutIntervalForRequest = request.timeoutInterval - configuration.timeoutIntervalForResource = max(request.timeoutInterval, 8) - configuration.httpShouldSetCookies = false - configuration.urlCache = nil - configuration.httpMaximumConnectionsPerHost = 1 - let delegateQueue = OperationQueue() - delegateQueue.maxConcurrentOperationCount = 1 - let session = URLSession(configuration: configuration, delegate: loader, delegateQueue: delegateQueue) - loader.session = session - session.dataTask(with: request).resume() - } - - func urlSession( - _ session: URLSession, - dataTask: URLSessionDataTask, - didReceive response: URLResponse, - completionHandler: @escaping (URLSession.ResponseDisposition) -> Void - ) { - guard let response = response as? HTTPURLResponse else { - completionHandler(.cancel) - finish(.failure(SafeBoundedDataLoaderError.invalidResponse)) - return - } - let expected = response.expectedContentLength - guard expected <= Int64(maximumBytes) else { - exceededLimit = true - completionHandler(.cancel) - return - } - self.response = response - if expected > 0 { - data.reserveCapacity(Int(expected)) - } - completionHandler(.allow) - } - - func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive chunk: Data) { - guard chunk.count <= maximumBytes - data.count else { - exceededLimit = true - dataTask.cancel() - return - } - data.append(chunk) - } - - func urlSession( - _ session: URLSession, - task: URLSessionTask, - didCompleteWithError error: Error? - ) { - if exceededLimit { - finish(.failure(SafeBoundedDataLoaderError.responseTooLarge)) - } else if let error { - finish(.failure(error)) - } else if let response { - finish(.success((data, response))) - } else { - finish(.failure(SafeBoundedDataLoaderError.invalidResponse)) - } - } - - func urlSession( - _ session: URLSession, - task: URLSessionTask, - willPerformHTTPRedirection response: HTTPURLResponse, - newRequest request: URLRequest, - completionHandler: @escaping (URLRequest?) -> Void - ) { - completionHandler(nil) - } - - private func finish(_ result: ResultValue) { - guard let completion else { return } - self.completion = nil - completion(result) - session?.finishTasksAndInvalidate() - session = nil - } -} - -private extension JSONEncoder { - func encodeOrNil(_ value: T) -> Data? { - try? encode(value) - } -} diff --git a/launcher/Sources/LauncherTheme.swift b/launcher/Sources/LauncherTheme.swift deleted file mode 100644 index 98958eb..0000000 --- a/launcher/Sources/LauncherTheme.swift +++ /dev/null @@ -1,58 +0,0 @@ -import SwiftUI - -enum LauncherTheme { - enum ColorToken { - static let window = Color(red: 0.006, green: 0.012, blue: 0.024) - static let surface = Color(red: 0.018, green: 0.035, blue: 0.065) - static let elevatedSurface = Color(red: 0.035, green: 0.065, blue: 0.105) - static let raisedControl = Color(red: 0.055, green: 0.082, blue: 0.12) - static let textPrimary = Color.white - static let textSecondary = Color(red: 0.64, green: 0.69, blue: 0.75) - static let textTertiary = Color(red: 0.48, green: 0.56, blue: 0.65) - static let primaryAction = Color(red: 0.29, green: 0.96, blue: 0.58) - static let interactive = Color(red: 0.69, green: 0.37, blue: 0.98) - static let success = Color(red: 0.29, green: 0.96, blue: 0.58) - static let warning = Color(red: 0.78, green: 0.65, blue: 0.36) - static let danger = Color(red: 0.94, green: 0.3, blue: 0.32) - static let neutralBorder = Color.white.opacity(0.13) - } - - enum Spacing { - static let xSmall: CGFloat = 4 - static let small: CGFloat = 8 - static let medium: CGFloat = 12 - static let regular: CGFloat = 16 - static let large: CGFloat = 24 - static let xLarge: CGFloat = 32 - } - - enum Metric { - static let outerInset: CGFloat = 16 - static let headerHeight: CGFloat = 56 - static let trafficLightReserve: CGFloat = 56 - static let stateDeckInset: CGFloat = 24 - static let stateDeckPadding: CGFloat = 32 - static let contentMaxWidth: CGFloat = 1120 - static let standardControlHeight: CGFloat = 36 - static let primaryControlHeight: CGFloat = 48 - static let controlRadius: CGFloat = 6 - static let surfaceRadius: CGFloat = 12 - static let sheetWidth: CGFloat = 640 - } -} - -extension View { - func launcherSurface( - radius: CGFloat = LauncherTheme.Metric.surfaceRadius, - fill: Color = LauncherTheme.ColorToken.elevatedSurface.opacity(0.96) - ) -> some View { - background( - RoundedRectangle(cornerRadius: radius, style: .continuous) - .fill(fill) - ) - .overlay( - RoundedRectangle(cornerRadius: radius, style: .continuous) - .stroke(LauncherTheme.ColorToken.neutralBorder, lineWidth: 1) - ) - } -} diff --git a/launcher/Sources/LauncherUpdateController.swift b/launcher/Sources/LauncherUpdateController.swift deleted file mode 100644 index 9ba6fa3..0000000 --- a/launcher/Sources/LauncherUpdateController.swift +++ /dev/null @@ -1,32 +0,0 @@ -import Combine -import Foundation -import Sparkle - -@MainActor -final class LauncherUpdateController: ObservableObject { - let updaterController: SPUStandardUpdaterController - @Published private(set) var canCheckForUpdates = false - private var canCheckForUpdatesSubscription: AnyCancellable? - - init(startingUpdater: Bool = true) { - updaterController = SPUStandardUpdaterController( - startingUpdater: startingUpdater, - updaterDelegate: nil, - userDriverDelegate: nil - ) - canCheckForUpdatesSubscription = updaterController.updater - .publisher(for: \.canCheckForUpdates) - .receive(on: RunLoop.main) - .sink { [weak self] value in - self?.canCheckForUpdates = value - } - - if startingUpdater && updaterController.updater.automaticallyChecksForUpdates { - updaterController.updater.checkForUpdatesInBackground() - } - } - - func checkForUpdates() { - updaterController.checkForUpdates(nil) - } -} diff --git a/launcher/Sources/LauncherView.swift b/launcher/Sources/LauncherView.swift deleted file mode 100644 index 602c1b7..0000000 --- a/launcher/Sources/LauncherView.swift +++ /dev/null @@ -1,218 +0,0 @@ -import AppKit -import SwiftUI - -struct LauncherView: View { - @ObservedObject var model: LauncherModel - @ObservedObject var updateController: LauncherUpdateController - @State private var showSettings = false - @State private var showResetConfirmation = false - - private let heroImage: NSImage? = { - guard let url = Bundle.main.url(forResource: "MacticianHero", withExtension: "png") else { - return nil - } - return NSImage(contentsOf: url) - }() - - var body: some View { - GeometryReader { geometry in - let surfaceWidth = max(0, geometry.size.width - LauncherTheme.Metric.outerInset * 2) - let surfaceHeight = max(0, geometry.size.height - LauncherTheme.Metric.outerInset * 2) - ZStack { - LauncherTheme.ColorToken.window.ignoresSafeArea() - clientSurface( - compactHeight: geometry.size.height < 720, - availableWidth: surfaceWidth, - availableHeight: surfaceHeight - ) - } - } - .preferredColorScheme(.dark) - .sheet(isPresented: $model.shouldShowTelemetryNotice) { - LauncherTelemetryNoticeView(model: model) - .interactiveDismissDisabled() - } - .sheet(isPresented: $showSettings) { - LauncherSettingsView( - model: model, - updateController: updateController, - showResetConfirmation: $showResetConfirmation - ) - } - .sheet(item: $model.announcement) { announcement in - LauncherAnnouncementView( - announcement: announcement, - dismiss: model.dismissAnnouncement - ) - .interactiveDismissDisabled() - } - .onReceive(NotificationCenter.default.publisher(for: NSApplication.didBecomeActiveNotification)) { _ in - model.refreshHotkeyStatus() - } - } - - private func clientSurface( - compactHeight: Bool, - availableWidth: CGFloat, - availableHeight: CGFloat - ) -> some View { - ZStack { - artwork - - VStack(spacing: 0) { - header - hero(compact: compactHeight) - Spacer(minLength: LauncherTheme.Spacing.medium) - LauncherStateDeck(model: model, showSettings: $showSettings) - .frame( - width: min( - LauncherTheme.Metric.contentMaxWidth, - max(0, availableWidth - LauncherTheme.Metric.stateDeckInset * 2) - ) - ) - footer - } - .frame(width: availableWidth) - } - .frame(width: availableWidth, height: availableHeight) - .background(LauncherTheme.ColorToken.surface) - .clipShape( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.surfaceRadius, style: .continuous) - ) - .overlay( - RoundedRectangle(cornerRadius: LauncherTheme.Metric.surfaceRadius, style: .continuous) - .stroke(LauncherTheme.ColorToken.neutralBorder, lineWidth: 1) - ) - .shadow(color: Color.black.opacity(0.52), radius: 22, y: 10) - } - - private var artwork: some View { - ZStack { - if let heroImage { - Image(nsImage: heroImage) - .resizable() - .scaledToFill() - .frame(maxWidth: .infinity, maxHeight: .infinity) - .clipped() - } else { - LauncherTheme.ColorToken.surface - } - - LinearGradient( - stops: [ - .init(color: LauncherTheme.ColorToken.surface.opacity(0.06), location: 0), - .init(color: LauncherTheme.ColorToken.surface.opacity(0.22), location: 0.42), - .init(color: LauncherTheme.ColorToken.surface.opacity(0.9), location: 0.78), - .init(color: LauncherTheme.ColorToken.surface, location: 1) - ], - startPoint: .top, - endPoint: .bottom - ) - - LinearGradient( - colors: [LauncherTheme.ColorToken.surface.opacity(0.9), .clear], - startPoint: .leading, - endPoint: .trailing - ) - } - .accessibilityHidden(true) - } - - private var header: some View { - HStack(spacing: 0) { - Color.clear - .frame(width: LauncherTheme.Metric.trafficLightReserve) - - LauncherBrandMark() - .padding(.trailing, LauncherTheme.Spacing.medium) - - VStack(alignment: .leading, spacing: 2) { - Text("Mactician") - .font(.system(size: 15, weight: .bold, design: .rounded)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - Text(LauncherL10n.text("header.subtitle")) - .font(.system(size: 11, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - } - - LauncherDragRegion() - .frame(maxWidth: .infinity, maxHeight: .infinity) - .accessibilityHidden(true) - - HStack(spacing: LauncherTheme.Spacing.small) { - Circle() - .fill(LauncherTheme.ColorToken.interactive) - .frame(width: 7, height: 7) - .accessibilityHidden(true) - Text(LauncherL10n.format("header.pbe_version_format", model.gameDisplayVersion)) - .font(.system(size: 12, weight: .semibold, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - } - .padding(.leading, LauncherTheme.Spacing.medium) - .accessibilityElement(children: .combine) - - Text(LauncherBuildInfo.display) - .font(.system(size: 11, weight: .medium, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - .padding(.leading, LauncherTheme.Spacing.medium) - - Button { showSettings = true } label: { - Image(systemName: "gearshape.fill") - } - .buttonStyle(LauncherIconButtonStyle()) - .accessibilityLabel(LauncherL10n.text("settings.open")) - .help(LauncherL10n.text("settings.open")) - .padding(.leading, LauncherTheme.Spacing.medium) - } - .padding(.trailing, LauncherTheme.Spacing.xLarge) - .frame(height: LauncherTheme.Metric.headerHeight) - .background(Color.black.opacity(0.2)) - .overlay(alignment: .bottom) { LauncherDivider() } - } - - private func hero(compact: Bool) -> some View { - HStack { - VStack(alignment: .leading, spacing: LauncherTheme.Spacing.small) { - Text(LauncherL10n.text("hero.eyebrow")) - .font(.system(size: 11, weight: .semibold, design: .rounded)) - .tracking(1.1) - .foregroundColor(LauncherTheme.ColorToken.interactive) - - Text(LauncherL10n.text("hero.title")) - .font(.system(size: compact ? 30 : 34, weight: .black, design: .serif)) - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - .shadow(color: Color.black.opacity(0.45), radius: 6, y: 2) - - if !compact { - Text(LauncherL10n.text("hero.description")) - .font(.system(size: 13)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - } - } - Spacer() - } - .padding(.horizontal, LauncherTheme.Metric.trafficLightReserve) - .frame(height: compact ? 104 : 152, alignment: .leading) - } - - private var footer: some View { - HStack(spacing: LauncherTheme.Spacing.small) { - Label(LauncherL10n.text("footer.private_build"), systemImage: "lock.fill") - Text("\u{00b7}") - Text(LauncherL10n.text("footer.apple_silicon")) - Text("\u{00b7}") - Link(destination: MacticianIdentity.websiteURL) { - Label(LauncherL10n.text("footer.developer_website"), systemImage: "link") - .foregroundColor(LauncherTheme.ColorToken.interactive) - } - .buttonStyle(.plain) - .help(LauncherL10n.text("footer.developer_website")) - Spacer() - Text(LauncherL10n.text("footer.legal")) - } - .font(.system(size: 10, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - .padding(.horizontal, LauncherTheme.Metric.trafficLightReserve) - .frame(height: 36) - } -} diff --git a/launcher/Sources/MacticianApp.swift b/launcher/Sources/MacticianApp.swift deleted file mode 100644 index 13222f9..0000000 --- a/launcher/Sources/MacticianApp.swift +++ /dev/null @@ -1,112 +0,0 @@ -import AppKit -import SwiftUI - -@main -struct MacticianApp: App { - @NSApplicationDelegateAdaptor(LauncherAppDelegate.self) private var appDelegate - @StateObject private var model: LauncherModel - @StateObject private var updateController: LauncherUpdateController - @State private var showAbout = false - - init() { - let model = LauncherModel() - _model = StateObject(wrappedValue: model) - _updateController = StateObject(wrappedValue: LauncherUpdateController()) - LauncherAppDelegate.pendingModel = model - } - - var body: some Scene { - WindowGroup("Mactician") { - LauncherView(model: model, updateController: updateController) - .frame(minWidth: 1080, minHeight: 660) - .sheet(isPresented: $showAbout) { - MacticianAboutView() - } - } - .windowStyle(.hiddenTitleBar) - .commands { - CommandGroup(replacing: .newItem) { } - CommandGroup(replacing: .appInfo) { - Button("About Mactician") { - showAbout = true - } - } - CommandGroup(after: .appInfo) { - Button(LauncherL10n.text("updates.check")) { - updateController.checkForUpdates() - } - .disabled(!updateController.canCheckForUpdates) - } - } - } -} - -struct MacticianAboutView: View { - private var version: String { - Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "dev" - } - - private var build: String { - Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as? String ?? "local" - } - - var body: some View { - VStack(spacing: LauncherTheme.Spacing.regular) { - MacticianMark() - .frame(width: 88, height: 88) - .accessibilityLabel("Mactician") - VStack(spacing: LauncherTheme.Spacing.xSmall) { - Text("Mactician") - .font(.system(size: 28, weight: .bold, design: .rounded)) - Text(LauncherL10n.text("about.descriptor")) - .font(.system(size: 14, weight: .medium)) - .foregroundColor(LauncherTheme.ColorToken.textSecondary) - Text("Version \(version) (\(build))") - .font(.system(size: 12, design: .monospaced)) - .foregroundColor(LauncherTheme.ColorToken.textTertiary) - } - VStack(spacing: LauncherTheme.Spacing.xSmall) { - Text("Free and open source.") - Text("Built for two tacticians. Shared with everyone.") - } - .font(.system(size: 13)) - .multilineTextAlignment(.center) - HStack(spacing: LauncherTheme.Spacing.regular) { - aboutLink("Website", destination: MacticianIdentity.websiteURL) - aboutLink("GitHub", destination: MacticianIdentity.sourceURL) - aboutLink("Technical story", destination: MacticianIdentity.technicalStoryURL) - aboutLink("Report an issue", destination: MacticianIdentity.issueURL) - } - } - .foregroundColor(LauncherTheme.ColorToken.textPrimary) - .padding(LauncherTheme.Spacing.xLarge) - .frame(width: 560, height: 360) - .background(LauncherTheme.ColorToken.surface) - .preferredColorScheme(.dark) - } - - private func aboutLink(_ title: String, destination: URL) -> some View { - Link(title, destination: destination) - .font(.system(size: 12, weight: .semibold)) - .foregroundColor(LauncherTheme.ColorToken.interactive) - } -} - -@MainActor -final class LauncherAppDelegate: NSObject, NSApplicationDelegate { - static weak var pendingModel: LauncherModel? - - func applicationDidFinishLaunching(_ notification: Notification) { - NSApp.setActivationPolicy(.regular) - NSApp.activate(ignoringOtherApps: true) - } - - func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - true - } - - func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { - Self.pendingModel?.shutdown() - return .terminateNow - } -} diff --git a/launcher/Sources/RiotLoginAnimationRepairService.swift b/launcher/Sources/RiotLoginAnimationRepairService.swift deleted file mode 100644 index aad8938..0000000 --- a/launcher/Sources/RiotLoginAnimationRepairService.swift +++ /dev/null @@ -1,366 +0,0 @@ -import Foundation - -/// Repairs a Chromium compositor artifact in Riot's login WebView. -/// -/// The login page leaves its two field wrappers in finished, fill-forwards CSS -/// animations. With the guest ANGLE renderer those finished animation layers -/// can disappear even though the DOM remains visible and interactive. This -/// service connects to the app's local WebView DevTools socket and removes only -/// those two presentation animations. It never focuses a field, opens the -/// keyboard, or reads/writes form values. -final class RiotLoginAnimationRepairService { - private static let package = "com.riotgames.league.teamfighttactics.pbe" - private static let loginActivity = "com.riotgames.platformui.mobilefre.MobileFREWebViewActivity" - private static let loginComponent = "\(package)/\(loginActivity)" - private static let adbServerPort = "5038" - - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.riot-login-animation-repair") - private let generationLock = NSLock() - private var generation = 0 - - func start(adb: URL, serial: String = "emulator-5582", log: URL) { - let token = nextGeneration() - queue.async { [weak self] in - self?.watch(adb: adb, serial: serial, log: log, generation: token) - } - } - - func stop() { - _ = nextGeneration() - } - - private func watch(adb: URL, serial: String, log: URL, generation token: Int) { - var repairedPID: Int? - var lastFailureLog = Date.distantPast - - while isCurrent(token) { - autoreleasepool { - guard deviceIsReady(adb: adb, serial: serial), - loginIsTopActivity(adb: adb, serial: serial) else { - repairedPID = nil - return - } - - guard let pid = applicationPID(adb: adb, serial: serial) else { - return - } - guard repairedPID != pid else { return } - - do { - let result = try repair(adb: adb, serial: serial, pid: pid) - guard result.fields == 2, result.wrappers == 2, result.remainingAnimations == 0 else { - throw RepairError.incomplete( - "fields=\(result.fields), wrappers=\(result.wrappers), animations=\(result.remainingAnimations)" - ) - } - repairedPID = pid - SystemServices.appendLog( - "Riot login WebView: removed finished field animations; focus, keyboard, and form data were unchanged.", - to: log - ) - } catch { - // The activity becomes top-resumed before Chromium exposes - // its page and DevTools socket. Retry quietly during that - // normal startup window, but leave a bounded diagnostic. - if Date().timeIntervalSince(lastFailureLog) >= 10 { - SystemServices.appendLog( - "Riot login WebView repair is waiting for Chromium: \(error.localizedDescription)", - to: log - ) - lastFailureLog = Date() - } - } - } - Thread.sleep(forTimeInterval: 0.4) - } - } - - private func deviceIsReady(adb: URL, serial: String) -> Bool { - guard let state = try? runADB(adb, serial: serial, arguments: ["get-state"]) else { return false } - return state.trimmingCharacters(in: .whitespacesAndNewlines) == "device" - } - - private func loginIsTopActivity(adb: URL, serial: String) -> Bool { - guard let activities = try? runADB( - adb, - serial: serial, - arguments: ["shell", "dumpsys", "activity", "activities"] - ) else { return false } - guard let topLine = activities.split(separator: "\n").first(where: { - $0.contains("topResumedActivity=ActivityRecord") - }) else { return false } - return topLine.contains(Self.loginComponent) - } - - private func applicationPID(adb: URL, serial: String) -> Int? { - guard let output = try? runADB( - adb, - serial: serial, - arguments: ["shell", "pidof", Self.package] - ) else { return nil } - return output.split(whereSeparator: { $0.isWhitespace }).compactMap { Int($0) }.first - } - - private func repair(adb: URL, serial: String, pid: Int) throws -> RepairResult { - let socket = "localabstract:webview_devtools_remote_\(pid)" - let output = try runADB( - adb, - serial: serial, - arguments: ["forward", "tcp:0", socket] - ) - guard let port = Int(output.trimmingCharacters(in: .whitespacesAndNewlines)) else { - throw RepairError.invalidForward(output) - } - defer { - _ = try? runADB( - adb, - serial: serial, - arguments: ["forward", "--remove", "tcp:\(port)"] - ) - } - - let configuration = URLSessionConfiguration.ephemeral - configuration.connectionProxyDictionary = [:] - configuration.timeoutIntervalForRequest = 3 - configuration.timeoutIntervalForResource = 4 - let session = URLSession(configuration: configuration) - defer { session.invalidateAndCancel() } - - let target = try webViewTarget(port: port, session: session) - let connection = CDPConnection(url: target, session: session) - defer { connection.close() } - try connection.connect() - _ = try connection.call(method: "Runtime.enable") - let response = try connection.call( - method: "Runtime.evaluate", - parameters: [ - "expression": Self.repairExpression, - "returnByValue": true, - "awaitPromise": true - ] - ) - return try RepairResult(response: response) - } - - private func webViewTarget(port: Int, session: URLSession) throws -> URL { - guard let url = URL(string: "http://127.0.0.1:\(port)/json/list") else { - throw RepairError.invalidForward("tcp:\(port)") - } - let data = try session.synchronousData(from: url, timeout: 4) - let targets = try JSONDecoder().decode([DevToolsTarget].self, from: data) - let target = targets.first(where: { $0.type == "page" && $0.webSocketDebuggerUrl != nil }) - ?? targets.first(where: { $0.webSocketDebuggerUrl != nil }) - guard let rawURL = target?.webSocketDebuggerUrl, let socketURL = URL(string: rawURL) else { - throw RepairError.missingTarget - } - return socketURL - } - - private func runADB(_ adb: URL, serial: String, arguments: [String]) throws -> String { - try SystemServices.run( - adb, - ["-s", serial] + arguments, - environment: [ - "ANDROID_ADB_SERVER_PORT": Self.adbServerPort, - "ADB_MDNS_AUTO_CONNECT": "" - ] - ) - } - - private func nextGeneration() -> Int { - generationLock.lock() - defer { generationLock.unlock() } - generation += 1 - return generation - } - - private func isCurrent(_ token: Int) -> Bool { - generationLock.lock() - defer { generationLock.unlock() } - return generation == token - } - - private static let repairExpression = #""" - (() => { - const fields = Array.from(document.querySelectorAll( - 'input[name="username"], input[name="password"]' - )); - const wrappers = Array.from(new Set(fields - .map((field) => field.closest('.field__input.field__input--animate')) - .filter(Boolean))); - if (fields.length !== 2 || wrappers.length !== 2) { - return { fields: fields.length, wrappers: wrappers.length, remainingAnimations: -1 }; - } - - const styleId = 'tft-stable-login-fields'; - let style = document.getElementById(styleId); - if (!style) { - style = document.createElement('style'); - style.id = styleId; - style.textContent = - '.field__input--animate {' + - 'animation: none !important;' + - 'opacity: 1 !important;' + - 'transform: none !important;' + - '}'; - document.head.appendChild(style); - } - - wrappers.forEach((wrapper) => { - wrapper.getAnimations().forEach((animation) => animation.cancel()); - wrapper.style.animation = 'none'; - wrapper.style.opacity = '1'; - wrapper.style.transform = 'none'; - }); - document.documentElement.getBoundingClientRect(); - const remainingAnimations = wrappers.reduce( - (count, wrapper) => count + wrapper.getAnimations().length, - 0 - ); - return { fields: fields.length, wrappers: wrappers.length, remainingAnimations }; - })() - """# -} - -private struct DevToolsTarget: Decodable { - let type: String? - let webSocketDebuggerUrl: String? -} - -private struct RepairResult { - let fields: Int - let wrappers: Int - let remainingAnimations: Int - - init(response: [String: Any]) throws { - guard let result = response["result"] as? [String: Any], - let remoteObject = result["result"] as? [String: Any], - let value = remoteObject["value"] as? [String: Any], - let fields = value["fields"] as? Int, - let wrappers = value["wrappers"] as? Int, - let remainingAnimations = value["remainingAnimations"] as? Int else { - throw RepairError.invalidResponse - } - self.fields = fields - self.wrappers = wrappers - self.remainingAnimations = remainingAnimations - } -} - -private final class CDPConnection { - private let task: URLSessionWebSocketTask - private var nextID = 1 - - init(url: URL, session: URLSession) { - task = session.webSocketTask(with: url) - } - - func connect() throws { - task.resume() - } - - func close() { - task.cancel(with: .normalClosure, reason: nil) - } - - func call(method: String, parameters: [String: Any] = [:]) throws -> [String: Any] { - let id = nextID - nextID += 1 - let request: [String: Any] = ["id": id, "method": method, "params": parameters] - let data = try JSONSerialization.data(withJSONObject: request) - guard let string = String(data: data, encoding: .utf8) else { - throw RepairError.invalidResponse - } - try task.synchronousSend(.string(string), timeout: 4) - - for _ in 0 ..< 20 { - let message = try task.synchronousReceive(timeout: 4) - let responseData: Data - switch message { - case let .string(value): responseData = Data(value.utf8) - case let .data(value): responseData = value - @unknown default: throw RepairError.invalidResponse - } - guard let response = try JSONSerialization.jsonObject(with: responseData) as? [String: Any] else { - continue - } - guard response["id"] as? Int == id else { continue } - if let error = response["error"] as? [String: Any] { - throw RepairError.protocolError(error["message"] as? String ?? "unknown CDP error") - } - return response - } - throw RepairError.timeout - } -} - -private extension URLSession { - func synchronousData(from url: URL, timeout: TimeInterval) throws -> Data { - let semaphore = DispatchSemaphore(value: 0) - var result: Result? - let task = dataTask(with: url) { data, _, error in - if let error { - result = .failure(error) - } else if let data { - result = .success(data) - } else { - result = .failure(RepairError.invalidResponse) - } - semaphore.signal() - } - task.resume() - guard semaphore.wait(timeout: .now() + timeout) == .success else { - task.cancel() - throw RepairError.timeout - } - return try result?.get() ?? { throw RepairError.invalidResponse }() - } -} - -private extension URLSessionWebSocketTask { - func synchronousSend(_ message: Message, timeout: TimeInterval) throws { - let semaphore = DispatchSemaphore(value: 0) - var sendError: Error? - send(message) { error in - sendError = error - semaphore.signal() - } - guard semaphore.wait(timeout: .now() + timeout) == .success else { - throw RepairError.timeout - } - if let sendError { throw sendError } - } - - func synchronousReceive(timeout: TimeInterval) throws -> Message { - let semaphore = DispatchSemaphore(value: 0) - var result: Result? - receive { value in - result = value - semaphore.signal() - } - guard semaphore.wait(timeout: .now() + timeout) == .success else { - throw RepairError.timeout - } - return try result?.get() ?? { throw RepairError.invalidResponse }() - } -} - -private enum RepairError: LocalizedError { - case invalidForward(String) - case missingTarget - case invalidResponse - case incomplete(String) - case protocolError(String) - case timeout - - var errorDescription: String? { - switch self { - case let .invalidForward(value): return "invalid ADB forward: \(value)" - case .missingTarget: return "WebView DevTools target is not ready" - case .invalidResponse: return "invalid WebView DevTools response" - case let .incomplete(value): return "login fields are not ready (\(value))" - case let .protocolError(value): return value - case .timeout: return "WebView DevTools request timed out" - } - } -} diff --git a/launcher/Sources/RuntimeController.swift b/launcher/Sources/RuntimeController.swift deleted file mode 100644 index 110f1c4..0000000 --- a/launcher/Sources/RuntimeController.swift +++ /dev/null @@ -1,153 +0,0 @@ -import Foundation - -final class RuntimeController { - typealias EventHandler = (RuntimeEvent) -> Void - - private let paths: LauncherPaths - private let parsingQueue = DispatchQueue(label: "dev.sergeinaumov.mactician.runtime-events") - private var eventBuffer = Data() - private var process: Process? - private var outputPipe: Pipe? - - init(paths: LauncherPaths) { - self.paths = paths - } - - var isRunning: Bool { process?.isRunning == true } - - func start( - profile: LaunchProfile, - effectsQuality: EffectsQuality, - language: GameLanguage, - cpuCores: Int, - memoryMB: Int, - uiScalePercent: Int, - state: InstallState, - gameRelease: GameRelease, - gameResources: URL, - events: @escaping EventHandler - ) throws { - guard !isRunning else { - throw LauncherError.process("TFT is already launching") - } - guard state.isReady, - state.gameVersion == gameRelease.version, - state.gameBaseSHA256 == gameRelease.baseSHA256, - state.overlaySHA256 != nil else { - throw LauncherError.unsupportedGame("The installed TFT version is not supported by this launcher build") - } - // QEMU replaces the wrapper application's Dock icon and exposes its - // implementation name in the native title bar after Qt starts. Refresh - // the verified branding patch before every launch so existing installs - // are upgraded without requiring Repair. - try EmulatorBrandingPatch.apply( - at: paths.qemuSystem, - entitlements: paths.qemuHypervisorEntitlements - ) - // Refresh small launcher-owned scripts on every start so a launcher - // update can repair an existing AVD without reinstalling Android or TFT. - try InstallerService.refreshRuntimeProject(at: paths) - let overlayHash = try InstallerService.prepareOverlay( - source: gameResources.appendingPathComponent("base.apk"), - expectedSourceSHA256: gameRelease.baseSHA256, - destination: paths.overlayAPK, - stagingRoot: paths.staging, - language: language - ) - let graphicsProfile = paths.effectsProfile(for: effectsQuality) - let profileHash = try SystemServices.sha256(of: graphicsProfile) - guard GuestResourceOptions.cpuCores( - logicalCPUCount: ProcessInfo.processInfo.processorCount - ).contains(cpuCores) else { - throw LauncherError.preflight("The selected Android vCPU count is unavailable on this Mac") - } - guard GuestResourceOptions.memoryMB( - physicalMemoryBytes: ProcessInfo.processInfo.physicalMemory - ).contains(memoryMB) else { - throw LauncherError.preflight("The selected Android RAM size is unavailable on this Mac") - } - guard let uiScale = InterfaceScaleOptions.runtimeValue(percent: uiScalePercent) else { - throw LauncherError.preflight("The selected interface scale is unavailable") - } - let runtime = Process() - let pipe = Pipe() - runtime.executableURL = paths.runtimeHelper - runtime.standardOutput = pipe - runtime.standardError = try SystemServices.appendHandle(for: paths.launcherLog) - runtime.environment = ProcessInfo.processInfo.environment.merging([ - "TFT_RUNTIME_PROJECT": paths.runtimeProject.path, - "TFT_LAUNCH_LOG": paths.launcherLog.path, - "TFT_ADB": paths.adb.path, - "TFT_EMULATOR": paths.emulator.path, - "TFT_ROOT_SDK": paths.sdk.path, - "TFT_ROOT_AVD_HOME": paths.avdHome.path, - "TFT_AVD_HOME": paths.avdHome.path, - "TFT_AVD_NAME": "TftPBE", - "TFT_SERIAL": "emulator-5582", - "TFT_EMULATOR_PORT": "5582", - "TFT_ADB_SERVER_PORT": "5038", - "ANDROID_ADB_SERVER_PORT": "5038", - "ADB_MDNS_AUTO_CONNECT": "", - "TFT_LAUNCHER": paths.runtimeTemplate.appendingPathComponent("run-tft-angle-opengl.command").path, - "TFT_GLTRANSPORT": "virtio-gpu-asg", - "TFT_EXPECTED_GLTRANSPORT_BASELINE": "pipe", - "TFT_AUDIO_ENABLED": "1", - "TFT_ASG_WRITE_STEP_SIZE": "16384", - "TFT_DISPLAY_SIZE": profile.displaySize, - "TFT_DISPLAY_DENSITY": "\(profile.density)", - "TFT_GAME_LANGUAGE": language.id, - "TFT_CPU_CORES": "\(cpuCores)", - "TFT_MEMORY_MB": "\(memoryMB)", - "TFT_UI_SCALE": uiScale, - "TFT_GRAPHICS_PROFILE": "osft", - "TFT_MVK_QUEUE_MODE": "async", - "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE": "64", - "MVK_CONFIG_FAST_MATH_ENABLED": "1", - "TFT_INPUT_BRIDGE_ENABLED": "0", - "TFT_ANGLE_OPENGL_APK": paths.overlayAPK.path, - "TFT_ANGLE_OPENGL_APK_SHA256": overlayHash, - "TFT_ORIGINAL_BASE_APK_SHA256": gameRelease.baseSHA256, - "TFT_ANGLE_OPENGL_PROFILE": graphicsProfile.path, - "TFT_ANGLE_OPENGL_PROFILE_SHA256": profileHash, - "TFT_ANGLE_DISABLED_FEATURES": "preferSubmitAtFBOBoundary" - ]) { _, new in new } - - outputPipe = pipe - process = runtime - eventBuffer.removeAll(keepingCapacity: true) - pipe.fileHandleForReading.readabilityHandler = { [weak self] handle in - let data = handle.availableData - guard !data.isEmpty else { return } - self?.parsingQueue.async { self?.consume(data, events: events) } - } - runtime.terminationHandler = { [weak self] process in - self?.outputPipe?.fileHandleForReading.readabilityHandler = nil - DispatchQueue.main.async { - events(RuntimeEvent(event: .stopped, code: process.terminationStatus)) - } - } - try runtime.run() - } - - func stop() { - guard let process, process.isRunning else { return } - DispatchQueue.global(qos: .userInitiated).async { [paths] in - let environment = ["ANDROID_ADB_SERVER_PORT": "5038"] - _ = try? SystemServices.run(paths.adb, ["-s", "emulator-5582", "emu", "kill"], environment: environment) - } - process.terminate() - } - - private func consume(_ data: Data, events: @escaping EventHandler) { - eventBuffer.append(data) - while let newline = eventBuffer.firstIndex(of: 0x0A) { - let line = eventBuffer[.. ReleaseManifest { - let data = try Data(contentsOf: url) - let manifest = try JSONDecoder().decode(ReleaseManifest.self, from: data) - try manifest.validate() - return manifest - } - - static func sha256(of url: URL) throws -> String { - guard let stream = InputStream(url: url) else { - throw LauncherError.integrity("Could not open \(url.lastPathComponent)") - } - stream.open() - defer { stream.close() } - - var hasher = SHA256() - var buffer = [UInt8](repeating: 0, count: 1024 * 1024) - while stream.hasBytesAvailable { - let count = stream.read(&buffer, maxLength: buffer.count) - if count < 0 { - throw stream.streamError ?? LauncherError.integrity("Could not read \(url.lastPathComponent)") - } - if count == 0 { break } - hasher.update(data: Data(buffer[0 ..< count])) - } - return hasher.finalize().map { String(format: "%02x", $0) }.joined() - } - - @discardableResult - static func run( - _ executable: URL, - _ arguments: [String], - environment: [String: String]? = nil, - currentDirectory: URL? = nil, - captureOutput: Bool = true, - log: URL? = nil - ) throws -> String { - let process = Process() - process.executableURL = executable - process.arguments = arguments - process.currentDirectoryURL = currentDirectory - if let environment { - process.environment = ProcessInfo.processInfo.environment.merging(environment) { _, new in new } - } - - let outputPipe = Pipe() - if captureOutput { - process.standardOutput = outputPipe - process.standardError = outputPipe - } else if let log { - let handle = try appendHandle(for: log) - process.standardOutput = handle - process.standardError = handle - } - try process.run() - process.waitUntilExit() - let output: String - if captureOutput { - output = String(data: outputPipe.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8) ?? "" - } else { - output = "" - } - guard process.terminationStatus == 0 else { - let detail = output.trimmingCharacters(in: .whitespacesAndNewlines) - throw LauncherError.process(detail.isEmpty - ? "Command \(executable.lastPathComponent) exited with status \(process.terminationStatus)" - : detail) - } - return output - } - - static func appendHandle(for url: URL) throws -> FileHandle { - let fileManager = FileManager.default - try fileManager.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) - if !fileManager.fileExists(atPath: url.path) { - fileManager.createFile(atPath: url.path, contents: nil) - } - let handle = try FileHandle(forWritingTo: url) - try handle.seekToEnd() - return handle - } - - static func appendLog(_ message: String, to url: URL) { - do { - let handle = try appendHandle(for: url) - defer { try? handle.close() } - let timestamp = ISO8601DateFormatter().string(from: Date()) - try handle.write( - contentsOf: Data( - "[\(timestamp)] [\(MacticianIdentity.loggingSubsystem)] \(message)\n".utf8 - ) - ) - } catch { - // Logging must never block launch or expose guest output elsewhere. - } - } - - static func loadState(from url: URL) -> InstallState { - guard let data = try? Data(contentsOf: url), - let state = try? JSONDecoder.launcher.decode(InstallState.self, from: data), - state.schemaVersion == 1 else { - return InstallState() - } - return state - } - - static func saveState(_ state: InstallState, to url: URL) throws { - let fileManager = FileManager.default - try fileManager.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) - var updated = state - updated.updatedAt = Date() - let data = try JSONEncoder.launcher.encode(updated) - try data.write(to: url, options: .atomic) - } - - static func availableBytes(at url: URL) throws -> Int64 { - let values = try url.resourceValues(forKeys: [.volumeAvailableCapacityForImportantUsageKey]) - return values.volumeAvailableCapacityForImportantUsage ?? 0 - } - - static func checkHost(minimumFreeBytes: Int64, root: URL) throws { - guard ProcessInfo.processInfo.operatingSystemVersion.majorVersion >= 12 else { - throw LauncherError.preflight("macOS 12 or newer is required") - } - let architecture = try run(URL(fileURLWithPath: "/usr/bin/uname"), ["-m"]) - .trimmingCharacters(in: .whitespacesAndNewlines) - guard architecture == "arm64" else { - throw LauncherError.preflight("This launcher supports Apple Silicon Macs only") - } - guard ProcessInfo.processInfo.physicalMemory >= 15 * 1024 * 1024 * 1024 else { - throw LauncherError.preflight("This profile requires a Mac with 16 GB of memory") - } - try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true) - let freeBytes = try availableBytes(at: root) - guard freeBytes >= minimumFreeBytes else { - let required = ByteCountFormatter.string(fromByteCount: minimumFreeBytes, countStyle: .file) - let available = ByteCountFormatter.string(fromByteCount: freeBytes, countStyle: .file) - throw LauncherError.preflight("Not enough disk space: \(required) required, \(available) available") - } - let hypervisor = try run(URL(fileURLWithPath: "/usr/sbin/sysctl"), ["-n", "kern.hv_support"]) - .trimmingCharacters(in: .whitespacesAndNewlines) - guard hypervisor == "1" else { - throw LauncherError.preflight("Hypervisor Framework is unavailable") - } - } -} - -extension JSONEncoder { - fileprivate static var launcher: JSONEncoder { - let encoder = JSONEncoder() - encoder.outputFormatting = [.prettyPrinted, .sortedKeys, .withoutEscapingSlashes] - encoder.dateEncodingStrategy = .iso8601 - return encoder - } -} - -extension JSONDecoder { - fileprivate static var launcher: JSONDecoder { - let decoder = JSONDecoder() - decoder.dateDecodingStrategy = .iso8601 - return decoder - } -} diff --git a/launcher/Tests/InstallerIntegration.swift b/launcher/Tests/InstallerIntegration.swift deleted file mode 100644 index cfd089a..0000000 --- a/launcher/Tests/InstallerIntegration.swift +++ /dev/null @@ -1,55 +0,0 @@ -import Foundation - -@main -enum InstallerIntegration { - static func main() throws { - guard CommandLine.arguments.count == 6 else { - throw IntegrationFailure("usage: InstallerIntegration ROOT RESOURCES PLATFORM_ZIP EMULATOR_ZIP SYSTEM_ZIP") - } - let root = URL(fileURLWithPath: CommandLine.arguments[1], isDirectory: true) - let resources = URL(fileURLWithPath: CommandLine.arguments[2], isDirectory: true) - let paths = try LauncherPaths(root: root, resources: resources) - let manifest = try SystemServices.loadManifest(from: paths.manifest) - try FileManager.default.createDirectory(at: paths.downloads, withIntermediateDirectories: true) - - let archives = Array(CommandLine.arguments[3 ... 5]) - for (component, archivePath) in zip(manifest.components, archives) { - let source = URL(fileURLWithPath: archivePath) - let target = paths.downloads.appendingPathComponent("\(component.id).zip") - guard try SystemServices.sha256(of: source) == component.sha256 else { - throw IntegrationFailure("fixture hash mismatch: \(source.lastPathComponent)") - } - if FileManager.default.fileExists(atPath: target.path) { - try FileManager.default.removeItem(at: target) - } - try FileManager.default.copyItem(at: source, to: target) - } - - var result: Result? - let installer = InstallerService(paths: paths, manifest: manifest) - installer.install(repair: false, progress: { progress in - print("[\(Int(progress.fraction * 100))%] \(progress.message)") - }, completion: { completion in - result = completion - }) - while result == nil { - RunLoop.current.run(until: Date().addingTimeInterval(0.1)) - } - let state = try result!.get() - guard state.isReady, - state.gameBaseSHA256?.range( - of: "^[0-9a-f]{64}$", - options: .regularExpression - ) != nil, - FileManager.default.fileExists(atPath: paths.avdDirectory.appendingPathComponent("hardware-qemu.ini").path) else { - throw IntegrationFailure("installer did not produce a ready AVD") - } - print("Mactician provisioning integration: OK") - print("Integration root: \(root.path)") - } -} - -struct IntegrationFailure: Error, CustomStringConvertible { - let description: String - init(_ description: String) { self.description = description } -} diff --git a/launcher/Tests/LauncherTests.swift b/launcher/Tests/LauncherTests.swift deleted file mode 100644 index 25290b2..0000000 --- a/launcher/Tests/LauncherTests.swift +++ /dev/null @@ -1,1250 +0,0 @@ -import CryptoKit -import Foundation - -@main -enum LauncherTests { - static func main() throws { - guard CommandLine.arguments.count == 3 else { - throw TestFailure("usage: LauncherTests MANIFEST SOURCE_ROOT") - } - let manifestURL = URL(fileURLWithPath: CommandLine.arguments[1]) - let sourceRoot = URL(fileURLWithPath: CommandLine.arguments[2]) - let manifest = try SystemServices.loadManifest(from: manifestURL) - - try expect(manifest.schemaVersion == 1, "manifest schema") - try expect(manifest.components.count == 3, "component count") - try expect(manifest.game.apks.count == 4, "APK count") - let hostedPrivateKey = Curve25519.Signing.PrivateKey() - let hostedRelease = GameRelease( - packageName: "com.riotgames.league.teamfighttactics.pbe", - version: "18.2-test", - versionCode: 8_220_001, - baseSHA256: String(repeating: "a", count: 64), - apks: [ - GameAPK( - name: "base.apk", - size: 100, - sha256: String(repeating: "a", count: 64), - url: URL(string: "https://sergeinaumov.dev/mactician/updates/game/releases/aaaaaaaa/base.apk") - ), - GameAPK( - name: "split_config.arm64_v8a.apk", - size: 50, - sha256: String(repeating: "b", count: 64), - url: URL(string: "https://sergeinaumov.dev/mactician/updates/game/releases/aaaaaaaa/split_config.arm64_v8a.apk") - ) - ] - ) - let hostedPayload = try JSONEncoder().encode(HostedGameFeed( - schemaVersion: 1, - publishedAt: "2026-08-12T12:00:00Z", - release: hostedRelease - )) - let hostedSignature = try hostedPrivateKey.signature(for: hostedPayload) - let hostedEnvelope = try JSONEncoder().encode(HostedGameFeedEnvelope( - schemaVersion: 1, - payload: hostedPayload.base64EncodedString(), - signature: hostedSignature.base64EncodedString() - )) - let verifiedHostedFeed = try HostedGameUpdate.decodeAndVerify( - hostedEnvelope, - publicKeyBase64: hostedPrivateKey.publicKey.rawRepresentation.base64EncodedString() - ) - try expect(verifiedHostedFeed.release == hostedRelease, "signed hosted game feed") - var olderInstallState = InstallState() - olderInstallState.gameVersion = "18.1-old" - olderInstallState.gameVersionCode = 8_210_000 - try expect( - HostedGameUpdate.isNewer(hostedRelease, than: olderInstallState), - "newer hosted game version detection" - ) - var currentInstallState = olderInstallState - currentInstallState.gameVersion = hostedRelease.version - currentInstallState.gameVersionCode = hostedRelease.versionCode - try expect( - !HostedGameUpdate.isNewer(hostedRelease, than: currentInstallState), - "current hosted game version detection" - ) - var newerInstallState = currentInstallState - newerInstallState.gameVersionCode = 8_230_000 - try expect( - !HostedGameUpdate.isNewer(hostedRelease, than: newerInstallState), - "hosted game rollback is not an update" - ) - var invalidSignature = hostedSignature - invalidSignature[invalidSignature.startIndex] ^= 0x01 - let invalidEnvelope = try JSONEncoder().encode(HostedGameFeedEnvelope( - schemaVersion: 1, - payload: hostedPayload.base64EncodedString(), - signature: invalidSignature.base64EncodedString() - )) - do { - _ = try HostedGameUpdate.decodeAndVerify( - invalidEnvelope, - publicKeyBase64: hostedPrivateKey.publicKey.rawRepresentation.base64EncodedString() - ) - throw TestFailure("tampered hosted game feed was accepted") - } catch let error as LauncherError { - try expect(error == .integrity("The TFT PBE feed signature is invalid"), "tampered game feed rejection") - } - try expect( - manifest.profiles.map(\.id) == ["balanced", "quality", "ultra", "4k"], - "profile order" - ) - try expect( - manifest.profiles.map(\.title) == ["1080p", "1440p", "1800p", "4K"], - "resolution profile titles" - ) - try expect( - EffectsQuality.selection(saved: nil) == .high - && EffectsQuality.selection(saved: "unknown") == .high - && EffectsQuality.selection(saved: "performance") == .performance, - "effects quality selection" - ) - try expect(manifest.profiles[0].displaySize == "1920x1080", "balanced resolution") - try expect(manifest.profiles[0].displayResolution == "1920 × 1080", "display resolution formatting") - try expect(manifest.profiles[1].displaySize == "2560x1440", "quality resolution") - try expect(manifest.profiles[2].displaySize == "3200x1800", "ultra resolution") - try expect(manifest.profiles[2].density == 520, "ultra density") - try expect(manifest.profiles[3].displaySize == "3840x2160", "4K resolution") - try expect(manifest.profiles[3].density == 640, "4K density") - try expect( - BridgeHotkeyTarget.shop == BridgeRelativePoint(x: 0.96, y: 0.93) - && BridgeHotkeyTarget.shop.pixels(width: 3840, height: 2160) - == (3686, 2009), - "shop hotkey touch target" - ) - try expect( - BridgeHotkeyTarget.reroll == BridgeRelativePoint(x: 0.955, y: 0.79) - && BridgeHotkeyTarget.reroll.pixels(width: 3840, height: 2160) - == (3667, 1706), - "reroll hotkey touch target" - ) - try expect( - BridgeHotkeyTarget.buyXP == BridgeRelativePoint(x: 0.032, y: 0.925) - && BridgeHotkeyTarget.buyXP.pixels(width: 3840, height: 2160) - == (123, 1998), - "XP hotkey touch target" - ) - try expect( - BridgeKeyboardBinding.isActionKey(BridgeKeyboardBinding.tab) - && BridgeHotkeyTarget.traits.pixels(width: 3840, height: 2160) == (111, 86) - && BridgeHotkeyTarget.items.pixels(width: 3840, height: 2160) == (227, 86), - "Tab items-and-traits hotkey touch targets" - ) - try expect( - BridgeKeyboardBinding.isActionKey(BridgeKeyboardBinding.playersAndDamage) - && BridgeHotkeyTarget.damage.pixels(width: 3840, height: 2160) == (3636, 86) - && BridgeHotkeyTarget.players.pixels(width: 3840, height: 2160) == (3744, 86), - "V players-and-damage hotkey touch targets" - ) - let surfaceLayer = """ - RequestedLayerState{SurfaceView[com.riotgames.league.teamfighttactics.pbe/com.epicgames.unreal.GameActivity](BLAST)#103 parentId=102} - """ - try expect( - SurfaceFlingerFPS.gameLayer( - from: surfaceLayer, - package: "com.riotgames.league.teamfighttactics.pbe" - ) == "SurfaceView[com.riotgames.league.teamfighttactics.pbe/com.epicgames.unreal.GameActivity](BLAST)#103", - "FPS overlay SurfaceFlinger layer selection" - ) - let latencyOutput = """ - 16666666 - 0 1000000000 0 - 0 1016666667 0 - 0 1033333334 0 - 0 1050000001 0 - """ - let frameRate = SurfaceFlingerFPS.estimate( - timestamps: SurfaceFlingerFPS.presentationTimestamps(from: latencyOutput), - after: nil - ) - try expect( - frameRate.map { abs($0.framesPerSecond - 60) < 0.1 } == true - && frameRate?.newestTimestamp == 1_050_000_001, - "FPS overlay frame-rate calculation" - ) - var gameSessionTracker = GameSessionTracker() - let gameSessionStart = Date(timeIntervalSince1970: 1_000) - gameSessionTracker.start(at: gameSessionStart) - gameSessionTracker.start(at: gameSessionStart.addingTimeInterval(30)) - try expect( - gameSessionTracker.finish( - at: gameSessionStart.addingTimeInterval(90.9) - ) == 90 - && gameSessionTracker.finish(at: gameSessionStart.addingTimeInterval(100)) == nil, - "game session duration is recorded once from the first ready event" - ) - var shortGameSession = GameSessionTracker() - shortGameSession.start(at: gameSessionStart) - try expect( - shortGameSession.finish(at: gameSessionStart.addingTimeInterval(0.2)) == 1, - "short game sessions meet the telemetry minimum" - ) - let telemetrySettings = LauncherTelemetrySettings( - profile: manifest.profiles[1], - effectsQuality: .performance, - uiScalePercent: 125, - androidMemoryMB: 8_192, - androidCPUCores: 6 - ) - let telemetryDevice = LauncherTelemetryDevice( - modelIdentifier: "Mac16,1", - macOSVersion: "26.0.0", - physicalMemoryMB: 32_768, - logicalCPUCount: 10 - ) - try expect( - LauncherTelemetryDevice.normalizedModelIdentifier("Mac16,1") == "Mac16,1" - && LauncherTelemetryDevice.normalizedModelIdentifier("Mac name") == "unknown", - "telemetry device model identifier is bounded" - ) - let telemetryDefaultsName = "LauncherTests.telemetry.\(UUID().uuidString)" - guard let telemetryDefaults = UserDefaults(suiteName: telemetryDefaultsName) else { - throw TestFailure("telemetry UserDefaults suite") - } - defer { telemetryDefaults.removePersistentDomain(forName: telemetryDefaultsName) } - telemetryDefaults.set(UUID().uuidString, forKey: "telemetry.installationID.v1") - telemetryDefaults.set(Data("[]".utf8), forKey: "telemetry.pendingEvents.v1") - let telemetryLoader = TelemetryLoaderStub() - let telemetryService = LauncherTelemetryService( - defaults: telemetryDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - device: telemetryDevice, - loader: telemetryLoader.load - ) - try expect( - telemetryService.shouldShowNotice - && !telemetryService.isExtendedDiagnosticsEnabled - && telemetryDefaults.object(forKey: "telemetry.installationID.v1") == nil - && telemetryDefaults.object(forKey: "telemetry.pendingEvents.v1") == nil, - "legacy telemetry is removed and extended diagnostics default to off" - ) - telemetryService.completeNotice(extendedDiagnostics: false) - telemetryService.recordGameSession( - durationSeconds: 90, - launcherSettings: telemetrySettings, - endedAt: gameSessionStart.addingTimeInterval(90) - ) - guard let pendingEventData = telemetryDefaults.data( - forKey: "telemetry.firstSession.pending.v2" - ), - let pendingWrapper = try JSONSerialization.jsonObject(with: pendingEventData) - as? [String: Any], - let pendingEvent = pendingWrapper["event"] as? [String: Any], - let firstEventID = pendingEvent["event_id"] as? String else { - throw TestFailure("first-session telemetry payload") - } - try expect( - (pendingEvent["schema_version"] as? NSNumber)?.intValue == 2 - && pendingEvent["event"] as? String == "first_game_session" - && pendingEvent["occurred_on"] as? String == "1970-01-01" - && pendingEvent["duration_bucket"] as? String == "under_5m" - && Set(pendingEvent.keys) == Set([ - "schema_version", "event_id", "event", "occurred_on", - "duration_bucket", "launcher_version", "launcher_build" - ]) - && telemetryDefaults.data(forKey: "telemetry.extended.pendingEvents.v2") == nil, - "first-session telemetry is unlinkable and contains only allowed fields" - ) - telemetryService.recordGameSession( - durationSeconds: 3_700, - launcherSettings: telemetrySettings - ) - guard let repeatedPendingData = telemetryDefaults.data( - forKey: "telemetry.firstSession.pending.v2" - ), - let repeatedWrapper = try JSONSerialization.jsonObject(with: repeatedPendingData) - as? [String: Any], - let repeatedEvent = repeatedWrapper["event"] as? [String: Any] else { - throw TestFailure("repeated first-session telemetry payload") - } - try expect( - repeatedEvent["event_id"] as? String == firstEventID, - "later sessions reuse the single pending first-session event" - ) - try expect( - LauncherTelemetryService.durationBucket(for: 299) == "under_5m" - && LauncherTelemetryService.durationBucket(for: 300) == "5_15m" - && LauncherTelemetryService.durationBucket(for: 3_600) == "60_120m" - && LauncherTelemetryService.durationBucket(for: 14_400) == "120_240m" - && LauncherTelemetryService.durationBucket(for: 14_401) == "over_240m", - "telemetry duration buckets" - ) - try waitFor("initial telemetry request") { telemetryLoader.requestCount == 1 } - telemetryLoader.completeFirst(statusCode: 503) - let retryLoader = TelemetryLoaderStub() - let retryService = LauncherTelemetryService( - defaults: telemetryDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - device: telemetryDevice, - loader: retryLoader.load - ) - try waitFor("retried telemetry request") { retryLoader.requestCount == 1 } - try expect( - retryLoader.firstEventID == firstEventID, - "network retry preserves the first-session event ID" - ) - retryLoader.completeFirst(statusCode: 202) - try waitFor("successful first-session completion") { - telemetryDefaults.bool(forKey: "telemetry.firstSession.completed.v2") - && telemetryDefaults.data(forKey: "telemetry.firstSession.pending.v2") == nil - } - retryService.recordGameSession( - durationSeconds: 180, - launcherSettings: telemetrySettings - ) - try expect( - retryLoader.requestCount == 1 - && telemetryDefaults.data(forKey: "telemetry.firstSession.pending.v2") == nil, - "completed first-session telemetry is never recreated" - ) - - let diagnosticsDefaultsName = "LauncherTests.diagnostics.\(UUID().uuidString)" - guard let diagnosticsDefaults = UserDefaults(suiteName: diagnosticsDefaultsName) else { - throw TestFailure("diagnostics UserDefaults suite") - } - defer { diagnosticsDefaults.removePersistentDomain(forName: diagnosticsDefaultsName) } - diagnosticsDefaults.set(true, forKey: "telemetry.firstSession.completed.v2") - let diagnosticsService = LauncherTelemetryService( - defaults: diagnosticsDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - device: telemetryDevice, - loader: TelemetryLoaderStub().load - ) - diagnosticsService.completeNotice(extendedDiagnostics: true) - diagnosticsService.recordGameSession( - durationSeconds: 2_871, - launcherSettings: telemetrySettings, - endedAt: gameSessionStart.addingTimeInterval(2_871) - ) - guard let diagnosticsData = diagnosticsDefaults.data( - forKey: "telemetry.extended.pendingEvents.v2" - ), - let diagnosticsEvents = try JSONSerialization.jsonObject(with: diagnosticsData) - as? [[String: Any]], - let diagnosticsEvent = diagnosticsEvents.first, - let settingsPayload = diagnosticsEvent["launcher_settings"] as? [String: Any], - let devicePayload = diagnosticsEvent["device"] as? [String: Any] else { - throw TestFailure("extended diagnostics payload") - } - try expect( - diagnosticsEvent["event"] as? String == "game_session_diagnostics" - && (diagnosticsEvent["consent_version"] as? NSNumber)?.intValue == 1 - && (diagnosticsEvent["duration_seconds"] as? NSNumber)?.int64Value == 2_871 - && settingsPayload["profile_id"] as? String == "quality" - && settingsPayload["effects_quality_id"] as? String == "performance" - && settingsPayload["game_language"] == nil - && (settingsPayload["guest_memory_mb"] as? NSNumber)?.intValue == 8_192 - && (settingsPayload["guest_cpu_cores"] as? NSNumber)?.intValue == 6 - && devicePayload["model_identifier"] as? String == "Mac16,1" - && diagnosticsEvent["installation_id"] == nil, - "consented diagnostics include applied settings without a persistent identifier" - ) - diagnosticsService.setExtendedDiagnosticsEnabled(false) - try expect( - !diagnosticsService.isExtendedDiagnosticsEnabled - && diagnosticsDefaults.data(forKey: "telemetry.extended.pendingEvents.v2") == nil, - "withdrawing consent synchronously clears diagnostics" - ) - - let oldConsentDefaultsName = "LauncherTests.old-consent.\(UUID().uuidString)" - guard let oldConsentDefaults = UserDefaults(suiteName: oldConsentDefaultsName) else { - throw TestFailure("old consent UserDefaults suite") - } - defer { oldConsentDefaults.removePersistentDomain(forName: oldConsentDefaultsName) } - oldConsentDefaults.set("granted", forKey: "telemetry.extendedConsent.state.v1") - oldConsentDefaults.set(0, forKey: "telemetry.extendedConsent.version.v1") - oldConsentDefaults.set(true, forKey: "telemetry.noticeShown.v1") - oldConsentDefaults.set(Data("[]".utf8), forKey: "telemetry.extended.pendingEvents.v2") - let oldConsentService = LauncherTelemetryService( - defaults: oldConsentDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - loader: TelemetryLoaderStub().load - ) - try expect( - oldConsentService.shouldShowNotice - && !oldConsentService.isExtendedDiagnosticsEnabled - && oldConsentDefaults.data(forKey: "telemetry.extended.pendingEvents.v2") == nil, - "a consent-version change stops diagnostics and requests consent again" - ) - - let duplicateDefaultsName = "LauncherTests.duplicate.\(UUID().uuidString)" - guard let duplicateDefaults = UserDefaults(suiteName: duplicateDefaultsName) else { - throw TestFailure("duplicate UserDefaults suite") - } - defer { duplicateDefaults.removePersistentDomain(forName: duplicateDefaultsName) } - let duplicateLoader = TelemetryLoaderStub() - let duplicateService = LauncherTelemetryService( - defaults: duplicateDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - loader: duplicateLoader.load - ) - duplicateService.completeNotice(extendedDiagnostics: false) - duplicateService.recordGameSession( - durationSeconds: 600, - launcherSettings: telemetrySettings - ) - try waitFor("duplicate telemetry request") { duplicateLoader.requestCount == 1 } - duplicateLoader.completeFirst(statusCode: 409) - try waitFor("duplicate telemetry acknowledgement") { - duplicateDefaults.bool(forKey: "telemetry.firstSession.completed.v2") - && duplicateDefaults.data(forKey: "telemetry.firstSession.pending.v2") == nil - } - - let staleDefaultsName = "LauncherTests.stale.\(UUID().uuidString)" - guard let staleDefaults = UserDefaults(suiteName: staleDefaultsName) else { - throw TestFailure("stale UserDefaults suite") - } - defer { staleDefaults.removePersistentDomain(forName: staleDefaultsName) } - let staleLoader = TelemetryLoaderStub() - let staleService = LauncherTelemetryService( - defaults: staleDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - loader: staleLoader.load - ) - staleService.completeNotice(extendedDiagnostics: false) - staleService.recordGameSession( - durationSeconds: 600, - launcherSettings: telemetrySettings - ) - guard let staleData = staleDefaults.data(forKey: "telemetry.firstSession.pending.v2"), - var staleWrapper = try JSONSerialization.jsonObject(with: staleData) - as? [String: Any] else { - throw TestFailure("stale first-session payload") - } - staleWrapper["created_at"] = "2020-01-01T00:00:00Z" - staleDefaults.set( - try JSONSerialization.data(withJSONObject: staleWrapper), - forKey: "telemetry.firstSession.pending.v2" - ) - let staleRetryLoader = TelemetryLoaderStub() - let staleRetryService = LauncherTelemetryService( - defaults: staleDefaults, - apiBaseURL: URL(string: "https://127.0.0.1:1/")!, - loader: staleRetryLoader.load - ) - staleRetryService.recordGameSession( - durationSeconds: 900, - launcherSettings: telemetrySettings - ) - try expect( - staleDefaults.bool(forKey: "telemetry.firstSession.completed.v2") - && staleDefaults.data(forKey: "telemetry.firstSession.pending.v2") == nil - && staleRetryLoader.requestCount == 0, - "a first-session event older than seven days is terminally discarded" - ) - let messageURL = LauncherTelemetryService.messageURL( - apiBaseURL: URL(string: "https://sergeinaumov.dev/mactician/api/")!, - trigger: .gameClosed, - launcherVersion: "1.0.0" - ) - try expect( - messageURL?.absoluteString - == "https://sergeinaumov.dev/mactician/api/v1/messages?trigger=game_closed&version=1.0.0", - "message endpoint query encoding" - ) - let gameStoppedEvent = try JSONDecoder().decode( - RuntimeEvent.self, - from: Data(#"{"event":"game_stopped","code":0}"#.utf8) - ) - try expect( - gameStoppedEvent.event == .gameStopped, - "runtime game-closed event decoding" - ) - let gameActivityOutput = """ - Display #0: - topResumedActivity=ActivityRecord{abc123 u0 com.riotgames.league.teamfighttactics.pbe/com.epicgames.unreal.GameActivity t42} - """ - let loginActivityOutput = """ - mResumedActivity: ActivityRecord{old u0 com.riotgames.league.teamfighttactics.pbe/com.epicgames.unreal.GameActivity t41} - topResumedActivity=ActivityRecord{def456 u0 com.riotgames.league.teamfighttactics.pbe/com.riotgames.platformui.MobileFREWebViewActivity t42} - """ - try expect( - BridgeAndroidActivityClassifier.classify(dumpsysOutput: gameActivityOutput) == .gameplay - && BridgeAndroidActivityClassifier.classify(dumpsysOutput: loginActivityOutput) - == .nonGameplay - && BridgeAndroidActivityClassifier.classify( - dumpsysOutput: "topResumedActivity=null" - ) == .unknown, - "input bridge foreground activity classification" - ) - try expect( - BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .gameplay, - modifierFlags: [] - ) == .consume - && BridgeKeyboardEventPolicy.disposition( - for: BridgeKeyboardBinding.shop, - activity: .gameplay, - modifierFlags: [.shift] - ) == .hotkey - && BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .gameplay, - modifierFlags: [.command] - ) == .passThrough - && BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .gameplay, - modifierFlags: [.control] - ) == .passThrough - && BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .gameplay, - modifierFlags: [.option] - ) == .passThrough - && BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .nonGameplay, - modifierFlags: [] - ) == .passThrough - && BridgeKeyboardEventPolicy.disposition( - for: 44, - activity: .unknown, - modifierFlags: [] - ) == .passThrough, - "input bridge keyboard event policy" - ) - var bridgeSessionGeneration = BridgeSessionGeneration() - let stoppedGeneration = bridgeSessionGeneration.advance() - let activeGeneration = bridgeSessionGeneration.advance() - try expect( - !bridgeSessionGeneration.accepts(stoppedGeneration) - && bridgeSessionGeneration.accepts(activeGeneration), - "stale input bridge session status is rejected" - ) - var audioRecoveryPolicy = EmulatorAudioRecoveryPolicy( - startupDelay: 100, - settleDelay: 0.75, - cooldown: 2 - ) - let initialWindowSize = EmulatorWindowSize(width: 1_920, height: 1_120) - let resizedWindowSize = EmulatorWindowSize(width: 1_600, height: 940) - let finalWindowSize = EmulatorWindowSize(width: 1_440, height: 850) - try expect( - audioRecoveryPolicy.observe(size: initialWindowSize, at: 10) == nil - && audioRecoveryPolicy.observe(size: resizedWindowSize, at: 10.1) == nil - && audioRecoveryPolicy.observe(size: finalWindowSize, at: 10.5) == nil - && audioRecoveryPolicy.observe(size: finalWindowSize, at: 11.24) == nil - && audioRecoveryPolicy.observe(size: finalWindowSize, at: 11.25) == .windowResize - && audioRecoveryPolicy.observe(size: finalWindowSize, at: 12) == nil, - "audio recovery is debounced until window resizing settles" - ) - try expect( - audioRecoveryPolicy.observe(size: resizedWindowSize, at: 12.5) == nil - && audioRecoveryPolicy.observe(size: resizedWindowSize, at: 13.24) == nil - && audioRecoveryPolicy.observe(size: initialWindowSize, at: 13.5) == nil - && audioRecoveryPolicy.observe(size: initialWindowSize, at: 14.25) == .windowResize, - "audio recovery cooldown defers repeated window changes" - ) - var startupAudioRecoveryPolicy = EmulatorAudioRecoveryPolicy( - startupDelay: 1.5, - settleDelay: 0.75, - cooldown: 2 - ) - try expect( - startupAudioRecoveryPolicy.observe(size: initialWindowSize, at: 20) == nil - && startupAudioRecoveryPolicy.observe(size: initialWindowSize, at: 21.49) == nil - && startupAudioRecoveryPolicy.observe(size: initialWindowSize, at: 21.5) == .startup - && startupAudioRecoveryPolicy.observe(size: initialWindowSize, at: 24) == nil, - "audio recovery runs once after game startup" - ) - var halFailureRecoveryPolicy = EmulatorAudioRecoveryPolicy( - startupDelay: 100, - settleDelay: 0.75, - cooldown: 2, - failureThreshold: 3, - failureWindow: 0.5 - ) - try expect( - halFailureRecoveryPolicy.observeHALWriteFailure(at: 30) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 30.2) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 30.4) == .halWriteFailure - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 30.6) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 30.8) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 31) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 32.4) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 32.55) == nil - && halFailureRecoveryPolicy.observeHALWriteFailure(at: 32.7) == .halWriteFailure, - "repeated Audio HAL failures trigger recovery with cooldown" - ) - try expect( - EmulatorAudioFailureClassifier.isHALWriteFailure( - "E/android.hardware.audio@7.1-impl.ranchu: pcmWrite:260 failure: -1" - ) - && EmulatorAudioFailureClassifier.isHALWriteFailure( - "pcm_writei failed with 'cannot read/write stream data: I/O error' (-1)" - ) - && !EmulatorAudioFailureClassifier.isHALWriteFailure( - "AudioSystem: AudioFlinger server died!" - ), - "Audio HAL write failure classification" - ) - - let infoPlistData = try Data(contentsOf: sourceRoot.appendingPathComponent("Info.plist")) - guard let infoPlist = try PropertyListSerialization.propertyList(from: infoPlistData, format: nil) - as? [String: Any] else { - throw TestFailure("invalid Info.plist") - } - try expect(infoPlist["CFBundleDevelopmentRegion"] as? String == "en", "launcher language") - try expect( - infoPlist["CFBundleLocalizations"] as? [String] == ["en", "ru"], - "launcher localizations" - ) - try expect(infoPlist["CFBundleDisplayName"] as? String == "Mactician", "app display name") - try expect(infoPlist["CFBundleName"] as? String == "Mactician", "app bundle name") - try expect(infoPlist["CFBundleExecutable"] as? String == "Mactician", "app executable") - try expect( - infoPlist["CFBundleIdentifier"] as? String == MacticianIdentity.bundleIdentifier, - "app bundle identifier" - ) - try expect(infoPlist["CFBundleIconFile"] as? String == "Mactician.icns", "launcher icon name") - try expect(infoPlist["CFBundleShortVersionString"] as? String == "1.0.4", "launcher version") - try expect(infoPlist["CFBundleVersion"] as? String == "40", "launcher build") - try expect( - infoPlist["SUFeedURL"] as? String == "https://sergeinaumov.dev/mactician/updates/appcast.xml", - "Sparkle appcast URL" - ) - try expect( - infoPlist["SUPublicEDKey"] as? String == "77t8YuvP4mvvP/3oMpVR/TqGRMCcUlrpWFIZGcWqokY=", - "Sparkle public key" - ) - try expect( - infoPlist["SUEnableAutomaticChecks"] as? Bool == true - && infoPlist["SUAllowsAutomaticUpdates"] as? Bool == true - && infoPlist["SUAutomaticallyUpdate"] as? Bool == false - && infoPlist["SUScheduledCheckInterval"] as? Int == 86_400, - "Sparkle automatic check policy" - ) - try expect( - infoPlist["SUVerifyUpdateBeforeExtraction"] as? Bool == true, - "Sparkle pre-extraction verification policy" - ) - let updateControllerSource = try String( - contentsOf: sourceRoot.appendingPathComponent("Sources/LauncherUpdateController.swift"), - encoding: .utf8 - ) - try expect( - updateControllerSource.contains("updaterController.updater.automaticallyChecksForUpdates") - && updateControllerSource.contains("updaterController.updater.checkForUpdatesInBackground()"), - "Sparkle update check on every launch" - ) - let appTransportSecurity = infoPlist["NSAppTransportSecurity"] as? [String: Any] - try expect( - appTransportSecurity?["NSAllowsLocalNetworking"] as? Bool == true, - "local WebView DevTools networking" - ) - try expect( - FileManager.default.fileExists( - atPath: sourceRoot.appendingPathComponent("Resources/Mactician.icns").path - ), - "launcher icon resource" - ) - try expect( - FileManager.default.fileExists( - atPath: sourceRoot.appendingPathComponent("Resources/EmulatorIcon.icns").path - ), - "emulator icon resource" - ) - let launcherIcon = try Data( - contentsOf: sourceRoot.appendingPathComponent("Resources/Mactician.icns") - ) - let emulatorIcon = try Data( - contentsOf: sourceRoot.appendingPathComponent("Resources/EmulatorIcon.icns") - ) - try expect( - launcherIcon != emulatorIcon - && FileManager.default.fileExists( - atPath: sourceRoot.appendingPathComponent( - "Resources/EmulatorIcon-1024.png" - ).path - ), - "active game icon is distinct from the launcher icon" - ) - try expect( - FileManager.default.fileExists( - atPath: sourceRoot.appendingPathComponent("Resources/QEMU-Hypervisor.entitlements").path - ), - "QEMU hypervisor entitlement resource" - ) - try expect( - EmulatorBrandingPatch.iconInstructionOffset == 0x5af688, - "QEMU icon patch offset" - ) - try expect( - EmulatorBrandingPatch.sourceIconInstruction == Data([0xf4, 0xbf, 0x4d, 0x94]) - && EmulatorBrandingPatch.patchedIconInstruction == Data([0x1f, 0x20, 0x03, 0xd5]), - "QEMU icon patch instructions" - ) - try expect( - EmulatorBrandingPatch.titleFormatOffset == 0x1a1e891 - && EmulatorBrandingPatch.sourceTitleFormat - == Data("%s Emulator - %s:%d\0".utf8) - && EmulatorBrandingPatch.patchedTitleFormat - == Data("Mactician: TFT PBE\0\0".utf8), - "QEMU window title patch" - ) - let emulatorHostData = try Data( - contentsOf: sourceRoot.appendingPathComponent("Resources/EmulatorHost-Info.plist") - ) - guard let emulatorHostInfo = try PropertyListSerialization.propertyList( - from: emulatorHostData, - format: nil - ) as? [String: Any] else { - throw TestFailure("invalid emulator host Info.plist") - } - try expect( - emulatorHostInfo["CFBundleIconFile"] as? String == "EmulatorIcon.icns", - "emulator host icon name" - ) - try expect( - emulatorHostInfo["CFBundleShortVersionString"] as? String == "1.0.4", - "emulator host version" - ) - try expect(emulatorHostInfo["CFBundleVersion"] as? String == "40", "emulator host build") - try expect( - emulatorHostInfo["CFBundleIdentifier"] as? String - == "dev.sergeinaumov.mactician.game-host", - "game host bundle identifier" - ) - try expect(MacticianIdentity.appName == "Mactician", "application name") - try expect( - MacticianIdentity.userDefaultsDomain == "dev.sergeinaumov.mactician", - "UserDefaults domain" - ) - try expect( - MacticianIdentity.keychainService == "dev.sergeinaumov.mactician", - "Keychain service" - ) - try expect( - MacticianIdentity.loggingSubsystem == "dev.sergeinaumov.mactician", - "logging subsystem" - ) - let supportRoot = LauncherPaths.defaultRoot( - applicationSupport: URL(fileURLWithPath: "/tmp/Application Support", isDirectory: true) - ) - try expect( - supportRoot.path == "/tmp/Application Support/Mactician", - "fresh Application Support root" - ) - - try expect(HostSizing.guestCPUCores(logicalCPUCount: 4) == 4, "minimum CPU count") - try expect(HostSizing.guestCPUCores(logicalCPUCount: 8) == 6, "M1 CPU count") - try expect(HostSizing.guestCPUCores(logicalCPUCount: 12) == 6, "maximum CPU count") - try expect(HostSizing.guestCPUList(logicalCPUCount: 8) == "0-5", "CPU list") - try expect(HostSizing.guestCPUMask(logicalCPUCount: 8) == "3f", "CPU mask") - try expect( - GuestResourceOptions.memoryMB(physicalMemoryBytes: 16 * 1024 * 1024 * 1024) - == [4096, 6144, 8192, 10240, 12288], - "16 GB host RAM choices" - ) - try expect( - GuestResourceOptions.memoryMB(physicalMemoryBytes: 32 * 1024 * 1024 * 1024).last == 16384, - "guest RAM cap" - ) - try expect( - GuestResourceOptions.cpuCores(logicalCPUCount: 8) == Array(2 ... 8), - "8-core host vCPU choices" - ) - try expect( - GuestResourceOptions.selection(saved: 8, options: [4, 6, 8], fallback: 6) == 8 - && GuestResourceOptions.selection(saved: 12, options: [4, 6, 8], fallback: 6) == 6, - "saved guest resource validation" - ) - try expect( - InterfaceScaleOptions.percentages == [100, 125, 150, 175, 200] - && InterfaceScaleOptions.selection(saved: 175) == 175 - && InterfaceScaleOptions.selection(saved: 225) == 100, - "UI scale choices and saved selection validation" - ) - try expect( - InterfaceScaleOptions.runtimeValue(percent: 175) == "1.75" - && InterfaceScaleOptions.runtimeValue(percent: 200) == "2.0" - && InterfaceScaleOptions.runtimeValue(percent: 225) == nil, - "UI scale runtime value" - ) - try expect( - GuestResourceOptions.recommended( - physicalMemoryBytes: 32 * 1024 * 1024 * 1024, - logicalCPUCount: 10 - ) == GuestResourceConfiguration(memoryMB: 8192, cpuCores: 6), - "M1 Max resource recommendation" - ) - try expect( - GuestResourceOptions.recommended( - physicalMemoryBytes: 16 * 1024 * 1024 * 1024, - logicalCPUCount: 8 - ) == GuestResourceConfiguration(memoryMB: 6144, cpuCores: 6), - "16 GB resource recommendation" - ) - try expect(GameLanguage.supported.count == 23, "supported game language count") - try expect(GameLanguage.language(withID: "ru-RU").title == "Russian", "Russian game language") - try expect(GameLanguage.language(withID: "unsupported") == .english, "language fallback") - try expect( - LauncherMetadata.gameDisplayVersion(from: manifest.game.version) == "18.1", - "manifest-derived game display version" - ) - try expect( - LauncherMetadata.totalDownloadBytes(in: manifest) - == manifest.components.reduce(Int64(0)) { $0 + $1.size }, - "manifest-derived download size" - ) - try expect( - !LauncherMetadata.byteCount(LauncherMetadata.totalDownloadBytes(in: manifest)).isEmpty, - "download size formatting" - ) - try expect( - LauncherMetadata.androidAPILevel(in: manifest) == "36" - && LauncherMetadata.componentVersion("emulator", in: manifest) == "37.1.11", - "manifest-derived component metadata" - ) - try expect( - LauncherFailurePresentation.recoveryAction(for: .installation) == .retryInstallation - && LauncherFailurePresentation.recoveryAction(for: .launch) == .tryLaunchAgain - && LauncherFailurePresentation.recoveryAction(for: .runtime) == .restartGame - && LauncherFailurePresentation.recoveryAction(for: .validation) == .repairInstallation - && LauncherFailurePresentation.recoveryAction(for: .reset) == .none, - "failure recovery mapping" - ) - try expect( - InstallerCompletionPresentation.isUserCancellation( - requested: true, - error: LauncherError.process("late completion") - ) - && InstallerCompletionPresentation.isUserCancellation( - requested: false, - error: LauncherError.cancelled - ) - && !InstallerCompletionPresentation.isUserCancellation( - requested: false, - error: LauncherError.process("failed") - ), - "user cancellation completion mapping" - ) - try expect( - LauncherHotkeyPresentation.status(for: .init( - accessibilityTrusted: false, - eventTapActive: false, - eventTapAttemptFailed: false - )) == .permissionRequired - && LauncherHotkeyPresentation.status(for: .init( - accessibilityTrusted: false, - eventTapActive: true, - eventTapAttemptFailed: false - )) == .active - && LauncherHotkeyPresentation.status(for: .init( - accessibilityTrusted: true, - eventTapActive: false, - eventTapAttemptFailed: false - )) == .ready - && LauncherHotkeyPresentation.status(for: .init( - accessibilityTrusted: true, - eventTapActive: true, - eventTapAttemptFailed: false - )) == .active - && LauncherHotkeyPresentation.status(for: .init( - accessibilityTrusted: true, - eventTapActive: false, - eventTapAttemptFailed: true - )) == .unavailable, - "hotkey permission presentation mapping" - ) - try expect( - InstallerService.unrealCommandLine(for: GameLanguage.language(withID: "ru-RU")) - .contains("-culture=ru-RU"), - "Unreal culture argument" - ) - try expect( - InstallerService.adbArguments(["devices"]) == ["-P", "5038", "devices"], - "isolated ADB server arguments" - ) - let gameInstallArguments = InstallerService.gameInstallArguments(apkPaths: ["base.apk", "split.apk"]) - try expect( - gameInstallArguments == [ - "-P", "5038", "-s", "emulator-5582", "install-multiple", - "--no-streaming", "-r", "-g", "base.apk", "split.apk" - ], - "persistent split APK installation" - ) - try expect( - InstallerService.emulatorArguments(initializeData: true, logicalCPUCount: 8).contains("-wipe-data"), - "first boot initializes userdata" - ) - let provisioningArguments = InstallerService.emulatorArguments( - initializeData: false, - logicalCPUCount: 8 - ) - try expect( - provisioningArguments.contains("-dns-server") - && provisioningArguments.contains("1.1.1.1,8.8.8.8"), - "public DNS avoids local network access" - ) - try expect( - !InstallerService.emulatorArguments(initializeData: false, logicalCPUCount: 8).contains("-wipe-data"), - "normal boot preserves userdata" - ) - - let temporary = FileManager.default.temporaryDirectory - .appendingPathComponent("tft-launcher-tests-\(UUID().uuidString)", isDirectory: true) - defer { try? FileManager.default.removeItem(at: temporary) } - try FileManager.default.createDirectory(at: temporary, withIntermediateDirectories: true) - let abc = temporary.appendingPathComponent("abc.txt") - try Data("abc".utf8).write(to: abc) - try expect( - try SystemServices.sha256(of: abc) == "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", - "streaming SHA-256" - ) - - let overlaySourceRoot = temporary.appendingPathComponent("overlay-source", isDirectory: true) - let overlayAssets = overlaySourceRoot.appendingPathComponent("assets", isDirectory: true) - let overlaySource = temporary.appendingPathComponent("base-fixture.apk") - let overlayDestination = temporary.appendingPathComponent("base-overlay.apk") - let overlayStaging = temporary.appendingPathComponent("overlay-staging", isDirectory: true) - try FileManager.default.createDirectory(at: overlayAssets, withIntermediateDirectories: true) - try Data("original\n".utf8).write(to: overlayAssets.appendingPathComponent("UECommandLine.txt")) - try Data("fixture".utf8).write(to: overlaySourceRoot.appendingPathComponent("payload.bin")) - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/zip"), - ["-q", "-r", overlaySource.path, "assets", "payload.bin"], - currentDirectory: overlaySourceRoot - ) - let overlayHash = try InstallerService.prepareOverlay( - source: overlaySource, - expectedSourceSHA256: try SystemServices.sha256(of: overlaySource), - destination: overlayDestination, - stagingRoot: overlayStaging, - language: GameLanguage.language(withID: "ru-RU") - ) - try expect( - overlayHash == SystemServices.sha256(of: overlayDestination), - "prepared overlay hash" - ) - try expect( - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/unzip"), - ["-p", overlayDestination.path, "assets/UECommandLine.txt"] - ) == InstallerService.unrealCommandLine(for: GameLanguage.language(withID: "ru-RU")), - "prepared overlay culture" - ) - - var state = InstallState() - state.stage = .avdCreated - state.installedComponents = ["emulator": "37.1.11"] - let stateURL = temporary.appendingPathComponent("install-state.json") - try SystemServices.saveState(state, to: stateURL) - let restored = SystemServices.loadState(from: stateURL) - try expect(restored.stage == .avdCreated, "state stage") - try expect(restored.installedComponents == state.installedComponents, "state components") - try Data("truncated".utf8).write(to: stateURL, options: .atomic) - try expect(SystemServices.loadState(from: stateURL).stage == .empty, "corrupt state fallback") - - let preparedRoot = temporary.appendingPathComponent("prepared-data", isDirectory: true) - let preparedPaths = try LauncherPaths( - root: preparedRoot, - resources: sourceRoot.appendingPathComponent("Resources", isDirectory: true) - ) - try InstallerService.prepareDirectories(at: preparedPaths) - try expect( - FileManager.default.fileExists(atPath: preparedPaths.avdHome.path), - "AVD parent directory" - ) - try expect( - FileManager.default.fileExists(atPath: preparedPaths.staging.path), - "staging directory" - ) - - let runtimeResources = temporary.appendingPathComponent("runtime-resources", isDirectory: true) - let runtimeTemplate = runtimeResources.appendingPathComponent("RuntimeTemplate", isDirectory: true) - let runtimeRoot = temporary.appendingPathComponent("runtime-data", isDirectory: true) - try FileManager.default.createDirectory(at: runtimeTemplate, withIntermediateDirectories: true) - try Data("new runtime".utf8).write(to: runtimeTemplate.appendingPathComponent("marker.txt")) - let runtimePaths = try LauncherPaths(root: runtimeRoot, resources: runtimeResources) - try FileManager.default.createDirectory(at: runtimePaths.runtimeProject, withIntermediateDirectories: true) - try Data("old runtime".utf8).write(to: runtimePaths.runtimeProject.appendingPathComponent("old.txt")) - try InstallerService.refreshRuntimeProject(at: runtimePaths) - try expect( - try String( - contentsOf: runtimePaths.runtimeProject.appendingPathComponent("marker.txt"), - encoding: .utf8 - ) == "new runtime", - "runtime refresh installs the bundled template" - ) - try expect( - !FileManager.default.fileExists(atPath: runtimePaths.runtimeProject.appendingPathComponent("old.txt").path), - "runtime refresh replaces the previous template" - ) - - let rootRuntimeScript = try String( - contentsOf: sourceRoot.deletingLastPathComponent().appendingPathComponent("run-tft-root-affinity.command"), - encoding: .utf8 - ) - try expect( - rootRuntimeScript.contains("Empty TFT streaming manifest detected") - && rootRuntimeScript.contains("rm -rf \"$STREAMING_INSTALL_DIR\""), - "empty streaming manifest self-heal" - ) - try expect( - rootRuntimeScript.contains("ApplicationScale=\" scale") - && rootRuntimeScript.contains("TFT_UI_SCALE"), - "Unreal UI scale launch configuration" - ) - - let component = manifest.components[0] - let partial = temporary.appendingPathComponent("partial.zip") - let curlArguments = InstallerService.curlArguments(component: component, destination: partial) - try expect(curlArguments.contains("--continue-at"), "resumable curl option") - try expect(curlArguments.contains("-"), "resume from current byte") - try expect(curlArguments.last == partial.path, "download destination") - - let archiveSource = temporary.appendingPathComponent("archive-source", isDirectory: true) - let archiveDestination = temporary.appendingPathComponent("archive-destination", isDirectory: true) - let archive = temporary.appendingPathComponent("fixture.zip") - try FileManager.default.createDirectory(at: archiveSource, withIntermediateDirectories: true) - try FileManager.default.createDirectory(at: archiveDestination, withIntermediateDirectories: true) - try Data("payload".utf8).write(to: archiveSource.appendingPathComponent("payload.txt")) - try SystemServices.run( - URL(fileURLWithPath: "/usr/bin/zip"), - ["-q", archive.path, "payload.txt"], - currentDirectory: archiveSource - ) - try InstallerService.extractArchive(archive, to: archiveDestination) - try expect( - String(contentsOf: archiveDestination.appendingPathComponent("payload.txt"), encoding: .utf8) == "payload", - "ZIP extraction" - ) - - let unsafe = SDKComponent( - id: "unsafe", - version: "1", - url: URL(string: "https://example.com/file.zip")!, - size: 1, - sha256: String(repeating: "0", count: 64), - archiveRoot: "../escape", - installPath: "/tmp/escape" - ) - do { - try unsafe.validate() - throw TestFailure("unsafe component accepted") - } catch is LauncherError { - // Expected. - } - - let sourceFiles = try recursiveFiles(at: sourceRoot) - for localization in ["en", "ru"] { - let strings = sourceRoot.appendingPathComponent( - "Resources/\(localization).lproj/Localizable.strings" - ) - try expect( - FileManager.default.fileExists(atPath: strings.path), - "\(localization) localization resource" - ) - guard let localizedValues = try PropertyListSerialization.propertyList( - from: Data(contentsOf: strings), - format: nil - ) as? [String: String] else { - throw TestFailure("invalid \(localization) localization") - } - let descriptor = localizedValues["about.descriptor"] ?? "" - try expect(!descriptor.isEmpty, "\(localization) Mactician descriptor") - if localization == "en" { - try expect( - descriptor == "TFT PBE launcher for Apple Silicon", - "English Mactician descriptor" - ) - } - } - let localizationDirectories = try FileManager.default.contentsOfDirectory( - at: sourceRoot.appendingPathComponent("Resources"), - includingPropertiesForKeys: nil - ).filter { - $0.pathExtension == "lproj" - }.map { - $0.deletingPathExtension().lastPathComponent - }.sorted() - try expect( - localizationDirectories == ["en", "ru"], - "Mactician localization resources" - ) - let launcherModelSource = try String( - contentsOf: sourceRoot.appendingPathComponent("Sources/LauncherModel.swift"), - encoding: .utf8 - ) - for defaultsKey in [ - "launchProfile", "effectsQuality", "gameLanguage", "androidMemoryMB", - "androidCPUCores", "uiScalePercent" - ] { - try expect(launcherModelSource.contains("\"\(defaultsKey)\""), "UserDefaults key \(defaultsKey)") - } - let appSource = try String( - contentsOf: sourceRoot.appendingPathComponent("Sources/MacticianApp.swift"), - encoding: .utf8 - ) - for aboutText in [ - "Mactician", - "Free and open source.", - "Built for two tacticians. Shared with everyone.", - "Website", - "GitHub", - "Technical story", - "Report an issue" - ] { - try expect(appSource.contains(aboutText), "About content: \(aboutText)") - } - let buildScript = try String( - contentsOf: sourceRoot.deletingLastPathComponent() - .appendingPathComponent("scripts/build-mactician.command"), - encoding: .utf8 - ) - try expect( - buildScript.contains("Mactician.app") - && buildScript.contains("Mactician-$VERSION.dmg") - && buildScript.contains("-volname \"Mactician\"") - && buildScript.contains("Android_Codex.DeviceProfiles.effects-high.ini") - && buildScript.contains("Android_Codex.DeviceProfiles.effects-performance.ini"), - "release artifact naming" - ) - let profileRoot = sourceRoot.deletingLastPathComponent() - .appendingPathComponent("artifacts/tft-pbe-18.1-5212127-angle-opengl") - let highEffectsProfile = try String( - contentsOf: profileRoot.appendingPathComponent( - "Android_Codex.DeviceProfiles.effects-high.ini" - ), - encoding: .utf8 - ) - let performanceEffectsProfile = try String( - contentsOf: profileRoot.appendingPathComponent( - "Android_Codex.DeviceProfiles.effects-performance.ini" - ), - encoding: .utf8 - ) - for profileText in [highEffectsProfile, performanceEffectsProfile] { - try expect( - profileText.contains("CVars=sg.ResolutionQuality=100") - && profileText.contains("CVars=r.ScreenPercentage=100"), - "effects profiles preserve selected resolution" - ) - try expect( - profileText.contains("CVars=Android.OpenGL.NumRemoteProgramCompileServices=4"), - "effects profiles preserve asynchronous OpenGL PSO compilation" - ) - } - try expect( - performanceEffectsProfile.contains("CVars=sg.EffectsQuality=0") - && performanceEffectsProfile.contains("CVars=r.ParticleLODBias=2"), - "performance effects profile reduces effects and LOD" - ) - let keychainScript = try String( - contentsOf: sourceRoot.deletingLastPathComponent() - .appendingPathComponent("scripts/login-tft-from-keychain.command"), - encoding: .utf8 - ) - try expect( - keychainScript.contains( - "MACTICIAN_KEYCHAIN_SERVICE:-dev.sergeinaumov.mactician" - ), - "Keychain service script" - ) - let cyrillicRange = "[\(UnicodeScalar(0x0400)!)-\(UnicodeScalar(0x04FF)!)]" - for file in sourceFiles where ["swift", "command", "json", "plist"].contains(file.pathExtension) { - let text = try String(contentsOf: file, encoding: .utf8) - let developerPath = "/Users/" + "example-developer" - try expect(!text.contains(developerPath), "developer path in \(file.lastPathComponent)") - try expect( - text.range(of: cyrillicRange, options: .regularExpression) == nil, - "non-English text in \(file.lastPathComponent)" - ) - } - - print("Mactician tests: OK") - } - - private static func recursiveFiles(at root: URL) throws -> [URL] { - guard let enumerator = FileManager.default.enumerator( - at: root, - includingPropertiesForKeys: [.isRegularFileKey], - options: [.skipsHiddenFiles] - ) else { return [] } - return enumerator.compactMap { $0 as? URL }.filter { - (try? $0.resourceValues(forKeys: [.isRegularFileKey]).isRegularFile) == true - } - } - - private static func expect(_ condition: @autoclosure () throws -> Bool, _ message: String) throws { - if try !condition() { throw TestFailure(message) } - } - - private static func waitFor( - _ message: String, - timeout: TimeInterval = 2, - condition: () -> Bool - ) throws { - let deadline = Date().addingTimeInterval(timeout) - while !condition() && Date() < deadline { - Thread.sleep(forTimeInterval: 0.01) - } - try expect(condition(), message) - } -} - -private final class TelemetryLoaderStub { - typealias Completion = (Result<(Data, HTTPURLResponse), Error>) -> Void - - private let lock = NSLock() - private var requests: [URLRequest] = [] - private var completions: [Completion] = [] - - var requestCount: Int { - lock.withLock { requests.count } - } - - var firstEventID: String? { - lock.withLock { - guard let body = requests.first?.httpBody, - let value = try? JSONSerialization.jsonObject(with: body) as? [String: Any] else { - return nil - } - return value["event_id"] as? String - } - } - - func load( - _ request: URLRequest, - _ maximumBytes: Int, - _ completion: @escaping Completion - ) { - lock.withLock { - requests.append(request) - completions.append(completion) - } - } - - func completeFirst(statusCode: Int) { - let completion: Completion? = lock.withLock { - guard !completions.isEmpty else { return nil } - return completions.removeFirst() - } - guard let completion, - let response = HTTPURLResponse( - url: URL(string: "https://127.0.0.1:1/v1/events")!, - statusCode: statusCode, - httpVersion: "HTTP/1.1", - headerFields: ["Content-Type": "application/json"] - ) else { return } - completion(.success((Data(), response))) - } -} - -private extension NSLock { - func withLock(_ operation: () -> T) -> T { - lock() - defer { unlock() } - return operation() - } -} - -struct TestFailure: Error, CustomStringConvertible { - let description: String - init(_ description: String) { self.description = description } -} diff --git a/scripts/build-mactician-icns.pl b/scripts/build-mactician-icns.pl deleted file mode 100755 index e30df82..0000000 --- a/scripts/build-mactician-icns.pl +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; - -my ($iconset, $output) = @ARGV; -die "Usage: $0 ICONSET OUTPUT.icns\n" unless defined $iconset && defined $output; - -my @chunks = ( - ["icp4", "icon_16x16.png"], - ["icp5", "icon_16x16\@2x.png"], - ["icp6", "icon_32x32\@2x.png"], - ["ic07", "icon_128x128.png"], - ["ic08", "icon_128x128\@2x.png"], - ["ic09", "icon_256x256\@2x.png"], - ["ic10", "icon_512x512\@2x.png"], -); - -my @payloads; -my $total_length = 8; -for my $chunk (@chunks) { - my ($type, $filename) = @$chunk; - my $path = "$iconset/$filename"; - open my $input, "<:raw", $path or die "Could not read $path: $!\n"; - local $/; - my $payload = <$input>; - close $input; - push @payloads, [$type, $payload]; - $total_length += 8 + length($payload); -} - -open my $destination, ">:raw", $output or die "Could not write $output: $!\n"; -print {$destination} "icns", pack("N", $total_length); -for my $chunk (@payloads) { - my ($type, $payload) = @$chunk; - print {$destination} $type, pack("N", 8 + length($payload)), $payload; -} -close $destination or die "Could not close $output: $!\n"; diff --git a/scripts/build-mactician.command b/scripts/build-mactician.command deleted file mode 100755 index 3730079..0000000 --- a/scripts/build-mactician.command +++ /dev/null @@ -1,264 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly LAUNCHER_DIR="$PROJECT_DIR/launcher" -readonly BUILD_DIR="$LAUNCHER_DIR/.build" -readonly DIST_DIR="${MACTICIAN_DIST_DIR:-$PROJECT_DIR/dist}" -readonly SPARKLE_ROOT="$("$PROJECT_DIR/scripts/prepare-sparkle.command")" -readonly SPARKLE_FRAMEWORK_SOURCE="$SPARKLE_ROOT/Sparkle.framework" -readonly SPARKLE_LICENSE_SOURCE="$SPARKLE_ROOT/LICENSE" -readonly SIGNING_IDENTITY="${MACTICIAN_CODESIGN_IDENTITY:--}" -readonly NOTARY_PROFILE="${MACTICIAN_NOTARY_PROFILE:-}" -readonly VERSION="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$LAUNCHER_DIR/Info.plist")" -typeset -i PUBLIC_RELEASE=0 -if [[ "$SIGNING_IDENTITY" != "-" || -n "$NOTARY_PROFILE" ]]; then - if [[ "$SIGNING_IDENTITY" != 'Developer ID Application: '* || -z "$NOTARY_PROFILE" ]]; then - print -u2 "A public release requires both a Developer ID Application identity and MACTICIAN_NOTARY_PROFILE." - exit 2 - fi - if ! security find-identity -v -p codesigning \ - | grep -Fq -- "\"$SIGNING_IDENTITY\""; then - print -u2 "Developer ID signing identity is not available in the login Keychain: $SIGNING_IDENTITY" - exit 2 - fi - PUBLIC_RELEASE=1 -fi -readonly PUBLIC_RELEASE -readonly APP="$DIST_DIR/Mactician.app" -readonly DMG="$DIST_DIR/Mactician-$VERSION.dmg" -readonly APP_CONTENTS="$APP/Contents" -readonly RESOURCES="$APP_CONTENTS/Resources" -readonly THIRD_PARTY_LICENSES="$RESOURCES/ThirdPartyLicenses" -readonly FRAMEWORKS="$APP_CONTENTS/Frameworks" -readonly GAME_RESOURCES="$RESOURCES/Game" -readonly RUNTIME_TEMPLATE="$RESOURCES/RuntimeTemplate" -readonly EMULATOR_APP="$RUNTIME_TEMPLATE/Mactician Game Host.app" -readonly EMULATOR_APP_CONTENTS="$EMULATOR_APP/Contents" -readonly APK_DIR="${TFT_GAME_APK_DIR:-}" - -if [[ -z "$APK_DIR" ]]; then - print -u2 "TFT_GAME_APK_DIR must point to the directory containing the four pinned, unmodified APK splits." - exit 1 -fi - -typeset -A EXPECTED_APK_HASHES -EXPECTED_APK_HASHES=( - base.apk 2f4996a620623d0b958383bfe58bdec78fb70cca095099ca2474f3d08c62ff18 - split_config.arm64_v8a.apk a7332efdddf070e724f75c41adb1a829bc3c442bd53ae79fe8cc55075e951939 - split_config.en.apk b57210f98779e12d6f6874c378942f67a55459e75549bbf97487a2d6e0084cd5 - split_config.hdpi.apk f3b653ba01a8d352f6a25ad6ecbae8892b13aa44daad6b74aebdb5a5be05d756 -) - -for apk expected_hash in ${(kv)EXPECTED_APK_HASHES}; do - apk_path="$APK_DIR/$apk" - if [[ ! -f "$apk_path" ]]; then - print -u2 "Private build input not found: $apk_path" - exit 1 - fi - actual_hash="$(shasum -a 256 "$apk_path" | awk '{print $1}')" - if [[ "$actual_hash" != "$expected_hash" ]]; then - print -u2 "SHA-256 for $apk does not match the TFT PBE 18.1 manifest." - exit 1 - fi -done - -copy_plain_file() { - local source_path="$1" - local destination_path="$2" - local temporary_copy - temporary_copy="$(mktemp /private/tmp/mactician-copy.XXXXXX)" - if ! cp -X "$source_path" "$temporary_copy"; then - rm -f "$temporary_copy" - return 1 - fi - chmod 644 "$temporary_copy" - if ! mv -f "$temporary_copy" "$destination_path"; then - rm -f "$temporary_copy" - return 1 - fi -} - -rm -rf "$BUILD_DIR/module-cache" "$APP" "$DMG" -mkdir -p "$BUILD_DIR" "$APP_CONTENTS/MacOS" "$RESOURCES" "$FRAMEWORKS" "$GAME_RESOURCES" \ - "$THIRD_PARTY_LICENSES" \ - "$RUNTIME_TEMPLATE/scripts" \ - "$RUNTIME_TEMPLATE/artifacts/tft-pbe-18.1-5212127-angle-opengl" \ - "$EMULATOR_APP_CONTENTS/MacOS" "$EMULATOR_APP_CONTENTS/Resources" \ - "$DIST_DIR" - -mkdir -p "$BUILD_DIR/module-cache" -typeset -a SWIFT_SOURCES -SWIFT_SOURCES=("$LAUNCHER_DIR"/Sources/*.swift) -xcrun swiftc \ - -O \ - -parse-as-library \ - -target arm64-apple-macosx12.0 \ - -module-cache-path "$BUILD_DIR/module-cache" \ - -F "$SPARKLE_ROOT" \ - "${SWIFT_SOURCES[@]}" \ - -framework Sparkle \ - -Xlinker -rpath \ - -Xlinker @executable_path/../Frameworks \ - -o "$APP_CONTENTS/MacOS/Mactician" - -ditto "$SPARKLE_FRAMEWORK_SOURCE" "$FRAMEWORKS/Sparkle.framework" -# The launcher is not App Sandbox-enabled. Sparkle's XPC services are only for -# sandboxed hosts and complicate manual Developer ID signing unnecessarily. -rm -rf "$FRAMEWORKS/Sparkle.framework/Versions/B/XPCServices" -rm -f "$FRAMEWORKS/Sparkle.framework/XPCServices" - -copy_plain_file "$LAUNCHER_DIR/Info.plist" "$APP_CONTENTS/Info.plist" -copy_plain_file "$LAUNCHER_DIR/Resources/Mactician.icns" "$RESOURCES/Mactician.icns" -copy_plain_file "$LAUNCHER_DIR/Resources/release-manifest.json" "$RESOURCES/release-manifest.json" -copy_plain_file "$LAUNCHER_DIR/Resources/MacticianHero.png" "$RESOURCES/MacticianHero.png" -copy_plain_file "$LAUNCHER_DIR/Resources/launcher-runtime.command" "$RESOURCES/launcher-runtime.command" -copy_plain_file "$LAUNCHER_DIR/Resources/QEMU-Hypervisor.entitlements" "$RESOURCES/QEMU-Hypervisor.entitlements" -copy_plain_file "$SPARKLE_LICENSE_SOURCE" "$THIRD_PARTY_LICENSES/Sparkle-LICENSE.txt" -chmod 755 "$RESOURCES/launcher-runtime.command" - -for localization in en ru; do - mkdir -p "$RESOURCES/$localization.lproj" - copy_plain_file "$LAUNCHER_DIR/Resources/$localization.lproj/Localizable.strings" \ - "$RESOURCES/$localization.lproj/Localizable.strings" - plutil -lint "$RESOURCES/$localization.lproj/Localizable.strings" >/dev/null -done - -copy_plain_file "$LAUNCHER_DIR/Resources/EmulatorHost-Info.plist" "$EMULATOR_APP_CONTENTS/Info.plist" -copy_plain_file "$LAUNCHER_DIR/Resources/EmulatorIcon.icns" "$EMULATOR_APP_CONTENTS/Resources/EmulatorIcon.icns" -xcrun clang \ - -O2 \ - -target arm64-apple-macosx12.0 \ - "$LAUNCHER_DIR/EmulatorHost/main.c" \ - -o "$EMULATOR_APP_CONTENTS/MacOS/MacticianGameHost" - -for apk in ${(k)EXPECTED_APK_HASHES}; do - copy_plain_file "$APK_DIR/$apk" "$GAME_RESOURCES/$apk" -done - -copy_plain_file "$PROJECT_DIR/run-tft-root-affinity.command" "$RUNTIME_TEMPLATE/run-tft-root-affinity.command" -copy_plain_file "$PROJECT_DIR/run-tft-angle-opengl.command" "$RUNTIME_TEMPLATE/run-tft-angle-opengl.command" -copy_plain_file "$PROJECT_DIR/scripts/run-asg-experiment.command" "$RUNTIME_TEMPLATE/scripts/run-asg-experiment.command" -copy_plain_file "$PROJECT_DIR/scripts/watch-root-pso.command" "$RUNTIME_TEMPLATE/scripts/watch-root-pso.command" -copy_plain_file "$PROJECT_DIR/scripts/android-environment.sh" "$RUNTIME_TEMPLATE/scripts/android-environment.sh" -copy_plain_file "$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.shader-prewarm.ini" \ - "$RUNTIME_TEMPLATE/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.shader-prewarm.ini" -copy_plain_file "$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.performance-max.ini" \ - "$RUNTIME_TEMPLATE/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.performance-max.ini" -copy_plain_file "$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.effects-high.ini" \ - "$RUNTIME_TEMPLATE/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.effects-high.ini" -copy_plain_file "$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.effects-performance.ini" \ - "$RUNTIME_TEMPLATE/artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.effects-performance.ini" -chmod 755 \ - "$RUNTIME_TEMPLATE/run-tft-root-affinity.command" \ - "$RUNTIME_TEMPLATE/run-tft-angle-opengl.command" \ - "$RUNTIME_TEMPLATE/scripts/run-asg-experiment.command" \ - "$RUNTIME_TEMPLATE/scripts/watch-root-pso.command" \ - "$RUNTIME_TEMPLATE/scripts/android-environment.sh" - -if rg -n '/Users/[[:alnum:]_.-]+/' "$APP_CONTENTS"; then - print -u2 "The launcher build contains an absolute developer path." - exit 1 -fi - -plutil -lint "$APP_CONTENTS/Info.plist" >/dev/null -plutil -lint "$EMULATOR_APP_CONTENTS/Info.plist" >/dev/null -plutil -lint "$RESOURCES/QEMU-Hypervisor.entitlements" >/dev/null - -# Some synchronized or sandboxed directories can block codesign while it -# atomically replaces the linker signature. Sign an identical temporary bundle -# on the local filesystem, then copy the verified result back into dist. -readonly SIGNING_ROOT="$(mktemp -d /private/tmp/mactician-sign.XXXXXX)" -readonly SIGNING_APP="$SIGNING_ROOT/Mactician.app" -readonly SIGNING_EMULATOR_APP="$SIGNING_APP/Contents/Resources/RuntimeTemplate/Mactician Game Host.app" -readonly SIGNING_SPARKLE="$SIGNING_APP/Contents/Frameworks/Sparkle.framework" -readonly SIGNING_SPARKLE_VERSION="$SIGNING_SPARKLE/Versions/B" -cleanup_signing_root() { - rm -rf "$SIGNING_ROOT" -} -trap cleanup_signing_root EXIT -cp -R -X "$APP" "$SIGNING_APP" -if (( PUBLIC_RELEASE == 1 )); then - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_SPARKLE_VERSION/Autoupdate" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_SPARKLE_VERSION/Updater.app" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_SPARKLE" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_EMULATOR_APP/Contents/MacOS/MacticianGameHost" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_EMULATOR_APP" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_APP/Contents/MacOS/Mactician" - codesign --force --sign "$SIGNING_IDENTITY" --timestamp --options runtime \ - "$SIGNING_APP" -else - codesign --force --sign - --timestamp=none --options runtime \ - "$SIGNING_SPARKLE_VERSION/Autoupdate" - codesign --force --sign - --timestamp=none --options runtime \ - "$SIGNING_SPARKLE_VERSION/Updater.app" - codesign --force --sign - --timestamp=none --options runtime \ - "$SIGNING_SPARKLE" - codesign --force --sign - --timestamp=none "$SIGNING_EMULATOR_APP/Contents/MacOS/MacticianGameHost" - codesign --force --sign - --timestamp=none "$SIGNING_EMULATOR_APP" - codesign --force --sign - --timestamp=none "$SIGNING_APP/Contents/MacOS/Mactician" - codesign --force --sign - --timestamp=none "$SIGNING_APP" -fi -codesign --verify --deep --strict --verbose=2 "$SIGNING_APP" -rm -rf "$APP" -mv "$SIGNING_APP" "$APP" -codesign --verify --deep --strict --verbose=2 "$APP" -if (( PUBLIC_RELEASE == 1 )) && [[ -x /usr/bin/syspolicy_check ]]; then - syspolicy_check notary-submission "$APP" -fi - -readonly DMG_ROOT="$SIGNING_ROOT/dmg-root" -mkdir -p "$DMG_ROOT" -cp -R -X "$APP" "$DMG_ROOT/Mactician.app" -ln -s /Applications "$DMG_ROOT/Applications" -hdiutil create \ - -size 512m \ - -fs HFS+ \ - -volname "Mactician" \ - -srcfolder "$DMG_ROOT" \ - -ov \ - -format UDZO \ - "$DMG" >/dev/null -xattr -c "$DMG" - -if (( PUBLIC_RELEASE == 1 )); then - codesign --force --sign "$SIGNING_IDENTITY" --timestamp "$DMG" - readonly NOTARY_RESULT="$SIGNING_ROOT/notary-result.json" - if ! xcrun notarytool submit "$DMG" \ - --keychain-profile "$NOTARY_PROFILE" \ - --wait \ - --timeout 30m \ - --output-format json >"$NOTARY_RESULT"; then - cat "$NOTARY_RESULT" >&2 - exit 1 - fi - cat "$NOTARY_RESULT" - readonly NOTARY_ID="$(jq -r '.id // empty' "$NOTARY_RESULT")" - readonly NOTARY_STATUS="$(jq -r '.status // empty' "$NOTARY_RESULT")" - if [[ -z "$NOTARY_ID" || "$NOTARY_STATUS" != "Accepted" ]]; then - print -u2 "Apple did not accept the notarization submission." - exit 1 - fi - xcrun notarytool log "$NOTARY_ID" \ - --keychain-profile "$NOTARY_PROFILE" - xcrun stapler staple "$DMG" - xcrun stapler validate "$DMG" - spctl --assess --type open --context context:primary-signature --verbose=2 "$DMG" - if [[ -x /usr/bin/syspolicy_check ]]; then - syspolicy_check distribution "$APP" - fi -fi - -print "App: $APP" -print "DMG: $DMG" -if (( PUBLIC_RELEASE == 1 )); then - print "Developer ID-signed and notarized public release is ready." -else - print "Private ad-hoc build is ready. On another Mac, allow the first launch via System Settings → Privacy & Security → Open Anyway." -fi diff --git a/scripts/generate-mactician-assets.command b/scripts/generate-mactician-assets.command deleted file mode 100755 index f0aa447..0000000 --- a/scripts/generate-mactician-assets.command +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly BRAND_DIR="$PROJECT_DIR/branding" -readonly GENERATED_DIR="$BRAND_DIR/generated" -readonly LAUNCHER_ICONSET="$GENERATED_DIR/Mactician.iconset" -readonly GAME_HOST_ICONSET="$GENERATED_DIR/EmulatorIcon.iconset" -readonly APP_ICON_SVG="$BRAND_DIR/mactician-app-icon.svg" -readonly GAME_HOST_ICON_SVG="$BRAND_DIR/mactician-game-host-icon.svg" - -for command_name in rsvg-convert iconutil magick perl; do - command -v "$command_name" >/dev/null 2>&1 || { - print -u2 "Required asset tool is unavailable: $command_name" - exit 1 - } -done - -rm -rf "$GENERATED_DIR" -mkdir -p "$LAUNCHER_ICONSET" "$GAME_HOST_ICONSET" - -render_png() { - local source="$1" - local width="$2" - local height="$3" - local destination="$4" - rsvg-convert --width "$width" --height "$height" "$source" --output "$destination" -} - -render_iconset() { - local source="$1" - local iconset="$2" - render_png "$source" 16 16 "$iconset/icon_16x16.png" - render_png "$source" 32 32 "$iconset/icon_16x16@2x.png" - render_png "$source" 32 32 "$iconset/icon_32x32.png" - render_png "$source" 64 64 "$iconset/icon_32x32@2x.png" - render_png "$source" 128 128 "$iconset/icon_128x128.png" - render_png "$source" 256 256 "$iconset/icon_128x128@2x.png" - render_png "$source" 256 256 "$iconset/icon_256x256.png" - render_png "$source" 512 512 "$iconset/icon_256x256@2x.png" - render_png "$source" 512 512 "$iconset/icon_512x512.png" - render_png "$source" 1024 1024 "$iconset/icon_512x512@2x.png" -} - -render_iconset "$APP_ICON_SVG" "$LAUNCHER_ICONSET" -render_iconset "$GAME_HOST_ICON_SVG" "$GAME_HOST_ICONSET" - -perl "$PROJECT_DIR/scripts/build-mactician-icns.pl" \ - "$LAUNCHER_ICONSET" "$GENERATED_DIR/Mactician.icns" -perl "$PROJECT_DIR/scripts/build-mactician-icns.pl" \ - "$GAME_HOST_ICONSET" "$GENERATED_DIR/EmulatorIcon.icns" -readonly LAUNCHER_VALIDATION_ICONSET="$GENERATED_DIR/.launcher-validation.iconset" -readonly GAME_HOST_VALIDATION_ICONSET="$GENERATED_DIR/.game-host-validation.iconset" -iconutil -c iconset "$GENERATED_DIR/Mactician.icns" -o "$LAUNCHER_VALIDATION_ICONSET" -iconutil -c iconset "$GENERATED_DIR/EmulatorIcon.icns" -o "$GAME_HOST_VALIDATION_ICONSET" -rm -rf "$LAUNCHER_VALIDATION_ICONSET" "$GAME_HOST_VALIDATION_ICONSET" -render_png "$APP_ICON_SVG" 1024 1024 "$GENERATED_DIR/Mactician-1024.png" -render_png "$GAME_HOST_ICON_SVG" 1024 1024 "$GENERATED_DIR/EmulatorIcon-1024.png" -render_png "$BRAND_DIR/mactician-favicon.svg" 64 64 "$GENERATED_DIR/mactician-favicon-64.png" -magick "$GENERATED_DIR/mactician-favicon-64.png" -define icon:auto-resize=64,32,16 \ - "$GENERATED_DIR/mactician-favicon.ico" -render_png "$BRAND_DIR/mactician-social-preview.svg" 1280 640 \ - "$GENERATED_DIR/mactician-social-preview.png" -render_png "$BRAND_DIR/mactician-open-graph.svg" 1200 630 \ - "$GENERATED_DIR/mactician-open-graph.png" -render_png "$BRAND_DIR/mactician-small-size-test.svg" 1120 420 \ - "$GENERATED_DIR/mactician-small-size-test.png" -render_png "$BRAND_DIR/mactician-product-hero.svg" 1600 900 \ - "$GENERATED_DIR/mactician-product-hero.png" - -cp -f "$GENERATED_DIR/Mactician.icns" "$PROJECT_DIR/launcher/Resources/Mactician.icns" -cp -f "$GENERATED_DIR/Mactician-1024.png" "$PROJECT_DIR/launcher/Resources/Mactician-1024.png" -cp -f "$GENERATED_DIR/EmulatorIcon.icns" "$PROJECT_DIR/launcher/Resources/EmulatorIcon.icns" -cp -f "$GENERATED_DIR/EmulatorIcon-1024.png" \ - "$PROJECT_DIR/launcher/Resources/EmulatorIcon-1024.png" -cp -f "$GENERATED_DIR/mactician-product-hero.png" \ - "$PROJECT_DIR/launcher/Resources/MacticianHero.png" - -print "Generated Mactician assets in $GENERATED_DIR" diff --git a/scripts/integration-test-mactician.command b/scripts/integration-test-mactician.command deleted file mode 100755 index 0ee19f0..0000000 --- a/scripts/integration-test-mactician.command +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly LAUNCHER_DIR="$PROJECT_DIR/launcher" -readonly APP_RESOURCES="$PROJECT_DIR/dist/Mactician.app/Contents/Resources" -readonly TEST_ROOT="$(mktemp -d /tmp/mactician-integration.XXXXXX)" -readonly TEST_BINARY="$TEST_ROOT/InstallerIntegration" -readonly FIXTURE_DIR="$LAUNCHER_DIR/.build/integration-fixtures" -cleanup() { - rm -rf "$TEST_ROOT" -} -trap cleanup EXIT - -if pgrep -f '[q]emu-system-aarch64' >/dev/null 2>&1; then - print -u2 "Another Android Emulator is running. Close it before the provisioning integration test." - exit 2 -fi - -if [[ ! -f "$APP_RESOURCES/release-manifest.json" ]]; then - print -u2 "Build the app first: ./scripts/build-mactician.command" - exit 1 -fi - -mkdir -p "$FIXTURE_DIR" -download_fixture() { - local -r fixture_name="$1" - local -r fixture_url="$2" - local -r fixture_sha256="$3" - local -r fixture_path="$FIXTURE_DIR/$fixture_name" - if [[ ! -f "$fixture_path" ]] \ - || [[ "$(shasum -a 256 "$fixture_path" | awk '{print $1}')" != "$fixture_sha256" ]]; then - curl -fL --retry 3 --continue-at - "$fixture_url" -o "$fixture_path.partial" - if [[ "$(shasum -a 256 "$fixture_path.partial" | awk '{print $1}')" != "$fixture_sha256" ]]; then - print -u2 "Integration fixture SHA-256 mismatch: $fixture_name" - return 1 - fi - mv -f "$fixture_path.partial" "$fixture_path" - fi -} - -download_fixture \ - platform-tools_r36.0.2-darwin.zip \ - https://dl.google.com/android/repository/platform-tools_r36.0.2-darwin.zip \ - 106a5d31fad8c1c0c5a180d06f5779767d129d7d5edbe629005c11a85eec5b4b -download_fixture \ - emulator-darwin_aarch64-15917651.zip \ - https://dl.google.com/android/repository/emulator-darwin_aarch64-15917651.zip \ - 22530de9363f34ea945ecb5cad74523abd4b615f27f3c1a9899efb183ea9e144 -download_fixture \ - arm64-v8a-36_r07.zip \ - https://dl.google.com/android/repository/sys-img/google_apis/arm64-v8a-36_r07.zip \ - fb47d861d6f87230ee0fe70f610d579935ca77f41a0eefbf391595d3dc4b5ee2 - -mkdir -p "$LAUNCHER_DIR/.build/module-cache" -xcrun swiftc \ - -target arm64-apple-macosx12.0 \ - -module-cache-path "$LAUNCHER_DIR/.build/module-cache" \ - "$LAUNCHER_DIR/Sources/EmulatorBrandingPatch.swift" \ - "$LAUNCHER_DIR/Sources/LauncherPresentation.swift" \ - "$LAUNCHER_DIR/Sources/CoreModels.swift" \ - "$LAUNCHER_DIR/Sources/HostedGameUpdate.swift" \ - "$LAUNCHER_DIR/Sources/LauncherPaths.swift" \ - "$LAUNCHER_DIR/Sources/SystemServices.swift" \ - "$LAUNCHER_DIR/Sources/InstallerService.swift" \ - "$LAUNCHER_DIR/Tests/InstallerIntegration.swift" \ - -o "$TEST_BINARY" - -"$TEST_BINARY" \ - "$TEST_ROOT/data" \ - "$APP_RESOURCES" \ - "$FIXTURE_DIR/platform-tools_r36.0.2-darwin.zip" \ - "$FIXTURE_DIR/emulator-darwin_aarch64-15917651.zip" \ - "$FIXTURE_DIR/arm64-v8a-36_r07.zip" diff --git a/scripts/prepare-sparkle.command b/scripts/prepare-sparkle.command deleted file mode 100755 index bc367c5..0000000 --- a/scripts/prepare-sparkle.command +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly LAUNCHER_DIR="$PROJECT_DIR/launcher" -readonly SPARKLE_VERSION="2.9.4" -readonly SPARKLE_ARCHIVE="Sparkle-$SPARKLE_VERSION.tar.xz" -readonly SPARKLE_URL="https://github.com/sparkle-project/Sparkle/releases/download/$SPARKLE_VERSION/$SPARKLE_ARCHIVE" -readonly SPARKLE_SHA256="ce89daf967db1e1893ed3ebd67575ed82d3902563e3191ca92aaec9164fbdef9" -readonly DEPENDENCY_ROOT="$LAUNCHER_DIR/.build/sparkle-$SPARKLE_VERSION" -readonly FRAMEWORK="$DEPENDENCY_ROOT/Sparkle.framework" -readonly TOOLS_DIR="$DEPENDENCY_ROOT/bin" -readonly LICENSE_FILE="$DEPENDENCY_ROOT/LICENSE" -readonly CACHE_DIR="$LAUNCHER_DIR/.build/downloads" -readonly CACHED_ARCHIVE="$CACHE_DIR/$SPARKLE_ARCHIVE" - -framework_is_ready() { - [[ -d "$FRAMEWORK" ]] \ - && [[ -x "$TOOLS_DIR/generate_appcast" ]] \ - && [[ -s "$LICENSE_FILE" ]] \ - && [[ "$(plutil -extract CFBundleShortVersionString raw \ - "$FRAMEWORK/Resources/Info.plist" 2>/dev/null || true)" == "$SPARKLE_VERSION" ]] \ - && codesign --verify --deep --strict "$FRAMEWORK" >/dev/null 2>&1 -} - -if framework_is_ready; then - print "$DEPENDENCY_ROOT" - exit 0 -fi - -mkdir -p "$CACHE_DIR" -if [[ ! -f "$CACHED_ARCHIVE" ]] \ - || [[ "$(shasum -a 256 "$CACHED_ARCHIVE" | awk '{print $1}')" != "$SPARKLE_SHA256" ]]; then - rm -f "$CACHED_ARCHIVE.partial" - curl -fL --retry 3 --retry-delay 2 \ - "$SPARKLE_URL" \ - -o "$CACHED_ARCHIVE.partial" - if [[ "$(shasum -a 256 "$CACHED_ARCHIVE.partial" | awk '{print $1}')" != "$SPARKLE_SHA256" ]]; then - rm -f "$CACHED_ARCHIVE.partial" - print -u2 "Sparkle $SPARKLE_VERSION archive SHA-256 mismatch." - exit 1 - fi - mv -f "$CACHED_ARCHIVE.partial" "$CACHED_ARCHIVE" -fi - -readonly EXTRACT_ROOT="$(mktemp -d /private/tmp/tft-sparkle.XXXXXX)" -cleanup() { - rm -rf "$EXTRACT_ROOT" -} -trap cleanup EXIT - -tar -xJf "$CACHED_ARCHIVE" -C "$EXTRACT_ROOT" -codesign --verify --deep --strict "$EXTRACT_ROOT/Sparkle.framework" - -rm -rf "$DEPENDENCY_ROOT" -mkdir -p "$DEPENDENCY_ROOT" "$TOOLS_DIR" -ditto "$EXTRACT_ROOT/Sparkle.framework" "$FRAMEWORK" -ditto "$EXTRACT_ROOT/LICENSE" "$LICENSE_FILE" -for tool in BinaryDelta generate_appcast generate_keys sign_update; do - ditto "$EXTRACT_ROOT/bin/$tool" "$TOOLS_DIR/$tool" -done - -framework_is_ready || { - print -u2 "Prepared Sparkle dependency failed validation." - exit 1 -} - -print "$DEPENDENCY_ROOT" diff --git a/scripts/publish-game-update.command b/scripts/publish-game-update.command deleted file mode 100755 index d1bea21..0000000 --- a/scripts/publish-game-update.command +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly SPARKLE_ROOT="$("$PROJECT_DIR/scripts/prepare-sparkle.command")" -readonly SIGN_UPDATE="$SPARKLE_ROOT/bin/sign_update" -readonly APK_DIR="${MACTICIAN_GAME_APK_DIR:-${TFT_GAME_APK_DIR:-}}" -readonly VERSION="${MACTICIAN_GAME_VERSION:-}" -readonly VERSION_CODE="${MACTICIAN_GAME_VERSION_CODE:-}" -readonly SIGNING_ACCOUNT="${MACTICIAN_GAME_SIGNING_ACCOUNT:-mactician-game-updates}" -readonly SIGNING_KEY_FILE="${MACTICIAN_GAME_SIGNING_KEY_FILE:-}" -readonly UPDATE_BASE_URL="${MACTICIAN_UPDATE_BASE_URL:-https://sergeinaumov.dev/mactician/updates}" -readonly SSH_TARGET="${MACTICIAN_UPDATE_SSH_TARGET:-}" -readonly SSH_PORT="${MACTICIAN_UPDATE_SSH_PORT:-22}" -readonly REMOTE_ROOT="${MACTICIAN_UPDATE_REMOTE_ROOT:-}" -readonly OUTPUT_ROOT="${MACTICIAN_GAME_UPDATE_WORKDIR:-$PROJECT_DIR/dist/mactician-game-update}" -typeset -i PREPARE_ONLY=0 - -usage() { - print -u2 "Usage: ${0:t} [--prepare-only]" -} - -for argument in "$@"; do - case "$argument" in - --prepare-only) - (( PREPARE_ONLY == 0 )) || { usage; exit 2; } - PREPARE_ONLY=1 - ;; - *) - usage - exit 2 - ;; - esac -done - -[[ -d "$APK_DIR" ]] || { print -u2 "MACTICIAN_GAME_APK_DIR must contain the official split APK files."; exit 2; } -[[ -n "$VERSION" ]] || { print -u2 "MACTICIAN_GAME_VERSION is required."; exit 2; } -[[ "$VERSION_CODE" == <1-> ]] || { print -u2 "MACTICIAN_GAME_VERSION_CODE must be a positive integer."; exit 2; } -[[ -n "$SIGNING_ACCOUNT" ]] || { print -u2 "MACTICIAN_GAME_SIGNING_ACCOUNT is required to sign the game feed."; exit 2; } -command -v jq >/dev/null || { print -u2 "jq is required."; exit 1; } -command -v openssl >/dev/null || { print -u2 "openssl is required."; exit 1; } - -typeset -a APK_FILES -typeset apk name size sha256 url apk_json='[]' -APK_FILES=("$APK_DIR/base.apk") -for apk in "$APK_DIR"/*.apk(N); do - [[ "${apk:t}" == "base.apk" ]] || APK_FILES+=("$apk") -done -(( ${#APK_FILES[@]} >= 1 && ${#APK_FILES[@]} <= 32 )) || { - print -u2 "The game release must contain between 1 and 32 split APK files." - exit 1 -} - -for apk in "${APK_FILES[@]}"; do - [[ -f "$apk" ]] || { print -u2 "APK not found: $apk"; exit 1; } - name="${apk:t}" - [[ "$name" =~ '^[A-Za-z0-9._-]+[.]apk$' ]] || { print -u2 "Unsafe APK filename: $name"; exit 1; } - size="$(stat -f '%z' "$apk")" - sha256="$(shasum -a 256 "$apk" | awk '{print $1}')" - [[ "$sha256" =~ '^[0-9a-f]{64}$' ]] || { - print -u2 "Could not hash $name" - exit 1 - } - if [[ "$name" == "base.apk" ]]; then - readonly BASE_SHA256="$sha256" - fi - url="$UPDATE_BASE_URL/game/releases/$BASE_SHA256/$name" - apk_json="$(jq -c \ - --arg name "$name" \ - --arg url "$url" \ - --arg sha256 "$sha256" \ - --argjson size "$size" \ - '. + [{name: $name, size: $size, sha256: $sha256, url: $url}]' \ - <<<"$apk_json")" -done - -readonly RELEASE_ROOT="$OUTPUT_ROOT/releases/$BASE_SHA256" -readonly PAYLOAD="$OUTPUT_ROOT/payload.json" -readonly MANIFEST="$OUTPUT_ROOT/manifest.json" -case "$OUTPUT_ROOT" in - "/"|"/Users"|"$HOME"|"$PROJECT_DIR") - print -u2 "Refusing unsafe local output root: $OUTPUT_ROOT" - exit 2 - ;; -esac -rm -rf "$OUTPUT_ROOT" -mkdir -p "$RELEASE_ROOT" -for apk in "${APK_FILES[@]}"; do - ditto "$apk" "$RELEASE_ROOT/${apk:t}" -done - -jq -n \ - --arg publishedAt "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \ - --arg packageName "com.riotgames.league.teamfighttactics.pbe" \ - --arg version "$VERSION" \ - --argjson versionCode "$VERSION_CODE" \ - --arg baseSHA256 "$BASE_SHA256" \ - --argjson apks "$apk_json" \ - '{ - schemaVersion: 1, - publishedAt: $publishedAt, - release: { - packageName: $packageName, - version: $version, - versionCode: $versionCode, - baseSHA256: $baseSHA256, - apks: $apks - } - }' >"$PAYLOAD" - -if [[ -n "$SIGNING_KEY_FILE" ]]; then - [[ -f "$SIGNING_KEY_FILE" ]] || { print -u2 "MACTICIAN_GAME_SIGNING_KEY_FILE was not found."; exit 2; } - readonly SIGNATURE="$("$SIGN_UPDATE" --ed-key-file "$SIGNING_KEY_FILE" -p "$PAYLOAD")" -else - readonly SIGNATURE="$("$SIGN_UPDATE" --account "$SIGNING_ACCOUNT" -p "$PAYLOAD")" -fi -[[ "$SIGNATURE" =~ '^[A-Za-z0-9+/=]+$' ]] || { print -u2 "Sparkle returned an invalid feed signature."; exit 1; } -readonly PAYLOAD_BASE64="$(openssl base64 -A -in "$PAYLOAD")" -jq -n \ - --arg payload "$PAYLOAD_BASE64" \ - --arg signature "$SIGNATURE" \ - '{schemaVersion: 1, payload: $payload, signature: $signature}' >"$MANIFEST" - -if (( PREPARE_ONLY == 1 )); then - print "Prepared signed TFT PBE $VERSION feed: $MANIFEST" - exit 0 -fi - -[[ -n "$SSH_TARGET" && -n "$REMOTE_ROOT" ]] || { - print -u2 "Publishing requires MACTICIAN_UPDATE_SSH_TARGET and MACTICIAN_UPDATE_REMOTE_ROOT." - exit 2 -} -[[ "$SSH_PORT" == <1-> ]] && (( SSH_PORT >= 1 && SSH_PORT <= 65535 )) || { - print -u2 "MACTICIAN_UPDATE_SSH_PORT must be a TCP port from 1 through 65535." - exit 2 -} -case "$REMOTE_ROOT" in - "/"|"/var"|"/var/www"|"/usr"|"/etc"|"/home"|"/tmp") - print -u2 "Refusing unsafe remote update root: $REMOTE_ROOT" - exit 2 - ;; -esac - -remote_quote() { - print -r -- "'${1//\'/\'\\\'\'}'" -} - -readonly REMOTE_RELEASE="$REMOTE_ROOT/game/releases/$BASE_SHA256" -readonly REMOTE_STAGING="$REMOTE_ROOT/game/.release-$BASE_SHA256-$$" -readonly REMOTE_MANIFEST_NEXT="$REMOTE_ROOT/game/.manifest-$$.json" -ssh -p "$SSH_PORT" -o StrictHostKeyChecking=accept-new "$SSH_TARGET" \ - "mkdir -p -- $(remote_quote "$REMOTE_STAGING") $(remote_quote "$REMOTE_ROOT/game/releases")" -scp -P "$SSH_PORT" -o StrictHostKeyChecking=accept-new \ - "$RELEASE_ROOT"/*.apk \ - "$SSH_TARGET:$REMOTE_STAGING/" -ssh -p "$SSH_PORT" -o StrictHostKeyChecking=accept-new "$SSH_TARGET" \ - "mkdir -p -- $(remote_quote "$REMOTE_RELEASE") && chmod 644 -- $(remote_quote "$REMOTE_STAGING")/*.apk && mv -f -- $(remote_quote "$REMOTE_STAGING")/*.apk $(remote_quote "$REMOTE_RELEASE")/ && rmdir -- $(remote_quote "$REMOTE_STAGING")" -scp -P "$SSH_PORT" -o StrictHostKeyChecking=accept-new \ - "$MANIFEST" \ - "$SSH_TARGET:$REMOTE_MANIFEST_NEXT" -ssh -p "$SSH_PORT" -o StrictHostKeyChecking=accept-new "$SSH_TARGET" \ - "chmod 644 -- $(remote_quote "$REMOTE_MANIFEST_NEXT") && mv -f -- $(remote_quote "$REMOTE_MANIFEST_NEXT") $(remote_quote "$REMOTE_ROOT/game/manifest.json")" - -print "Published TFT PBE $VERSION to $UPDATE_BASE_URL/game/manifest.json" diff --git a/scripts/publish-mactician-update.command b/scripts/publish-mactician-update.command deleted file mode 100755 index 6fb7049..0000000 --- a/scripts/publish-mactician-update.command +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" - -typeset -i PREPARE_ONLY=0 -typeset -i ALLOW_ADHOC=0 -usage() { - print -u2 "Usage: ${0:t} [--prepare-only] [--allow-adhoc]" -} -for argument in "$@"; do - case "$argument" in - --prepare-only) - (( PREPARE_ONLY == 0 )) || { usage; exit 2; } - PREPARE_ONLY=1 - ;; - --allow-adhoc) - (( ALLOW_ADHOC == 0 )) || { usage; exit 2; } - ALLOW_ADHOC=1 - ;; - *) - usage - exit 2 - ;; - esac -done - -readonly SPARKLE_ROOT="$("$PROJECT_DIR/scripts/prepare-sparkle.command")" -readonly GENERATE_APPCAST="$SPARKLE_ROOT/bin/generate_appcast" -readonly SPARKLE_ACCOUNT="${MACTICIAN_SPARKLE_ACCOUNT:-}" -readonly UPDATE_BASE_URL="${MACTICIAN_UPDATE_BASE_URL:-https://sergeinaumov.dev/mactician/updates}" -readonly PRODUCT_URL="${MACTICIAN_UPDATE_PRODUCT_URL:-https://sergeinaumov.dev/mactician}" -readonly SSH_TARGET="${MACTICIAN_UPDATE_SSH_TARGET:-}" -readonly SSH_PORT="${MACTICIAN_UPDATE_SSH_PORT:-}" -readonly REMOTE_ROOT="${MACTICIAN_UPDATE_REMOTE_ROOT:-}" -readonly APP="${MACTICIAN_APP:-$PROJECT_DIR/dist/Mactician.app}" -readonly UPDATE_ROOT="${MACTICIAN_UPDATE_WORKDIR:-$PROJECT_DIR/dist/mactician-updates}" - -if [[ -z "$SPARKLE_ACCOUNT" ]]; then - print -u2 "MACTICIAN_SPARKLE_ACCOUNT must name the Sparkle Ed25519 key stored in Keychain." - exit 2 -fi - -if [[ ! -d "$APP" ]]; then - print -u2 "Build Mactician before preparing an update." - exit 1 -fi - -readonly INFO_PLIST="$APP/Contents/Info.plist" -readonly VERSION="$(plutil -extract CFBundleShortVersionString raw "$INFO_PLIST")" -readonly BUILD="$(plutil -extract CFBundleVersion raw "$INFO_PLIST")" -readonly BUNDLE_ID="$(plutil -extract CFBundleIdentifier raw "$INFO_PLIST")" -readonly PUBLIC_KEY="$(plutil -extract SUPublicEDKey raw "$INFO_PLIST")" -readonly DMG="${MACTICIAN_DMG:-$PROJECT_DIR/dist/Mactician-$VERSION.dmg}" -readonly RELEASE_BASENAME="Mactician-$VERSION" -readonly RELEASE_ARCHIVE="$UPDATE_ROOT/$RELEASE_BASENAME.dmg" -readonly RELEASE_NOTES_SOURCE="${MACTICIAN_RELEASE_NOTES:-$PROJECT_DIR/launcher/Resources/release-notes/$VERSION.md}" -readonly RELEASE_NOTES="$UPDATE_ROOT/$RELEASE_BASENAME.md" -readonly APPCAST="$UPDATE_ROOT/appcast.xml" - -if [[ ! -f "$DMG" ]]; then - print -u2 "Mactician DMG not found: $DMG" - exit 1 -fi - -if [[ "$BUNDLE_ID" != "dev.sergeinaumov.mactician" ]]; then - print -u2 "Unexpected launcher bundle identifier: $BUNDLE_ID" - exit 1 -fi -if [[ "$PUBLIC_KEY" != "77t8YuvP4mvvP/3oMpVR/TqGRMCcUlrpWFIZGcWqokY=" ]]; then - print -u2 "The launcher does not contain the expected Sparkle public key." - exit 1 -fi -if [[ ! -f "$RELEASE_NOTES_SOURCE" ]]; then - print -u2 "Release notes not found: $RELEASE_NOTES_SOURCE" - exit 1 -fi - -if (( PREPARE_ONLY == 0 )); then - readonly CODESIGN_DETAILS="$(codesign -dvv "$APP" 2>&1)" - if [[ "$CODESIGN_DETAILS" == *'Authority=Developer ID Application:'* ]]; then - codesign --verify --deep --strict "$APP" - xcrun stapler validate "$DMG" - spctl --assess --type open --context context:primary-signature "$DMG" - elif (( ALLOW_ADHOC == 1 )); then - if [[ "$CODESIGN_DETAILS" != *'Signature=adhoc'* ]]; then - print -u2 "The temporary release must contain a valid ad-hoc app signature." - exit 1 - fi - codesign --verify --deep --strict "$APP" - hdiutil verify "$DMG" >/dev/null - print -u2 "Warning: publishing an ad-hoc build without Apple notarization." - else - print -u2 "Publishing requires a Developer ID-signed launcher build." - print -u2 "Use --allow-adhoc only for an explicitly approved temporary release." - exit 1 - fi -fi - -mkdir -p "$UPDATE_ROOT" -ditto "$DMG" "$RELEASE_ARCHIVE" -ditto "$RELEASE_NOTES_SOURCE" "$RELEASE_NOTES" - -"$GENERATE_APPCAST" \ - --account "$SPARKLE_ACCOUNT" \ - --download-url-prefix "$UPDATE_BASE_URL/releases/" \ - --release-notes-url-prefix "$UPDATE_BASE_URL/releases/" \ - --link "$PRODUCT_URL" \ - --maximum-versions 3 \ - --maximum-deltas 5 \ - "$UPDATE_ROOT" - -MACTICIAN_RELEASE_TITLE="Mactician $VERSION" \ - perl -0pi -e ' - s{(.*?).*?()}{$1Mactician Updates$2}s; - s{(.*?).*?()}{$1$ENV{MACTICIAN_RELEASE_TITLE}$2}s; - ' "$APPCAST" - -xmllint --noout "$APPCAST" -if ! grep -Fq 'Mactician Updates' "$APPCAST" \ - || ! grep -Fq "Mactician $VERSION" "$APPCAST"; then - print -u2 "Generated appcast titles do not match the Mactician release metadata." - exit 1 -fi -if ! grep -Fq 'sparkle:edSignature=' "$APPCAST"; then - print -u2 "Generated appcast does not contain an Ed25519 archive signature." - exit 1 -fi - -if (( PREPARE_ONLY == 1 )); then - print "Prepared Sparkle feed with signed update archives: $APPCAST" - exit 0 -fi - -if [[ -z "$SSH_TARGET" || -z "$SSH_PORT" || -z "$REMOTE_ROOT" ]]; then - print -u2 "Publishing requires MACTICIAN_UPDATE_SSH_TARGET, MACTICIAN_UPDATE_SSH_PORT, and MACTICIAN_UPDATE_REMOTE_ROOT." - exit 2 -fi -if [[ "$SSH_PORT" != <-> ]] || (( SSH_PORT < 1 || SSH_PORT > 65535 )); then - print -u2 "MACTICIAN_UPDATE_SSH_PORT must be a TCP port from 1 through 65535." - exit 2 -fi - -case "$REMOTE_ROOT" in - "/"|"/var"|"/var/www"|"/usr"|"/etc"|"/home"|"/tmp") - print -u2 "Refusing unsafe remote update root: $REMOTE_ROOT" - exit 2 - ;; -esac - -remote_quote() { - print -r -- "'${1//\'/\'\\\'\'}'" -} - -ssh -p "$SSH_PORT" -o StrictHostKeyChecking=accept-new "$SSH_TARGET" \ - "mkdir -p -- $(remote_quote "$REMOTE_ROOT/releases")" - -typeset -a RELEASE_FILES -RELEASE_FILES=() -for release_file in "$UPDATE_ROOT"/*(.N); do - if [[ "${release_file:t}" != "appcast.xml" ]]; then - RELEASE_FILES+=("$release_file") - fi -done -if (( ${#RELEASE_FILES[@]} == 0 )); then - print -u2 "No Sparkle release files were generated." - exit 1 -fi - -scp -P "$SSH_PORT" -o StrictHostKeyChecking=accept-new \ - "${RELEASE_FILES[@]}" \ - "$SSH_TARGET:$REMOTE_ROOT/releases/" - -readonly REMOTE_APPCAST_NEXT="$REMOTE_ROOT/.appcast-$BUILD.xml" -scp -P "$SSH_PORT" -o StrictHostKeyChecking=accept-new \ - "$APPCAST" \ - "$SSH_TARGET:$REMOTE_APPCAST_NEXT" -ssh -p "$SSH_PORT" -o StrictHostKeyChecking=accept-new "$SSH_TARGET" \ - "chmod 644 -- $(remote_quote "$REMOTE_APPCAST_NEXT") && mv -f -- $(remote_quote "$REMOTE_APPCAST_NEXT") $(remote_quote "$REMOTE_ROOT/appcast.xml")" - -print "Published Mactician $VERSION (build $BUILD) to $UPDATE_BASE_URL" diff --git a/scripts/test-mactician.command b/scripts/test-mactician.command deleted file mode 100755 index 94487a2..0000000 --- a/scripts/test-mactician.command +++ /dev/null @@ -1,595 +0,0 @@ -#!/bin/zsh -set -euo pipefail -unsetopt BG_NICE - -readonly PROJECT_DIR="${0:A:h:h}" -readonly LAUNCHER_DIR="$PROJECT_DIR/launcher" -readonly SPARKLE_ROOT="$("$PROJECT_DIR/scripts/prepare-sparkle.command")" -readonly TEST_BINARY="$(mktemp -t mactician-tests)" -readonly LIFECYCLE_ROOT="$(mktemp -d -t mactician-lifecycle)" -readonly HOST_ARCH="$(uname -m)" -case "$HOST_ARCH" in - arm64|x86_64) ;; - *) - print -u2 "Unsupported unit-test host architecture: $HOST_ARCH" - exit 2 - ;; -esac -readonly TEST_TARGET="$HOST_ARCH-apple-macosx12.0" -cleanup() { - local exit_code=$? - rm -f "$TEST_BINARY" - rm -rf "$LIFECYCLE_ROOT" - return "$exit_code" -} -trap cleanup EXIT - -jq -e '.schemaVersion == 1 and (.components | length) == 3 and (.game.apks | length) == 4' \ - "$LAUNCHER_DIR/Resources/release-manifest.json" >/dev/null -plutil -lint "$LAUNCHER_DIR/Info.plist" >/dev/null -plutil -lint "$LAUNCHER_DIR/Resources/EmulatorHost-Info.plist" >/dev/null -plutil -lint "$LAUNCHER_DIR/Resources/QEMU-Hypervisor.entitlements" >/dev/null -plutil -lint "$LAUNCHER_DIR/Resources/en.lproj/Localizable.strings" >/dev/null -plutil -lint "$LAUNCHER_DIR/Resources/ru.lproj/Localizable.strings" >/dev/null -typeset -a launcher_localizations -launcher_localizations=("$LAUNCHER_DIR"/Resources/*.lproj(N:t)) -if (( ${#launcher_localizations} != 2 )) \ - || [[ "$launcher_localizations[1]" != "en.lproj" ]] \ - || [[ "$launcher_localizations[2]" != "ru.lproj" ]]; then - print -u2 "Mactician must ship the English and Russian localization resources." - exit 1 -fi -typeset syntax_script -for syntax_script in \ - "$LAUNCHER_DIR/Resources/launcher-runtime.command" \ - "$LAUNCHER_DIR/Resources/emulator-host.command" \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - "$PROJECT_DIR/run-tft-angle-opengl.command" \ - "$PROJECT_DIR/scripts/run-asg-experiment.command" \ - "$PROJECT_DIR/scripts/run-autonomous-trial-benchmark.command" \ - "$PROJECT_DIR/scripts/run-performance-campaign.command" \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - "$PROJECT_DIR/scripts/run-host-angle-capability-probe.command" \ - "$PROJECT_DIR/scripts/summarize-android-ui-transport.command" \ - "$PROJECT_DIR/scripts/audit-native-gles-coverage.command" \ - "$PROJECT_DIR/scripts/build-android-egl-capability-probe.command" \ - "$PROJECT_DIR/scripts/watch-root-pso.command" \ - "$PROJECT_DIR/scripts/android-environment.sh" \ - "$PROJECT_DIR/scripts/prepare-sparkle.command" \ - "$PROJECT_DIR/scripts/publish-mactician-update.command" \ - "$PROJECT_DIR/scripts/publish-game-update.command" \ - "$PROJECT_DIR/scripts/build-mactician.command" \ - "$PROJECT_DIR/scripts/integration-test-mactician.command"; do - zsh -o NO_BG_NICE -n "$syntax_script" -done - -if rg -n '[А-Яа-яЁё]' \ - "$LAUNCHER_DIR/Resources/launcher-runtime.command" \ - "$LAUNCHER_DIR/Resources/emulator-host.command" \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - "$PROJECT_DIR/run-tft-angle-opengl.command" \ - "$PROJECT_DIR/scripts/run-asg-experiment.command" \ - "$PROJECT_DIR/scripts/watch-root-pso.command"; then - print -u2 "Bundled launcher logs must be in English." - exit 1 -fi -xcrun clang \ - -target arm64-apple-macosx12.0 \ - -fsyntax-only \ - "$LAUNCHER_DIR/EmulatorHost/main.c" - -# The current product is the native TFTMAC shell around the stock Play runtime. -# Build it during production validation so Swift/AppKit/window integration cannot drift. -/bin/zsh "$PROJECT_DIR/scripts/build-tftmac-app.command" >/dev/null - -"$PROJECT_DIR/scripts/build-tft-screen-classifier.command" >/dev/null -"$PROJECT_DIR/runtime/tft-screen-classifier" --self-test >/dev/null - -if ! grep -Fq -- '--options runtime' "$PROJECT_DIR/scripts/build-mactician.command" \ - || ! grep -Fq 'notarytool submit' "$PROJECT_DIR/scripts/build-mactician.command" \ - || ! grep -Fq 'stapler staple' "$PROJECT_DIR/scripts/build-mactician.command" \ - || ! grep -Fq 'Sparkle.framework' "$PROJECT_DIR/scripts/build-mactician.command"; then - print -u2 "Public release signing and notarization workflow is incomplete." - exit 1 -fi - -if ! grep -Fq 'MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'MVK_CONFIG_USE_MTLHEAP' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'MVK_CONFIG_LOG_LEVEL' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'MVK_CONFIG_PERFORMANCE_TRACKING' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! rg -Uq 'for environment_name in \\\n+[[:space:]]+ANGLE_FEATURE_OVERRIDES_ENABLED \\\n+[[:space:]]+ANGLE_FEATURE_OVERRIDES_DISABLED \\\n+[[:space:]]+MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! rg -Uq 'MVK_CONFIG_FAST_MATH_ENABLED \\\n+[[:space:]]+MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS \\\n+[[:space:]]+MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE; do' \ - "$PROJECT_DIR/run-tft-root-affinity.command"; then - print -u2 "The Game Mode app wrapper must preserve experimental ANGLE and MoltenVK settings." - exit 1 -fi - -if ! jq -e ' - def safe_relative_path: - type == "string" - and test("^[A-Za-z0-9._/-]+$") - and (startswith("/") | not) - and (contains("..") | not); - .schemaVersion == 1 - and (.candidates | type == "array" and length > 0) - and ([.candidates[].id] | length == (unique | length)) - and ([.candidates[].variant] | length == (unique | length)) - and all(.candidates[]; - (.id | type == "string" and test("^[a-z0-9][a-z0-9-]*$")) - and (.launcher | safe_relative_path) - and ((.profile // "placeholder") | safe_relative_path) - and (.variant | type == "string" and test("^[a-z0-9][a-z0-9_-]*$")) - and (.display | type == "string" - and test("^(2560x1440|2880x1620|3200x1800|3840x2160)$")) - and (.density | type == "number" and floor == . and . >= 120 and . <= 640) - and (.stages | type == "array" and length > 0 - and all(.[]; type == "string" and test("^[1-9]-(1[0-9]|[1-9])$"))) - and ((.profileStage // "1-1") - | type == "string" and test("^[1-9]-(1[0-9]|[1-9])$")) - and ((.minimumTrialSeconds // 0) - | type == "number" and floor == . and . >= 0 and . <= 3600) - and ((.env // {}) | type == "object" - and all(to_entries[]; - (.key | test("^[A-Z][A-Z0-9_]*$")) - and (.value | type == "string" - and test("^[-A-Za-z0-9_./:]+$"))))) - ' "$PROJECT_DIR/scripts/performance-candidates.json" >/dev/null; then - print -u2 "The performance candidate manifest contract is invalid." - exit 1 -fi -typeset candidate_launcher candidate_profile -while IFS=$'\t' read -r candidate_launcher candidate_profile; do - if [[ ! -x "$PROJECT_DIR/$candidate_launcher" \ - || ( -n "$candidate_profile" && ! -f "$PROJECT_DIR/$candidate_profile" ) ]]; then - print -u2 "A performance candidate references a missing launcher or profile: $candidate_launcher ${candidate_profile:-}" - exit 1 - fi -done < <(jq -r '.candidates[] | [.launcher, (.profile // "")] | @tsv' \ - "$PROJECT_DIR/scripts/performance-candidates.json") - -if ! grep -Fq 'osft-no-fence-contexts' "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq -- '-VirtioGpuFenceContexts' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! jq -e ' - [.candidates[].id] as $ids - | ($ids | index("performance-max-no-fence-contexts-screen")) != null - and ($ids | index("performance-max-no-virtual-queue-screen")) == null - and ($ids | index("performance-max-no-queue-submit-with-commands-screen")) == null - and ($ids | index("performance-max-argument-buffers-off-screen")) == null - and ($ids | index("performance-max-single-queue-semaphores-screen")) == null - ' "$PROJECT_DIR/scripts/performance-candidates.json" >/dev/null; then - print -u2 "The rejected/no-op performance candidate isolation is incomplete." - exit 1 -fi - -if ! grep -Fq 'readonly HOST_GPU="${TFT_HOST_GPU:-host}"' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq -- '-gpu "$HOST_GPU"' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'TFT_HOST_GPU must be either host or swangle.' \ - "$PROJECT_DIR/run-tft-root-affinity.command" \ - || ! grep -Fq 'host ANGLE -> Vulkan -> SwiftShader CPU' \ - "$PROJECT_DIR/run-tft-root-affinity.command"; then - print -u2 "The bounded host swangle GLES control is incomplete." - exit 1 -fi - -if ! jq -e ' - .schemaVersion == 1 - and (.runs | length) == 10 - and (.aggregates | length) == 5 - and ([.runs[].label] | unique | length) == 10 - and ([.runs[].summarySha256] | unique | length) == 10 - and all(.runs[]; .summarySha256 | test("^[0-9a-f]{64}$")) - and ([.runs[].graphicsProfile] | unique | length) == 5 - and (.invariants.display == "2560x1440") - and (.invariants.displayDensityDpi == 320) - and (.invariants.transport == "virtio-gpu-asg") - and (.invariants.hwuiRenderer == "skiavk") - and (.invariants.roundsPerRun == 12) - and (.invariants.warmupRoundsDiscarded == 3) - and ([.aggregates[] | select(.graphicsProfile == "osft")][0].warmRounds == 36) - and ([.aggregates[] | select(.decision == "keep")] | length) == 1 - and (. as $document - | all($document.aggregates[]; - . as $aggregate - | [$document.runs[] - | select(.graphicsProfile == $aggregate.graphicsProfile)] as $runs - | ($runs | length) == $aggregate.validRuns - and (($runs | length) * 9) == $aggregate.warmRounds - and (((($runs | map(.warmMeanElapsedMs) | add) / ($runs | length)) - - $aggregate.warmMeanElapsedMs) | fabs) < 0.000001 - and ($runs | map(.warmMaxP95Ms) | max) == $aggregate.warmMaxP95Ms - and ($runs | map(.warmMaxP99Ms) | max) == $aggregate.warmMaxP99Ms - and ($runs | map(.warmTotalJankyFrames) | add) - == $aggregate.warmTotalJankyFrames)) - ' "$PROJECT_DIR/artifacts/android-ui-transport-attested-20260811.json" \ - >/dev/null; then - print -u2 "The attested Android UI transport result artifact is incomplete." - exit 1 -fi -typeset source_summary source_label source_utc source_expected_sha source_actual_sha -for source_summary in \ - "$PROJECT_DIR"/runtime/measurements/android-ui-transport/*/summary.json(N); do - source_label="$(jq -r '.label // ""' "$source_summary")" - source_utc="$(jq -r '.utc // ""' "$source_summary")" - source_expected_sha="$( - jq -r \ - --arg target_label "$source_label" \ - --arg target_utc "$source_utc" \ - '.runs[] - | select(.label == $target_label and .utc == $target_utc) - | .summarySha256' \ - "$PROJECT_DIR/artifacts/android-ui-transport-attested-20260811.json" - )" - [[ -n "$source_expected_sha" ]] || continue - source_actual_sha="$(shasum -a 256 "$source_summary" | awk '{ print $1 }')" - if [[ "$source_actual_sha" != "$source_expected_sha" ]]; then - print -u2 "An attested Android UI source summary no longer matches its recorded SHA: $source_label" - exit 1 - fi -done - -xcrun clang++ \ - -std=c++17 \ - -Wall \ - -Wextra \ - -Werror \ - -fsyntax-only \ - "$PROJECT_DIR/artifacts/angle-egl-probe.cpp" - -if ! grep -Fq 'functional_es32_geometry_pipeline' \ - "$PROJECT_DIR/artifacts/angle-egl-probe.cpp" \ - || ! grep -Fq 'functional_es32_tessellation_pipeline' \ - "$PROJECT_DIR/artifacts/angle-egl-probe.cpp" \ - || ! grep -Fq 'exposeNonConformantExtensionsAndVersions' \ - "$PROJECT_DIR/scripts/run-host-angle-capability-probe.command" \ - || ! grep -Fq 'ANDROID_EMU_gles_max_version_3_2' \ - "$PROJECT_DIR/artifacts/gfxstream-gles32-host-capability-prototype.patch" \ - || ! grep -Fq 'kGles32Aliases' \ - "$PROJECT_DIR/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch" \ - || ! grep -Fq '{"glTexBuffer", (void*)_egl_glTexBufferEXT}' \ - "$PROJECT_DIR/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch" \ - || ! grep -Fq 'dynamic_alias_resolution_required' \ - "$PROJECT_DIR/scripts/audit-native-gles-coverage.command" \ - || ! grep -Fq 'runtime.LockOSThread()' \ - "$PROJECT_DIR/artifacts/android-egl-capability-probe/main.go" \ - || ! grep -Fq 'runtime.KeepAlive(highAttrs)' \ - "$PROJECT_DIR/artifacts/android-egl-capability-probe/main.go" \ - || ! grep -Fq 'hwui_renderer: $hwui_renderer' \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq 'display_density: $display_density' \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq 'ro.boot.mactician.graphics_profile' \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq "grep -Fqx 'Status: ok'" \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq 'write_rejected_summary "non_rendering_round_$round"' \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq 'existing evidence will not be overwritten' \ - "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - || ! grep -Fq 'androidboot.mactician.graphics_profile=$GRAPHICS_PROFILE' \ - "$PROJECT_DIR/run-tft-root-affinity.command"; then - print -u2 "The native GLES capability experiment artifacts are incomplete." - exit 1 -fi -if [[ "$(grep -c '^proc ' \ - "$PROJECT_DIR/artifacts/android-egl-capability-probe/native-clean-boot-output.txt")" != "59" ]] \ - || [[ "$(grep -c '^proc .* false$' \ - "$PROJECT_DIR/artifacts/android-egl-capability-probe/native-clean-boot-output.txt")" != "3" ]]; then - print -u2 "The recorded native guest proc-address matrix is incomplete." - exit 1 -fi - -# The transport summarizer must retain short valid runs, reject empty and -# explicitly failed runs without dividing by zero, and keep display/renderer -# configurations separate. -if "$PROJECT_DIR/scripts/run-android-ui-transport-probe.command" \ - attestation-required 1 \ - >"$LIFECYCLE_ROOT/missing-profile-attestation.out" 2>&1 \ - || ! grep -Fq 'TFT_UI_TRANSPORT_EXPECTED_GRAPHICS_PROFILE is required' \ - "$LIFECYCLE_ROOT/missing-profile-attestation.out"; then - print -u2 "The Android UI transport probe accepted an unattested graphics profile." - exit 1 -fi -readonly TRANSPORT_FIXTURE_ROOT="$LIFECYCLE_ROOT/android-ui-transport" -mkdir -p "$TRANSPORT_FIXTURE_ROOT/rejected" \ - "$TRANSPORT_FIXTURE_ROOT/empty" \ - "$TRANSPORT_FIXTURE_ROOT/short-osft" \ - "$TRANSPORT_FIXTURE_ROOT/short-stable" \ - "$TRANSPORT_FIXTURE_ROOT/short-skiagl" \ - "$TRANSPORT_FIXTURE_ROOT/short-density" -jq -n '{schema_version: 5, label: "edge-rejected-A", graphics_profile: "osft", - display: "2560x1440", display_density: 320, - transport: "virtio-gpu-asg", hwui_renderer: "skiavk", - rejected_reason: "fixture_failure", - swipe_pairs: 15, - minimum_frames_per_round: 120, - rounds: [range(1; 5) | {round: ., elapsed_ns: 6000000000, - total_frames: 120, janky_frames: 0, p95_ms: 0, p99_ms: 0}]}' \ - > "$TRANSPORT_FIXTURE_ROOT/rejected/summary.json" -jq -n '{schema_version: 5, label: "edge-rejected-Z", graphics_profile: "osft", - display: "2560x1440", display_density: 320, - transport: "virtio-gpu-asg", hwui_renderer: "skiavk", - swipe_pairs: 15, minimum_frames_per_round: 120, rounds: []}' \ - > "$TRANSPORT_FIXTURE_ROOT/empty/summary.json" -jq -n '{schema_version: 5, label: "edge-short-B", graphics_profile: "osft", - display: "2560x1440", display_density: 320, - transport: "virtio-gpu-asg", hwui_renderer: "skiavk", - swipe_pairs: 15, - minimum_frames_per_round: 120, - rounds: [ - {round: 1, elapsed_ns: 6000000000, total_frames: 120, - janky_frames: 1, p95_ms: 10, p99_ms: 12}, - {round: 2, elapsed_ns: 6200000000, total_frames: 121, - janky_frames: 2, p95_ms: 11, p99_ms: 13}, - {round: 3, elapsed_ns: 6400000000, total_frames: 122, - janky_frames: 3, p95_ms: 12, p99_ms: 14}]}' \ - > "$TRANSPORT_FIXTURE_ROOT/short-osft/summary.json" -jq -n '{schema_version: 5, label: "edge-short-C", graphics_profile: "stable", - display: "2560x1440", display_density: 320, - transport: "virtio-gpu-asg", hwui_renderer: "skiavk", - swipe_pairs: 15, minimum_frames_per_round: 120, - rounds: [ - {round: 1, elapsed_ns: 7000000000, total_frames: 120, - janky_frames: 0, p95_ms: 9, p99_ms: 11}]}' \ - > "$TRANSPORT_FIXTURE_ROOT/short-stable/summary.json" -jq -n '{schema_version: 5, label: "edge-short-D", graphics_profile: "osft", - display: "2560x1440", display_density: 320, - transport: "virtio-gpu-asg", hwui_renderer: "skiagl", - swipe_pairs: 15, minimum_frames_per_round: 120, - rounds: [ - {round: 1, elapsed_ns: 7100000000, total_frames: 120, - janky_frames: 4, p95_ms: 13, p99_ms: 15}]}' \ - > "$TRANSPORT_FIXTURE_ROOT/short-skiagl/summary.json" -jq -n '{schema_version: 5, label: "edge-short-E", graphics_profile: "osft", - display: "2560x1440", display_density: 416, - transport: "virtio-gpu-asg", hwui_renderer: "skiavk", - swipe_pairs: 15, minimum_frames_per_round: 120, - rounds: [ - {round: 1, elapsed_ns: 7200000000, total_frames: 120, - janky_frames: 5, p95_ms: 14, p99_ms: 16}]}' \ - > "$TRANSPORT_FIXTURE_ROOT/short-density/summary.json" -TFT_UI_TRANSPORT_ROOT="$TRANSPORT_FIXTURE_ROOT" \ - "$PROJECT_DIR/scripts/summarize-android-ui-transport.command" \ - '^edge-(rejected|short)-[A-Z]$' \ - > "$TRANSPORT_FIXTURE_ROOT/result.json" -if ! jq -e ' - length == 5 - and .[0].group == "edge-rejected" - and .[0].graphics_profile == "osft" - and .[0].display_density == 320 - and .[0].hwui_renderer == "skiavk" - and .[0].valid_runs == 0 - and .[0].rejected_runs == 2 - and .[0].warm_rounds == 0 - and .[0].warm_mean_elapsed_ms == null - and .[0].warm_total_janky_frames == null - and .[1].group == "edge-short" - and .[1].graphics_profile == "osft" - and .[1].display == "2560x1440" - and .[1].display_density == 320 - and .[1].transport == "virtio-gpu-asg" - and .[1].hwui_renderer == "skiagl" - and .[1].valid_runs == 1 - and .[1].rejected_runs == 0 - and .[1].warm_rounds == 1 - and .[1].warm_mean_elapsed_ms == 7100 - and .[1].warm_max_p95_ms == 13 - and .[1].warm_max_p99_ms == 15 - and .[1].warm_total_janky_frames == 4 - and .[2].group == "edge-short" - and .[2].graphics_profile == "osft" - and .[2].display_density == 320 - and .[2].hwui_renderer == "skiavk" - and .[2].valid_runs == 1 - and .[2].rejected_runs == 0 - and .[2].warm_rounds == 3 - and .[2].warm_mean_elapsed_ms == 6200 - and .[2].warm_median_elapsed_ms == 6200 - and .[2].warm_max_p95_ms == 12 - and .[2].warm_max_p99_ms == 14 - and .[2].warm_total_janky_frames == 6 - and .[3].group == "edge-short" - and .[3].graphics_profile == "osft" - and .[3].display_density == 416 - and .[3].hwui_renderer == "skiavk" - and .[3].valid_runs == 1 - and .[3].warm_rounds == 1 - and .[3].warm_mean_elapsed_ms == 7200 - and .[3].warm_max_p95_ms == 14 - and .[3].warm_max_p99_ms == 16 - and .[4].group == "edge-short" - and .[4].graphics_profile == "stable" - and .[4].display_density == 320 - and .[4].hwui_renderer == "skiavk" - and .[4].valid_runs == 1 - and .[4].warm_rounds == 1 - and .[4].warm_mean_elapsed_ms == 7000 - and .[4].warm_max_p95_ms == 9 - and .[4].warm_max_p99_ms == 11 -' "$TRANSPORT_FIXTURE_ROOT/result.json" >/dev/null; then - print -u2 "Android UI transport summary edge cases regressed." - cat "$TRANSPORT_FIXTURE_ROOT/result.json" >&2 - exit 1 -fi - -if ! grep -Fq -- '--allow-adhoc' "$PROJECT_DIR/scripts/publish-mactician-update.command" \ - || ! grep -Fq 'Signature=adhoc' "$PROJECT_DIR/scripts/publish-mactician-update.command" \ - || ! grep -Fq 'hdiutil verify' "$PROJECT_DIR/scripts/publish-mactician-update.command"; then - print -u2 "Ad-hoc publication safeguards are incomplete." - exit 1 -fi - -if ! grep -Fq 'field__input--animate' \ - "$LAUNCHER_DIR/Sources/RiotLoginAnimationRepairService.swift" \ - || ! grep -Fq 'animation: none !important' \ - "$LAUNCHER_DIR/Sources/RiotLoginAnimationRepairService.swift" \ - || ! grep -Fq 'remainingAnimations == 0' \ - "$LAUNCHER_DIR/Sources/RiotLoginAnimationRepairService.swift" \ - || rg -n 'shell input (tap|keyevent)|KEYCODE_TAB|becomeFirstResponder' \ - "$LAUNCHER_DIR/Sources/RiotLoginAnimationRepairService.swift"; then - print -u2 "Scoped Riot login animation repair is incomplete or uses synthetic focus." - exit 1 -fi - -# A user-requested STOP sends TERM while the runtime child is still alive. -# Reproduce that lifecycle with caffeinate as a harmless long-running child and -# verify that it produces a normal stopped event, not a Repair error. -mkdir -p "$LIFECYCLE_ROOT/runtime/scripts" -ln -s /usr/bin/caffeinate "$LIFECYCLE_ROOT/runtime/scripts/run-asg-experiment.command" -env \ - TFT_RUNTIME_PROJECT="$LIFECYCLE_ROOT/runtime" \ - TFT_LAUNCH_LOG="$LIFECYCLE_ROOT/runtime.log" \ - TFT_ADB=/usr/bin/false \ - TFT_AVD_HOME="$LIFECYCLE_ROOT/avd" \ - TFT_AVD_NAME=TftPBE \ - TFT_SERIAL=emulator-5582 \ - TFT_DISPLAY_SIZE=1920x1080 \ - TFT_DISPLAY_DENSITY=320 \ - TFT_GAME_LANGUAGE=en-US \ - TFT_CPU_CORES=6 \ - TFT_MEMORY_MB=6144 \ - TFT_UI_SCALE=1.0 \ - "$LAUNCHER_DIR/Resources/launcher-runtime.command" \ - >"$LIFECYCLE_ROOT/events.jsonl" & -readonly LIFECYCLE_PID=$! -typeset lifecycle_ready=0 -for lifecycle_attempt in {1..100}; do - if grep -q '"event":"booting"' "$LIFECYCLE_ROOT/events.jsonl" 2>/dev/null; then - lifecycle_ready=1 - break - fi - if ! kill -0 "$LIFECYCLE_PID" >/dev/null 2>&1; then - break - fi - sleep 0.05 -done -if (( lifecycle_ready == 0 )); then - print -u2 "Launcher runtime did not reach the booting state." - cat "$LIFECYCLE_ROOT/events.jsonl" >&2 2>/dev/null || true - exit 1 -fi -kill -TERM "$LIFECYCLE_PID" -if wait "$LIFECYCLE_PID"; then - readonly LIFECYCLE_STATUS=0 -else - readonly LIFECYCLE_STATUS=$? -fi -if (( LIFECYCLE_STATUS != 0 )) \ - || ! grep -q '"event":"stopped"' "$LIFECYCLE_ROOT/events.jsonl" \ - || grep -q '"event":"error"' "$LIFECYCLE_ROOT/events.jsonl"; then - print -u2 "Launcher runtime STOP was not classified as a normal shutdown." - cat "$LIFECYCLE_ROOT/events.jsonl" >&2 - exit 1 -fi - -# After TFT has started, three consecutive missing package-PID checks represent -# a real game close. Verify that the runtime emits game_stopped before cleanup. -readonly GAME_EXIT_ADB="$LIFECYCLE_ROOT/fake-adb.command" -readonly GAME_EXIT_STATE="$LIFECYCLE_ROOT/fake-adb-state" -cat >"$GAME_EXIT_ADB" <<'FAKE_ADB_EOF' -#!/bin/zsh -set -eu -if [[ "$*" == *" get-state" ]]; then - exit 0 -fi -if [[ "$*" == *" getprop sys.boot_completed" ]]; then - print 1 - exit 0 -fi -if [[ "$*" == *" cmd locale set-app-locales"* ]]; then - exit 0 -fi -if [[ "$*" == *" pidof com.riotgames.league.teamfighttactics.pbe" ]]; then - typeset -i count=0 - [[ -f "$TFT_FAKE_ADB_STATE" ]] && count="$(<"$TFT_FAKE_ADB_STATE")" - (( count += 1 )) - print "$count" >"$TFT_FAKE_ADB_STATE" - (( count <= 2 )) && print 4242 - exit 0 -fi -exit 0 -FAKE_ADB_EOF -chmod 755 "$GAME_EXIT_ADB" -env \ - TFT_RUNTIME_PROJECT="$LIFECYCLE_ROOT/runtime" \ - TFT_LAUNCH_LOG="$LIFECYCLE_ROOT/game-exit-runtime.log" \ - TFT_ADB="$GAME_EXIT_ADB" \ - TFT_FAKE_ADB_STATE="$GAME_EXIT_STATE" \ - TFT_AVD_HOME="$LIFECYCLE_ROOT/avd" \ - TFT_AVD_NAME=TftPBE \ - TFT_SERIAL=emulator-5582 \ - TFT_DISPLAY_SIZE=1920x1080 \ - TFT_DISPLAY_DENSITY=320 \ - TFT_GAME_LANGUAGE=en-US \ - TFT_CPU_CORES=6 \ - TFT_MEMORY_MB=6144 \ - TFT_UI_SCALE=1.0 \ - "$LAUNCHER_DIR/Resources/launcher-runtime.command" \ - >"$LIFECYCLE_ROOT/game-exit-events.jsonl" & -readonly GAME_EXIT_PID=$! -typeset game_exit_detected=0 -for game_exit_attempt in {1..200}; do - if grep -q '"event":"game_stopped"' \ - "$LIFECYCLE_ROOT/game-exit-events.jsonl" 2>/dev/null; then - game_exit_detected=1 - break - fi - if ! kill -0 "$GAME_EXIT_PID" >/dev/null 2>&1; then - break - fi - sleep 0.05 -done -kill -TERM "$GAME_EXIT_PID" >/dev/null 2>&1 || true -wait "$GAME_EXIT_PID" || true -if (( game_exit_detected == 0 )) \ - || [[ "$(grep -c '"event":"game_stopped"' "$LIFECYCLE_ROOT/game-exit-events.jsonl")" != 1 ]] \ - || grep -q '"event":"error"' "$LIFECYCLE_ROOT/game-exit-events.jsonl"; then - print -u2 "Launcher runtime did not classify a closed TFT process." - cat "$LIFECYCLE_ROOT/game-exit-events.jsonl" >&2 - exit 1 -fi - -mkdir -p "$LAUNCHER_DIR/.build/module-cache" -xcrun swiftc \ - -target "$TEST_TARGET" \ - -module-cache-path "$LAUNCHER_DIR/.build/module-cache" \ - "$LAUNCHER_DIR/Sources/CoreModels.swift" \ - "$LAUNCHER_DIR/Sources/HostedGameUpdate.swift" \ - "$LAUNCHER_DIR/Sources/LauncherPresentation.swift" \ - "$LAUNCHER_DIR/Sources/LauncherTelemetryService.swift" \ - "$LAUNCHER_DIR/Sources/LauncherPaths.swift" \ - "$LAUNCHER_DIR/Sources/SystemServices.swift" \ - "$LAUNCHER_DIR/Sources/EmulatorBrandingPatch.swift" \ - "$LAUNCHER_DIR/Sources/EmulatorAudioRecoveryService.swift" \ - "$LAUNCHER_DIR/Sources/FPSOverlayService.swift" \ - "$LAUNCHER_DIR/Sources/InputBridgeService.swift" \ - "$LAUNCHER_DIR/Sources/InstallerService.swift" \ - "$LAUNCHER_DIR/Tests/LauncherTests.swift" \ - -o "$TEST_BINARY" - -"$TEST_BINARY" \ - "$LAUNCHER_DIR/Resources/release-manifest.json" \ - "$LAUNCHER_DIR" - -typeset -a ALL_SOURCES -ALL_SOURCES=("$LAUNCHER_DIR"/Sources/*.swift) -xcrun swiftc \ - -typecheck \ - -parse-as-library \ - -target arm64-apple-macosx12.0 \ - -module-cache-path "$LAUNCHER_DIR/.build/module-cache" \ - -F "$SPARKLE_ROOT" \ - "${ALL_SOURCES[@]}" - -print "Mactician typecheck: OK" diff --git a/scripts/verify-branding.command b/scripts/verify-branding.command deleted file mode 100755 index 0ebe7bf..0000000 --- a/scripts/verify-branding.command +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -cd "$PROJECT_DIR" - -fail() { - print -u2 "Brand verification failed: $*" - exit 1 -} - -readonly launcher_word="Launcher" -readonly launcher_word_lower="launcher" -readonly tactician_tail="Tician" -readonly old_product_pattern="TFT-PBE-$launcher_word|TFTPBE $launcher_word|tft-pbe-$launcher_word_lower|tft_pbe_$launcher_word_lower|TFTPBE$launcher_word|TFT$launcher_word" -readonly old_titled_product="TFT PBE $launcher_word" -readonly wrong_casing="Mac$tactician_tail" -readonly forbidden_suffix="Mactician $launcher_word" - -typeset content_matches -content_matches="$(rg -n -i --hidden \ - --glob '!.git/**' \ - --glob '!dist/**' \ - --glob '!launcher/.build/**' \ - --glob '!build/**' \ - --glob '!DerivedData/**' \ - "$old_product_pattern|$forbidden_suffix" . || true)" -[[ -z "$content_matches" ]] || { - print -r -- "$content_matches" >&2 - fail "obsolete or forbidden product naming remains in repository content" -} - -content_matches="$(rg -n --hidden \ - --glob '!.git/**' \ - --glob '!dist/**' \ - --glob '!launcher/.build/**' \ - --glob '!build/**' \ - --glob '!DerivedData/**' \ - "$old_titled_product|$wrong_casing" . || true)" -[[ -z "$content_matches" ]] || { - print -r -- "$content_matches" >&2 - fail "incorrect Mactician casing remains in repository content" -} - -typeset filename_matches -filename_matches="$(find . \ - -path './.git' -prune -o \ - -path './dist' -prune -o \ - -path './launcher/.build' -prune -o \ - -path './build' -prune -o \ - -path './DerivedData' -prune -o \ - -print | LC_ALL=C grep -Ei "$old_product_pattern|$forbidden_suffix" || true)" -[[ -z "$filename_matches" ]] || { - print -r -- "$filename_matches" >&2 - fail "obsolete or forbidden product naming remains in repository paths" -} - -filename_matches="$(find . \ - -path './.git' -prune -o \ - -path './dist' -prune -o \ - -path './launcher/.build' -prune -o \ - -path './build' -prune -o \ - -path './DerivedData' -prune -o \ - -print | LC_ALL=C grep -E "$old_titled_product|$wrong_casing" || true)" -[[ -z "$filename_matches" ]] || { - print -r -- "$filename_matches" >&2 - fail "incorrect Mactician casing remains in repository paths" -} - -print "Brand verification: OK" diff --git a/scripts/verify-repository.command b/scripts/verify-repository.command deleted file mode 100755 index 3709a4d..0000000 --- a/scripts/verify-repository.command +++ /dev/null @@ -1,303 +0,0 @@ -#!/bin/zsh -set -euo pipefail -unsetopt BG_NICE - -readonly PROJECT_DIR="${0:A:h:h}" -cd "$PROJECT_DIR" - -fail() { - print -u2 "Repository validation failed: $*" - exit 1 -} - -require_command() { - command -v "$1" >/dev/null 2>&1 || fail "required command is unavailable: $1" -} - -require_command find -require_command jq -require_command perl -require_command plutil -require_command rg -require_command xattr -require_command xcrun -require_command zsh - -typeset -a REQUIRED_FILES -REQUIRED_FILES=( - .editorconfig - .gitattributes - .gitignore - .github/workflows/ci.yml - .github/ISSUE_TEMPLATE/bug_report.yml - .github/ISSUE_TEMPLATE/feature_request.yml - .github/ISSUE_TEMPLATE/config.yml - .github/pull_request_template.md - .github/repository-metadata.yml - CHANGELOG.md - CONTRIBUTING.md - LICENSE - NOTICE.md - README.md - SECURITY.md - SUPPORT.md - docs/architecture.md - docs/benchmarks.md - docs/building.md - docs/launch-profiles.md - docs/releasing.md - docs/reproducibility.md - docs/research-log.md - docs/troubleshooting.md - docs/telemetry-contract/SHA256SUMS - docs/telemetry-contract/first-game-session-v2.json - docs/telemetry-contract/game-session-diagnostics-v2.json - launcher/Info.plist - launcher/Resources/EmulatorHost-Info.plist - launcher/Resources/EmulatorIcon.icns - launcher/Resources/EmulatorIcon-1024.png - launcher/Resources/Mactician.icns - launcher/Resources/Mactician-1024.png - launcher/Resources/MacticianHero.png - launcher/Resources/release-manifest.json - scripts/android-environment.sh - scripts/build-mactician.command - scripts/build-mactician-icns.pl - scripts/generate-mactician-assets.command - scripts/integration-test-mactician.command - scripts/publish-mactician-update.command - scripts/test-mactician.command - scripts/verify-branding.command - scripts/verify-telemetry-contract.command - scripts/verify-repository.command - run-tft-best-verified.command - branding/mactician-app-icon.svg - branding/mactician-game-host-icon.svg - branding/mactician-favicon.svg - branding/mactician-mark.svg - branding/mactician-mark-dark.svg - branding/mactician-mark-light.svg - branding/mactician-mark-monochrome.svg - branding/mactician-open-graph.svg - branding/mactician-product-hero.svg - branding/mactician-small-size-test.svg - branding/mactician-social-preview.svg - branding/mactician-wordmark.svg - branding/generated/Mactician.icns - branding/generated/EmulatorIcon.icns - branding/generated/mactician-favicon.ico - branding/generated/mactician-open-graph.png - branding/generated/mactician-small-size-test.png - branding/generated/mactician-social-preview.png -) -for required_file in "${REQUIRED_FILES[@]}"; do - [[ -f "$required_file" ]] || fail "required file is missing: $required_file" -done -[[ -x scripts/build-mactician-icns.pl ]] || fail "ICNS builder is not executable" - -typeset script_file -while IFS= read -r script_file; do - [[ -x "$script_file" ]] || fail "script is not executable: $script_file" - zsh -o NO_BG_NICE -n "$script_file" || fail "zsh syntax check failed: $script_file" -done < <(find . -type f \( -name '*.command' -o -name '*.sh' \) \ - -not -path './.git/*' -not -path './launcher/.build/*' \ - -not -path './dist/*' -not -path './dist-build*/*' \ - -not -path './runtime/*' | LC_ALL=C sort) - -plutil -lint launcher/Info.plist >/dev/null || fail "launcher Info.plist is invalid" -plutil -lint launcher/Resources/EmulatorHost-Info.plist >/dev/null \ - || fail "emulator host Info.plist is invalid" -plutil -lint launcher/Resources/QEMU-Hypervisor.entitlements >/dev/null \ - || fail "hypervisor entitlements are invalid" -typeset strings_file -for strings_file in launcher/Resources/*.lproj/Localizable.strings; do - plutil -lint "$strings_file" >/dev/null || fail "strings file is invalid: $strings_file" -done - -typeset json_file -while IFS= read -r json_file; do - jq -e . "$json_file" >/dev/null || fail "JSON file is invalid: $json_file" -done < <(find . -type f -name '*.json' -not -path './.git/*' \ - -not -path './launcher/.build/*' -not -path './dist/*' \ - -not -path './dist-build*/*' -not -path './runtime/*' | LC_ALL=C sort) - -xcrun clang -target arm64-apple-macosx12.0 -fsyntax-only launcher/EmulatorHost/main.c - -typeset developer_root="/""Users/" -typeset local_user="sb""naumov" -typeset path_match -while IFS= read -r path_match; do - case "$path_match" in - ./scripts/build-mactician.command:*|./launcher/Tests/LauncherTests.swift:*) ;; - *) fail "developer-specific absolute path remains: $path_match" ;; - esac -done < <(rg -n --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' "$developer_root" . || true) - -typeset identity_match -while IFS= read -r identity_match; do - [[ "$identity_match" == *"local.${local_user}.tft-pbe-"* ]] \ - || fail "personal identifier remains outside the documented compatibility IDs: $identity_match" -done < <(rg -n --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' "$local_user" . || true) - -typeset codex_match -while IFS= read -r codex_match; do - [[ "$codex_match" == *'Android_Codex'* ]] \ - || fail "workspace-only Codex label remains: $codex_match" -done < <(rg -ni --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' 'codex' . || true) -while IFS= read -r codex_match; do - [[ "${codex_match:t}" == Android_Codex.DeviceProfiles*.ini ]] \ - || fail "workspace-only Codex filename remains: $codex_match" -done < <(find . -iname '*codex*' -not -path './.git/*' \ - -not -path './launcher/.build/*' -not -path './dist/*' \ - -not -path './dist-build*/*' -not -path './runtime/*' | LC_ALL=C sort) - -if rg -ni --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' \ - 'next chat|handoff for the next|managed workspace|documents/codex|files-mentioned-by-the-user' .; then - fail "internal handoff or managed-workspace language remains" -fi - -if rg -n '[А-Яа-яЁё]' --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!launcher/Resources/ru.lproj/**' \ - --glob '!scripts/test-mactician.command' \ - --glob '!scripts/verify-repository.command' .; then - fail "repository text is not in English" -fi - -typeset junk_path -while IFS= read -r junk_path; do - fail "macOS metadata or AppleDouble file remains: $junk_path" -done < <(find . \( -name '.DS_Store' -o -name '._*' \) -not -path './.git/*' \ - -not -path './launcher/.build/*' -not -path './dist/*' \ - -not -path './dist-build*/*' -not -path './runtime/*') - -typeset attr_path -while IFS= read -r attr_path; do - if [[ -n "$(xattr "$attr_path" 2>/dev/null)" ]]; then - fail "extended attributes remain on: $attr_path" - fi -done < <(find . -not -path './.git' -not -path './.git/*' \ - -not -path './launcher/.build' -not -path './launcher/.build/*' \ - -not -path './dist' -not -path './dist/*' \ - -not -path './dist-build*' -not -path './dist-build*/*' \ - -not -path './runtime' -not -path './runtime/*') - -typeset forbidden_path -while IFS= read -r forbidden_path; do - if git check-ignore -q "$forbidden_path" 2>/dev/null; then - continue - fi - fail "private or generated artifact is present and not ignored: $forbidden_path" -done < <(find . -type f \( -name '*.apk' -o -name '*.apks' -o -name '*.xapk' \ - -o -name '*.aab' -o -name '*.obb' -o -name '*.qcow2' -o -name 'userdata*.img' \ - -o -name 'encryptionkey*.img' -o -name '*.p12' -o -name '*.pfx' -o -name '*.jks' \ - -o -name '*.keystore' -o -name '*.key' -o -name '*.pem' -o -name '*.crt' \ - -o -name '*.cer' -o -name '*.mobileprovision' -o -name '*.token' \ - -o -name '*.secret' -o -name '.DS_Store' \) \ - -not -path './.git/*' -not -path './dist-build*/*') - -if rg -n --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' \ - -- '-----BEGIN (RSA |EC |OPENSSH )?PRIVATE KEY-----|AKIA[0-9A-Z]{16}|gh[pousr]_[A-Za-z0-9]{20,}' .; then - fail "text resembling a private key or access token remains" -fi - -typeset owner_placeholder='" -typeset repository_placeholder='" -if rg -n --hidden --glob '!.git/**' --glob '!launcher/.build/**' \ - --glob '!scripts/verify-repository.command' \ - "$owner_placeholder|$repository_placeholder|NAME \(TEAM_ID\)|TODO_PUBLIC" .; then - fail "publication placeholder remains" -fi - -typeset markdown_file link target -while IFS= read -r markdown_file; do - while IFS=$'\t' read -r link; do - [[ -n "$link" ]] || continue - case "$link" in - \#*|http://*|https://*|mailto:*|../../releases/*) continue ;; - esac - link="${link%%#*}" - link="${link%%\?*}" - [[ -n "$link" ]] || continue - [[ "$link" != /* ]] || fail "absolute local Markdown link in $markdown_file: $link" - target="${markdown_file:h}/$link" - [[ -e "$target" ]] || fail "broken Markdown link in $markdown_file: $link" - done < <(perl -ne 'while (/\[[^]]*\]\(([^)]+)\)/g) { print "$1\n" }' "$markdown_file") -done < <(find . -type f -name '*.md' -not -path './.git/*' \ - -not -path './launcher/.build/*' -not -path './dist/*' \ - -not -path './dist-build*/*' -not -path './runtime/*' | LC_ALL=C sort) - -typeset -a DOCUMENTED_LAUNCHERS -DOCUMENTED_LAUNCHERS=( - run-tft-angle-opengl.command - run-tft-best-verified.command - run-tft-mvk128-experimental.command -) -typeset documented_launcher -for documented_launcher in "${DOCUMENTED_LAUNCHERS[@]}"; do - [[ -x "$documented_launcher" ]] \ - || fail "documented launcher is absent or not executable: $documented_launcher" -done -while IFS= read -r documented_launcher; do - [[ -f "$documented_launcher" || -f "scripts/$documented_launcher" ]] \ - || fail "documentation names a missing launcher: $documented_launcher" -done < <(rg -o --no-filename 'run-tft-[A-Za-z0-9-]+[.]command' \ - README.md launcher/README.md docs | LC_ALL=C sort -u) - -typeset version build_number host_version host_build -version="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' launcher/Info.plist)" -build_number="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' launcher/Info.plist)" -host_version="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' launcher/Resources/EmulatorHost-Info.plist)" -host_build="$(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' launcher/Resources/EmulatorHost-Info.plist)" -[[ "$version" == "$host_version" ]] || fail "launcher and emulator host versions differ" -[[ "$build_number" == "$host_build" ]] || fail "launcher and emulator host build numbers differ" -grep -Fq "Version: **$version** (build $build_number)" README.md \ - || fail "README version/build does not match Info.plist" -grep -Fq "version $version, build $build_number" CHANGELOG.md \ - || fail "CHANGELOG version/build does not match Info.plist" -grep -Fq "## Unreleased" CHANGELOG.md || fail "CHANGELOG has no Unreleased section" -grep -Fq "version $version, build $build_number" docs/releasing.md \ - || fail "release guide version/build does not match Info.plist" - -[[ "$(plutil -extract CFBundleDisplayName raw launcher/Info.plist)" == "Mactician" ]] \ - || fail "unexpected app display name" -[[ "$(plutil -extract CFBundleExecutable raw launcher/Info.plist)" == "Mactician" ]] \ - || fail "unexpected app executable" -[[ "$(plutil -extract CFBundleIdentifier raw launcher/Info.plist)" \ - == "dev.sergeinaumov.mactician" ]] || fail "unexpected bundle identifier" -grep -Fq 'Mactician-$VERSION.dmg' scripts/build-mactician.command \ - || fail "versioned DMG naming is missing" -grep -Fq -- '-volname "Mactician"' scripts/build-mactician.command \ - || fail "DMG volume name is missing" -grep -Fq 'Sparkle-LICENSE.txt' scripts/build-mactician.command \ - || fail "Sparkle license is not packaged in the application" -grep -Fq 'readonly LICENSE_FILE=' scripts/prepare-sparkle.command \ - || fail "prepared Sparkle dependency does not retain its license" - -jq -e '.schemaVersion == 1 - and (.components | length == 3) - and (.game.apks | length == 4) - and (.components[] | .sha256 | test("^[0-9a-f]{64}$")) - and (.game.apks[] | .sha256 | test("^[0-9a-f]{64}$"))' \ - launcher/Resources/release-manifest.json >/dev/null \ - || fail "release manifest structure or hashes are invalid" - -typeset required_ignore -for required_ignore in '/runtime/' '/dist/' '/dist-build*/' '/launcher/.build/' '/private/' '*.apk' '*.qcow2' '*.p12' '*.pem' '*.mobileprovision' '.DS_Store'; do - grep -Fqx "$required_ignore" .gitignore \ - || fail ".gitignore lacks required rule: $required_ignore" -done - -if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then - git diff --check - git diff --cached --check -fi - -./scripts/verify-branding.command -./scripts/verify-telemetry-contract.command - -print "Repository validation: OK ($version build $build_number)" diff --git a/ssot/TFTMAC_PERFORMANCE_LAB.sql b/ssot/TFTMAC_PERFORMANCE_LAB.sql index 6a2d943..94d7a2c 100644 --- a/ssot/TFTMAC_PERFORMANCE_LAB.sql +++ b/ssot/TFTMAC_PERFORMANCE_LAB.sql @@ -524,7 +524,7 @@ INSERT INTO unknowns VALUES -- preserving those older rows as historical context elsewhere in the project. INSERT OR REPLACE INTO lab_meta(key,value) VALUES -('current_playable_baseline','mactician_compatible_official_v0'), +('current_playable_baseline','tftmac_official_baseline_v1'), ('current_playable_baseline_session','2026-08-28T11-06-18-553Z-e6d3204f-17c2-4b80-9084-e76642089da2'), ('current_guest','Android 16 / API 36 Google Play ARM64 revision >=7'), ('current_emulator','Google Android Emulator 37.1.11'), @@ -556,9 +556,9 @@ INSERT OR REPLACE INTO runtime_configs ( display_width,display_height,density_dpi,refresh_hz,gpu_mode,audio_enabled, graphics_transport,angle_mode,vulkan_mode,moltenvk_mode,presentation_mode,state,created_at,notes ) VALUES -('mactician_compatible_official_v0',NULL,'Mactician-compatible official TFT control v0','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,6144,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','GuestAngle + explicit exposeNonConformantExtensionsAndVersions/exposeES32ForTesting compatibility adapter','ranchu guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','direct emulator window','CONTROL','2026-08-28T11:06:18Z','Completed a full first-place official TFT match. Compatibility exposure is a truthful workload adapter, not GLES conformance proof.'), -('mactician_compatible_5gb_v1','mactician_compatible_official_v0','RAM 5 GiB candidate','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,5120,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','same as baseline','same as baseline','same as baseline','same as baseline','CANDIDATE','2026-08-28T21:31:30Z','One-factor candidate: only guest RAM changes 6144 -> 5120 MB. Direct 4096 MB cut deferred because observed heavy-gameplay guest headroom reaches about 1.64-1.75 GiB.'), -('mactician_compatible_5gb_flush400_v1','mactician_compatible_5gb_v1','5 GiB + lower draw flush interval candidate','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,5120,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','same as 5 GiB baseline','same as 5 GiB baseline','same as 5 GiB baseline','same as 5 GiB baseline','CANDIDATE','2026-08-28T23:47:00Z','One-factor graphics-transport candidate: hw.gltransport.drawFlushInterval 800 -> 400 only. AOSP defines this interval as the balance between host-GPU starvation and pipe-notification overhead; test only against SurfaceFlinger miss-rate and resource telemetry.'); +('tftmac_official_baseline_v1',NULL,'TFTMAC official playable baseline official TFT control v0','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,6144,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','GuestAngle + explicit exposeNonConformantExtensionsAndVersions/exposeES32ForTesting compatibility adapter','ranchu guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','direct emulator window','CONTROL','2026-08-28T11:06:18Z','Completed a full first-place official TFT match. Compatibility exposure is a truthful workload adapter, not GLES conformance proof.'), +('tftmac_5gb_baseline_v1','tftmac_official_baseline_v1','RAM 5 GiB candidate','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,5120,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','same as baseline','same as baseline','same as baseline','same as baseline','CANDIDATE','2026-08-28T21:31:30Z','One-factor candidate: only guest RAM changes 6144 -> 5120 MB. Direct 4096 MB cut deferred because observed heavy-gameplay guest headroom reaches about 1.64-1.75 GiB.'), +('tftmac_5gb_flush400_exp_v1','tftmac_5gb_baseline_v1','5 GiB + lower draw flush interval candidate','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5592',5040,5592,6,5120,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','same as 5 GiB baseline','same as 5 GiB baseline','same as 5 GiB baseline','same as 5 GiB baseline','CANDIDATE','2026-08-28T23:47:00Z','One-factor graphics-transport candidate: hw.gltransport.drawFlushInterval 800 -> 400 only. AOSP defines this interval as the balance between host-GPU starvation and pipe-notification overhead; test only against SurfaceFlinger miss-rate and resource telemetry.'); UPDATE hypotheses SET status='TESTING', confidence=0.60, @@ -571,18 +571,18 @@ INSERT OR REPLACE INTO hypotheses VALUES ('h_gpu_frame_miss','GPU-side presentation misses contribute to visible lag','SURFACEFLINGER','A meaningful portion of visible gameplay lag is caused by GPU/presentation misses somewhere in the Unreal -> ANGLE -> Vulkan -> gfxstream -> MoltenVK -> Metal path.','TFT-specific SurfaceFlinger frametimeline traces show GPU-missed or late frames correlated with visible stalls while memory state is controlled.','TFT-specific frametimeline remains healthy during visible stalls, or misses disappear without improving perceived performance.','QUEUED',0.35,NULL,'2026-08-28T18:42:01Z','Nominated from cumulative SurfaceFlinger counters only: 2709 total missed, 2163 GPU missed, 546 HWC missed at the latest post-match read. These counters are since boot and are not match-scoped.'); INSERT OR REPLACE INTO experiments VALUES -('exp_ram_5gb_ab','h_guest_ram_host_pressure','Guest RAM 6144 -> 5120 MB A/B','INTERVENTION','mactician_compatible_official_v0','mactician_compatible_5gb_v1','HEAVY',1,'PLANNED',1,'Same official TFT version, renderer path, display, transport and vCPU; compare continuous-run pressure and native frame timing when available.','2026-08-28T21:31:30Z',NULL,'First RAM intervention. One GiB reduction only; 4096 MB is deferred because current guest headroom is insufficient for a safe first cut.'), -('exp_native_frame_trace',NULL,'Native Unreal/Vulkan frame-timing capture','OBSERVATION','mactician_compatible_official_v0',NULL,'HEAVY',0,'PLANNED',0,'Capture android.surfaceflinger.frame + android.surfaceflinger.frametimeline + android.surfaceflinger.layers + android.gpu.memory during real TFT combat; align to the existing host monotonic clock. Add linux.ftrace only in the heavier validation run.','2026-08-28T18:30:59Z',NULL,'Blocking measurement experiment before renderer/transport tuning. All required Perfetto data sources are directly proven available on the current guest.'); +('exp_ram_5gb_ab','h_guest_ram_host_pressure','Guest RAM 6144 -> 5120 MB A/B','INTERVENTION','tftmac_official_baseline_v1','tftmac_5gb_baseline_v1','HEAVY',1,'PLANNED',1,'Same official TFT version, renderer path, display, transport and vCPU; compare continuous-run pressure and native frame timing when available.','2026-08-28T21:31:30Z',NULL,'First RAM intervention. One GiB reduction only; 4096 MB is deferred because current guest headroom is insufficient for a safe first cut.'), +('exp_native_frame_trace',NULL,'Native Unreal/Vulkan frame-timing capture','OBSERVATION','tftmac_official_baseline_v1',NULL,'HEAVY',0,'PLANNED',0,'Capture android.surfaceflinger.frame + android.surfaceflinger.frametimeline + android.surfaceflinger.layers + android.gpu.memory during real TFT combat; align to the existing host monotonic clock. Add linux.ftrace only in the heavier validation run.','2026-08-28T18:30:59Z',NULL,'Blocking measurement experiment before renderer/transport tuning. All required Perfetto data sources are directly proven available on the current guest.'); UPDATE experiments -SET baseline_config_id='mactician_compatible_official_v0', +SET baseline_config_id='tftmac_official_baseline_v1', state='COMPLETE', notes=COALESCE(notes,'') || ' Superseded runtime identity corrected to the proven playable baseline.' WHERE id='exp_control_direct_play'; UPDATE experiments SET state='CANCELLED', - notes=COALESCE(notes,'') || ' Superseded by mactician_compatible_official_v0 and exp_native_frame_trace.' + notes=COALESCE(notes,'') || ' Superseded by tftmac_official_baseline_v1 and exp_native_frame_trace.' WHERE id IN ('exp_control_repeat_warm','exp_transition_capture','exp_heavy_capture') AND baseline_config_id='control_stock_direct_v0'; @@ -594,10 +594,10 @@ INSERT OR REPLACE INTO hypotheses VALUES ('h_asg_flush_latency','ASG draw flush cadence contributes to presentation lateness','GFXSTREAM_ASG','The current draw-flush cadence allows guest graphics work to reach the host late enough to contribute to SurfaceFlinger/HWC presentation misses even when GPU-miss counters remain flat.','Reducing drawFlushInterval 800 -> 400 lowers HWC/total missed-frame rate in comparable gameplay without a disproportionate CPU or notification-overhead penalty.','HWC/total miss rate does not improve, or host CPU/overhead rises materially enough to offset frame-pacing gains.','QUEUED',0.45,NULL,'2026-08-28T23:47:00Z','Nominated from broad 5 GiB run delta: +524 total misses, +524 HWC misses, +0 GPU misses, plus available host CPU headroom. Requires 10-second SurfaceFlinger counter stream for a clean A/B.'); INSERT OR REPLACE INTO experiments VALUES -('exp_asg_flush400_ab','h_asg_flush_latency','ASG draw flush interval 800 -> 400 A/B','INTERVENTION','mactician_compatible_5gb_v1','mactician_compatible_5gb_flush400_v1','HEAVY',1,'PLANNED',1,'Keep 5 GiB RAM, 6 vCPU, 1920x1080, Medium/60/Performance OFF, ANGLE/Vulkan/MoltenVK, ASG sizes and TFT package unchanged; compare 10-second SurfaceFlinger HWC/GPU/total miss rate plus CPU/memory.','2026-08-28T23:47:00Z',NULL,'Do not activate until a stable 5 GiB/CoreAudio control run is available with the new SurfaceFlinger counter stream.'), -('exp_tft_performance_mode_ab',NULL,'TFT Performance Mode (Beta) A/B','INTERVENTION','mactician_compatible_official_v0',NULL,'HEAVY',1,'PLANNED',0,'Keep Medium graphics, 60 FPS cap, emulator/runtime/package identical; change only Performance Mode (Beta) ON/OFF and compare native frame timing + memory/GPU pressure.','2026-08-28T20:11:18Z',NULL,'First game-level intervention after the fully labeled Medium/60 baseline.'), -('exp_tft_fps_cap_ab',NULL,'TFT FPS cap A/B','INTERVENTION','mactician_compatible_official_v0',NULL,'HEAVY',1,'PLANNED',0,'Hold graphics preset and Performance Mode constant; compare 60 versus None first, with 30 retained as a diagnostic lower-load control if needed.','2026-08-28T20:11:18Z',NULL,'Do not combine FPS-cap changes with graphics-preset changes.'), -('exp_tft_graphics_preset_ab',NULL,'TFT graphics preset A/B','INTERVENTION','mactician_compatible_official_v0',NULL,'HEAVY',1,'PLANNED',0,'Hold FPS cap and Performance Mode constant; test Low, Medium, High, Ultra High one preset at a time with native frame timing.','2026-08-28T20:11:18Z',NULL,'Target is the highest preset that preserves stable 60-Hz frame pacing and acceptable memory/GPU pressure.'); +('exp_asg_flush400_ab','h_asg_flush_latency','ASG draw flush interval 800 -> 400 A/B','INTERVENTION','tftmac_5gb_baseline_v1','tftmac_5gb_flush400_exp_v1','HEAVY',1,'PLANNED',1,'Keep 5 GiB RAM, 6 vCPU, 1920x1080, Medium/60/Performance OFF, ANGLE/Vulkan/MoltenVK, ASG sizes and TFT package unchanged; compare 10-second SurfaceFlinger HWC/GPU/total miss rate plus CPU/memory.','2026-08-28T23:47:00Z',NULL,'Do not activate until a stable 5 GiB/CoreAudio control run is available with the new SurfaceFlinger counter stream.'), +('exp_tft_performance_mode_ab',NULL,'TFT Performance Mode (Beta) A/B','INTERVENTION','tftmac_official_baseline_v1',NULL,'HEAVY',1,'PLANNED',0,'Keep Medium graphics, 60 FPS cap, emulator/runtime/package identical; change only Performance Mode (Beta) ON/OFF and compare native frame timing + memory/GPU pressure.','2026-08-28T20:11:18Z',NULL,'First game-level intervention after the fully labeled Medium/60 baseline.'), +('exp_tft_fps_cap_ab',NULL,'TFT FPS cap A/B','INTERVENTION','tftmac_official_baseline_v1',NULL,'HEAVY',1,'PLANNED',0,'Hold graphics preset and Performance Mode constant; compare 60 versus None first, with 30 retained as a diagnostic lower-load control if needed.','2026-08-28T20:11:18Z',NULL,'Do not combine FPS-cap changes with graphics-preset changes.'), +('exp_tft_graphics_preset_ab',NULL,'TFT graphics preset A/B','INTERVENTION','tftmac_official_baseline_v1',NULL,'HEAVY',1,'PLANNED',0,'Hold FPS cap and Performance Mode constant; test Low, Medium, High, Ultra High one preset at a time with native frame timing.','2026-08-28T20:11:18Z',NULL,'Target is the highest preset that preserves stable 60-Hz frame pacing and acceptable memory/GPU pressure.'); INSERT OR REPLACE INTO lab_meta(key,value) VALUES ('latest_observed_match_2','placement=1; result=WIN; exact result at 2026-08-28T20:57:14.054Z'), @@ -637,14 +637,14 @@ INSERT OR REPLACE INTO decisions(id,experiment_id,decision,rationale,cold_confir ('decision_ram5_operational_keep','exp_ram_5gb_ab','KEEP','Retain 5120 MB guest RAM for continued development: host-pressure indicators improved materially and the guest retained usable headroom without OOM/ANR. Do not cut to 4096 MB now.','0',NULL,'2026-08-28T23:49:00Z','KEEP means current development default, not a permanent promoted performance fact.'); INSERT OR REPLACE INTO lab_meta(key,value) VALUES -('latest_closed_run_session','2026-08-28T23-31-16-637Z-df54ebaa-561a-4567-ab20-d94baf0a3619; 3860.24s; mactician_compatible_5gb_v1; raw SEALED; normalized COMPLETE; 18/18 required artifacts present.'), +('latest_closed_run_session','2026-08-28T23-31-16-637Z-df54ebaa-561a-4567-ab20-d94baf0a3619; 3860.24s; tftmac_5gb_baseline_v1; raw SEALED; normalized COMPLETE; 18/18 required artifacts present.'), ('latest_closed_run_memory','Full-run weighted means: emulator CPU 171.87%, RSS 5829 MiB, host available 5.425 GiB, host compressed 2.793 GiB, guest available 2.224 GiB. Heavy windows reproduced about 1.70-1.90 GiB guest headroom. Keep 5120 MB and defer/reject 4096 MB for now.'), ('latest_closed_run_pageouts','10711 pageouts / 3860.24s = 166.48 per minute including cold boot. Excluding first 10 minutes gives about 127.94 per minute, close to prior 5 GiB run 133.54 per minute and below old 6 GiB baseline 207.18 per minute. Treat as repeated directional support, not perfectly matched workload proof.'), ('latest_closed_run_audio','CoreAudio sustained: explicit backend, 0 ranchu pcm_write I/O errors, active TFT 44.1 kHz stereo OpenSL ES track, 0 mixer underruns.'), ('latest_closed_run_network','No emulator/Android network disconnect reproduced: TFT PID stayed 5276; network 101 stayed assigned; end-of-game callback requests were immediately reassigned to network 101.'), ('latest_closed_run_presentation','Surface remains 1280x720 scaled to 1920x1080; post-run total missed=562 and HWC missed=562 at 60 Hz. Zero-valued GPU counter parsing was fixed so zero no longer becomes NULL. Next graphics intervention remains ASG drawFlushInterval 800 -> 400 only.'), ('current_5gb_operational_decision','KEEP 5120 MB as development runtime. Two long runs reproduce lower pressure/pageout direction versus 6144 MB while maintaining adequate heavy-game guest headroom; 4096 MB remains deferred.'), -('current_graphics_experiment','Next one-factor candidate: mactician_compatible_5gb_flush400_v1, drawFlushInterval 800 -> 400 only. Hold RAM, in-game settings, CoreAudio, resolution, vCPU, ANGLE, Vulkan, gfxstream and MoltenVK constant.'), +('current_graphics_experiment','Next one-factor candidate: tftmac_5gb_flush400_exp_v1, drawFlushInterval 800 -> 400 only. Hold RAM, in-game settings, CoreAudio, resolution, vCPU, ANGLE, Vulkan, gfxstream and MoltenVK constant.'), ('latest_graphics_quality_observation','2026-08-28 late game: user changed TFT from Medium to Ultra High, observed Ultra High as unplayable due to severe lag, then returned to Medium and playability recovered. Exact switch timestamps were not instrumented in this legacy run, so do not assign telemetry bins or inferred FPS values to the Ultra High interval.'), ('current_tft_graphics_observed','Medium'), ('ultra_high_current_usability','REJECT for current runtime usability until new native-app FPS/config instrumentation can quantify the boundary; direct user observation is decisive for usability but not causal pipeline attribution.'); diff --git a/tools/Mactician Game Host.app/Contents/Info.plist b/tools/Mactician Game Host.app/Contents/Info.plist deleted file mode 100644 index 5b2ecd9..0000000 --- a/tools/Mactician Game Host.app/Contents/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDisplayName - Mactician Game Host - CFBundleExecutable - MacticianGameHost - CFBundleIdentifier - dev.sergeinaumov.mactician.experiment-emulator - CFBundleName - Mactician Game Host - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - GCSupportsGameMode - - LSApplicationCategoryType - public.app-category.games - LSSupportsGameMode - - NSHighResolutionCapable - - - diff --git a/tools/Mactician Game Host.app/Contents/MacOS/MacticianGameHost b/tools/Mactician Game Host.app/Contents/MacOS/MacticianGameHost deleted file mode 100755 index 888ae18..0000000 --- a/tools/Mactician Game Host.app/Contents/MacOS/MacticianGameHost +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h:h:h:h}" -source "$PROJECT_DIR/scripts/android-environment.sh" -SDK_ROOT="$(tft_resolve_android_sdk_root)" -readonly SDK_ROOT -EMULATOR="$(tft_resolve_emulator)" -readonly EMULATOR -readonly ADB_SERVER_PORT="${TFT_ADB_SERVER_PORT:-5038}" - -if [[ ! -x "$EMULATOR" ]]; then - print -u2 "Android Emulator executable not found: $EMULATOR" - exit 1 -fi - -if [[ "$ADB_SERVER_PORT" != <-> ]] \ - || (( ADB_SERVER_PORT < 1024 || ADB_SERVER_PORT > 65534 )); then - print -u2 "TFT_ADB_SERVER_PORT must be a TCP port from 1024 through 65534." - exit 2 -fi - -export ANDROID_SDK_ROOT="$SDK_ROOT" -export ANDROID_AVD_HOME="$(tft_resolve_avd_home)" -unset ADB_SERVER_SOCKET ANDROID_ADB_SERVER_ADDRESS -export ANDROID_ADB_SERVER_PORT="$ADB_SERVER_PORT" - -exec "$EMULATOR" "$@" diff --git a/tools/tftmac-direct-control.mjs b/tools/tftmac-direct-control.mjs index 3e0184b..38b35f2 100644 --- a/tools/tftmac-direct-control.mjs +++ b/tools/tftmac-direct-control.mjs @@ -18,9 +18,9 @@ const PLAY_DISPLAY_WIDTH = 2960; const PLAY_DISPLAY_HEIGHT = 1848; const PLAY_DISPLAY_DENSITY = 320; const PLAY_RAM_MB = 8192; -const DONOR_PROFILE = Object.freeze({ - id: 'mactician_compatible_official_v0', - label: 'Mactician-compatible official TFT control', +const BASELINE_PROFILE = Object.freeze({ + id: 'tftmac_official_baseline_v1', + label: 'TFTMAC official playable baseline', width: 1920, height: 1080, density: 320, @@ -713,16 +713,16 @@ function startEmulator(runtime, captureDir) { return child.pid; } -function donorConfigBackupPath(runtime) { - if (!runtime.avdDir) throw new Error('Donor control requires a resolved AVD directory.'); - return path.join(runtime.avdDir, 'config.ini.tftmac-donor-backup'); +function baselineConfigBackupPath(runtime) { + if (!runtime.avdDir) throw new Error('Baseline control requires a resolved AVD directory.'); + return path.join(runtime.avdDir, 'config.ini.tftmac-baseline-backup'); } -function prepareDonorAVD(runtime, drawFlushInterval = DONOR_PROFILE.drawFlushInterval) { - if (!runtime.avdDir || !runtime.avdConfig) throw new Error('Donor control requires an existing official Play AVD.'); - if (!isUnder(runtime.avdDir, EXTERNAL_ROOT)) throw new Error('Donor control AVD must remain on the external runtime volume.'); +function prepareBaselineAVD(runtime, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval) { + if (!runtime.avdDir || !runtime.avdConfig) throw new Error('Baseline control requires an existing official Play AVD.'); + if (!isUnder(runtime.avdDir, EXTERNAL_ROOT)) throw new Error('Baseline control AVD must remain on the external runtime volume.'); const configPath = path.join(runtime.avdDir, 'config.ini'); - const backupPath = donorConfigBackupPath(runtime); + const backupPath = baselineConfigBackupPath(runtime); if (exists(backupPath)) { const restored = fs.readFileSync(backupPath, 'utf8'); fs.writeFileSync(configPath, restored); @@ -732,27 +732,27 @@ function prepareDonorAVD(runtime, drawFlushInterval = DONOR_PROFILE.drawFlushInt fs.writeFileSync(backupPath, baseline); let config = baseline; const values = { - 'hw.cpu.ncore': String(DONOR_PROFILE.vcpu), - 'hw.ramSize': String(DONOR_PROFILE.ramMB), - 'hw.lcd.width': String(DONOR_PROFILE.width), - 'hw.lcd.height': String(DONOR_PROFILE.height), - 'hw.lcd.density': String(DONOR_PROFILE.density), + 'hw.cpu.ncore': String(BASELINE_PROFILE.vcpu), + 'hw.ramSize': String(BASELINE_PROFILE.ramMB), + 'hw.lcd.width': String(BASELINE_PROFILE.width), + 'hw.lcd.height': String(BASELINE_PROFILE.height), + 'hw.lcd.density': String(BASELINE_PROFILE.density), 'hw.gpu.enabled': 'yes', 'hw.gpu.mode': 'host', - 'hw.gltransport': DONOR_PROFILE.glTransport, + 'hw.gltransport': BASELINE_PROFILE.glTransport, 'hw.gltransport.drawFlushInterval': String(drawFlushInterval), - 'hw.gltransport.asg.writeBufferSize': String(DONOR_PROFILE.asgWriteBufferSize), - 'hw.gltransport.asg.writeStepSize': String(DONOR_PROFILE.asgWriteStepSize), - 'hw.gltransport.asg.dataRingSize': String(DONOR_PROFILE.asgDataRingSize), + 'hw.gltransport.asg.writeBufferSize': String(BASELINE_PROFILE.asgWriteBufferSize), + 'hw.gltransport.asg.writeStepSize': String(BASELINE_PROFILE.asgWriteStepSize), + 'hw.gltransport.asg.dataRingSize': String(BASELINE_PROFILE.asgDataRingSize), 'showDeviceFrame': 'no', - 'skin.name': `${DONOR_PROFILE.width}x${DONOR_PROFILE.height}`, + 'skin.name': `${BASELINE_PROFILE.width}x${BASELINE_PROFILE.height}`, 'fastboot.forceColdBoot': 'yes', 'fastboot.forceFastBoot': 'no' }; for (const [key, value] of Object.entries(values)) config = setIniValue(config, key, value); fs.writeFileSync(configPath, config); return { - profile: DONOR_PROFILE, + profile: BASELINE_PROFILE, configPath, configSHA256: sha256File(configPath), baselineSHA256: crypto.createHash('sha256').update(baseline).digest('hex'), @@ -760,30 +760,30 @@ function prepareDonorAVD(runtime, drawFlushInterval = DONOR_PROFILE.drawFlushInt }; } -function restoreDonorAVD(runtime) { +function restoreBaselineAVD(runtime) { if (!runtime?.avdDir) return { restored: false, reason: 'AVD_UNRESOLVED' }; const configPath = path.join(runtime.avdDir, 'config.ini'); - const backupPath = donorConfigBackupPath(runtime); - if (!exists(backupPath)) return { restored: false, reason: 'NO_DONOR_BACKUP' }; + const backupPath = baselineConfigBackupPath(runtime); + if (!exists(backupPath)) return { restored: false, reason: 'NO_BASELINE_BACKUP' }; const baseline = fs.readFileSync(backupPath, 'utf8'); fs.writeFileSync(configPath, baseline); fs.unlinkSync(backupPath); return { restored: true, configPath, configSHA256: sha256File(configPath) }; } -function startDonorEmulator(runtime, captureDir, ramMB = DONOR_PROFILE.ramMB, controlProfileId = DONOR_PROFILE.id) { +function startBaselineEmulator(runtime, captureDir, ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id) { if (!runtime.avdHome || !runtime.avdIni || !runtime.avdDir) throw new Error(`Official AVD ${AVD_NAME} is not present under the external runtime.`); const out = fs.openSync(path.join(captureDir, 'emulator.stdout.log'), 'a'); const err = fs.openSync(path.join(captureDir, 'emulator.stderr.log'), 'a'); const args = [ `@${AVD_NAME}`, '-id', 'TFTMAC', '-port', EMULATOR_PORT, - '-gpu', 'host', '-audio', 'coreaudio', '-feature', DONOR_PROFILE.featureList, + '-gpu', 'host', '-audio', 'coreaudio', '-feature', BASELINE_PROFILE.featureList, '-append-userspace-opt', 'androidboot.opengles.version=196610', '-append-userspace-opt', 'androidboot.tftmac.graphics_profile=tftmac', - '-skin', `${DONOR_PROFILE.width}x${DONOR_PROFILE.height}`, - '-vsync-rate', String(DONOR_PROFILE.refreshHz), + '-skin', `${BASELINE_PROFILE.width}x${BASELINE_PROFILE.height}`, + '-vsync-rate', String(BASELINE_PROFILE.refreshHz), '-dns-server', '1.1.1.1,8.8.8.8', - '-cores', String(DONOR_PROFILE.vcpu), '-memory', String(ramMB), + '-cores', String(BASELINE_PROFILE.vcpu), '-memory', String(ramMB), '-no-hidpi-scaling', '-no-snapshot', '-no-metrics', '-no-boot-anim', '-crash-report-mode', 'disabled' ]; @@ -793,8 +793,8 @@ function startDonorEmulator(runtime, captureDir, ramMB = DONOR_PROFILE.ramMB, co const controlWidth = Number(process.env.TFTMAC_NATIVE_CONTROL_WIDTH ?? 64); const titleChrome = Number(process.env.TFTMAC_NATIVE_TOPBAR_HEIGHT ?? 30); const backingScale = Number(process.env.TFTMAC_HOST_BACKING_SCALE ?? 1) || 1; - const widthScalePoints = screenWidth > controlWidth ? (screenWidth - controlWidth) / DONOR_PROFILE.width : 1; - const heightScalePoints = screenHeight > titleChrome ? (screenHeight - titleChrome) / DONOR_PROFILE.height : 1; + const widthScalePoints = screenWidth > controlWidth ? (screenWidth - controlWidth) / BASELINE_PROFILE.width : 1; + const heightScalePoints = screenHeight > titleChrome ? (screenHeight - titleChrome) / BASELINE_PROFILE.height : 1; const logicalScale = Math.max(0.1, Math.min(widthScalePoints, heightScalePoints, 4)); const scale = logicalScale * backingScale; args.push('-scale', scale.toFixed(6)); @@ -805,8 +805,8 @@ function startDonorEmulator(runtime, captureDir, ramMB = DONOR_PROFILE.ramMB, co ...runtime.env, ANDROID_AVD_HOME: runtime.avdHome, ANDROID_EMULATOR_USE_SYSTEM_LIBS: '0', - ANGLE_FEATURE_OVERRIDES_ENABLED: DONOR_PROFILE.angleEnabledFeatures, - ANGLE_FEATURE_OVERRIDES_DISABLED: DONOR_PROFILE.angleDisabledFeatures, + ANGLE_FEATURE_OVERRIDES_ENABLED: BASELINE_PROFILE.angleEnabledFeatures, + ANGLE_FEATURE_OVERRIDES_DISABLED: BASELINE_PROFILE.angleDisabledFeatures, MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS: '0', MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE: '64', MVK_CONFIG_FAST_MATH_ENABLED: '1' @@ -814,7 +814,7 @@ function startDonorEmulator(runtime, captureDir, ramMB = DONOR_PROFILE.ramMB, co const child = spawn(runtime.emulator, args, { cwd: repoRoot, env, detached: true, stdio: ['ignore', out, err] }); child.unref(); appendJSONL(path.join(captureDir, 'host-events.jsonl'), { - utc: nowISO(), event: 'DONOR_EMULATOR_STARTED', pid: child.pid, args, + utc: nowISO(), event: 'BASELINE_EMULATOR_STARTED', pid: child.pid, args, profile: controlProfileId, env: { ANGLE_FEATURE_OVERRIDES_ENABLED: env.ANGLE_FEATURE_OVERRIDES_ENABLED, @@ -827,14 +827,14 @@ function startDonorEmulator(runtime, captureDir, ramMB = DONOR_PROFILE.ramMB, co return child.pid; } -function donorRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = DONOR_PROFILE.ramMB, controlProfileId = DONOR_PROFILE.id, drawFlushInterval = DONOR_PROFILE.drawFlushInterval) { +function baselineRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval) { const display = adb(runtime, ['shell', 'wm', 'size'], { allowFailure: true }).stdout.trim(); const density = adb(runtime, ['shell', 'wm', 'density'], { allowFailure: true }).stdout.trim(); const state = { observedAt: nowISO(), control: controlProfileId, compatibilityAdapter: true, - compatibilitySource: 'Mactician 1.1.0 measured runtime on this host', + compatibilitySource: 'TFTMAC measured playable runtime on this host', externalRoot: runtime.externalRoot, sdkRoot: runtime.sdkRoot, emulatorVersion: runtime.emulatorVersion, @@ -847,23 +847,23 @@ function donorRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = DON adbSerial: SERIAL, adbServerPort: Number(ADB_PORT), emulatorConsolePort: Number(EMULATOR_PORT), - vcpu: DONOR_PROFILE.vcpu, + vcpu: BASELINE_PROFILE.vcpu, ramMB, - ramSource: ramMB === DONOR_PROFILE.ramMB ? 'profile' : 'emulator-command-line-override', - displayRequested: `${DONOR_PROFILE.width}x${DONOR_PROFILE.height}`, - densityRequested: DONOR_PROFILE.density, - refreshTargetHz: DONOR_PROFILE.refreshHz, + ramSource: ramMB === BASELINE_PROFILE.ramMB ? 'profile' : 'emulator-command-line-override', + displayRequested: `${BASELINE_PROFILE.width}x${BASELINE_PROFILE.height}`, + densityRequested: BASELINE_PROFILE.density, + refreshTargetHz: BASELINE_PROFILE.refreshHz, gpuMode: 'host', - graphicsTransportRequested: DONOR_PROFILE.glTransport, + graphicsTransportRequested: BASELINE_PROFILE.glTransport, guestAngleRequested: true, vulkanRequested: true, glesCompatibilityExposure: 196610, - angleDisabledFeatures: DONOR_PROFILE.angleDisabledFeatures, + angleDisabledFeatures: BASELINE_PROFILE.angleDisabledFeatures, moltenVK: { synchronousQueueSubmits: false, maxActiveMetalCommandBuffersPerQueue: 64, fastMath: true }, asg: { - writeBufferSize: DONOR_PROFILE.asgWriteBufferSize, - writeStepSize: DONOR_PROFILE.asgWriteStepSize, - dataRingSize: DONOR_PROFILE.asgDataRingSize, + writeBufferSize: BASELINE_PROFILE.asgWriteBufferSize, + writeStepSize: BASELINE_PROFILE.asgWriteStepSize, + dataRingSize: BASELINE_PROFILE.asgDataRingSize, drawFlushInterval }, audioEnabled: true, @@ -878,7 +878,7 @@ function donorRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = DON return state; } -async function startDonorControl(ramMB = DONOR_PROFILE.ramMB, controlProfileId = DONOR_PROFILE.id, drawFlushInterval = DONOR_PROFILE.drawFlushInterval) { +async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval) { const preAudit = runtimeProcessAudit(); const hasActiveRuntime = preAudit.processes.some(item => ['ANDROID_EMULATOR', 'TFTMAC_SAMPLER'].includes(item.kind)); if (!hasActiveRuntime && preAudit.adb5040 === 'LISTENER_PRESENT') cleanupTftmacAdbResidue(); @@ -888,8 +888,8 @@ async function startDonorControl(ramMB = DONOR_PROFILE.ramMB, controlProfileId = if (!runtime.requiredImagePresent) throw new Error(`Required official Play image is missing: ${runtime.requiredImagePath}`); if (!runtime.avdIni || !runtime.avdConfig || !runtime.avdDir) throw new Error(`Required official Play AVD ${AVD_NAME} was not found.`); ensureDir(STATE_ROOT); ensureDir(CAPTURE_ROOT); ensureDir(DIAGNOSTICS_ROOT); - const prepared = prepareDonorAVD(runtime, drawFlushInterval); - const windowFit = prepareEmulatorWindowFit(runtime, DONOR_PROFILE.width, DONOR_PROFILE.height); + const prepared = prepareBaselineAVD(runtime, drawFlushInterval); + const windowFit = prepareEmulatorWindowFit(runtime, BASELINE_PROFILE.width, BASELINE_PROFILE.height); const sessionId = `${new Date().toISOString().replace(/[:.]/g, '-')}-${crypto.randomUUID()}`; const captureDir = path.join(CAPTURE_ROOT, sessionId); for (const d of [captureDir, path.join(captureDir, 'surfaceflinger'), path.join(captureDir, 'gfxinfo')]) ensureDir(d); @@ -908,26 +908,26 @@ async function startDonorControl(ramMB = DONOR_PROFILE.ramMB, controlProfileId = await sleep(350); if (!processAlive(samplerPid)) throw new Error(`LOGGER_START_FAILED: sampler PID ${samplerPid} did not remain alive.`); adbServer(runtime); - const emulatorPid = startDonorEmulator(runtime, captureDir, ramMB, controlProfileId); + const emulatorPid = startBaselineEmulator(runtime, captureDir, ramMB, controlProfileId); try { await waitForBoot(runtime); const guestUnlock = wakeGuestScreen(runtime, captureDir); const fullscreenPolicy = prepareGuestFullscreenPolicy(runtime); const clockPreflight = await ensureGuestClock(runtime, captureDir); - const runtimeObserved = donorRuntimeState(runtime, captureDir, prepared, 'COLD', ramMB, controlProfileId, drawFlushInterval); + const runtimeObserved = baselineRuntimeState(runtime, captureDir, prepared, 'COLD', ramMB, controlProfileId, drawFlushInterval); const pkg = packageState(runtime, captureDir, false); const renderer = rendererState(runtime, captureDir); const state = { schema: 1, sessionId, captureDir, samplerPid, emulatorPid, reusedRunningEmulator: false, sdkRoot: runtime.sdkRoot, avdHome: runtime.avdHome, startedUTC: session.startedUTC, - packageState: pkg.state, controlProfile: controlProfileId, donorConfigBackupPath: prepared.backupPath + packageState: pkg.state, controlProfile: controlProfileId, baselineConfigBackupPath: prepared.backupPath }; writeJSON(CONTROL_STATE, state); return { ...state, package: pkg, clockPreflight, runtime: runtimeObserved, renderer, next: pkg.state === 'MISSING' ? 'run play-action to install official TFT from Google Play' : 'run play-action to verify/update official TFT, then launch-game' }; } catch (error) { if (processAlive(samplerPid)) { try { process.kill(samplerPid, 'SIGTERM'); } catch {} } try { adb(runtime, ['emu', 'kill'], { allowFailure: true, timeout: 10000 }); } catch {} - restoreDonorAVD(runtime); + restoreBaselineAVD(runtime); throw error; } } @@ -1463,7 +1463,7 @@ function ingestApproximateLatestMatch() { try { if (initialize) db.exec(fs.readFileSync(schemaPath, 'utf8')); db.exec('PRAGMA foreign_keys = ON;'); - const configId = 'mactician_compatible_official_v0'; + const configId = 'tftmac_official_baseline_v1'; const labSessionId = `${analysis.sessionId}-match-${analysis.matchOrdinal}-approx`; const packageInfo = readJSON(path.join(captureDir, 'package-state.json'), {}); const packageFile = path.join(captureDir, 'package-state.json'); @@ -1952,7 +1952,7 @@ function ingestContinuousRunIntoLab() { const sessionFile = readJSON(path.join(captureDir, 'session.json'), {}); const packageFile = path.join(captureDir, 'package-state.json'); const rendererFile = path.join(captureDir, 'renderer-state.json'); - const currentConfigId = 'mactician_compatible_official_v0'; + const currentConfigId = 'tftmac_official_baseline_v1'; const now = nowISO(); db.exec('BEGIN IMMEDIATE;'); try { @@ -2197,8 +2197,8 @@ function ingestAnalysisIntoLab() { .sort((a, b) => b.mtimeMs - a.mtimeMs); if (metas[0]) latestTraceMetadata = readJSON(metas[0].path, null); } catch {} - const currentConfigId = 'mactician_compatible_official_v0'; - const candidateConfigId = 'mactician_compatible_5gb_v1'; + const currentConfigId = 'tftmac_official_baseline_v1'; + const candidateConfigId = 'tftmac_5gb_baseline_v1'; db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('last_gameplay_ingest_at', now); db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('current_gameplay_baseline_session', labSessionId); @@ -2221,7 +2221,7 @@ function ingestAnalysisIntoLab() { graphics_transport=excluded.graphics_transport,angle_mode=excluded.angle_mode,vulkan_mode=excluded.vulkan_mode, moltenvk_mode=excluded.moltenvk_mode,presentation_mode=excluded.presentation_mode,state=excluded.state,notes=excluded.notes`); const currentNotes = 'First playable official TFT control: API36 Play ARM64, ANGLE ES3.2 compatibility exposure, Vulkan/ranchu, virtio-gpu-asg, gfxstream, MoltenVK/Metal. First full match placed 1st.'; - configStmt.run(currentConfigId,null,'Mactician-compatible official TFT control v0',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,6144,1920,1080,320,60,'host',1,'virtio-gpu-asg','GuestAngle + explicit ES3.2 compatibility exposure','ranchu / guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','direct emulator window','CONTROL',sessionFile.startedUTC ?? now,currentNotes); + configStmt.run(currentConfigId,null,'TFTMAC official playable baseline v0',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,6144,1920,1080,320,60,'host',1,'virtio-gpu-asg','GuestAngle + explicit ES3.2 compatibility exposure','ranchu / guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','direct emulator window','CONTROL',sessionFile.startedUTC ?? now,currentNotes); configStmt.run(candidateConfigId,currentConfigId,'RAM 5 GiB candidate',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,5120,1920,1080,320,60,'host',1,'virtio-gpu-asg','same as baseline','same as baseline','same as baseline','same as baseline','CANDIDATE',now,'One-factor candidate: only guest RAM changes from 6144 MB to 5120 MB; 4096 MB is deferred because observed guest headroom makes a 2 GiB cut too aggressive.'); db.prepare(`INSERT INTO sessions( @@ -2314,7 +2314,7 @@ function ingestAnalysisIntoLab() { db.prepare(`UPDATE experiments SET state='COMPLETE',baseline_config_id=?,completed_at=?,notes=? WHERE id='exp_control_direct_play'`) .run(currentConfigId,now,`First official full match completed with placement ${analysis.match.placement}; resource telemetry valid; native frame timing unavailable through gfxinfo.`); db.prepare(`UPDATE experiments SET state='CANCELLED',notes=COALESCE(notes,'') || ? WHERE id IN ('exp_control_repeat_warm','exp_transition_capture','exp_heavy_capture') AND baseline_config_id='control_stock_direct_v0'`) - .run(' Superseded by the proven mactician_compatible_official_v0 baseline and native Perfetto trace experiment.'); + .run(' Superseded by the proven tftmac_official_baseline_v1 baseline and native Perfetto trace experiment.'); db.prepare('INSERT OR REPLACE INTO experiment_sessions(experiment_id,session_id,role) VALUES(?,?,?)').run('exp_control_direct_play',labSessionId,analysis.match.matchOrdinal === 1 ? 'BASELINE' : 'DIAGNOSTIC'); db.exec('COMMIT;'); @@ -3275,12 +3275,12 @@ function fitEmulatorWindow() { const result = command('/usr/bin/osascript', ['-e', script], { allowFailure: true, timeout: 10000 }); const output = `${result.stdout}${result.stderr}`.trim(); if (result.status !== 0) { - const nextLaunch = prepareEmulatorWindowFit(runtime, DONOR_PROFILE.width, DONOR_PROFILE.height); - return { action: 'EMULATOR_WINDOW_FIT_LIVE_PERMISSION_REQUIRED', output, emulatorPid: observedPid, guestResolutionPreserved: true, guestResolution: `${DONOR_PROFILE.width}x${DONOR_PROFILE.height}`, nextLaunch, nextBootGuestPolicy, manualLiveAction: 'Use macOS fullscreen (Control-Command-F) or resize the emulator window smaller.' }; + const nextLaunch = prepareEmulatorWindowFit(runtime, BASELINE_PROFILE.width, BASELINE_PROFILE.height); + return { action: 'EMULATOR_WINDOW_FIT_LIVE_PERMISSION_REQUIRED', output, emulatorPid: observedPid, guestResolutionPreserved: true, guestResolution: `${BASELINE_PROFILE.width}x${BASELINE_PROFILE.height}`, nextLaunch, nextBootGuestPolicy, manualLiveAction: 'Use macOS fullscreen (Control-Command-F) or resize the emulator window smaller.' }; } - const nextLaunch = prepareEmulatorWindowFit(runtime, DONOR_PROFILE.width, DONOR_PROFILE.height); + const nextLaunch = prepareEmulatorWindowFit(runtime, BASELINE_PROFILE.width, BASELINE_PROFILE.height); if (state?.captureDir) appendJSONL(path.join(state.captureDir, 'host-events.jsonl'), { utc: nowISO(), event: 'EMULATOR_WINDOW_FIT_HOST', source: 'macOS window resize', emulatorPid: observedPid, result: output, nextLaunch }); - return { action: 'EMULATOR_WINDOW_FIT_HOST', output, emulatorPid: observedPid, guestResolutionPreserved: true, guestResolution: `${DONOR_PROFILE.width}x${DONOR_PROFILE.height}`, nextLaunch, nextBootGuestPolicy }; + return { action: 'EMULATOR_WINDOW_FIT_HOST', output, emulatorPid: observedPid, guestResolutionPreserved: true, guestResolution: `${BASELINE_PROFILE.width}x${BASELINE_PROFILE.height}`, nextLaunch, nextBootGuestPolicy }; } async function status() { @@ -4052,7 +4052,7 @@ function normalizePerformanceLab(captureDir, frames, metrics, storage, manifestS const safeConfigHash = !hashOwner || hashOwner === runtimeConfigId ? observedConfigHash : null; const runtimeConfigExists = Boolean(db.prepare('SELECT 1 AS ok FROM runtime_configs WHERE id=?').get(runtimeConfigId)); if (!runtimeConfigExists) { - const baselineId = 'mactician_compatible_official_v0'; + const baselineId = 'tftmac_official_baseline_v1'; const baselineExists = Boolean(db.prepare('SELECT 1 AS ok FROM runtime_configs WHERE id=?').get(baselineId)); const parentConfigId = runtimeConfigId !== baselineId && baselineExists ? baselineId : null; db.prepare(`INSERT INTO runtime_configs( @@ -4352,8 +4352,8 @@ async function stopControl() { writeJSON(path.join(captureDir, 'control-result.json'), controlResult); const result = { sessionId: state.sessionId, captureDir, ...controlResult }; try { adb(runtime, ['emu', 'kill'], { allowFailure: true, timeout: 10000 }); } catch {} - if (state.controlProfile === DONOR_PROFILE.id || String(state.controlProfile ?? '').startsWith('mactician_compatible_')) { - try { result.donorAvdRestore = restoreDonorAVD(runtime); } catch (error) { result.donorAvdRestore = { restored: false, error: error instanceof Error ? error.message : String(error) }; } + if (state.controlProfile === BASELINE_PROFILE.id || String(state.controlProfile ?? '').startsWith('tftmac_')) { + try { result.baselineAvdRestore = restoreBaselineAVD(runtime); } catch (error) { result.baselineAvdRestore = { restored: false, error: error instanceof Error ? error.message : String(error) }; } } try { fs.unlinkSync(CONTROL_STATE); } catch {} return result; @@ -4530,8 +4530,6 @@ function buildApp() { const sdkPath = command('/usr/bin/xcrun', ['--sdk', 'macosx', '--show-sdk-path'], { env: xcodeEnv }).stdout.trim(); command(swiftc, ['-O', '-parse-as-library', '-target', 'arm64-apple-macosx14.0', '-sdk', sdkPath, ...sources, '-o', binary], { timeout: 240000, env: xcodeEnv }); fs.copyFileSync(path.join(repoRoot, 'tftmac', 'Info.plist'), path.join(contents, 'Info.plist')); - const iconSource = path.join(repoRoot, 'branding', 'generated', 'Mactician.icns'); - if (exists(iconSource)) fs.copyFileSync(iconSource, path.join(contents, 'Resources', 'TFTMAC.icns')); fs.copyFileSync(scriptPath, path.join(contents, 'Resources', 'tftmac-direct-control.mjs')); const labSource = path.join(repoRoot, 'ssot', 'TFTMAC_PERFORMANCE_LAB.sql'); if (exists(labSource)) fs.copyFileSync(labSource, path.join(contents, 'Resources', 'TFTMAC_PERFORMANCE_LAB.sql')); @@ -4544,7 +4542,7 @@ function buildApp() { function runtimeProcessAudit() { const ps = command('/bin/ps', ['axo', 'pid=,ppid=,etime=,command='], { allowFailure: true, timeout: 10000, maxBuffer: 16 * 1024 * 1024 }); const lines = ps.stdout.split(/\r?\n/).map(line => line.trim()).filter(Boolean); - const relevant = lines.filter(line => /(TFTMAC|Mactician|TftPBE|TFT_Ultra_Tablet|TFTMAC_Live_API36|qemu-system-aarch64|\/emulator(?:\s|$)|adb.*fork-server|tftmac-direct-control\.mjs\s+sampler)/i.test(line)); + const relevant = lines.filter(line => /(TFTMAC|TFT_Ultra_Tablet|TFTMAC_Live_API36|qemu-system-aarch64|\/emulator(?:\s|$)|adb.*fork-server|tftmac-direct-control\.mjs\s+sampler)/i.test(line)); const classified = relevant.map(line => { const match = line.match(/^(\d+)\s+(\d+)\s+(\S+)\s+(.+)$/); const pid = match ? Number(match[1]) : null; @@ -4554,7 +4552,6 @@ function runtimeProcessAudit() { let kind = 'OTHER_RELEVANT'; if (/tftmac-direct-control\.mjs\s+sampler/i.test(commandLine)) kind = 'TFTMAC_SAMPLER'; else if (/TFTMAC\.app\/Contents\/MacOS\/TFTMAC/i.test(commandLine)) kind = 'TFTMAC_APP'; - else if (/Mactician\.app\/Contents\/MacOS\/Mactician/i.test(commandLine)) kind = 'MACTICIAN_APP'; else if (/qemu-system-aarch64|\/emulator(?:\s|$)/i.test(commandLine)) kind = 'ANDROID_EMULATOR'; else if (/adb.*fork-server/i.test(commandLine)) kind = 'ADB_SERVER'; return { pid, ppid, elapsed, kind, command: commandLine }; @@ -4571,7 +4568,6 @@ function runtimeProcessAudit() { controlState: readJSON(CONTROL_STATE), duplicateRisk: { tftmacApps: classified.filter(item => item.kind === 'TFTMAC_APP').length, - macticianApps: classified.filter(item => item.kind === 'MACTICIAN_APP').length, emulators: classified.filter(item => item.kind === 'ANDROID_EMULATOR').length, samplers: classified.filter(item => item.kind === 'TFTMAC_SAMPLER').length, adbServers: classified.filter(item => item.kind === 'ADB_SERVER').length @@ -4595,7 +4591,7 @@ function cleanupTftmacAdbResidue() { function singleRuntimePreflight() { const audit = runtimeProcessAudit(); const tftmacApps = audit.processes.filter(item => item.kind === 'TFTMAC_APP'); - const blockers = audit.processes.filter(item => ['MACTICIAN_APP', 'ANDROID_EMULATOR', 'TFTMAC_SAMPLER', 'ADB_SERVER'].includes(item.kind)); + const blockers = audit.processes.filter(item => ['ANDROID_EMULATOR', 'TFTMAC_SAMPLER', 'ADB_SERVER'].includes(item.kind)); if (tftmacApps.length > 1) blockers.push(...tftmacApps.slice(1)); if (blockers.length || audit.ports.length) { throw new Error(`SINGLE_RUNTIME_PREFLIGHT_BLOCKED: ${JSON.stringify({ blockers, ports: audit.ports, adb5040: audit.adb5040, tftmacLauncherCount: tftmacApps.length })}`); @@ -4603,142 +4599,6 @@ function singleRuntimePreflight() { return { pass: true, observedAt: audit.observedAt, tftmacLauncherCount: tftmacApps.length, audit }; } -function launchMacticianControl() { - const preflight = singleRuntimePreflight(); - const app = '/Applications/Mactician.app'; - const binary = path.join(app, 'Contents', 'MacOS', 'Mactician'); - if (!executable(binary)) throw new Error(`MACTICIAN_APP_MISSING: ${binary}`); - const env = { ...process.env, ANDROID_ADB_SERVER_PORT: '5038', ADB_MDNS_AUTO_CONNECT: '' }; - const child = spawn(binary, [], { env, detached: true, stdio: 'ignore' }); - child.unref(); - return { action: 'MACTICIAN_LAUNCHED', app, binary, pid: child.pid, inheritedAdbServerPort: 5038, preflight, observedAt: nowISO() }; -} - -async function stopMacticianControl() { - const ps = command('/bin/ps', ['axo', 'pid=,command='], { allowFailure: true, timeout: 10000 }).stdout; - const lines = ps.split(/\r?\n/).map(line => line.trim()).filter(Boolean); - const targets = lines.flatMap(line => { - const match = line.match(/^(\d+)\s+(.+)$/); - if (!match) return []; - const pid = Number(match[1]); - const cmd = match[2]; - if (/Mactician\.app\/Contents\/MacOS\/Mactician|\/Mactician\/sdk\/emulator\/.*qemu-system-aarch64|launcher-runtime\.command|run-asg-experiment\.command|run-tft-root-affinity\.command/i.test(cmd)) return [{ pid, cmd }]; - return []; - }); - for (const target of [...targets].sort((a, b) => b.pid - a.pid)) { - try { process.kill(target.pid, 'SIGTERM'); } catch {} - } - const adbCandidates = [ - path.join(USER_HOME, 'Library', 'Application Support', 'Mactician', 'sdk', 'platform-tools', 'adb'), - '/Volumes/MAC MINI M4/Mactician/sdk/platform-tools/adb' - ].filter(executable); - if (adbCandidates.length) command(adbCandidates[0], ['-P', '5038', 'kill-server'], { allowFailure: true, timeout: 10000 }); - await sleep(1200); - const after = runtimeProcessAudit(); - const remaining = after.processes.filter(item => ['MACTICIAN_APP','ANDROID_EMULATOR'].includes(item.kind) || (item.kind === 'ADB_SERVER' && /tcp:5038\b/.test(item.command))); - if (remaining.length) throw new Error(`MACTICIAN_STOP_INCOMPLETE: ${JSON.stringify(remaining)}`); - return { action: 'MACTICIAN_STOPPED', terminated: targets, observedAt: nowISO(), auditAfter: after }; -} - -function newestMatchingFile(roots, pattern, maximum = 20000) { - const candidates = []; - for (const root of roots) { - if (!exists(root)) continue; - for (const file of walk(root, 5, maximum)) { - try { - const stat = fs.statSync(file); - if (stat.isFile() && pattern.test(file)) candidates.push({ file, mtimeMs: stat.mtimeMs }); - } catch {} - } - } - candidates.sort((a, b) => b.mtimeMs - a.mtimeMs); - return candidates[0]?.file ?? null; -} - -function macticianRuntimeAudit() { - const processAudit = runtimeProcessAudit(); - const ps = command('/bin/ps', ['axo', 'pid=,ppid=,etime=,command='], { allowFailure: true, timeout: 10000, maxBuffer: 32 * 1024 * 1024 }); - const processTree = ps.stdout.split(/\r?\n/).map(line => line.trim()).filter(Boolean) - .filter(line => /(Mactician|TftPBE|emulator-5582|qemu-system-aarch64|\/emulator(?:\s|$))/i.test(line)); - const app = '/Applications/Mactician.app'; - const appVersion = exists(path.join(app, 'Contents', 'Info.plist')) - ? command('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleShortVersionString', path.join(app, 'Contents', 'Info.plist')], { allowFailure: true, timeout: 10000 }).stdout.trim() || null - : null; - const appBuild = exists(path.join(app, 'Contents', 'Info.plist')) - ? command('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleVersion', path.join(app, 'Contents', 'Info.plist')], { allowFailure: true, timeout: 10000 }).stdout.trim() || null - : null; - const macticianAdbPort = processTree.map(line => line.match(/adb\s+-L\s+tcp:(\d+)\s+fork-server/i)?.[1]).find(Boolean) - ?? processAudit.processes.map(item => item.command.match(/adb\s+-L\s+tcp:(\d+)\s+fork-server/i)?.[1]).find(Boolean) - ?? '5038'; - const adbCandidates = [ - path.join(USER_HOME, 'Library', 'Application Support', 'Mactician', 'sdk', 'platform-tools', 'adb'), - '/Volumes/MAC MINI M4/Mactician/sdk/platform-tools/adb' - ].filter(executable); - const adbSnapshots = adbCandidates.map(adbPath => { - const devices = command(adbPath, ['-P', macticianAdbPort, 'devices', '-l'], { allowFailure: true, timeout: 10000 }); - const serials = [...devices.stdout.matchAll(/^(emulator-\d+)\s+device\b/gm)].map(match => match[1]); - const snapshots = serials.map(serial => { - const shell = args => command(adbPath, ['-P', macticianAdbPort, '-s', serial, ...args], { allowFailure: true, timeout: 20000, maxBuffer: 24 * 1024 * 1024 }).stdout.trim(); - const packageDump = shell(['shell', 'dumpsys', 'package', PACKAGE]); - const props = {}; - for (const key of ['ro.boot.qemu.avd_name','ro.hardware.egl','ro.hardware.vulkan','ro.opengles.version','ro.boot.qemu.gltransport','ro.boot.qemu.gles']) props[key] = shell(['shell', 'getprop', key]) || null; - const angleSettings = {}; - for (const key of ['angle_gl_driver_all_angle','angle_gl_driver_selection_pkgs','angle_gl_driver_selection_values']) angleSettings[key] = shell(['shell', 'settings', 'get', 'global', key]) || null; - const surfaceFlinger = shell(['shell', 'dumpsys', 'SurfaceFlinger']); - return { - serial, - bootCompleted: shell(['shell', 'getprop', 'sys.boot_completed']) || null, - avdName: shell(['emu', 'avd', 'name']) || props['ro.boot.qemu.avd_name'], - packagePath: shell(['shell', 'pm', 'path', PACKAGE]) || null, - versionName: packageDump.match(/versionName=([^\s]+)/)?.[1] ?? null, - versionCode: packageDump.match(/versionCode=(\d+)/)?.[1] ?? null, - packagePid: shell(['shell', 'pidof', PACKAGE]) || null, - topActivity: shell(['shell', 'dumpsys', 'activity', 'activities']).split(/\r?\n/).filter(line => /topResumedActivity|mResumedActivity|teamfighttactics|leagueoflegends/i.test(line)).slice(0, 40), - properties: props, - angleSettings, - displaySize: shell(['shell', 'wm', 'size']) || null, - displayDensity: shell(['shell', 'wm', 'density']) || null, - surfaceFlingerGraphics: surfaceFlinger.split(/\r?\n/).filter(line => /GLES|OpenGL|Vulkan|ANGLE|gfxstream|GPU|renderer/i.test(line)).slice(0, 160) - }; - }); - return { adbPath, devices: devices.stdout.trim(), snapshots }; - }); - const logRoots = [ - path.join(USER_HOME, 'Library', 'Application Support', 'Mactician', 'logs'), - path.join(USER_HOME, 'Library', 'Application Support', 'Mactician'), - '/Volumes/MAC MINI M4/Mactician' - ]; - const latestLog = newestMatchingFile(logRoots, /(?:launcher|emulator|mactician|tft).*\.log$/i); - let graphicsLogEvidence = []; - let failureLogEvidence = []; - let latestLogTail = []; - if (latestLog) { - try { - const logLines = fs.readFileSync(latestLog, 'utf8').split(/\r?\n/); - latestLogTail = logLines.slice(-240); - graphicsLogEvidence = logLines.filter(line => /ANGLE|ASG|gfxstream|MoltenVK|Metal|Vulkan|Setting ICD|gltransport|GuestAngle|feature/i.test(line)).slice(-200); - failureLogEvidence = logLines.filter(line => /error|failed|failure|fatal|abort|offline|not found|missing|exit|terminated|could not|cannot|timed out|timeout/i.test(line)).slice(-160); - } catch {} - } - const relevantPorts = command('/usr/sbin/lsof', ['-nP', '-iTCP:5037', '-iTCP:5038', '-iTCP:5040', '-iTCP:5582', '-iTCP:5592'], { allowFailure: true, timeout: 10000, maxBuffer: 8 * 1024 * 1024 }).stdout.split(/\r?\n/).filter(Boolean); - return { observedAt: nowISO(), appVersion, appBuild, macticianAdbPort: Number(macticianAdbPort), processAudit, processTree, relevantPorts, adbSnapshots, latestLog, latestLogTail, failureLogEvidence, graphicsLogEvidence }; -} - -function cleanupObserverAdb5037() { - const ps = command('/bin/ps', ['axo', 'pid=,command='], { allowFailure: true, timeout: 10000 }).stdout; - const observed = ps.split(/\r?\n/).map(line => line.trim()).filter(line => /adb\s+-L\s+tcp:5037\s+fork-server/i.test(line)); - if (!observed.length) return { action: 'OBSERVER_ADB_5037_ABSENT' }; - const adbCandidates = [ - path.join(USER_HOME, 'Library', 'Application Support', 'Mactician', 'sdk', 'platform-tools', 'adb'), - '/Volumes/MAC MINI M4/Mactician/sdk/platform-tools/adb' - ].filter(executable); - if (!adbCandidates.length) throw new Error('No Mactician adb binary available to remove observer-created 5037 server.'); - const killed = command(adbCandidates[0], ['-P', '5037', 'kill-server'], { allowFailure: true, timeout: 10000 }); - const after = command('/bin/ps', ['axo', 'pid=,command='], { allowFailure: true, timeout: 10000 }).stdout.split(/\r?\n/).map(line => line.trim()).filter(line => /adb\s+-L\s+tcp:5037\s+fork-server/i.test(line)); - if (after.length) throw new Error(`OBSERVER_ADB_5037_CLEANUP_FAILED: ${(killed.stderr || killed.stdout || '').trim()}`); - return { action: 'OBSERVER_ADB_5037_CLEANED', observed, killStatus: killed.status }; -} - function openPlayWeb() { const url = `https://play.google.com/store/apps/details?id=${PACKAGE}`; const result = command('/usr/bin/open', [url], { allowFailure: true, timeout: 30000 }); @@ -4785,14 +4645,10 @@ async function main() { if (action === 'runtime-process-audit') { json(runtimeProcessAudit()); return; } if (action === 'cleanup-tftmac-adb-residue') { json(cleanupTftmacAdbResidue()); return; } if (action === 'single-runtime-preflight') { json(singleRuntimePreflight()); return; } - if (action === 'launch-mactician-control') { json(launchMacticianControl()); return; } - if (action === 'stop-mactician-control') { json(await stopMacticianControl()); return; } - if (action === 'mactician-runtime-audit') { json(macticianRuntimeAudit()); return; } - if (action === 'cleanup-observer-adb-5037') { json(cleanupObserverAdb5037()); return; } if (action === 'start') { json(await startControl()); return; } - if (action === 'start-donor-control') { json(await startDonorControl()); return; } - if (action === 'start-donor-control-5gb') { json(await startDonorControl(5120, 'mactician_compatible_5gb_v1', 800)); return; } - if (action === 'start-donor-control-5gb-flush400') { json(await startDonorControl(5120, 'mactician_compatible_5gb_flush400_v1', 400)); return; } + if (action === 'start-baseline-control') { json(await startBaselineControl()); return; } + if (action === 'start-baseline-control-5gb') { json(await startBaselineControl(5120, 'tftmac_5gb_baseline_v1', 800)); return; } + if (action === 'start-baseline-control-5gb-flush400') { json(await startBaselineControl(5120, 'tftmac_5gb_flush400_exp_v1', 400)); return; } if (action === 'play-action') { json(await playAction()); return; } if (action === 'play-probe') { json(await playProbe()); return; } if (action === 'launch-game') { json(await launchGame()); return; } @@ -4899,7 +4755,7 @@ async function main() { await sampler(args[captureIndex + 1], args[sessionIndex + 1]); return; } - throw new Error('Usage: tftmac-direct-control.mjs inventory|prepare|lab-selftest|build|launch-app|runtime-process-audit|single-runtime-preflight|launch-mactician-control|mactician-runtime-audit|start|start-donor-control|play-action|launch-game|gles-capability-probe|launch-failure-probe|status|play-certification|marker|match-entry|combat-start|stop|package-state'); + throw new Error('Usage: tftmac-direct-control.mjs inventory|prepare|lab-selftest|build|launch-app|runtime-process-audit|single-runtime-preflight|start|start-baseline-control|play-action|launch-game|gles-capability-probe|launch-failure-probe|status|play-certification|marker|match-entry|combat-start|stop|package-state'); } main().catch(error => { process.stderr.write(`${error.stack || error.message}\n`); process.exit(1); }); From 5dbdeb13be882cce86593e75666a933f95fd0e82 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:41:19 -0500 Subject: [PATCH 04/19] Checkpoint TFTMAC ownership documentation and source cleanup --- .github/ISSUE_TEMPLATE/bug_report.yml | 52 +- .github/pull_request_template.md | 29 +- .github/repository-metadata.yml | 17 +- CHANGELOG.md | 66 +- CONTRIBUTING.md | 50 +- NOTICE.md | 48 +- README.md | 286 +-- SECURITY.md | 26 +- SUPPORT.md | 27 +- docs/architecture.md | 225 +-- docs/building.md | 139 +- docs/images/mactician-running-tft-pbe.webp | Bin 194206 -> 0 bytes docs/native-gles-transport-experiment.md | 578 ------ docs/releasing.md | 146 +- docs/reproducibility.md | 92 +- docs/telemetry.md | 114 +- docs/troubleshooting.md | 98 +- run-tft-root-affinity.command | 1489 -------------- scripts/audit-native-gles-coverage.command | 2 +- ...build-android-egl-capability-probe.command | 2 +- scripts/login-tft-from-keychain.command | 2 +- scripts/restore-emulator-graphics.command | 2 +- .../run-android-ui-transport-probe.command | 250 --- scripts/run-asg-experiment.command | 6 +- .../run-autonomous-trial-benchmark.command | 6 +- .../run-host-angle-capability-probe.command | 2 +- scripts/run-performance-campaign.command | 6 +- scripts/verify-telemetry-contract.command | 23 - ssot/TFTMAC_REBUILD_PREFLIGHT.md | 922 --------- ssot/donors/TFTMAC_DONOR_RESEARCH.sql | 452 ----- tools/clara-task.mjs | 1003 ---------- tools/tft-input-bridge.swift | 4 +- tools/tftmac-v2.mjs | 1760 ----------------- 33 files changed, 312 insertions(+), 7612 deletions(-) delete mode 100644 docs/images/mactician-running-tft-pbe.webp delete mode 100644 docs/native-gles-transport-experiment.md delete mode 100755 run-tft-root-affinity.command delete mode 100755 scripts/run-android-ui-transport-probe.command delete mode 100755 scripts/verify-telemetry-contract.command delete mode 100644 ssot/TFTMAC_REBUILD_PREFLIGHT.md delete mode 100644 ssot/donors/TFTMAC_DONOR_RESEARCH.sql delete mode 100644 tools/clara-task.mjs delete mode 100644 tools/tftmac-v2.mjs diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f39720f..388c23c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,68 +1,46 @@ name: Bug report -description: Report a reproducible launcher, installer, or runtime problem. +description: Report a reproducible TFTMAC native-app or runtime problem. title: "[Bug]: " labels: [bug] body: - type: markdown attributes: - value: Thanks for helping improve Mactician. Remove account names and other personal data from logs before attaching them. + value: Thanks for helping improve TFTMAC. Remove account names, credentials, tokens, and other private data before attaching logs. - type: input - id: launcher-version + id: build attributes: - label: Mactician version and build - placeholder: 1.0.0 (33) + label: TFTMAC commit or build + placeholder: commit SHA or build identifier validations: required: true - type: input id: macos-version attributes: label: macOS version - placeholder: 15.6.1 validations: required: true - type: input id: mac-model attributes: label: Mac model and Apple chip - placeholder: MacBook Pro, Apple M3 Pro - validations: - required: true - - type: dropdown - id: installation-state - attributes: - label: Installation state - options: - - Fresh installation - - Updated installation - - Existing installation - validations: - required: true - - type: input - id: resolution - attributes: - label: Selected resolution - placeholder: 1920×1080 + placeholder: Mac mini, Apple M4 validations: required: true - type: input - id: resources + id: runtime attributes: - label: Selected RAM and vCPU - placeholder: 6144 MB RAM, 6 vCPU - validations: - required: true + label: Android Emulator version + placeholder: 37.1.11 - type: textarea id: expected attributes: label: Expected behavior - description: What did you expect to happen? validations: required: true - type: textarea id: actual attributes: label: Actual behavior - description: What happened instead? validations: required: true - type: textarea @@ -70,21 +48,21 @@ body: attributes: label: Reproduction steps placeholder: | - 1. Open ... - 2. Select ... - 3. Observe ... + 1. Open TFTMAC + 2. Perform the action + 3. Observe the result validations: required: true - type: textarea id: logs attributes: - label: Sanitized logs - description: Paste relevant log excerpts. Remove Riot account names, filesystem usernames, tokens, and other private data. + label: Sanitized diagnostics + description: Include only the bounded excerpt needed to show the failure. render: shell - type: checkboxes id: privacy attributes: label: Privacy confirmation options: - - label: I removed credentials, account identifiers, and raw sensitive logs from this report. + - label: I removed credentials, account identifiers, tokens, and raw sensitive data. required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 6d57565..d11b757 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,27 +1,18 @@ ## Summary -Describe the problem, the change, and its scope. - -## Motivation - -Explain why this change is needed and why this scope is appropriate. +Describe the problem, the change, and its exact scope. ## Validation -- [ ] `./scripts/verify-repository.command` -- [ ] `./scripts/test-mactician.command` -- [ ] Relevant manual or integration checks are described below, or are not applicable. - -## Screenshots - -Attach before/after screenshots for UI changes, or write “Not applicable.” +- [ ] `/bin/zsh scripts/verify-tftmac.command` +- [ ] Relevant runtime/manual acceptance is described below or is not applicable. ## Contributor checklist -- [ ] I did not add game APKs, Android images, private runtime state, credentials, logs, or generated build products. -- [ ] Developer-facing output and documentation are in English. -- [ ] New machine paths are resolved from environment variables, standard locations, or `PATH`. -- [ ] Behavior changes include tests or a concrete reason why a test is impractical. -- [ ] Performance claims include reproducible evidence and avoid overstating noisy results. -- [ ] Documentation, changelog, and release notes are updated when applicable. -- [ ] Existing rollback, Repair, Reset, and fail-closed behavior is preserved or the deliberate change is explained. +- [ ] I did not add Riot APKs, Android images, credentials, private runtime state, tokens, logs, or generated build products. +- [ ] The stock Google Android Emulator remains the normal runtime authority. +- [ ] The change does not add a private game feed, APK repackaging, re-signing, or Riot binary patching. +- [ ] Behavior changes include tests or a concrete reason a test is impractical. +- [ ] Performance claims include reproducible evidence. +- [ ] Documentation is updated when behavior or commands change. +- [ ] Rollback and fail-closed behavior is preserved or the deliberate change is explained. diff --git a/.github/repository-metadata.yml b/.github/repository-metadata.yml index e086a57..636a23d 100644 --- a/.github/repository-metadata.yml +++ b/.github/repository-metadata.yml @@ -1,15 +1,12 @@ -description: A native, open-source macOS launcher for playing TFT PBE on Apple Silicon. -homepage: https://sergeinaumov.dev/mactician -social_preview: branding/generated/mactician-social-preview.png +description: Native macOS control and presentation app for the official Android Teamfight Tactics client on Apple Silicon. topics: - - mactician + - tftmac - macos - swift - - swiftui + - appkit + - metal - apple-silicon - - tft - - tft-pbe + - teamfight-tactics - android-emulator - - vulkan - - moltenvk - - open-source + - google-play + - emulator-controller diff --git a/CHANGELOG.md b/CHANGELOG.md index edeecd1..c716f0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,62 +1,20 @@ # Changelog -The current application metadata is version 1.0.4, build 40. - ## Unreleased -No changes yet. - -## 1.0.4 — 2026-08-14 - -### Fixed - -- Restore four asynchronous OpenGL PSO compiler services when a TFT update - disables them in its inherited Android device profile, avoiding first-use - shader compilation stalls on the gameplay render path. - -## 1.0.3 — 2026-08-14 - ### Changed -- Check the signed TFT PBE feed when the launcher becomes ready. -- Show **Update game** in place of **Play** only when a newer verified game - version is available. -- Prevent starting a known-outdated game build until its update completes. - -## 1.0.2 — 2026-08-13 - -### Fixed +- Established TFTMAC as the sole product and repository identity. +- Replaced legacy validation with the native TFTMAC build/test verifier. +- Preserved the proven native AppKit/Metal Gate 1 implementation and frozen installed EmulatorController protocol. +- Removed obsolete launcher, hosted update/feed, helper-host, and branding layers. +- Moved runtime authority to the stock Google Android Emulator and official Google Play TFT lifecycle. +- Began relational migration of retained performance evidence to TFTMAC-owned identifiers. +- Retired source-built emulator work from the normal product path. -- Check for Mactician updates on every launch instead of waiting only for the - daily Sparkle schedule. -- Show an explicit localized result after a game update check, including the - installed TFT PBE version when no newer hosted build is available. -- Record completed game update checks in the launcher log. - -## 1.0.1 — 2026-08-13 - -### Added - -- Added a separately signed TFT PBE update channel hosted on - `sergeinaumov.dev`. -- Added in-place split APK updates that preserve Riot sign-in and local game - data. - -## 1.0.0 — 2026-08-10 - -### Added - -- Initial public version of Mactician. - -### Changed +### Current target -- Restyled the active game Dock icon as a distinct Mactician play variant and - replaced the Android Emulator title with `Mactician: TFT PBE`. -- Reduced Trial benchmark preparation from roughly 20 seconds to 1–3 seconds - by overlapping one shop decision with combat and batching reward, XP, item, - and replay actions. -- Preserved valid measurements across same-emulator Trial retries, added a - bounded same-combat capture retry, and repaired early-exit cleanup after a - launcher crash. -- Updated Performance Max with the confirmed 67% effects/LOD profile and a - 16 KiB ASG write step; repeated Trial 1-8 proxies remained above 30 FPS. +- Native macOS application bundle: `com.flashls1.tftmac`. +- Stock Android Emulator 37.1.11. +- Official Google Play package `com.riotgames.league.teamfighttactics`. +- 1920x1080 / 60 Hz target on Apple Silicon. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f465de..41c4732 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,48 +1,26 @@ # Contributing -Contributions are welcome when they are narrowly scoped, testable, and preserve -the launcher's recovery guarantees. +Keep TFTMAC changes narrow, testable, and aligned with the current stock-runtime architecture. ## Development setup -Use an Apple Silicon Mac with macOS 12 or later, Xcode Command Line Tools, zsh, -`jq`, Node.js for the optional login helper, and the local private APK build -inputs described in [docs/building.md](docs/building.md). Runtime and game data -must remain outside Git. +Use an Apple Silicon Mac with macOS 15 or later, Xcode 26.6, zsh, Node.js 24, `jq`, and `ripgrep`. Runtime and game data must remain outside Git. -Run the fast validation before opening a pull request: +Run before opening a pull request: ```sh -./scripts/verify-repository.command -./scripts/test-mactician.command +/bin/zsh scripts/verify-tftmac.command ``` -The provisioning integration test downloads large pinned Android archives and -is intentionally local/manual: +## Rules -```sh -./scripts/integration-test-mactician.command -``` +- Preserve `com.flashls1.tftmac` as the application identity. +- Preserve the stock Google Android Emulator as runtime authority unless a separately approved measured blocker requires a different architecture. +- Do not add Riot APKs, credentials, Android userdata, tokens, runtime disks, or private session data to the repository. +- Do not add hosted game feeds, APK repacking, re-signing, or binary patching. +- Keep generated build output out of Git. +- Update tests and documentation when behavior changes. +- Keep performance claims tied to reproducible captures and explicit KEEP/REJECT evidence. +- Preserve rollback and fail-closed behavior around runtime mutation. -## Pull requests - -- Keep changes small and explain their motivation and failure mode. -- Update documentation whenever commands, manifests, behavior, or recovery - steps change. -- Preserve transactional rollback, checksum verification, and fail-closed - behavior around unknown UI states and unsupported game versions. -- Do not weaken update signing, bundle identity, appcast trust, or manifest - validation. -- Add benchmark claims only with reproducible, same-scene evidence and recorded - hashes. Label single runs provisional. -- Keep shell scripts compatible with zsh, derive the project root from - `${0:A:h}`, quote paths, validate required tools, and emit English output. -- Keep the Mactician interface localized in English and Russian, update both - `.strings` files for user-visible changes, and never translate the brand name. - Game-language support is independent. -- Do not commit secrets, credentials, APKs, runtime state, AVD userdata, logs, - crash dumps, build output, or developer-specific absolute paths. - -Use the pull request template and include screenshots for UI changes. A change -that affects install, Repair, Reset, launch, stop, or update behavior must state -how rollback and recovery were verified. +UI work should include appropriate validation evidence. Runtime work should state the exact owning boundary and failure mode it changes. diff --git a/NOTICE.md b/NOTICE.md index ca2e6f9..c5e22cd 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -1,47 +1,17 @@ # Notices and attribution -The source code and documentation authored for Mactician are available -under the repository's [MIT License](LICENSE). Third-party software, services, -names, and artwork retain their own terms; they are not relicensed by this -repository. - -## Sparkle - -The launcher integrates [Sparkle 2](https://github.com/sparkle-project/Sparkle) -version 2.9.4 for signed updates. The build downloads Sparkle's upstream binary -release and verifies its pinned SHA-256 before use. See the -[Sparkle license](https://github.com/sparkle-project/Sparkle/blob/2.x/LICENSE) -for its terms. Release builds also include the complete upstream license at -`Mactician.app/Contents/Resources/ThirdPartyLicenses/Sparkle-LICENSE.txt`. - -## Android components and graphics stack - -The installer downloads pinned Apple Silicon builds of Android Platform Tools, -Android Emulator, and the Google APIs Android 36 system image from Google's -Android repository. These packages are not stored in this repository. Their -archives carry upstream license and notice material; review that material after -download and the [Android SDK terms](https://developer.android.com/studio/terms) -before redistribution. - -The Android Emulator distribution used by this project contains or interacts -with upstream components including -[ANGLE](https://chromium.googlesource.com/angle/angle/), -[gfxstream](https://android.googlesource.com/platform/hardware/google/gfxstream/), -and [MoltenVK](https://github.com/KhronosGroup/MoltenVK). Exact component -notices are supplied by the pinned Emulator package; no single license is -asserted here for the combined distribution. +TFTMAC source and documentation are provided under the repository's [MIT License](LICENSE). Copyright and license notices applicable to retained or derived source remain in force. Third-party software, services, names, and artwork retain their own terms and are not relicensed by this repository. + +## Android and graphics components + +TFTMAC uses Google's stock Android Emulator and related Android platform components. These packages are installed outside the repository and carry their own upstream license and notice material. Review the applicable Android SDK terms before redistribution. + +The Android graphics path may include upstream components such as ANGLE, gfxstream, and MoltenVK. Their applicable notices are supplied by their upstream distributions. ## Riot Games and Teamfight Tactics -Teamfight Tactics, TFT, Riot Games, and related names and artwork belong to -their respective owners. The launcher artwork in -`launcher/Resources/MacticianHero.png`, icons, and any game packages -provided locally for a build are not covered by this repository's MIT grant. -This independent community project is not endorsed by or affiliated with Riot -Games. +Teamfight Tactics, TFT, Riot Games, and related names and artwork belong to their respective owners. TFTMAC does not distribute Riot application binaries and is not endorsed by or affiliated with Riot Games. ## Apple platforms -Apple, macOS, Apple Silicon, Metal, and related platform names are trademarks -of Apple Inc. Building and distributing a signed app requires the applicable -Apple developer tools and agreements. +Apple, macOS, Apple Silicon, Metal, and related platform names are trademarks of Apple Inc. Building and distributing a signed macOS application requires the applicable Apple developer tools and agreements. diff --git a/README.md b/README.md index 7c3e2ab..7655a60 100644 --- a/README.md +++ b/README.md @@ -1,269 +1,97 @@ -# Mactician - -**A native, open-source TFT PBE launcher for Apple Silicon.** - -Mactician prepares and manages everything needed to play TFT PBE on a modern -Mac—without Android Studio, Terminal commands, or manual configuration. - -Created by [Sergei Naumov](https://sergeinaumov.dev/writing), a backend and -security platform engineer. Read my [technical writing](https://sergeinaumov.dev/writing/how-i-built-mactician) about this project -or connect with me on [LinkedIn](https://www.linkedin.com/in/sergei-naumov-dev/). +# TFTMAC -[Download Mactician](https://github.com/tweet9ra/mactician/releases/latest) · -[Documentation](#documentation) · -[Technical case study](https://sergeinaumov.dev/writing/how-i-built-mactician) +TFTMAC is a native macOS application for running the official Android Teamfight Tactics client on Apple Silicon through Google's stock Android Emulator. -Built for two tacticians. Shared with everyone. +## Current architecture -![Mactician social preview](branding/generated/mactician-social-preview.png) - -## Project status - -- Version: **1.0.4** (build 40) -- Host architecture: **Apple Silicon (`arm64`)** -- Minimum deployment target: **macOS 12.0**, enforced by the build target and - runtime preflight -- Status: **experimental, best effort**; there is no support or compatibility - SLA -- Compatibility is pinned to TFT PBE `18.1-5212127`, Android Emulator 37.1.11, - and Android 36. A game or emulator update can require a new Mactician release. - -## Preview - -![Mactician running TFT PBE on macOS](docs/images/mactician-running-tft-pbe.webp) - -Mactician keeps launcher controls and the running TFT PBE window side by side. -The native SwiftUI interface is localized in English and Russian; game language -is configured independently. - -## Features - -- Installs and verifies pinned Android Platform Tools, Emulator, and system - image archives. -- Verifies every downloaded component and bundled game split with SHA-256. -- Creates, provisions, starts, stops, repairs, and resets a dedicated AVD. -- Offers resolution, UI scale, Android RAM, vCPU, and game-language controls. -- Preserves the local Android runtime, Riot sign-in, game data, and launcher - preferences across full application updates. -- Repairs incomplete installs and a known zero-byte streaming-install cache - without clearing unrelated app data. -- Provides game hotkeys for shop, reroll, XP, item/trait and player/damage tabs, - plus the macOS window-fill shortcut. -- Uses a Sparkle appcast with Ed25519 archive verification for updates; the - current v1 release is ad-hoc signed and the workflow also supports future - Developer ID signing and notarization. -- Sends one unlinkable first-session event, offers separately consented extended - diagnostics, and can display validated operator messages. See - [Telemetry and privacy](docs/telemetry.md). +```text +TFTMAC.app + -> AppKit window + -> Metal presentation layer + -> authenticated local EmulatorController + -> stock Google Android Emulator + -> official Google Play ARM64 guest + -> official Google Play TFT package + -> Riot authentication and content lifecycle +``` -## Requirements +The product does not bundle, mirror, patch, re-sign, or privately update Riot binaries. Google Play is the installation/update authority for the Android application, and Riot's application owns its own content initialization. -### To run a release +## Runtime authority -- An Apple Silicon Mac with macOS 12.0 or later. -- At least 16 GB of system memory; the launcher validates this preflight. -- At least 25 GiB of free disk space for downloads, extraction, the AVD, TFT - assets, and update headroom. -- Internet access to Google's Android repository and TFT services. -- Hypervisor Framework support, available on supported Apple Silicon Macs. -- Acceptance of the linked Android SDK terms during installation. -- Accessibility permission only if the built-in game hotkeys are used. The - emulator itself does not need this permission. +The working runtime is stored outside the repository under: -### To build from source +```text +/Volumes/MAC MINI M4/TFTMAC/Runtime +``` -Xcode Command Line Tools, zsh, `jq`, and four exact unmodified TFT PBE APK -splits matching the release manifest are required. Node.js is needed only for -the optional Keychain-backed login helper. Developer ID credentials, a -notarytool Keychain profile, and a Sparkle Ed25519 key are release-only -requirements. +The current stock emulator authority is Android Emulator 37.1.11. The exact installed EmulatorController protocol is vendored at `Vendor/AndroidEmulator/emulator_controller.proto` with provenance in `Vendor/AndroidEmulator/SOURCE.json`. -## Download and installation +The abandoned source-built emulator laboratory is not part of the normal product path. -When a public build is available, download the latest DMG from the repository's -[GitHub Releases page](https://github.com/tweet9ra/mactician/releases/latest). -Verify the version, build number, -and the SHA-256 published with that release before opening it. +## Native build -1. Open the DMG and drag **Mactician** to **Applications**. -2. Open it. Version 1.0.4 is ad-hoc signed and not Apple-notarized, so macOS may - block the first launch. In **System Settings → Privacy & Security**, confirm - **Open Anyway**, then approve the second launch prompt. -3. Review and accept the Android SDK terms, then choose **Install**. About - 2.3 GB is downloaded before extraction and AVD provisioning. -4. Enter Riot credentials manually inside the official TFT client. +Requirements: -Mactician-managed data stays in -`$HOME/Library/Application Support/Mactician`. +- Apple Silicon Mac +- macOS 15 or later +- Xcode 26.6 +- Node.js 24 for repository tooling +- `jq`, `ripgrep`, and zsh -**Repair Installation** re-verifies components, refreshes Mactician-owned -runtime scripts, and reprovisions missing pieces while preserving the AVD and -Riot/game state. **Reset** deletes the complete launcher-managed data directory, -including the AVD, sign-in state, and game data, after confirmation. - -## Build from source - -Keep the four pinned APK files outside Git and point the build at their -directory. Their names and hashes are recorded in -[`launcher/Resources/release-manifest.json`](launcher/Resources/release-manifest.json). - -### Unit tests and typecheck +Build: ```sh -./scripts/verify-repository.command -./scripts/test-mactician.command +/bin/zsh scripts/build-native-app.command ``` -The test script compiles unit tests for the current host architecture, checks C -syntax, validates release safeguards, runs the tests, and typechecks the full -Apple Silicon production source set. - -### Local ad-hoc build +Test: ```sh -PROJECT_DIR="$PWD" -TFT_GAME_APK_DIR="$PROJECT_DIR/private/tft-pbe-apks" \ - ./scripts/build-mactician.command +/bin/zsh scripts/test-native-app.command ``` -This produces `dist/Mactician.app` and -`dist/Mactician-1.0.4.dmg`, signed ad hoc for local validation. - -### Provisioning integration test - -After a local build: +Full repository validation: ```sh -./scripts/integration-test-mactician.command +/bin/zsh scripts/verify-tftmac.command ``` -This test downloads the large pinned Android archives and provisions temporary -data, so it is not run on every pull request. +The native application bundle identifier is `com.flashls1.tftmac`. -### Signed and notarized release +## Runtime and package rules -```sh -PROJECT_DIR="$PWD" -: "${MACTICIAN_CODESIGN_IDENTITY:?Set MACTICIAN_CODESIGN_IDENTITY in the environment}" -: "${MACTICIAN_NOTARY_PROFILE:?Set MACTICIAN_NOTARY_PROFILE in the environment}" -TFT_GAME_APK_DIR="$PROJECT_DIR/private/tft-pbe-apks" \ - ./scripts/build-mactician.command +TFTMAC preserves the known-good stock SDK and AVD. Runtime state, Google credentials, Riot credentials, Android userdata, APK bytes, tokens, and private session data are never committed to Git. + +The supported package is: + +```text +com.riotgames.league.teamfighttactics ``` -Only environment-variable names belong in documentation or automation; never -commit identity secrets, passwords, private update keys, or notarization -credentials. See [Building](docs/building.md) and -[Releasing](docs/releasing.md) for the verified workflow. +Expected installer authority: -Developer ID signing and notarization are supported by the pipeline but are not -used for the initial ad-hoc v1 release. +```text +com.android.vending +``` -## How it works +If Google Play or Riot requires authentication, MFA, consent, or CAPTCHA, TFTMAC surfaces the official UI for the user to complete that step. -The game keeps its GLES interface while ANGLE and the emulator translate it to -Apple's graphics stack: +## Performance and diagnostics -```mermaid -flowchart LR - A["TFT GLES"] --> B["Android ANGLE"] - B --> C["Vulkan"] - C --> D["Android Emulator gfxstream / MoltenVK"] - D --> E["Apple Metal"] -``` +Performance work is evidence-driven. Raw telemetry is append-only during capture, then normalized for analysis. A/B changes are small, reversible, and accepted only when repeatable evidence supports them. -The application owns orchestration and local state; Google's emulator owns the -host/guest boundary: +The current target is 1920x1080 at 60 Hz. Medium graphics is the accepted playable baseline; Ultra High was rejected on the target M4 host because of severe lag. -```mermaid -flowchart LR - A["SwiftUI launcher"] --> B["Installer and state machine"] - B --> C["Local runtime"] - C --> D["Emulator host"] - D --> E["Android guest"] -``` +## Project boundaries -## Performance research - -Only reproducible or explicitly qualified results are treated as conclusions: - -- In an exact stage-1-1 battle A/B, ASG measured **40.1 FPS / 34.85 ms p95** - versus **29.6 FPS / 49.75 ms p95** on the old pipe transport. -- The selected GPU-scene/RHI/MoltenVK stack measured **36.0–36.8 FPS** in the - later stage-1-5 scene. -- In a controlled stage-1-5 comparison, increasing source pixels from 1600×900 - to 2560×1440 by **2.56×** measured **30.5 versus 31.3 FPS**, showing no - material loss in that CPU/RHI-bound scene. This does not generalize to every - scene. -- MoltenVK-128 produced one promising **40.20 / 34.50 / 32.40 FPS** run at - stages 1-2/1-5/1-8, but cold confirmation fell to - **39.5 / 31.6 / 23.3 FPS**. It failed the reproducibility threshold and remains - experimental. - -See [Benchmarks](docs/benchmarks.md), -[Reproducibility](docs/reproducibility.md), and the -[Research log](docs/research-log.md) for methodology, rejected experiments, and -limitations. The focused -[native GLES and graphics-transport experiment](docs/native-gles-transport-experiment.md) -documents the shortened-path prototype, its ES 3.2 blockers, and the measured -current-path alternatives. - -## Privacy and security - -Runtime data, the AVD, downloads, and launcher logs remain local to the Mac. -After the first successfully completed game session, the launcher sends one -basic event containing a fresh event UUID, launcher version/build, calendar day, -and a rounded duration range. It contains no installation/device identifier, -exact duration or time, settings, language, or Mac characteristics. The metric -is reported as **Approximate activated installations**, not as users or people. - -With explicit opt-in only, every completed session also sends a separate -diagnostic event with exact duration, applied graphics/resource settings, Mac -model identifier, macOS version, total memory, and logical CPU count. Every -session has an independent event UUID and no installation ID. Turning the -setting off immediately deletes its local retry queue. Neither level contains a -Mac name, serial number, MAC address, Apple/Riot identity, logs, game state, or -AVD data. See [Telemetry and privacy](docs/telemetry.md) for the complete fields, -limitations, consent behavior, and retention periods. - -The same HTTPS API can return a title, text, and optional PNG/JPEG for a popup -when the launcher starts or a game closes. Responses, redirects, image origin, -encoded size, MIME type, dimensions, and pixel count are checked before remote -content is shown. - -Accessibility permission is used only for launcher hotkeys. A loopback-only -WebView DevTools connection performs a narrowly scoped login-field repaint -repair without reading or changing form values. Full raw game logs can contain -authentication-like data, so diagnostics must be filtered and sanitized before -sharing. Report vulnerabilities through the private process in -[SECURITY.md](SECURITY.md). - -## Documentation - -- [Architecture](docs/architecture.md) -- [Building](docs/building.md) -- [Releasing](docs/releasing.md) -- [Troubleshooting](docs/troubleshooting.md) -- [Benchmarks](docs/benchmarks.md) -- [Engineering case study](https://sergeinaumov.dev/writing/how-i-built-mactician) -- [Research log](docs/research-log.md) -- [Native GLES and graphics-transport experiment](docs/native-gles-transport-experiment.md) -- [Reproducibility](docs/reproducibility.md) -- [Launch profiles](docs/launch-profiles.md) -- [Telemetry and privacy](docs/telemetry.md) - -## Support - -See [SUPPORT.md](SUPPORT.md). - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md). +- One active product: TFTMAC. +- One authoritative repository: `flashls1/TFTMAC`. +- No legacy launcher, hosted game feed, private update service, or donor branding belongs in the shipping tree. +- No source-built emulator checkout is required for normal build, launch, test, repair, or release. ## License and attribution -Project code and documentation are available under the [MIT License](LICENSE). -Third-party notices and asset boundaries are documented in -[NOTICE.md](NOTICE.md). +Repository source is provided under [LICENSE](LICENSE). Third-party software and platform components retain their own licenses and terms; see [NOTICE.md](NOTICE.md). -Mactician is an independent community project and is not an official -Riot Games product. +Teamfight Tactics, TFT, Riot Games, Google, Android, Apple, macOS, Metal, and related names belong to their respective owners. TFTMAC is an independent project and is not endorsed by Riot Games, Google, or Apple. diff --git a/SECURITY.md b/SECURITY.md index 12ea8c8..f5bf7e9 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,27 +1,11 @@ # Security policy -## Supported versions +Security fixes are handled on a best-effort basis for the current TFTMAC codebase. -Security fixes are provided on a best-effort basis for the latest published -Mactician release. Older releases may be asked to upgrade before a report is -investigated. +## Reporting -## Reporting a vulnerability +Use GitHub Private Vulnerability Reporting or a private Security Advisory for the repository. Do not disclose an unpatched vulnerability in a public issue. -Use GitHub Private Vulnerability Reporting or open a private Security Advisory -for this repository. Do not disclose an unpatched vulnerability in a normal -public issue. If private reporting is not available, email - with `Mactician security` in the subject. +Include the affected commit/version, macOS version and architecture, impact, reproduction steps, and the smallest proof needed to demonstrate the issue. Explain whether the issue affects the native application, stock emulator control, local runtime state, package-authority checks, or diagnostics. -Include the affected version, macOS version and architecture, impact, -reproduction steps, and the smallest proof needed to demonstrate the issue. -Explain whether the issue affects the launcher, installer, local runtime, -Sparkle update chain, or diagnostic tooling. - -Sanitize logs before attaching them: keep only the lines needed to show the -failure and remove usernames, home paths, tokens, cookies, credentials, device -identifiers, Riot session data, and unrelated process output. Never attach a -full AVD, raw game log, Keychain export, crash-memory dump, or private key. - -Receipt and remediation times depend on maintainer availability and issue -complexity; this policy does not promise a fixed response SLA. +Sanitize logs before attaching them. Remove usernames, home paths, tokens, cookies, credentials, device identifiers, Google/Riot session data, and unrelated process output. Never attach an AVD image, raw game log, Keychain export, crash-memory dump, or private key. diff --git a/SUPPORT.md b/SUPPORT.md index 23b9fac..83786fc 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -1,24 +1,17 @@ # Support -Mactician is maintained on a best-effort basis without a service-level -agreement. Support focuses on the latest Mactician release. TFT PBE and Android -Emulator updates can temporarily break compatibility with a pinned release. +TFTMAC is maintained on a best-effort basis for the current Apple Silicon build and stock Android runtime. -Use [GitHub Issues](https://github.com/tweet9ra/mactician/issues) for reproducible -Mactician bugs and feature requests. Personal -messages are not a support channel, and feature requests are not guaranteed to -be implemented. +For a useful bug report include: -A useful bug report includes: - -- launcher version and build number; -- macOS version, Mac model, and Apple chip; -- whether this was a fresh install, update, or existing installation; -- selected resolution, UI scale, RAM, vCPU, and game language; +- TFTMAC commit/version; +- macOS version and Mac model/chip; +- whether the stock emulator and AVD already existed; +- package version and installer authority when relevant; - expected and actual behavior; - minimal reproduction steps; -- a small, sanitized diagnostic excerpt. +- a small sanitized diagnostic excerpt. + +Do not publish credentials, tokens, Google or Riot account identifiers, private Android data, full AVD images, unfiltered game logs, or crash-memory dumps. -Do not publish credentials, tokens, private Android data, complete game logs, -full AVD images, or unfiltered crash memory. For security-sensitive reports, -follow [SECURITY.md](SECURITY.md) instead of opening a public issue. +Security-sensitive reports should follow [SECURITY.md](SECURITY.md). diff --git a/docs/architecture.md b/docs/architecture.md index db84039..21334b6 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,196 +1,47 @@ -# Architecture - -Mactician is a native SwiftUI application that installs and orchestrates -a pinned Android Emulator runtime. It keeps mutable Android data outside the -application bundle so a full app replacement does not replace the AVD or game -state. - -## Components - -- `MacticianApp.swift` owns application startup, the main window, About, and shutdown. -- `LauncherView.swift`, `LauncherStateViews.swift`, and the supporting component - files render install, ready, running, failure, and settings surfaces. -- `LauncherModel.swift` is the main-actor presentation model and state machine. - It validates saved settings, starts installer/runtime operations, maps errors - to recovery actions, and coordinates hotkeys and login repaint repair. -- `InstallerService.swift` checks the host, verifies game inputs, downloads and - hashes Android archives, installs the SDK layout, creates the AVD, provisions - TFT, and persists `InstallState` after each durable stage. -- `RuntimeController.swift` validates the pinned game state, refreshes the small - launcher-owned runtime project, prepares a verified overlay, starts - `launcher-runtime.command`, and decodes its JSON-line events. -- `run-tft-root-affinity.command` and `scripts/run-asg-experiment.command` own the - low-level emulator session, reversible AVD edits, guest overlays, Android - graphics configuration, and cleanup. -- `InputBridgeService.swift` provides scoped macOS hotkeys only while the - packaged emulator is active and Android reports TFT's `GameActivity`. -- `RiotLoginAnimationRepairService.swift` removes two completed login-form CSS - animations through a temporary loopback-only DevTools forward. It does not - read or modify field values. -- `LauncherUpdateController.swift` exposes Sparkle's update UI. -- `LauncherTelemetryService.swift` owns the bounded retry queue, anonymous - launch/session events, strict message responses, and safe image decoding. -- `LauncherAnnouncementView.swift` renders server-selected messages without - HTML or executable content. -- `EmulatorHost/main.c` is a minimal app-bundle host for Google's Emulator, used - to retain the intended Dock identity and icon. - -## State and installation - -The UI state and the durable install state are related but separate: - -```mermaid -stateDiagram-v2 - [*] --> NeedsInstall - NeedsInstall --> Installing: Accept terms and Install - Installing --> Ready: manifest, SDK, AVD, and game verified - Installing --> NeedsInstall: cancel; partial downloads remain resumable - Installing --> Failed: integrity or process failure - Ready --> Launching: Play - Launching --> Playing: runtime ready event - Launching --> Failed: fail-closed runtime error - Playing --> Stopping: Stop or app termination - Stopping --> Ready: overlays and AVD config restored - Failed --> Installing: Repair - Failed --> Launching: retry supported launch failure +# TFTMAC Architecture + +TFTMAC is a native macOS application controlling a known-good stock Google Android Emulator runtime. + +## Product boundary + +```text +TFTMAC.app + -> AppKit application/window + -> Metal presentation + -> authenticated local EmulatorController client + -> stock Google Android Emulator + -> official Google Play ARM64 guest + -> official TFT package ``` -`InstallState.Stage` progresses through `empty`, `downloading`, `sdk_installed`, -`avd_created`, and `ready`. The JSON state also records installed component -versions, pinned game version/base hash, overlay hash, schema version, and last -update time. A partially written or incompatible state fails back to an empty -state. +The runtime root is external to the repository so application source changes do not replace AVD userdata, Google Play state, Riot sign-in, or installed game data. -Installer outputs are staged before replacement. The runtime project is -refreshed by moving the old directory aside, moving the new copy into place, -and restoring the previous copy if activation fails. Downloads are resumable; -hashes and expected sizes are verified before use. +## Native application -## Runtime data layout +`TFTMAC/App/` owns application lifecycle and the main window. `TFTMAC/Presentation/` owns the Metal presentation shell and viewport mapping. The source target is Apple Silicon and the application bundle identifier is `com.flashls1.tftmac`. -Default root: `$HOME/Library/Application Support/Mactician`. +The presentation layer maintains the game aspect ratio and maps native viewport coordinates into the 1920x1080 Android source coordinate space while rejecting input in letterbox regions. -```text -sdk/ pinned Platform Tools, Emulator, and system image -avd/TftPBE.avd/ Android virtual-device state and game data -runtime-project/ refreshed Mactician-owned scripts and profiles -downloads/ resumable component archives during installation -.staging/ transactional temporary files -logs/launcher.log launcher/runtime diagnostics -install-state.json durable installation state -``` +## Emulator control -Game APKs are build-time application resources; they are verified against -`release-manifest.json` before installation. They are not stored in this source -repository. - -## Launch and stop - -```mermaid -sequenceDiagram - participant UI as SwiftUI launcher - participant Model as LauncherModel - participant Runtime as RuntimeController - participant Host as Emulator host - participant Guest as Android guest - - UI->>Model: Play with profile/language/resources - Model->>Runtime: Validate install state and settings - Runtime->>Runtime: Patch verified Dock-icon instruction - Runtime->>Runtime: Refresh runtime project and verified overlay - Runtime->>Host: Start launcher-runtime.command - Host->>Guest: Cold boot dedicated AVD - Host->>Guest: Apply reversible ASG, ANGLE, profile, locale, and UI scale - Guest-->>Runtime: booting / emulator_started / ready events - Runtime-->>Model: update UI and start scoped services - Guest-->>Runtime: game process absent for three checks - Runtime-->>Model: game_stopped and exact session duration boundary - UI->>Model: Stop - Model->>Runtime: emulator kill and TERM - Host->>Guest: unmount overlays and restore properties/config - Runtime-->>Model: stopped -``` +TFTMAC uses the exact EmulatorController protocol shipped by the installed stock emulator. The protocol snapshot and provenance live under `Vendor/AndroidEmulator/`. Production control must be authenticated and local; an unauthenticated fixed gRPC control endpoint is not an accepted architecture. -Normal shutdown, TERM, and the next launch all participate in recovery. Durable -sidecar backups allow `run-asg-experiment.command` to repair an interrupted -configuration before another run. Lock ownership prevents concurrent mutation -of the same AVD. - -## Repair, Reset, and updates - -Repair repeats host, manifest, component, and game verification; refreshes -Mactician-owned scripts; and reprovisions missing or invalid installation -pieces. It keeps the existing AVD unless corruption requires the explicit Reset -path. The streaming-cache repair removes only `StreamingInstalls` when its -public `Metadata.manifest` is zero bytes. - -Reset deletes the complete launcher data root after confirmation. This removes -the AVD, downloads, Riot sign-in, game data, logs, and install state. - -Sparkle replaces the complete application bundle atomically. The runtime root -and `UserDefaults` remain outside that bundle, preserving user state. The -current identifiers are `dev.sergeinaumov.mactician`, -`~/Library/Application Support/Mactician`, and -`https://sergeinaumov.dev/mactician/updates/appcast.xml`. - -## Telemetry and operator messages - -A game session begins only on the runtime `ready` event and ends once on -`game_stopped`, `stopped`, or application shutdown. Its first completion creates -one unlinkable `first_game_session` event. The event is synchronously persisted -before the request, retried with the same event UUID, and terminally completed -after success, duplicate acknowledgement, unrecoverable 4xx, or seven days. - -An independent, bounded queue stores `game_session_diagnostics` only while -consent version 1 is granted. Revocation synchronously removes that queue before -another request can begin. Diagnostic events contain applied launcher settings -and coarse host properties, but receive independent event UUIDs and no -installation identifier. On migration, the legacy installation UUID and queued -`launcher_started`/`game_session` records are deleted. The full state machine -and payload schemas are documented in [Telemetry and privacy](telemetry.md). - -Message lookups use separate `launcher_started` and `game_closed` triggers. -One-time message IDs are remembered in a bounded 128-entry set. The client -refuses redirects and non-HTTPS/cross-origin image URLs, caps JSON at 16 KiB and -images at 2 MiB, accepts only PNG/JPEG, and checks image dimensions and total -pixels with ImageIO before decoding. Message text is rendered as plain SwiftUI -`Text`, never HTML. - -## Host/guest boundary and graphics - -The macOS host owns SwiftUI, downloads, manifests, the emulator process, -Hypervisor Framework, input filtering, update verification, and transactional -AVD configuration. Android owns app installation, locale, TFT processes, the -official Riot WebView, game state, and guest scheduling. - -The selected graphics chain is: - -```mermaid -flowchart LR - A["TFT OpenGL ES"] --> B["Guest ANGLE"] - B --> C["Vulkan encoder"] - C --> D["gfxstream transport"] - D --> E["MoltenVK"] - E --> F["Metal"] -``` +## Android/package authority + +The normal guest is an official Google Play ARM64 image. TFT application installation and updates are owned by Google Play. Riot's application owns Riot authentication and content initialization. + +TFTMAC does not mirror, bundle, patch, re-sign, or privately update Riot binaries. + +## Runtime storage + +Bulk runtime state is outside Git under `/Volumes/MAC MINI M4/TFTMAC/Runtime`. Repository source contains only code, tests, protocol snapshots, compact evidence, and configuration that is safe to version. + +The abandoned source-built emulator development tree is not part of the normal product architecture and is eligible for controlled reclamation after independence checks pass. + +## Diagnostics + +Raw runtime telemetry is captured append-only, then normalized for analysis. Measurements identify the first boundary where behavior changes from PASS to FAIL. Performance changes are one-variable, reversible A/B experiments with explicit KEEP/REJECT decisions. + +## Failure boundaries -Android HWUI/WebView uses Skia OpenGL to avoid a verified WebView Vulkan -deadlock; this does not disable Vulkan below TFT's ANGLE renderer. - -Fixed-stage and cold-boot measurements identify the guest command-serialization, -MMIO/kick, readback, and synchronization boundary as the dominant graphics -bottleneck: the host decoder is usually waiting for work rather than saturating -the transport bandwidth. A shorter guest GLES encoder route was prototyped, but -the current guest/host gfxstream capability contract exposes only ES 3.0 while -TFT actively requires ES 3.1 compute, image, barrier, and texture-buffer -semantics. The evidence, rejected variants, source patches, and implementation -alternatives are recorded in [Native GLES transport experiment](native-gles-transport-experiment.md). - -## Fail-closed checks - -The launcher refuses to continue on manifest schema errors, unsafe archive -paths, size/hash mismatches, unsupported architecture, insufficient resources, -missing Hypervisor support, an unexpected game version, invalid overlay/profile -hashes, unknown graphics transport, conflicting AVD ownership, incomplete -rollback, unknown autonomous UI states, visible CAPTCHA/MFA, or an unsigned -production update build. Recovery never silently patches an unknown game build. +TFTMAC fails closed when the expected runtime, protocol authority, package identity, installer authority, or protected external storage is missing or inconsistent. Unknown effects are not replayed blindly. User-required Google/Riot authentication is surfaced through official UI rather than automated around. diff --git a/docs/building.md b/docs/building.md index adb5a8c..aa3f0fa 100644 --- a/docs/building.md +++ b/docs/building.md @@ -1,131 +1,54 @@ -# Building +# Building TFTMAC ## Requirements -- Apple Silicon Mac with macOS 12.0 or later -- Xcode Command Line Tools (`xcrun swiftc`, `xcrun clang`, `codesign`, `plutil`) -- zsh, `jq`, `rg`, `curl`, `tar`, `zip`, `unzip`, `shasum`, and `xmllint` -- Node.js only for `scripts/login-tft-from-keychain.command` -- Four exact unmodified TFT PBE `18.1-5212127` APK splits in a private local - directory; names, sizes, and hashes are in - `launcher/Resources/release-manifest.json` +- Apple Silicon Mac +- macOS 15 or later +- Xcode 26.6 +- zsh +- Node.js 24 +- `jq` and `ripgrep` -Production binaries target `arm64-apple-macosx12.0`. Unit-test binaries target -the current macOS host architecture so CI can run on either Intel or Apple -Silicon runners; production and release targets remain Apple Silicon-only. +The working stock Android runtime is external to the repository and is not rebuilt during normal native application compilation. -## Sparkle preparation - -`scripts/prepare-sparkle.command` downloads Sparkle 2.9.4 from its upstream -GitHub release into `launcher/.build/`, verifies SHA-256 -`ce89daf967db1e1893ed3ebd67575ed82d3902563e3191ca92aaec9164fbdef9`, -validates its signature, and stages the framework and release tools. A valid -cached copy is reused. +## Build ```sh -./scripts/prepare-sparkle.command +/bin/zsh scripts/build-native-app.command ``` -## Fast validation - -```sh -./scripts/verify-repository.command -./scripts/test-mactician.command -``` - -Together these commands check repository policy, shell syntax, plist/strings -and JSON syntax, Markdown links, executable bits, version consistency, C -syntax, unit tests, and full Swift typechecking. The test script also verifies -runtime shutdown classification, update safeguards, the scoped login repaint -repair, English/Russian UI resources, resource selectors, overlay preparation, and -state serialization. - -Equivalent focused checks include: - -```sh -find . -type f \( -name '*.command' -o -name '*.sh' \) -print0 \ - | xargs -0 -n 1 zsh -o NO_BG_NICE -n -find launcher -type f \( -name '*.plist' -o -name '*.strings' \) -print0 \ - | xargs -0 -n 1 plutil -lint -find . -type f -name '*.json' -print0 | xargs -0 -n 1 jq empty -xcrun clang -target arm64-apple-macosx12.0 -fsyntax-only launcher/EmulatorHost/main.c -``` +The Release application is produced under the ignored native build directory and copied to `dist/TFTMAC.app` for local use. Local validation uses ad-hoc signing. -## Local ad-hoc build +## Test ```sh -PROJECT_DIR="$PWD" -TFT_GAME_APK_DIR="$PROJECT_DIR/private/tft-pbe-apks" \ - ./scripts/build-mactician.command +/bin/zsh scripts/test-native-app.command ``` -The builder verifies all APK hashes, compiles the SwiftUI app and emulator host, -copies the pinned Sparkle framework and runtime template, rejects embedded -developer paths, signs nested code from the inside out with an ad-hoc identity, -verifies the app, and creates the DMG in `dist/`. - -The resulting DMG embeds the four verified game APK splits. - -## Provisioning integration test +The current native tests cover the Gate 1 viewport/input mapping contract and run on Apple Silicon macOS. -Build the app first, close every Android Emulator process, then run: +## Full validation ```sh -./scripts/integration-test-mactician.command +/bin/zsh scripts/verify-tftmac.command ``` -The script downloads and verifies the three large Android fixtures, compiles -`InstallerIntegration.swift`, provisions a temporary SDK/AVD, and validates the -ready state. It is deliberately excluded from normal pull-request CI. +Validation checks: -## Optional Developer ID and notarized build +- TFTMAC bundle identity; +- frozen EmulatorController protocol provenance/hash; +- pinned Swift package graph; +- retained script and JavaScript syntax; +- performance-lab and engineering-map self-tests; +- native Release build; +- native tests; +- Git whitespace integrity; +- no tracked private runtime artifacts. -Store notarization credentials with `notarytool` under a Keychain profile, then -export the identity/profile in the invoking environment: +A transient `TFTMAC_FORBIDDEN_TOKEN` may be supplied for the final ownership-completeness scan. The token itself must not be committed merely to test for its absence. -```sh -PROJECT_DIR="$PWD" -: "${MACTICIAN_CODESIGN_IDENTITY:?Set MACTICIAN_CODESIGN_IDENTITY in the environment}" -: "${MACTICIAN_NOTARY_PROFILE:?Set MACTICIAN_NOTARY_PROFILE in the environment}" -TFT_GAME_APK_DIR="$PROJECT_DIR/private/tft-pbe-apks" \ - ./scripts/build-mactician.command -``` +## Runtime data + +Do not commit SDK packages, AVD userdata, Google/Riot credentials, tokens, APKs, runtime disks, logs containing sensitive data, or generated native build products. -The script requires a Developer ID Application identity when either public -release setting is present. It enables hardened runtime, uses secure timestamps, -submits the DMG, waits for acceptance, staples and validates the ticket, and -assesses the distribution. - -The initial v1 release remains ad-hoc signed; this section documents the future -Developer ID-capable path rather than the current release identity. - -## Environment variables - -| Variable | Purpose | -| --- | --- | -| `TFT_GAME_APK_DIR` | Required build input directory containing four pinned APK splits | -| `MACTICIAN_CODESIGN_IDENTITY` | Developer ID Application identity; default `-` is ad hoc | -| `MACTICIAN_NOTARY_PROFILE` | notarytool Keychain profile for a public release | -| `TFT_ANDROID_SDK_ROOT` / `TFT_ROOT_SDK` | Explicit Android SDK for source launch scripts | -| `ANDROID_SDK_ROOT`, `ANDROID_HOME` | Standard Android SDK discovery fallbacks | -| `TFT_ADB`, `TFT_EMULATOR` | Explicit tool binaries | -| `TFT_AVD_HOME`, `TFT_ROOT_AVD_HOME`, `TFT_AVD_NAME` | External AVD selection | -| `TFT_JQ` | Non-standard `jq` path | -| `MACTICIAN_KEYCHAIN_SERVICE` | Optional login-helper Keychain service | -| `MACTICIAN_SPARKLE_ACCOUNT` | Sparkle Ed25519 Keychain account for appcast generation | -| `MACTICIAN_UPDATE_*` | Release URLs, SSH destination, remote root, work directory, and inputs | - -## Common failures - -- **Sparkle download/hash failure:** remove only the partial cache file and - retry on a trusted network; do not change the pinned hash to match a download. -- **Missing APK input:** set `TFT_GAME_APK_DIR`; the repository intentionally - does not contain game packages. -- **APK mismatch:** use the exact pinned release or update the manifest only as - part of a separately verified game-version change. -- **No signing identity:** use the default ad-hoc mode for local testing or - install the intended Developer ID identity and set its exact reported name. -- **Module-cache or stale output issue:** remove ignored `launcher/.build/` or - `dist/` output, then rerun; source files are unaffected. -- **Integration test refuses to start:** close other Emulator processes to avoid - shared host/ADB state. +The normal runtime root is `/Volumes/MAC MINI M4/TFTMAC/Runtime`. The application must not silently create bulk runtime/build state on the internal disk when the required external runtime authority is unavailable. diff --git a/docs/images/mactician-running-tft-pbe.webp b/docs/images/mactician-running-tft-pbe.webp deleted file mode 100644 index 516141456366ddcb44c729ed8793e3463a575c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194206 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

K|R?wu859* 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 E06W1DAOHXW diff --git a/docs/native-gles-transport-experiment.md b/docs/native-gles-transport-experiment.md deleted file mode 100644 index 298d3ac..0000000 --- a/docs/native-gles-transport-experiment.md +++ /dev/null @@ -1,578 +0,0 @@ -# Native GLES and graphics-transport experiment - -Date: 2026-08-10/11 - -## Decision - -The short native-GLES path is not viable with the guest image and gfxstream -binaries shipped by Emulator 37.1.11. The blocker is API capability across the -whole protocol, not launcher wiring: TFT exercises ES 3.1/3.2 core -functionality before the first frame, while the working Metal-backed path and -the outer gfxstream context expose ES 3.0. Advertising ES 3.2 without -implementing those capabilities only moves the failure into Unreal's renderer. - -The supported production path therefore remains: - -```text -TFT / Unreal GLES - -> guest ANGLE (GLES to Vulkan) - -> guest gfxstream Vulkan encoder - -> virtio-gpu ASG - -> host gfxstream Vulkan decoder - -> MoltenVK - -> Metal -``` - -The current bottleneck is more precise than "the chain is long": frame -throughput is limited by serialized RHI/command submission and synchronization -across the guest/host boundary and its downstream Vulkan-to-Metal consumer. An -ASG write can represent packing/copy work, ring backpressure, or a downstream -fence wait; it is an observation point, not proof that byte copying alone is -the root cause. - -## Native-path experiment - -The proposed path was: - -```text -TFT / Unreal GLES - -> gfxstream GLES encoder - -> virtio-gpu ASG - -> host ANGLE - -> Metal -``` - -It would remove guest ANGLE, the Vulkan gfxstream protocol, and MoltenVK from -the frame path. The experiment deliberately separated host capability from the -end-to-end guest path. - -### Launcher wiring - -`run-tft-root-affinity.command` now forwards ANGLE feature overrides into the -packaged emulator host. It also forwards the MoltenVK variables used by the -bounded A/B candidates. This closes a real diagnostic gap: an app-bundled run -now receives the same process-local configuration as a direct emulator run. - -### Host ANGLE probe - -`artifacts/angle-egl-probe.cpp` is now a self-contained dynamic EGL/GLES probe. -It does not depend on development headers absent from the packaged runtime. It: - -- requests ES 3.2, 3.1, and 3.0 contexts independently; -- reports the actual GL and GLSL versions; -- reports selected ES 3.1/3.2 extensions and entrypoints; -- enumerates relevant ANGLE features; -- supports explicit default, Metal, Vulkan, and OpenGL backends; -- applies ANGLE feature overrides at EGL display creation time. - -`scripts/run-host-angle-capability-probe.command` builds it against the -currently installed packaged runtime and runs the `default`, `metal`, `opengl`, -or isolated `swiftshader` matrix entry. The last mode intentionally enables -`exposeNonConformantExtensionsAndVersions` and returns nonzero when the nominal -ES 3.2 geometry/tessellation probes expose the expected zero-limit failure. - -Observed results: - -- the packaged host ANGLE working backend exposes ES 3.0, not ES 3.1/3.2; -- selecting ANGLE Metal advertises the platform extension but fails display - initialization in this build; -- selecting ANGLE Vulkan reaches MoltenVK but aborts during Vulkan buffer - allocation, so it is not a usable shortcut around gfxstream; -- selecting ANGLE Vulkan with the packaged SwiftShader ICD creates ES 3.1 and, - under ANGLE's explicitly non-conformant - `exposeNonConformantExtensionsAndVersions` override, nominal ES 3.2 contexts. - Compute, image, indirect-draw, and texture-buffer entrypoints - are exposed. This isolates part of the limitation: the ANGLE frontend covers - the ES 3.1 functionality exercised by TFT, but its viable macOS hardware - backend and the surrounding gfxstream protocol do not provide the complete - contract; -- version-exposure overrides do not add the missing ES 3.1/3.2 behavior. - -The direct SwiftShader EGL/GLES libraries are not an alternative: unlike ANGLE -over SwiftShader Vulkan, they expose only ES 3.0 and lack compute entrypoints. - -The positive SwiftShader subset is functional rather than a version-string -check. The probe compiles and runs a GLSL ES 3.10 compute shader, reads the -written SSBO back on the CPU, verifies two-pass `imageStore`/`imageLoad` through -an `r32ui` image, and completes a GLES fence/client-wait. In the nominal ES 3.2 -context it also samples a `GL_R32UI` texture buffer from a GLSL ES 3.20 compute -shader. All readbacks match their sentinel values. However, both geometry and -tessellation pipeline probes fail: the reported limits are -`GL_MAX_GEOMETRY_OUTPUT_VERTICES=0`, `GL_MAX_PATCH_VERTICES=0`, and -`GL_MAX_TESS_GEN_LEVEL=0`, and the corresponding extensions are absent. Thus -the override does not make this a conformant or complete ES 3.2 renderer. The -same test cannot start on Metal and cannot request an ES 3.1 context on the -default macOS OpenGL backend. - -The direct Vulkan probe crash was isolated to the probe process. Its macOS -diagnostic report is retained outside the repository under the user's -DiagnosticReports directory. - -### Guest EGL capability probe - -`artifacts/android-egl-capability-probe` is a headerless arm64 Android probe -built by `scripts/build-android-egl-capability-probe.command` with the project's -Go 1.24.3 toolchain. It goes through Android's public `libEGL.so` loader, pins -all EGL calls to one OS thread, creates a pbuffer, reports actual versions and -limits, and resolves all 59 EGL/GLES names found dynamically in `libUnreal.so`. -The no-cgo assembly bridge is diagnostic code, not application runtime code. - -On a cold boot with `GuestAngle` enabled, the loader selected guest ANGLE over -gfxstream Vulkan/MoltenVK. A nominal ES 3.2 context was created, but geometry -and tessellation limits were zero even though the relevant proc addresses were -non-null. On an isolated cold boot with `GuestAngle` disabled and no APK or -library overlay, the public loader selected the native gfxstream GLES driver: - -```text -EGL 1.4 -ES 3.2 request -> EGL_BAD_CONFIG -ES 3.1 request -> EGL_BAD_CONFIG -ES 3.0 request -> OpenGL ES 3.0 (4.1 Metal - 90.5) -renderer -> Android Emulator OpenGL ES Translator (Apple M1 Max) -``` - -The native ES 3.0 context still returned non-null proc addresses and non-zero -geometry/tessellation limit values for names outside its advertised version. -They are therefore dispatch-table evidence, not a usable capability contract. -After the probe was reordered to establish ES 3.0 first, a complete clean-boot -run resolved 56 of the 59 Unreal lookup names, including every one of the 11 -core-to-EXT/OES/IMG alias candidates. The three null results were -`eglGetFrameTimestampsSupportedANDROID`, -`eglQueryTimestampSupportedANDROID`, and `glDebugMessageLogKHR`. The loader -advertises `EGL_KHR_get_all_proc_addresses`, so static library exports -substantially undercount this runtime surface. Explicit ES 3.1 and 3.2 requests -still returned `EGL_BAD_CONFIG` after that collection. An immediate first -post-boot attempt exited with `SIGSEGV`, while the repeated staged run completed; -the probe now prints unbuffered phase markers so a future readiness race can be -distinguished from a specific EGL call. - -The recorded clean-boot output retains the SHA of the exact probe binary used -for that observation. After capture, the source added explicit -`runtime.KeepAlive` barriers for EGL attribute slices passed through the -no-cgo `uintptr` bridge. The hardened source rebuilds reproducibly as an arm64 -Android PIE with SHA-256 -`9ccd84c8af69f015702ac3e04bcda165eafac6bef5d4b926d423f70cb162a31e`; -its only dynamic dependencies remain `libEGL.so` and `libGLESv2.so`. - -### End-to-end guest result - -The strict native gfxstream GLES run successfully proved that guest ANGLE was -absent and the native GLES encoder was selected. It then reported ES 3.0, and -TFT correctly rejected the renderer because it requires ES 3.2. - -A bounded `-gpu swangle` control was then added for native-GLES experiments. -The host side initialized ANGLE over Vulkan/SwiftShader with ES 3.1 and -texture-buffer extensions, but the outer gfxstream context still exposed ES -3.0. The unmodified game therefore stopped at its ES 3.2 gate. - -An isolated `libUnreal.so` gate patch to ES 3.1 progressed into the RHI thread -and then failed before the host could execute the commands. The guest -`libGLESv2_enc.so` validation rejected texture-buffer targets in -`glBindTexture`, `glTexParameteri`, `glTexStorage3D`, and `glTexSubImage3D`, as -well as capability `0x8db9`; the RHI thread then terminated with `SIGTRAP`. -This is the expected failure mode of a capability spoof: the version gate -moves, but the required formats, state, shader behavior, and entrypoints do not -appear. The software control is retained only as a diagnostic and is never a -performance candidate. - -Static inspection of the original 194 MB game library found 151 direct EGL/GLES -imports and 210 unique EGL/GLES names in total. The game directly imports ES -3.1 compute, image, memory-barrier, and indirect-draw APIs; dynamically resolved -names include texture buffers, framebuffer texture, indexed blend, and debug -APIs. The requirement is therefore active renderer behavior, not merely a -conservative version check. - -`scripts/audit-native-gles-coverage.command` makes that inspection -reproducible and compares the game with the shipped guest EGL/GLES wrappers, -the guest encoder, optional upstream protocol/dispatch source, and optional -host ANGLE exports. For this build all 151 direct imports are present across the -shipped guest ABI. Of the 59 dynamic names, 16 have an exact exported surface, -11 have a core-to-EXT/OES/IMG alias candidate (including texture buffers and -indexed blend), and 32 have no exact guest export. These 32 are optional lookup -names until runtime evidence shows they are consumed; their absence is not -treated as 32 mandatory implementation gaps. Conversely, a present symbol is -only ABI coverage and says nothing about caps or enum validation. The observed -texture-buffer validation failure therefore remains the stronger blocker than -symbol count. The later 56/59 runtime lookup result also demonstrates that this -static matrix is a conservative source audit, not an `eglGetProcAddress` -prediction through Android's full loader stack. - -### Source-build boundary - -The current upstream gfxstream host backend was built successfully on this Mac -from `emu-main-dev` (revision `a9184fd`) after two local warning-compatibility -adjustments. The generated standalone dylib is not a drop-in replacement for -the emulator's production backend: it exports substantially fewer integration -symbols than the packaged library. - -More importantly, current source still contains an incomplete GLES 3.2 -capability path. Host version detection is capped at 3.1, the macOS OpenGL path -maps OpenGL 4.1 to ES 3.0, maximum-version handling maps both 3.1 and 3.2 to a -3.1 context, and RenderControl version strings omit 3.2. Generated protocol -code already includes several texture-buffer and indexed-blend extension -opcodes, but that is not the same as coherent context creation, validation, -dispatch, and capability propagation. - -`artifacts/gfxstream-gles32-host-capability-prototype.patch` is a concrete -host-capability prototype against that revision. Its 61 added lines probe an -ES 3.2 context before falling back, add the translator's 3.2 interface and -dispatch group, and propagate `ANDROID_EMU_gles_max_version_3_2` plus the 3.2 -version string through RenderControl. It applies cleanly to `a9184fd`; a clean -standalone `gfxstream_backend` build completed with SHA-256 -`ba86d350b83f7538add45ded2b1cf868a152fb4cc571fc83d55337b71f149c9b` -after the same two AppleClang warning-compatibility allowances. It is retained -as implementation evidence, not as a drop-in binary or a conformance claim. - -`artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch` implements the 11 -mechanical proc-address candidates reported by the static Unreal audit. It -exposes the promoted GLES 3.2 core spellings (including `glTexBuffer` and -indexed blend) while reusing gfxstream's existing EXT/OES/IMG encoder opcodes. -The patch applies cleanly to `a9184fd` and its modified guest EGL translation -unit passes a standalone Clang syntax check. The later runtime probe showed the -shipped Android loader already resolves these aliases, so the patch is retained -as a rejected source-level prototype and should not be applied to this image. -It also could not create capabilities or shader stages in any case. - -The Android guest graphics libraries are also older than the host emulator: -the system image is build 13894323 from 2025-08, while the emulator backend is -build 15917651. The guest encoder's validation decisions depend on per-context -ES-version and extension flags, and those flags remain false in the failed -native run. Building only the macOS host backend cannot repair that side of the -contract. Current upstream guest source already understands the 3.2 -RenderControl token and ES 3.2 EGL context requests, which makes upgrading the -whole source-matched guest stack preferable to binary-patching the older image. - -Consequently, a real native implementation is not a small GLES wrapper. It -requires a source-matched Android guest encoder/EGL stack and host -ANGLE/gfxstream stack with the complete ES 3.1/3.2 contract, including shader, -texture-buffer, sync, gralloc/AHardwareBuffer, EGL surface, validation, dispatch, -and extension capability propagation. That is a separate renderer project, not -a safe launcher patch. - -## Current-path experiments - -All frame-pacing samples use semantic before/after gates, fresh Tocker's Trials -stages, active binary/profile hashes, and verified restoration of AVD config, -hardware config, process wrapper, and ASG backups. Screen candidates stop at -1-5; candidates that survived screening were repeated at 1-8. - -The nearest earlier paired control recorded 38.0 FPS / 34.01 ms p95 at 1-5 and -34.8 FPS / 34.51 ms p95 at 1-8. A later profiled control, after the autonomous -Trial driver was made deterministic enough to reach 1-8 reliably, recorded -40.4 FPS / 34.00 ms p95 at 1-5 and 29.2 FPS / 48.77 ms p95 at 1-8. Absolute -FPS varies with Trial composition, so promotion requires a repeatable gain in -both throughput and tail latency rather than a single favorable board. - -| Candidate | 1-5 result | 1-8 result | Decision | -| --- | --- | --- | --- | -| Large MoltenVK query pools off | 41.2 FPS / 33.54 ms p95 | 33.8 FPS / 35.46 ms p95 | Mixed: early gain, heavy-stage/tail regression | -| `VirtioGpuNext` | 39.2 / 34.72 | 31.8 / 44.74 | Reject | -| Max concurrent compilation | 38.6 / 34.27 | 33.4 / 35.76 | Reject | -| Guest submit inline, first full run | 39.3 / 34.55 | 31.7 / 45.54 | Apparent heavy-stage gain, required repeat | -| Guest submit inline, profiled repeat | 35.6 / 34.76 | 26.4 / 50.62 | Reject: gain did not reproduce; exposes RHI/MMIO latency | -| Forced guest submit thread | 38.4 / 34.91 | not promoted | Reject | -| No async composition | 39.6 / 34.36, 49.46 ms p99 | not promoted | Reject: worse tail | -| Explicitly disable native swapchain | 39.0 / 34.15, 51.20 ms max | not promoted | Neutral/worse tail | -| ASG flush 400 us | 39.5 / 35.02 | not promoted | Reject | -| ASG flush 1200 us | 36.6 / 37.10 | not promoted | Reject; 800 us remains local optimum | -| MoltenVK argument buffers on | 41.3 / 35.44, 48.43 ms p99 | not promoted | Reject: worse tail | -| Metal-event semaphores | 38.3 / 34.60 | not promoted | Reject | -| MoltenVK MTLHeap off | 39.9 / 34.21 | not promoted | Neutral | -| Prefill Metal command buffers | 35.8 / 35.19 | not promoted | Reject | -| ASG data ring 64 KiB | 39.6 / 35.17 | did not reach 1-8 | Reject/incomplete | -| ASG write step 32 KiB, profiled | 39.2 / 34.35 | 31.2 / 46.97 | Reject: no lower write cost, worse 1-5 tail | - -Two configuration findings are important even though they are not performance -wins: - -- `VulkanQueueSubmitWithCommands` is required. Two real-TFT cold boots with it - disabled aborted the emulator while decoding - `VK_STRUCTURE_TYPE_APPLICATION_INFO` before ADB was available. -- several apparent candidates were actual defaults and therefore no-ops: - MoltenVK argument buffers off and single-queue semaphore style 0. - -The fatal queue-submit profile, ignored virtual-queue profile, and both -confirmed MoltenVK no-op controls are excluded from the executable performance -candidate manifest. Their launcher diagnostics and negative findings remain -available for reproduction without allowing an unattended campaign to select -them. - -MoltenVK performance tracking/logging reached the host process but emitted no -useful per-frame performance stream in this packaged build; the diagnostic run -also introduced a 106.93 ms outlier. It is unsuitable as benchmark telemetry. - -### Paired guest and host profiles - -The profiled control (`20260811T002030Z__profile-performance-max-heavy__60232`) -made the residual boundary cost more specific: - -- guest `simpleperf` attributed 11.54% of samples to RHI-thread `writew`, 2.31% - to `ring_buffer_available_read`, and 1.94% to - `AddressSpaceStream::speculativeRead`; -- the host sample showed most gfxstream render threads sleeping in - `RingStream::readRaw`, with only sparse active decode stacks; -- several host stacks were waiting in `vkWaitForFences` through MoltenVK; -- the profile semantic gate and all rollback checks passed. - -This rules out a continuously saturated host decoder as the main explanation -for the guest ASG hotspot. The more likely cost is guest RHI serialization, -MMIO/kicks and readbacks, plus synchronization boundaries that intermittently -stall an otherwise underfed host consumer. - -The inline-submit repeat increased the guest sample share in `writew` to -14.22%, while the 32 KiB ASG step produced 13.07%. Neither reduced the -absolute frame cost repeatably. The on-demand submit thread and the 16 KiB -write step therefore remain the local optima: the thread hides some boundary -latency, while a larger packet step does not remove the relevant work. - -### Auth-independent transport probe - -After the Riot session expired, further match A/B runs could not be performed -without credentials. The scoped Keychain helper found no configured item and -stopped before reading or entering anything. To keep transport testing -independent of Riot state, Android Settings was exercised through the same -guest HWUI/ANGLE -> Vulkan -> ASG -> gfxstream -> MoltenVK stack. Each profile -used six steady-state rounds of 30 alternating scroll animations and Android -`gfxinfo` frame statistics. - -| Gfxstream gate | Mean series time | Warm p95 / p99 | Decision | -| --- | ---: | ---: | --- | -| OSFT control | 6.629 s | 9-11 / 11-13 ms | Control | -| `VulkanBatchedDescriptorSetUpdate` off | 6.627 s | 10 / 11-12 ms | Neutral; keep current default but claim no speedup | -| `VirtioGpuFenceContexts` off | 6.603 s final round | 10 / 12 ms | No benefit versus paired control 9 / 11 ms; reject | - -Emulator startup logs confirmed that the descriptor-batching and fence-context -gates changed the host gfxstream feature set. An earlier run labelled -`VulkanVirtualQueue` off is excluded: the emulator reports that guest use of -that flag is ignored, so it was not a valid feature A/B. - -A later narrow flush sweep used 12 rounds per run, discarded three warm-up -rounds, required at least 120 rendered frames per round, and aggregated valid -runs with `scripts/summarize-android-ui-transport.command`: - -| ASG draw flush | Valid/rejected runs | Warm rounds | Mean / median series | Worst p95 / p99 | Decision | -| --- | ---: | ---: | ---: | ---: | --- | -| 600 us | 2 / 0 | 18 | 6.668 / 6.656 s | 23 / 29 ms | Reject | -| 700 us | 1 / 0 | 9 | 6.783 / 6.750 s | 22 / 36 ms | Reject | -| 800 us | 3 / 0 | 27 | 6.637 / 6.631 s | 23 / 36 ms | Control | -| 850 us | 1 / 0 | 9 | 6.692 / 6.687 s | 10 / 13 ms | No throughput gain; reject | -| 900 us | 2 / 0 | 18 | 6.614 / 6.602 s | 22 / 31 ms | 0.34% mean shift is below run noise; do not promote | -| 1000 us | 1 / 1 | 9 | 6.967 / 6.700 s | 61 / 150 ms | Reject: severe tail and one non-rendering run | - -The rejected 1000 us repeat first stalled for about 98 seconds, then produced -zero new Settings frames even though input commands returned. The probe now -fails fast on such a non-rendering round instead of allowing stale `gfxinfo` -percentiles to look like a fast result. This is direct evidence that extending -the notification interval can cross a sharp pacing boundary rather than -providing monotonic batching gains. - -A previously untested 16 KiB ASG data ring was also worse: 6.728 s warm mean -and 6.728 s median, versus 6.637/6.631 s for the pooled 32 KiB control. Together -with the earlier 64/128 KiB results, 32 KiB remains the local data-ring optimum. - -A final guest-attested feature-gate sweep superseded the earlier label-only -comparison. It exercised Android Settings through HWUI `skiavk` at 2560x1440. -Each cold-booted profile used 12 rounds and discarded the first three. Before -measurement, the probe required the requested profile to equal -`ro.boot.mactician.graphics_profile`; it also recorded the actual ASG transport -and HWUI renderer. Four OSFT controls were interleaved with the candidates, and -the two signals closest to useful (`no-fence` and `no-batching`) were repeated. - -| Vulkan/gfxstream profile | Valid runs / warm rounds | Warm mean / median | Mean delta vs pooled control | Worst p95 / p99 | Janky frames | Decision | -| --- | ---: | ---: | ---: | ---: | ---: | --- | -| OSFT control | 4 / 36 | 6.728 / 6.706 s | control | 21 / 73 ms | 43 | Keep | -| `AsyncComposeSupport` off | 1 / 9 | 6.837 / 6.846 s | +1.62% | 22 / 61 ms | 10 | Reject: slower | -| `VirtioGpuFenceContexts` off | 2 / 18 | 6.737 / 6.712 s | +0.13% | 23 / 69 ms | 16 | Neutral; no transport win | -| `VulkanBatchedDescriptorSetUpdate` off | 2 / 18 | 6.819 / 6.830 s | +1.35% | 23 / 65 ms | 14 | Reject: repeatable latency regression | -| Native-swapchain profile off | 1 / 9 | 6.795 / 6.754 s | +0.99% | 22 / 57 ms | 10 | Reject: no gain | - -The four control means ranged from 6.700 to 6.766 s. The pooled no-fence mean -was only 9 ms slower than control, well inside that 66 ms run-to-run spread; -its first favorable median did not reproduce. Disabling batching produced -fewer counted janky frames per round, but both runs had worse latency and the -worst p95 was not improved. Max-tail comparisons are also biased against the -control because it contains twice to four times as many rounds. No candidate -therefore meets a throughput-plus-tail promotion gate. Every run restored the -known AVD configuration and hardware hashes after shutdown. - -The exact per-run and pooled values are retained in -`artifacts/android-ui-transport-attested-20260811.json`; the larger raw -`gfxinfo` captures remain local runtime evidence. - -The measurement directory labelled -`feature-vulkan-no-queue-submit-commands-a` is excluded from the table. A -subsequent exact cold-boot repeat confirmed the earlier fatal failure before -ADB, so the Settings probe could not have run on that candidate AVD. It most -likely attached to a still-running control instance; its timing is invalid -evidence rather than a neutral feature result. - -The last row is a profile-level result: disabling native swapchain also made -the emulator disable Vulkan composition and `GuestVulkanOnly`, and enabled the -host GLES translator. It therefore proves that the current combined profile is -valuable, but does not isolate one implementation mechanism. The emulator also -reported that `VulkanVirtualQueue` is ignored on every boot, so it was not -misrepresented as a live A/B candidate. - -The probe's earlier `transport: pipe` field is the boot transport property, not -proof that HWUI used GLES. Host logs created Vulkan instances for `android -framework` in these runs. Schema 4 records `debug.hwui.renderer` explicitly as -`hwui_renderer` and requires the requested launcher graphics profile to match -the boot-attested `ro.boot.mactician.graphics_profile`. The attested sweep above -also fixed density at 320 dpi in its launch orchestrator and retained that -invariant in the result artifact. Schema 5 additionally reads `wm density` -inside the guest. The aggregator partitions otherwise identical label groups -by attested profile, active display and density, transport, and HWUI renderer; -legacy summaries without density are marked `legacy-unknown` rather than -silently pooled with new evidence. -Fail-fast Settings-launch, `gfxinfo` parse, and non-rendering failures also -write a schema-5 summary with `rejected_reason`, so failed candidates remain -visible in aggregate valid/rejected counts instead of disappearing as partial -directories. - -Both schema-5 paths were cold-boot validated after implementation. A one-round -OSFT control recorded `display_density: 320` and aggregated as 1 valid / 0 -rejected. A deliberately impossible 999999-frame minimum stopped after its -first rendered round, recorded `non_rendering_round_1`, and aggregated as 0 -valid / 1 rejected with null performance metrics. Both runs stopped QEMU and -restored the exact baseline AVD hashes. - -### AEMU extension-policy control - -The packaged emulator contains an -`androidboot.hardware.aemu_feature_overrides_disabled` list covering several -GLES extensions, including texture buffers, indexed draw buffers, geometry, -tessellation, shader I/O blocks, and base-vertex draws. Two reversible cold-boot -controls tested whether that policy was suppressing capabilities which guest -ANGLE could otherwise use: one removed only `textureBufferEXT`, and one supplied -an empty list. - -The standalone guest EGL probe was not a valid endpoint for this comparison: it -crashed during `eglInitialize` on the normal control as well as both modified -boots. The real TFT process was therefore used as the functional endpoint. All -three profiles reached the running game process, created the main ANGLE/Vulkan -context and four PSO-service contexts, and remained alive without a validation -or renderer crash. Their one-sample cold-start times were 1219 ms for the normal -policy, 1317 ms with only `textureBufferEXT` removed, and 1468 ms with the whole -list cleared. These samples are too few for a performance claim, but neither -modified profile produced a candidate-sized improvement. - -More importantly, `dumpsys gpu` reported the same TFT contract for the normal -and fully cleared profiles: Vulkan API `0x401000`, device-feature mask -`0x400b3fbeff3eef`, and identical instance- and device-extension hash lists. -Both created GLES, Vulkan-device, and Vulkan-swapchain state through ANGLE. This -policy is therefore not a hidden shortcut around guest ANGLE or the Vulkan -transport, and no change is promoted. A future test would need an in-package -capability probe plus a full authenticated-match A/B before revisiting it. - -The remaining hidden features are not useful macOS transport shortcuts in this -binary. Upstream and bundled-backend inspection show that `ExternalBlob` -explicitly aborts with MoltenVK/external-memory-metal; `SystemBlob` depends on -it and is marked Windows-only; host-visible udmabuf requires Linux kernel -support; and the coherent-memory gates add flushes for compatibility. -`VulkanExternalSync` exports FD/Win32 fence handles and does not provide a -Metal-native synchronization path here. - -## Bottleneck assessment - -The evidence supports the following confidence levels: - -- **High:** the limiting class is graphics command generation/submission, - guest-host transport, and downstream synchronization/consumption. -- **Medium:** repeated fence/queue boundaries and scene-dependent RHI work are - more important than raw ASG byte bandwidth alone. -- **Low:** any one currently exposed ANGLE, gfxstream, or MoltenVK flag can - deliver the roughly 2x improvement needed for 57 FPS in the heavy scene. - -The reasons are: - -1. ASG versus pipe remains the largest accepted transport improvement, proving - that the boundary matters. -2. A 16 KiB ASG write step and fewer FBO-boundary submits help, proving that - packetization/submission frequency matters. -3. Larger rings, shorter/longer flushes, queue/semaphore modes, and multiple - MoltenVK scheduling flags are neutral or worse, so the residual bottleneck - is not a single exposed buffer-size knob. -4. FPS drops materially as the board becomes more complex while resolution - scaling is comparatively weak, which implicates command/RHI and - synchronization work more than fill rate. -5. Guest profiles contain `AddressSpaceStream` reads/writes and gfxstream - descriptor work on the RHI thread, while the matching host render threads - are predominantly waiting for input rather than saturated by decode. -6. Disabling fence contexts, virtual queues, or descriptor batching does not - improve an auth-independent steady-state render probe, so the residual cost - is not one exposed gfxstream bookkeeping switch. - -## Implementation alternatives - -### 1. Keep and instrument the current path - -This is the only low-risk near-term choice. Keep the verified Performance Max -stack and instrument both sides of gfxstream before source patches. Required -measurements are writes and bytes per frame, write-size distribution, ring wait -time, kicks, Vulkan submits/fences, host decoder queue/decode time, MoltenVK -submit/completion time, and Metal GPU busy/idle time. - -Only then choose between command coalescing, adaptive kicks, descriptor/state -reduction, or host decoder changes. Removing notifications blindly is already -known to destroy pacing. - -### 2. Build a source-matched GLES 3.2 host renderer - -This remains the highest-upside Android architecture, but its minimum scope is: - -- build current ANGLE Metal with verified ES 3.2 contexts on macOS; -- integrate that ANGLE revision with a source-matched gfxstream host backend; -- build and ship the matching Android guest EGL/GLES encoder libraries or a - matching system image; -- propagate RenderControl caps and guest-advertised ES 3.2 capabilities; -- validate texture buffers, compute, geometry/tessellation, sync, surfaces, - AHardwareBuffer/gralloc, WebView, login, and a full match; -- measure GLES protocol call volume and ASG backpressure against Vulkan. - -This should be a separate R&D branch with conformance-style probes. It is not -appropriate to advertise ES 3.2 in the current binary stack. - -### 3. Direct Unreal Vulkan - -This removes guest ANGLE but retains Vulkan gfxstream, ASG, MoltenVK, and Metal. -The current Shipping APK disables Vulkan RHI and may lack cooked Vulkan shaders -or PSO data. It is viable only with a Riot build that officially enables the -Vulkan renderer; patching a runtime check is insufficient. - -### 4. Native iOS/iPadOS PBE on Apple Silicon - -This removes the entire Android VM graphics boundary and has the highest -performance ceiling. It depends on Riot/TestFlight availability and permission -to run that build on Apple Silicon macOS, so it is strategically attractive but -not controlled by this project. - -### 5. Physical mobile renderer plus streaming - -Run TFT on a phone/tablet, use hardware video encode, and forward input from the -Mac. This trades a separate device and video/input latency for a much simpler -performance model. Unlike scrcpy inside the emulator, encoding does not compete -with TFT in the same VM. - -### 6. Replace the VM shell - -Moving to Virtualization.framework, crosvm, or another VM shell does not by -itself supply Android-to-Metal GPU passthrough. A virtio-gpu/gfxstream-like -protocol, guest driver, gralloc/HWC integration, and host renderer are still -required. This is high cost with low confidence of removing the measured -bottleneck and is not a priority. - -## Recommendation - -Do not promote a spoofed native GLES mode. Keep the current supported stack and -promote only full 1-5/1-8 A/B wins with tail-latency and rollback gates. In -parallel, scope the source-matched GLES 3.2 renderer as an independent project; -its first milestone is an ES 3.2 host ANGLE probe that passes real texture-buffer, -compute, sync, and surface tests before any TFT launch attempt. - -## Upstream references - -- gfxstream source: -- ANGLE platform and feature EGL extensions: - -- MoltenVK runtime configuration: - diff --git a/docs/releasing.md b/docs/releasing.md index 05d694c..11f73cf 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -1,141 +1,45 @@ -# Releasing +# Releasing TFTMAC -The current metadata is Mactician version 1.0.4, build 40. Version and build -numbers live in `launcher/Info.plist` and the matching emulator-host plist. -Release notes live under `launcher/Resources/release-notes/` using the short -version as the filename. +TFTMAC releases are native macOS application builds. The release process does not publish or redistribute Riot application packages. ## Release identity -Do not casually change: - -- app bundle ID `dev.sergeinaumov.mactician`; -- game-host bundle ID `dev.sergeinaumov.mactician.game-host`; -- app name and executable `Mactician`; -- Application Support and DMG volume name `Mactician`; -- Sparkle feed `https://sergeinaumov.dev/mactician/updates/appcast.xml`; -- pinned Sparkle Ed25519 public key in `launcher/Info.plist`; -- UserDefaults domain and Keychain service `dev.sergeinaumov.mactician`; -- Android package ID, release-manifest hashes, or the `Android_Codex` device - profile identifier. - -These are the only current product identifiers. No old feed, local-data path, -redirect, alias, or compatibility wrapper is part of the release. - -## Prepare metadata - -1. Update `CFBundleShortVersionString` and monotonically increase - `CFBundleVersion` in both plist files. -2. Add matching Markdown release notes. -3. Update the `Unreleased` section in `CHANGELOG.md`. -4. Update the release manifest only when a pinned Android/game input changes; - verify size, origin, and hash independently. -5. Run the full fast validation and review `git diff --check`. - -## Build the current ad-hoc artifact - -```sh -PROJECT_DIR="$PWD" -TFT_GAME_APK_DIR="$PROJECT_DIR/private/tft-pbe-apks" \ - ./scripts/build-mactician.command +```text +Application: TFTMAC +Bundle ID: com.flashls1.tftmac +Architecture: arm64 +Minimum macOS: 15.0 ``` -The v1 build signs nested code and the app with an ad-hoc identity and verifies -the final app and disk image. It is not Apple-notarized, and users must approve -the first launch through System Settings → Privacy & Security → Open Anyway. -The same pipeline can use Developer ID, hardened runtime, notarization, and a -stapled ticket in a future release. No production upload occurs in this step. +The working Android SDK/AVD is runtime state outside the application bundle and repository. -Keep the notarization profile, Developer ID private key, Apple credentials, and -Sparkle private Ed25519 key in Keychain. Never pass secret values as committed -arguments or defaults. +## Pre-release validation -## Generate the appcast - -Exercise generation without upload: +Run on the exact release commit: ```sh -: "${MACTICIAN_SPARKLE_ACCOUNT:?Set MACTICIAN_SPARKLE_ACCOUNT in the environment}" -./scripts/publish-mactician-update.command --prepare-only +/bin/zsh scripts/verify-tftmac.command ``` -This copies the DMG and release notes to versioned names, generates Ed25519 -enclosure signatures and deltas, validates XML, and requires an `edSignature`. -Prepare-only never uploads files. - -## Publish +Also verify that the frozen EmulatorController protocol still matches the intended stock emulator authority and that no private runtime artifacts are tracked. -Production-specific destinations have no secret or machine-specific defaults: +## Package authority -```sh -: "${MACTICIAN_SPARKLE_ACCOUNT:?Set MACTICIAN_SPARKLE_ACCOUNT in the environment}" -: "${MACTICIAN_UPDATE_SSH_TARGET:?Set MACTICIAN_UPDATE_SSH_TARGET in the environment}" -: "${MACTICIAN_UPDATE_SSH_PORT:?Set MACTICIAN_UPDATE_SSH_PORT in the environment}" -: "${MACTICIAN_UPDATE_REMOTE_ROOT:?Set MACTICIAN_UPDATE_REMOTE_ROOT in the environment}" -./scripts/publish-mactician-update.command --allow-adhoc -``` +The application does not package or publish TFT APKs. The supported Android package is `com.riotgames.league.teamfighttactics`, installed and updated through `com.android.vending`. Riot owns its own content initialization after launch. -Optional public settings are `MACTICIAN_UPDATE_BASE_URL`, -`MACTICIAN_UPDATE_PRODUCT_URL`, `MACTICIAN_UPDATE_WORKDIR`, `MACTICIAN_APP`, -`MACTICIAN_DMG`, and `MACTICIAN_RELEASE_NOTES`. +## Signing -The publisher verifies the ad-hoc app and DMG, uploads immutable versioned -artifacts first, uploads the next appcast under a temporary name, then atomically -moves the appcast into place last. Never overwrite an already published -versioned DMG with different bytes. +Local development builds are ad-hoc signed. A public distribution may later use the project's Apple Developer identity, hardened runtime, notarization, and stapling through a separately approved release configuration. Credentials and signing secrets never belong in Git. -`--allow-adhoc` accepts only a valid ad-hoc-signed app, verifies the DMG, and -still requires the Sparkle Ed25519 signature. +## Release evidence -## Publish a TFT PBE game update +Retain compact evidence for: -Game releases use a separate signed manifest and do not require a new Mactician -build. Put the complete official split APK set in one directory and run: - -```sh -: "${MACTICIAN_GAME_APK_DIR:?Set the split APK directory}" -: "${MACTICIAN_GAME_VERSION:?Set the Android version name}" -: "${MACTICIAN_GAME_VERSION_CODE:?Set the Android version code}" -./scripts/publish-game-update.command --prepare-only -``` +- exact source commit; +- native build/test result; +- bundle identity; +- stock emulator/protocol authority; +- package/installer identity when runtime acceptance is part of the release; +- acceptance result and rollback state. -Review the generated payload and APK hashes. To publish, set -`MACTICIAN_UPDATE_SSH_TARGET` and `MACTICIAN_UPDATE_REMOTE_ROOT`, then rerun -without `--prepare-only`. `MACTICIAN_GAME_SIGNING_ACCOUNT` defaults to the -dedicated `mactician-game-updates` Keychain account. - -The publisher uploads immutable APK files before atomically replacing the -signed `game/manifest.json`. Never publish an incomplete split set, reuse a -release URL for different bytes, or roll the version code backwards. - -## Make the repository public - -The canonical repository is `https://github.com/tweet9ra/mactician`. Before -changing its visibility, run `./scripts/verify-repository.command`, the complete -test suite, and the secret/history scan on the exact commit that will become -public. Confirm that the repository contains no ignored build inputs, release -artifacts, credentials, signing material, or local experiment output. - -Apply the description, homepage, topics, and social preview recorded in -`.github/repository-metadata.yml`. Enable Issues and GitHub Private Vulnerability -Reporting, then verify the public Source, Issues, Security, and Releases pages in -a signed-out browser. Protect the default branch against force pushes once the -initial public commit is final. - -Create an immutable `v1.0.0` tag and GitHub release only after the corresponding -DMG and release notes are final. Publish the SHA-256 shown on the product page -with the release, upload the self-hosted Sparkle files, and publish the appcast -last. Repository settings, visibility changes, tags, releases, and uploads are -separate external actions. - -## Validation and rollback - -Before announcing a release, install the DMG on another supported Mac, verify -Gatekeeper assessment, install/update flow, Sparkle signature verification, -runtime-state preservation, first launch, Repair, stop/rollback, and a manual -update check. - -If a release is defective, stop advertising it or publish a higher, fixed -version. Do not reuse a version/build number or rotate the Ed25519 key as an -incident shortcut. A compromised private key requires an explicit security -response. +Do not retain giant generated build trees as release authority. diff --git a/docs/reproducibility.md b/docs/reproducibility.md index cef86c8..21670ad 100644 --- a/docs/reproducibility.md +++ b/docs/reproducibility.md @@ -1,86 +1,38 @@ # Reproducibility -This project distinguishes source declarations, release inputs, and mutable -runtime state. A reproducible source checkout does not contain the game -packages, downloaded Android runtime, AVD userdata, or signing credentials. +TFTMAC separates versioned source authority from mutable runtime state. -## Pinned release inputs +## Versioned authority -| Input | Version/build | SHA-256 | -| --- | --- | --- | -| Android Platform Tools | 36.0.2 | `106a5d31fad8c1c0c5a180d06f5779767d129d7d5edbe629005c11a85eec5b4b` | -| Android Emulator | 37.1.11 / 15917651 | `22530de9363f34ea945ecb5cad74523abd4b615f27f3c1a9899efb183ea9e144` | -| Google APIs ARM64 system image | Android 36 revision 7 | `fb47d861d6f87230ee0fe70f610d579935ca77f41a0eefbf391595d3dc4b5ee2` | -| Sparkle | 2.9.4 | `ce89daf967db1e1893ed3ebd67575ed82d3902563e3191ca92aaec9164fbdef9` | +The repository retains: -The game release is `18.1-5212127`, package -`com.riotgames.league.teamfighttactics.pbe`. The four split names, sizes, and -SHA-256 values are in `launcher/Resources/release-manifest.json`; the APK bytes -are deliberately absent from Git. +- native Xcode project and source; +- tests and validation scripts; +- `Package.resolved`; +- the exact installed EmulatorController protocol snapshot; +- compact runtime/performance evidence and relational SSOT data. -The current release manifest itself hashes to: +The current protocol authority is recorded in `Vendor/AndroidEmulator/SOURCE.json` and must match `Vendor/AndroidEmulator/emulator_controller.proto` byte-for-byte. -```text -02cf1042cdc119ed22f8ee4ea3ab5fb5448e600445f176c787e98770dc96470e launcher/Resources/release-manifest.json -``` - -## Active profile hashes - -The retained profile identifiers are compatibility-sensitive because the -Shipping game command line selects `DeviceProfile=Android_Codex`. - -```text -c9c84bec09e60d2ee965f91ef0b7b1eb687521527e478e3df5054f779137c42b artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.ini -3479ffb5482b7e8d79d04627de4ffe052d9f7b9078f4107a690a575db87bea99 artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.shader-prewarm.ini -5ab532b82e2706898d66b4325f880e0ab52982be36e70577a7a6f4aa12d2f8fa artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.performance-max.ini -183d2196f3b79fdcff1d433480e803322c1b580bfaf117991e7229c2754002b5 artifacts/tft-pbe-18.1-5212127-angle-opengl/Android_Codex.DeviceProfiles.no-frame-ahead.ini -e92e08b1f1f62b463cdbb43a522929a1cee66145b1abcf7380749e16f93ff451 artifacts/tft-pbe-18.1-5212127-direct-vulkan/Android_Codex.DeviceProfiles.ini -``` - -Other experiment profiles remain in `artifacts/` and can be hashed directly -with `shasum -a 256`; documentation does not pin hashes for inactive files. +## Mutable runtime state -## Three manifests/states +The repository does not contain: -- **Source manifest:** the committed JSON records downloadable Android - components, game split metadata, disk requirement, and UI launch profiles. -- **Release manifest:** the copy embedded in a built app. The build copies it - byte-for-byte and verifies every private game input before packaging. -- **Runtime state:** `install-state.json` in Application Support records what was - successfully installed on one Mac. It is mutable, private, and never a source - of release hashes. +- Google/Riot credentials or tokens; +- AVD userdata; +- Riot APKs or application data; +- SDK/runtime disk images; +- private session state; +- generated native build products. -The runtime also generates effective AVD configuration, downloaded package -`source.properties`, overlay hashes, and rollback sidecars. Those values prove a -specific run; they are not committed build inputs. +The normal runtime root is `/Volumes/MAC MINI M4/TFTMAC/Runtime`. -## Verify an environment +## Verification ```sh -./scripts/verify-repository.command -./scripts/test-mactician.command -./scripts/verify-environment.sh -./run-tft-best-verified.command --print-config +/bin/zsh scripts/verify-tftmac.command ``` -For an accepted benchmark, retain the effective display/density, graphics flags, -APK/profile/runtime hashes, power/thermal state, semantic before/after gates, -frame summary, and cleanup/rollback result. `--print-config` is read-only and -shows the recommended source profile without starting the emulator. - -## Release verification - -After building, compare the embedded manifest to the source, verify nested code -signatures, and hash the DMG: - -```sh -cmp launcher/Resources/release-manifest.json \ - "dist/Mactician.app/Contents/Resources/release-manifest.json" -codesign --verify --deep --strict --verbose=2 "dist/Mactician.app" -shasum -a 256 "dist/Mactician-1.0.0.dmg" -``` +For runtime acceptance, retain the exact emulator version, AVD identity, package version/code, installer authority, signer evidence, selected runtime profile, and compact telemetry/capture hashes used for the decision. -A public build additionally requires the Developer ID authority, notarization -acceptance, and a stapled ticket. Rebuilding a DMG can change container bytes; -published versioned artifacts are therefore immutable rather than assumed to be -bit-for-bit reproducible across machines. +Performance claims require the same workload and configuration on both sides of an A/B comparison. Promising results are cold-confirmed before promotion. diff --git a/docs/telemetry.md b/docs/telemetry.md index 74ed7f4..03e111d 100644 --- a/docs/telemetry.md +++ b/docs/telemetry.md @@ -1,102 +1,36 @@ -# Telemetry and privacy +# TFTMAC Telemetry and Diagnostics -Mactician has two independent telemetry levels. The term "unlinkable" here -means that the JSON has no stable identifier with which to connect events. That -reduces privacy risk but does not by itself determine consent requirements in -every jurisdiction. +TFTMAC diagnostics are local-first and evidence-driven. -## Basic first-session event +## Raw-first capture -After the first session that reached the runtime `ready` state has ended, -Mactician sends `first_game_session` once per retained macOS preferences domain: +High-rate frame/runtime evidence is written append-only during capture. Normalization into SQLite or other derived analysis happens after capture so database writes do not perturb the measured workload. -```json -{ - "schema_version": 2, - "event_id": "random-uuid", - "event": "first_game_session", - "occurred_on": "2026-08-09", - "duration_bucket": "30_60m", - "launcher_version": "1.0.0", - "launcher_build": "33" -} -``` +Useful evidence may include: -Allowed buckets are `under_5m`, `5_15m`, `15_30m`, `30_60m`, `60_120m`, -`120_240m`, and `over_240m`. The event does not contain an installation or -device identifier, exact duration/time, device properties, launcher settings, -language, identity, logs, or network addresses. +- host monotonic timestamps; +- emulator/runtime state; +- filtered logcat/emulator output; +- SurfaceFlinger frame timing; +- host CPU/RSS/memory-pressure samples; +- renderer/graphics state; +- package version, installer, and signer evidence; +- explicit user stutter markers. -The pending event is written to `telemetry.firstSession.pending.v2` before the -request. A retry reuses its original `event_id`. HTTP 2xx or a duplicate -acknowledgement completes it; 408, 429, 5xx, and network failures retain it. An -unrecoverable 4xx is terminal. A pending event older than seven days is deleted -without replacement. Resetting Android/TFT data does not change this state. +## Retention -The server aggregates the event immediately by received date, launcher -version/build, and duration bucket. The dashboard name is **Approximate -activated installations**. It is approximate because macOS accounts can count -separately, clearing preferences or reinstalling can count again, installs with -no completed session are absent, and an event can expire during extended -offline use. It must not be labelled `unique_users`, `people`, or `MAU`. +Keep only evidence that protects a current product decision: -## Optional extended diagnostics +- latest successful playable baseline; +- latest native-app acceptance capture; +- current package-authority evidence; +- current promoted A/B evidence; +- current unresolved crash/failure capture. -Extended diagnostics are created and sent only when -`telemetry.extendedConsent.state.v1` is `granted` for consent version 1. -`unknown` and `denied` both prohibit creation and transmission. +Superseded runs should be compacted to their session ID, configuration hash, verdict, key metrics, and relevant source hashes before raw bulk is removed. -Each completed session then sends an independent event: +## Privacy -```json -{ - "schema_version": 2, - "event_id": "random-uuid", - "event": "game_session_diagnostics", - "occurred_at": "2026-08-09T12:34:56Z", - "duration_seconds": 2871, - "launcher_version": "1.0.0", - "launcher_build": "33", - "consent_version": 1, - "launcher_settings": { - "profile_id": "quality", - "effects_quality_id": "performance", - "display_width": 2560, - "display_height": 1440, - "display_density": 416, - "ui_scale_percent": 100, - "guest_memory_mb": 8192, - "guest_cpu_cores": 6 - }, - "device": { - "model_identifier": "Mac16,1", - "macos_version": "26.0.0", - "physical_memory_mb": 32768, - "logical_cpu_count": 10 - } -} -``` +Diagnostics must not intentionally capture or publish Google/Riot credentials, tokens, cookies, account identifiers, private Android userdata, or unrelated application data. Sanitize any excerpt before sharing it. -It never contains an installation ID, Mac name, serial number, MAC address, -Apple ID, macOS username, Riot ID, IP field, application list, or game logs. -Turning diagnostics off immediately stops event creation and deletes the entire -local diagnostic queue; it does not affect the pending basic event. A change to -the diagnostic field set increments `consent_version` and invalidates prior -consent. - -## Server retention and processing - -The API strictly rejects unknown fields and out-of-range values, bounds request -size, and deduplicates by `event_id`. It does not persist source IP or -User-Agent and never logs an invalid request body. Client addresses exist only -in the in-memory rate limiter with a short TTL. - -Basic payloads are not retained as raw events. Their aggregates are retained; -only SHA-256 event-ID hashes remain for deduplication and expire after 14 days. -Raw extended diagnostic events are retained for 90 days. Longer-lived -aggregates must avoid small identifiable cohorts. - -The release order is server compatibility, schema-v2 verification, public -privacy-policy publication, then the launcher update. No legacy event contract -is retained because the previous API and its data belonged only to the local -pre-release laboratory. +No remote telemetry service is required for the current TFTMAC runtime or acceptance path. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 5d263a0..b127559 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -1,97 +1,33 @@ -# Troubleshooting +# TFTMAC Troubleshooting -Use the launcher's recovery actions before manually changing AVD files. Keep -diagnostics narrow and sanitized. +Use TFTMAC's verified runtime controls and diagnostics before changing protected AVD/runtime state manually. -## Installation does not complete +## Native build fails -Check available disk space and Internet access, then retry. Partial component -downloads are resumable. **Repair Installation** rechecks the host, manifest, -component layout, hashes, runtime template, AVD, and game installation without -clearing an otherwise valid AVD. +Run: -The launcher log is under -`$HOME/Library/Application Support/Mactician/logs/launcher.log`. -Share only the small section around the error after removing home paths, -identifiers, and unrelated output. +```sh +/bin/zsh scripts/verify-tftmac.command +``` -## Component hash verification fails +Repair only the reported source, dependency, protocol, or test failure. Do not recreate the retired source-built emulator laboratory as a generic repair step. -Do not edit the expected hash. Remove only the named incomplete archive from -the launcher's `downloads/` directory and retry on a trusted network. A repeat -failure can mean an upstream archive changed; that requires a reviewed manifest -update, not a local bypass. +## Stock emulator does not start -For build-time APK mismatches, confirm `TFT_GAME_APK_DIR` contains the exact -four pinned, unmodified splits listed in `release-manifest.json`. +Verify that `/Volumes/MAC MINI M4/TFTMAC/Runtime` is mounted and that its SDK and AVD are intact. Do not silently create a replacement runtime on the internal disk. -## Emulator does not start +## Google Play or TFT requires authentication -- Confirm the Mac is Apple Silicon, macOS is 12.0 or later, and Hypervisor - Framework is available. -- Run `./scripts/verify-environment.sh` for the source-tree runtime. -- Set `TFT_ANDROID_SDK_ROOT`, `ANDROID_SDK_ROOT`, or `ANDROID_HOME` when the SDK - is outside the standard macOS directory. -- Set `TFT_AVD_HOME` and `TFT_AVD_NAME` when using an external source-tree AVD. -- Use **Repair Installation** for missing launcher-managed components. -- Use **Reset** only when the launcher reports corrupted AVD state and preserving - Riot/game state is less important than recreating the AVD. +Complete sign-in, MFA, consent, or CAPTCHA through the official Android/Google/Riot UI. Do not automate around those gates. -## Another emulator process is running +## TFT package is missing or stale -Close other Android Emulator or PlayDroid/OSFT virtual machines before launch or -provisioning. The project isolates its ADB server on port 5038, but simultaneous -VMs still compete for host CPU/GPU and can mutate shared expectations. Do not -kill an unrelated process unless you have identified it. +Use the official Google Play path. Confirm the package is `com.riotgames.league.teamfighttactics` and the installer is `com.android.vending`. Do not use third-party APK mirrors, repackaging, re-signing, or binary patching. -## TFT restarts inside the AVD +## Performance is poor -The launcher keeps the verified APK and device-profile overlays mounted for the -whole AVD session so a Riot disconnect or TFT process restart retains the -selected graphics path. UI scale and game locale are applied during launcher -startup; if an independent restart does not retain the intended presentation, -close the emulator and press Play again. - -## Hotkeys do not work - -Grant Accessibility permission to **Mactician**, not the emulator, in -System Settings. The bridge retries after permission is granted. Hotkeys are -deliberately inactive outside TFT's exact `GameActivity`; the official Riot -login WebView and unknown activities pass input through unchanged. - -## Repair versus Reset - -**Repair Installation** preserves the AVD, Riot sign-in, game assets, and -preferences while re-verifying and refreshing launcher-owned pieces. - -**Reset** removes the entire Application Support directory, including the AVD, -Riot sign-in, game data, downloads, state, and logs. It cannot be undone by the -launcher. - -## Streaming-install cache is damaged - -An interrupted public asset download can leave a zero-byte -`StreamingInstalls/Metadata.manifest`. The runtime detects exactly this case and -removes only `StreamingInstalls` so TFT can download public assets again. It -does not clear Riot sign-in or other app data. Use Repair to refresh this logic -on an existing installation. - -## Pinned game version does not match - -The launcher intentionally refuses to mount an OpenGL overlay over an unknown -`base.apk`. Install a launcher release built for the new TFT version. Do not -replace hashes or patch the installed APK to force compatibility. - -## Update check fails - -Confirm Internet access and system time, then retry **Check for Updates…**. Do -not disable Ed25519 verification or replace the appcast URL. If the feed is -temporarily unavailable, the installed launcher remains usable; updates are not -automatic without confirmation. +Use the existing raw-first capture tooling. Compare one variable at a time against the accepted baseline and cold-confirm any improvement before keeping it. Medium / 60 / Performance OFF is the current known playable configuration; Ultra High is a known rejected configuration on the target M4 host. ## Safe diagnostics -Prefer launcher status, `wm size`, `wm density`, filtered process lists, -`dumpsys input`, `dumpsys display`, `dumpsys gfxinfo`, and short, purpose-built -captures. Never post complete game logs, AVD images, `/data/anr` archives, -Keychain output, cookies, tokens, credentials, or unfiltered crash memory. +Prefer bounded process/runtime state, SurfaceFlinger metrics, filtered logs, package metadata, and purpose-built captures. Never share complete game logs, AVD images, credentials, tokens, Keychain output, cookies, or unfiltered crash memory. diff --git a/run-tft-root-affinity.command b/run-tft-root-affinity.command deleted file mode 100755 index fd25026..0000000 --- a/run-tft-root-affinity.command +++ /dev/null @@ -1,1489 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -unsetopt BG_NICE - -readonly PROJECT_DIR="${0:A:h}" -source "$PROJECT_DIR/scripts/android-environment.sh" -readonly ADB_SERVER_PORT="${TFT_ADB_SERVER_PORT:-5038}" -SDK_ROOT="$(tft_resolve_android_sdk_root)" -readonly SDK_ROOT -EMULATOR="$(tft_resolve_emulator)" -readonly EMULATOR -ADB="$(tft_resolve_adb)" -readonly ADB -readonly AVD_HOME="${TFT_ROOT_AVD_HOME:-$(tft_resolve_avd_home)}" -readonly AVD_NAME="${TFT_AVD_NAME:-TftRootAffinity}" -readonly AVD_LOCK_FILE="$AVD_HOME/$AVD_NAME.avd/.mactician-avd.lock" -readonly INHERITED_AVD_LOCK_OWNER="${TFT_AVD_LOCK_OWNER_PID:-}" -readonly SERIAL="${TFT_SERIAL:-emulator-5582}" -readonly EMULATOR_PORT="${TFT_EMULATOR_PORT:-${SERIAL#emulator-}}" -readonly BOOT_TIMEOUT_SECONDS="${TFT_BOOT_TIMEOUT_SECONDS:-120}" -readonly PACKAGE="com.riotgames.league.teamfighttactics.pbe" -readonly ACTIVITY="com.epicgames.unreal.SplashActivity" -readonly ANGLE_BASE_FEATURES="exposeNonConformantExtensionsAndVersions:exposeES32ForTesting" -readonly ANGLE_EXTRA_FEATURES="${TFT_ANGLE_EXTRA_FEATURES:-}" -readonly ANGLE_DISABLED_FEATURES="${TFT_ANGLE_DISABLED_FEATURES:-}" -readonly BATCHED_DESCRIPTORS="${TFT_VULKAN_BATCHED_DESCRIPTORS:-0}" -readonly MVK_QUEUE_MODE="${TFT_MVK_QUEUE_MODE:-default}" -readonly MACOS_GAME_MODE="${TFT_MACOS_GAME_MODE:-0}" -readonly VIRTIO_GPU_NATIVE_SYNC="${TFT_VIRTIO_GPU_NATIVE_SYNC:-0}" -readonly VIRTIO_GPU_NEXT="${TFT_VIRTIO_GPU_NEXT:-0}" -readonly GL_DRAW_FLUSH_INTERVAL="${TFT_GL_DRAW_FLUSH_INTERVAL:-}" -readonly HWUI_RENDERER="${TFT_HWUI_RENDERER:-skiagl}" -readonly GRAPHICS_PROFILE="${TFT_GRAPHICS_PROFILE:-stable}" -readonly DISPLAY_SIZE="${TFT_DISPLAY_SIZE:-1600x900}" -readonly DISPLAY_DENSITY="${TFT_DISPLAY_DENSITY:-260}" -readonly UI_SCALE="${TFT_UI_SCALE:-1.0}" -readonly CPU_CORES="${TFT_CPU_CORES:-7}" -readonly MEMORY_MB="${TFT_MEMORY_MB:-6144}" -readonly GAME_LANGUAGE="${TFT_GAME_LANGUAGE:-en-US}" -readonly AUDIO_ENABLED="${TFT_AUDIO_ENABLED:-1}" -readonly RENDERER="${TFT_RENDERER:-angle}" -readonly HOST_GPU="${TFT_HOST_GPU:-host}" -readonly GUEST_GL_DRIVER="${TFT_GUEST_GL_DRIVER:-angle}" -readonly GUEST_SUBMIT_THREAD="${TFT_GUEST_SUBMIT_THREAD:-default}" -readonly PACKAGED_EMULATOR_APP="$PROJECT_DIR/Mactician Game Host.app" -readonly GAME_MODE_APP="$PROJECT_DIR/tools/Mactician Game Host.app" -readonly INPUT_BRIDGE_ENABLED="${TFT_INPUT_BRIDGE_ENABLED:-1}" -readonly INPUT_DIAGNOSTICS="${TFT_INPUT_DIAGNOSTICS:-0}" -readonly INPUT_DIAGNOSTICS_LOG="${TFT_INPUT_DIAGNOSTICS_LOG:-}" -readonly INPUT_BRIDGE_SOURCE="$PROJECT_DIR/tools/tft-input-bridge.swift" -readonly INPUT_BRIDGE_BINARY="$PROJECT_DIR/runtime/tft-input-bridge" -readonly INPUT_SHOP_POINT="${TFT_INPUT_SHOP_POINT:-0.96,0.93}" -readonly INPUT_REROLL_POINT="${TFT_INPUT_REROLL_POINT:-0.955,0.79}" -readonly INPUT_XP_POINT="${TFT_INPUT_XP_POINT:-0.032,0.925}" -readonly INPUT_TRAITS_POINT="${TFT_INPUT_TRAITS_POINT:-0.029,0.04}" -readonly INPUT_ITEMS_POINT="${TFT_INPUT_ITEMS_POINT:-0.059,0.04}" -readonly INPUT_DAMAGE_POINT="${TFT_INPUT_DAMAGE_POINT:-0.947,0.04}" -readonly INPUT_PLAYERS_POINT="${TFT_INPUT_PLAYERS_POINT:-0.975,0.04}" -readonly DIRECT_VULKAN_DIR="$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-direct-vulkan" -readonly DIRECT_VULKAN_APK="$DIRECT_VULKAN_DIR/base-direct-vulkan.apk" -readonly DIRECT_VULKAN_PROFILE="$DIRECT_VULKAN_DIR/Android_Codex.DeviceProfiles.ini" -readonly DIRECT_VULKAN_REMOTE_DIR="/data/local/tmp/tft-direct-vulkan" -readonly ANGLE_OPENGL_DIR="$PROJECT_DIR/artifacts/tft-pbe-18.1-5212127-angle-opengl" -readonly ANGLE_OPENGL_APK="${TFT_ANGLE_OPENGL_APK:-$ANGLE_OPENGL_DIR/base-angle-opengl.apk}" -readonly ANGLE_OPENGL_PROFILE_OVERRIDE="${TFT_ANGLE_OPENGL_PROFILE:-}" -readonly ANGLE_OPENGL_PROFILE="${ANGLE_OPENGL_PROFILE_OVERRIDE:-$ANGLE_OPENGL_DIR/Android_Codex.DeviceProfiles.ini}" -readonly ANGLE_OPENGL_PROFILE_SHA256="${TFT_ANGLE_OPENGL_PROFILE_SHA256:-}" -readonly ANGLE_OPENGL_REMOTE_DIR="/data/local/tmp/tft-angle-opengl" -readonly ORIGINAL_BASE_SHA256="${TFT_ORIGINAL_BASE_APK_SHA256:-2f4996a620623d0b958383bfe58bdec78fb70cca095099ca2474f3d08c62ff18}" -readonly DIRECT_VULKAN_SHA256="3cabacef5ba122467d2eea8fb2874f41530a8d0c1b8cda3f391a58134b936236" -readonly ANGLE_OPENGL_SHA256="${TFT_ANGLE_OPENGL_APK_SHA256:-f3a257750e1875298a1203c40e9bb98aaf9521b4466f75a53d16fd2d6ea63865}" -readonly UNREAL_LIB_OVERLAY="${TFT_UNREAL_LIB_OVERLAY:-}" -readonly UNREAL_LIB_OVERLAY_SHA256="${TFT_UNREAL_LIB_OVERLAY_SHA256:-}" -readonly UNREAL_LIB_ORIGINAL_SHA256="dd59c46a07d6f7394add255a1f11ede357489a7f1b6f2f925bd87c878c16ec08" -readonly UNREAL_LIB_REMOTE_DIR="/data/local/tmp/tft-unreal-lib-overlay" -readonly WRAP_PROPERTY="wrap.$PACKAGE" - -OVERLAY_LABEL="" -OVERLAY_APK="" -OVERLAY_PROFILE="" -OVERLAY_REMOTE_DIR="" -OVERLAY_SHA256="" -OVERLAY_BASE_PATH="" -OVERLAY_MOUNTED=0 -PROFILE_DESTINATION="" -PROFILE_BACKUP="" -PROFILE_PRESENT_MARKER="" -PROFILE_ABSENT_MARKER="" -PROFILE_ORIGINAL_OWNER="" -PROFILE_ORIGINAL_MODE="" -PROFILE_WAS_PRESENT=0 -PROFILE_MANAGED=0 -PROFILE_MOUNTED=0 -UNREAL_LIB_TARGET="" -UNREAL_LIB_MOUNTED=0 -ANGLE_SETTINGS_MANAGED=0 -ANGLE_ORIGINAL_PACKAGES="" -ANGLE_ORIGINAL_VALUES="" -ANGLE_ORIGINAL_FEATURES="" -GUEST_WRAP_MANAGED=0 -GUEST_WRAP_ORIGINAL="" -HWUI_RENDERER_MANAGED=0 -HWUI_RENDERER_ORIGINAL="" -AVD_LOCK_HELD=0 - -release_avd_lock() { - if [[ "$AVD_LOCK_HELD" != "1" ]]; then - return - fi - typeset lock_owner="" - if [[ -f "$AVD_LOCK_FILE" ]]; then - IFS= read -r lock_owner < "$AVD_LOCK_FILE" || true - fi - if [[ "$lock_owner" == "$$" ]]; then - rm -f "$AVD_LOCK_FILE" - else - print "Warning: the AVD lock changed owners; the foreign lock was not removed." - fi - AVD_LOCK_HELD=0 -} - -if [[ "$ADB_SERVER_PORT" != <-> ]] \ - || (( ADB_SERVER_PORT < 1024 || ADB_SERVER_PORT > 65534 )); then - print "TFT_ADB_SERVER_PORT must be a TCP port from 1024 to 65534." - exit 2 -fi -unset ADB_SERVER_SOCKET ANDROID_ADB_SERVER_ADDRESS -export TFT_ADB_SERVER_PORT="$ADB_SERVER_PORT" -export ANDROID_ADB_SERVER_PORT="$ADB_SERVER_PORT" -export ADB_MDNS_AUTO_CONNECT="" -"$ADB" -P "$ADB_SERVER_PORT" start-server >/dev/null - -readonly OSFT_QEMU_PATTERN='Application Support/OSFT/sdk/emulator/.*/qemu-system-aarch64.*-avd PlayDroid' -if pgrep -f "$OSFT_QEMU_PATTERN" >/dev/null 2>&1; then - print "OSFT PlayDroid is already running. Close it before TFT fast-quality: two VMs cause severe CPU/GPU contention." - exit 1 -fi - -if [[ "$MACOS_GAME_MODE" != "0" && "$MACOS_GAME_MODE" != "1" ]]; then - print "TFT_MACOS_GAME_MODE must be either 0 or 1." - exit 2 -fi -if [[ "$HWUI_RENDERER" != "skiagl" && "$HWUI_RENDERER" != "skiavk" ]]; then - print "TFT_HWUI_RENDERER must be either skiagl or skiavk." - exit 2 -fi -if [[ "$INPUT_BRIDGE_ENABLED" != "0" && "$INPUT_BRIDGE_ENABLED" != "1" ]]; then - print "TFT_INPUT_BRIDGE_ENABLED must be either 0 or 1." - exit 2 -fi -if [[ "$INPUT_DIAGNOSTICS" != "0" && "$INPUT_DIAGNOSTICS" != "1" ]]; then - print "TFT_INPUT_DIAGNOSTICS must be either 0 or 1." - exit 2 -fi -for input_point_name input_point_value in \ - TFT_INPUT_SHOP_POINT "$INPUT_SHOP_POINT" \ - TFT_INPUT_REROLL_POINT "$INPUT_REROLL_POINT" \ - TFT_INPUT_XP_POINT "$INPUT_XP_POINT" \ - TFT_INPUT_TRAITS_POINT "$INPUT_TRAITS_POINT" \ - TFT_INPUT_ITEMS_POINT "$INPUT_ITEMS_POINT" \ - TFT_INPUT_DAMAGE_POINT "$INPUT_DAMAGE_POINT" \ - TFT_INPUT_PLAYERS_POINT "$INPUT_PLAYERS_POINT"; do - if [[ ! "$input_point_value" =~ '^(0([.][0-9]+)?|1([.]0+)?),(0([.][0-9]+)?|1([.]0+)?)$' ]]; then - print "$input_point_name must be a pair of relative X,Y coordinates from 0 to 1." - exit 2 - fi -done -if [[ "$VIRTIO_GPU_NATIVE_SYNC" != "0" && "$VIRTIO_GPU_NATIVE_SYNC" != "1" ]]; then - print "TFT_VIRTIO_GPU_NATIVE_SYNC must be either 0 or 1." - exit 2 -fi -if [[ "$VIRTIO_GPU_NEXT" != "0" && "$VIRTIO_GPU_NEXT" != "1" ]]; then - print "TFT_VIRTIO_GPU_NEXT must be either 0 or 1." - exit 2 -fi -if [[ -n "$GL_DRAW_FLUSH_INTERVAL" ]]; then - if [[ "$GL_DRAW_FLUSH_INTERVAL" != <-> ]] \ - || (( GL_DRAW_FLUSH_INTERVAL < 100 || GL_DRAW_FLUSH_INTERVAL > 10000 )); then - print "TFT_GL_DRAW_FLUSH_INTERVAL must be an integer from 100 to 10000 microseconds." - exit 2 - fi -fi - -if [[ "$EMULATOR_PORT" != <-> ]] || (( EMULATOR_PORT < 5554 || EMULATOR_PORT > 5682 )) \ - || [[ "$SERIAL" != "emulator-$EMULATOR_PORT" ]]; then - print "TFT_SERIAL/TFT_EMULATOR_PORT must be a matching emulator-PORT and PORT pair." - exit 2 -fi -if [[ "$BOOT_TIMEOUT_SECONDS" != <-> ]] || (( BOOT_TIMEOUT_SECONDS < 30 || BOOT_TIMEOUT_SECONDS > 600 )); then - print "TFT_BOOT_TIMEOUT_SECONDS must be an integer from 30 to 600 seconds." - exit 2 -fi - -if [[ ! "$CPU_CORES" =~ '^[0-9]+$' ]] || (( CPU_CORES < 1 || CPU_CORES > 16 )); then - print "TFT_CPU_CORES must be an integer from 1 to 16." - exit 2 -fi -if [[ ! "$MEMORY_MB" =~ '^[0-9]+$' ]] || (( MEMORY_MB < 2048 || MEMORY_MB > 32768 )); then - print "TFT_MEMORY_MB must be an integer from 2048 to 32768." - exit 2 -fi -case "$GAME_LANGUAGE" in - en-US|ru-RU|de-DE|fr-FR|es-ES|es-MX|pt-BR|it-IT|pl-PL|cs-CZ|hu-HU|ro-RO|el-GR|tr-TR|ar-AE|ja-JP|ko-KR|zh-CN|zh-SG|zh-TW|vi-VN|th-TH|id-ID) - ;; - *) - print "TFT_GAME_LANGUAGE must be a supported locale." - exit 2 - ;; -esac -if [[ ! "$DISPLAY_SIZE" =~ '^[0-9]+x[0-9]+$' ]]; then - print "TFT_DISPLAY_SIZE must use WIDTHxHEIGHT format, for example 1600x900." - exit 2 -fi -if [[ ! "$DISPLAY_DENSITY" =~ '^[0-9]+$' ]] || (( DISPLAY_DENSITY < 120 || DISPLAY_DENSITY > 640 )); then - print "TFT_DISPLAY_DENSITY must be an integer from 120 to 640." - exit 2 -fi -if [[ "$UI_SCALE" != "1.0" && "$UI_SCALE" != "1.25" && "$UI_SCALE" != "1.5" \ - && "$UI_SCALE" != "1.75" && "$UI_SCALE" != "2.0" ]]; then - print "TFT_UI_SCALE must be one of 1.0, 1.25, 1.5, 1.75, or 2.0." - exit 2 -fi -if [[ -n "$ANGLE_EXTRA_FEATURES" && ! "$ANGLE_EXTRA_FEATURES" =~ '^([A-Za-z0-9_]+[*]?)(:[A-Za-z0-9_]+[*]?)*$' ]]; then - print "TFT_ANGLE_EXTRA_FEATURES must be an ANGLE feature or a colon-separated list." - exit 2 -fi -if [[ -n "$ANGLE_DISABLED_FEATURES" \ - && ! "$ANGLE_DISABLED_FEATURES" =~ '^([A-Za-z0-9_]+[*]?)(:[A-Za-z0-9_]+[*]?)*$' ]]; then - print "TFT_ANGLE_DISABLED_FEATURES must be a feature or a colon-separated list." - exit 2 -fi -if [[ "$GUEST_GL_DRIVER" != "angle" && "$GUEST_GL_DRIVER" != "native" ]]; then - print "TFT_GUEST_GL_DRIVER must be either angle or native." - exit 2 -fi -if [[ "$GUEST_SUBMIT_THREAD" != "default" \ - && "$GUEST_SUBMIT_THREAD" != "on-demand" \ - && "$GUEST_SUBMIT_THREAD" != "0" \ - && "$GUEST_SUBMIT_THREAD" != "1" ]]; then - print "TFT_GUEST_SUBMIT_THREAD must be one of default, on-demand, 0, or 1." - exit 2 -fi -if [[ "$GUEST_SUBMIT_THREAD" != "default" && "$GUEST_GL_DRIVER" != "angle" ]]; then - print "The guest Vulkan submit thread is supported only with TFT_GUEST_GL_DRIVER=angle." - exit 2 -fi -if [[ "$HOST_GPU" != "host" && "$HOST_GPU" != "swangle" ]]; then - print "TFT_HOST_GPU must be either host or swangle." - exit 2 -fi -if [[ "$HOST_GPU" == "swangle" && "$GUEST_GL_DRIVER" != "native" ]]; then - print "The isolated swangle control is supported only with TFT_GUEST_GL_DRIVER=native." - exit 2 -fi - -ANGLE_FEATURES="$ANGLE_BASE_FEATURES" -if [[ -n "$ANGLE_EXTRA_FEATURES" ]]; then - ANGLE_FEATURES+=":$ANGLE_EXTRA_FEATURES" -fi -readonly ANGLE_FEATURES - -if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - if [[ "$RENDERER" != "angle-opengl" ]]; then - print "TFT_GUEST_GL_DRIVER=native is supported only with TFT_RENDERER=angle-opengl." - exit 2 - fi - if [[ "$GRAPHICS_PROFILE" != "osft" && "$GRAPHICS_PROFILE" != "osft-no-batching" ]]; then - print "Native gfxstream GLES is incompatible with VulkanNativeSwapchain; use the osft or osft-no-batching profile." - exit 2 - fi - export ANGLE_FEATURE_OVERRIDES_ENABLED="$ANGLE_FEATURES" - if [[ -n "$ANGLE_DISABLED_FEATURES" ]]; then - export ANGLE_FEATURE_OVERRIDES_DISABLED="$ANGLE_DISABLED_FEATURES" - else - unset ANGLE_FEATURE_OVERRIDES_DISABLED - fi -fi - -case "$RENDERER" in - angle) - ;; - direct-vulkan) - OVERLAY_LABEL="direct-Vulkan" - OVERLAY_APK="$DIRECT_VULKAN_APK" - OVERLAY_PROFILE="$DIRECT_VULKAN_PROFILE" - OVERLAY_REMOTE_DIR="$DIRECT_VULKAN_REMOTE_DIR" - OVERLAY_SHA256="$DIRECT_VULKAN_SHA256" - ;; - angle-opengl) - OVERLAY_LABEL="ANGLE/OpenGL" - OVERLAY_APK="$ANGLE_OPENGL_APK" - OVERLAY_PROFILE="$ANGLE_OPENGL_PROFILE" - OVERLAY_REMOTE_DIR="$ANGLE_OPENGL_REMOTE_DIR" - OVERLAY_SHA256="$ANGLE_OPENGL_SHA256" - ;; - *) - print "TFT_RENDERER must be one of angle, angle-opengl, or direct-vulkan." - exit 2 - ;; -esac - -if [[ -n "$OVERLAY_APK" ]]; then - if [[ ! -f "$OVERLAY_APK" || ! -f "$OVERLAY_PROFILE" ]]; then - print "$OVERLAY_LABEL APK/profile artifacts were not found." - exit 1 - fi - if [[ "$(shasum -a 256 "$OVERLAY_APK" | awk '{ print $1 }')" != "$OVERLAY_SHA256" ]]; then - print "The $OVERLAY_LABEL APK SHA-256 does not match the verified value." - exit 1 - fi -fi -if [[ -n "$ANGLE_OPENGL_PROFILE_OVERRIDE" ]]; then - if [[ "$RENDERER" != "angle-opengl" ]] \ - || [[ ! "$ANGLE_OPENGL_PROFILE_SHA256" =~ '^[0-9a-f]{64}$' ]]; then - print "The custom ANGLE/OpenGL profile requires TFT_RENDERER=angle-opengl and a verified SHA-256." - exit 2 - fi - if [[ "$(shasum -a 256 "$ANGLE_OPENGL_PROFILE" | awk '{ print $1 }')" != "$ANGLE_OPENGL_PROFILE_SHA256" ]]; then - print "The custom ANGLE/OpenGL profile SHA-256 does not match the expected value." - exit 1 - fi -fi -if [[ -n "$UNREAL_LIB_OVERLAY" ]]; then - if [[ "$GUEST_GL_DRIVER" != "native" ]]; then - print "TFT_UNREAL_LIB_OVERLAY is allowed only for the isolated native-GLES test." - exit 2 - fi - if [[ ! -f "$UNREAL_LIB_OVERLAY" ]] \ - || [[ ! "$UNREAL_LIB_OVERLAY_SHA256" =~ '^[0-9a-f]{64}$' ]]; then - print "TFT_UNREAL_LIB_OVERLAY/SHA256 do not reference a verified artifact." - exit 2 - fi - if [[ "$(shasum -a 256 "$UNREAL_LIB_OVERLAY" | awk '{ print $1 }')" != "$UNREAL_LIB_OVERLAY_SHA256" ]]; then - print "The temporary libUnreal.so overlay SHA-256 does not match the expected value." - exit 1 - fi -fi - -if [[ "$MACOS_GAME_MODE" == "1" && ( "$BATCHED_DESCRIPTORS" != "0" || "$MVK_QUEUE_MODE" != "default" ) ]]; then - print "Game Mode, descriptor batching, and the MoltenVK queue mode must be tested one at a time." - exit 2 -fi - -case "$MVK_QUEUE_MODE" in - default) - unset MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS - ;; - async) - export MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=0 - ;; - sync) - export MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=1 - ;; - *) - print "TFT_MVK_QUEUE_MODE must be one of default, async, or sync." - exit 2 - ;; -esac - -typeset -a EXTRA_EMULATOR_FLAGS -EXTRA_EMULATOR_FLAGS=() -case "$GRAPHICS_PROFILE" in - stable) - EXTRA_EMULATOR_FLAGS=(-feature VulkanNativeSwapchain) - ;; - osft) - if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,-GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - else - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - fi - ;; - osft-no-batching) - if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,-GuestAngle,-GLPipeChecksum,-VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - else - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,-VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - fi - ;; - osft-no-async-compose) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,-AsyncComposeSupport,VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-no-queue-submit-with-commands) - # Diagnostic reproduction only. Real TFT cold boots abort before ADB - # while decoding VK_STRUCTURE_TYPE_APPLICATION_INFO; this profile is - # deliberately absent from the performance-candidate manifest. - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts,-VulkanQueueSubmitWithCommands' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-no-native-swapchain) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts,-VulkanNativeSwapchain' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-no-fence-contexts) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,-VirtioGpuFenceContexts' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-no-virtual-queue) - # Diagnostic reproduction only. Emulator 37.1.11 reports that this - # guest feature override is ignored, so it cannot form a valid A/B. - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts,-VulkanVirtualQueue' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-native-swapchain) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts,VulkanNativeSwapchain' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - osft-low-latency) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,-AsyncComposeSupport,VirtioGpuFenceContexts,VulkanNativeSwapchain' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - turbo) - EXTRA_EMULATOR_FLAGS=( - -feature 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts,VulkanNativeSwapchain' - -append-userspace-opt androidboot.opengles.version=196610 - ) - ;; - *) - print "TFT_GRAPHICS_PROFILE must be one of stable, osft, osft-no-batching, osft-no-async-compose, osft-no-queue-submit-with-commands, osft-no-native-swapchain, osft-no-fence-contexts, osft-no-virtual-queue, osft-native-swapchain, osft-low-latency, or turbo." - exit 2 - ;; -esac - -if [[ "$BATCHED_DESCRIPTORS" == "1" && "$GRAPHICS_PROFILE" == "stable" ]]; then - EXTRA_EMULATOR_FLAGS+=(-feature VulkanBatchedDescriptorSetUpdate) -fi -if [[ "$VIRTIO_GPU_NATIVE_SYNC" == "1" ]]; then - EXTRA_EMULATOR_FLAGS+=(-feature VirtioGpuNativeSync) -fi -if [[ "$VIRTIO_GPU_NEXT" == "1" ]]; then - EXTRA_EMULATOR_FLAGS+=(-feature VirtioGpuNext) -fi - -export ANDROID_SDK_ROOT="$SDK_ROOT" -export ANDROID_AVD_HOME="$AVD_HOME" - -if [[ ! -x "$EMULATOR" ]]; then - print "Android Emulator was not found: $EMULATOR" - exit 1 -fi - -if [[ "$INPUT_BRIDGE_ENABLED" == "1" ]]; then - if [[ ! -f "$INPUT_BRIDGE_SOURCE" ]]; then - print "The input bridge source was not found: $INPUT_BRIDGE_SOURCE" - exit 1 - fi - if [[ ! -x "$INPUT_BRIDGE_BINARY" || "$INPUT_BRIDGE_SOURCE" -nt "$INPUT_BRIDGE_BINARY" ]]; then - readonly INPUT_BRIDGE_NEXT="$INPUT_BRIDGE_BINARY.next" - mkdir -p "${INPUT_BRIDGE_BINARY:h}" "$PROJECT_DIR/runtime/swift-module-cache" - /usr/bin/xcrun swiftc \ - -O \ - -module-cache-path "$PROJECT_DIR/runtime/swift-module-cache" \ - "$INPUT_BRIDGE_SOURCE" \ - -o "$INPUT_BRIDGE_NEXT" - mv -f "$INPUT_BRIDGE_NEXT" "$INPUT_BRIDGE_BINARY" - fi -fi - -if [[ ! -f "$AVD_HOME/$AVD_NAME.ini" ]]; then - print "The rootable AVD was not found: $AVD_HOME/$AVD_NAME.ini" - exit 1 -fi - -EMULATOR_APP="" -if [[ -x "$PACKAGED_EMULATOR_APP/Contents/MacOS/MacticianGameHost" ]]; then - EMULATOR_APP="$PACKAGED_EMULATOR_APP" -elif [[ "$MACOS_GAME_MODE" == "1" && -x "$GAME_MODE_APP/Contents/MacOS/MacticianGameHost" ]]; then - EMULATOR_APP="$GAME_MODE_APP" -fi -readonly EMULATOR_APP - -if [[ "$MACOS_GAME_MODE" == "1" && -z "$EMULATOR_APP" ]]; then - print "The Game Mode app wrapper was not found: $GAME_MODE_APP" - exit 1 -fi - -if [[ -n "$INHERITED_AVD_LOCK_OWNER" ]]; then - typeset inherited_lock_pid="" - if [[ -f "$AVD_LOCK_FILE" ]]; then - IFS= read -r inherited_lock_pid < "$AVD_LOCK_FILE" || true - fi - if [[ "$INHERITED_AVD_LOCK_OWNER" != <-> \ - || "$INHERITED_AVD_LOCK_OWNER" != "$PPID" \ - || "$inherited_lock_pid" != "$INHERITED_AVD_LOCK_OWNER" ]] \ - || ! kill -0 "$INHERITED_AVD_LOCK_OWNER" >/dev/null 2>&1; then - print "The inherited AVD lock does not belong to the parent launcher process." - exit 1 - fi -else - if ! /usr/bin/shlock -f "$AVD_LOCK_FILE" -p "$$"; then - typeset active_lock_pid="unknown" - if [[ -f "$AVD_LOCK_FILE" ]]; then - IFS= read -r active_lock_pid < "$AVD_LOCK_FILE" || true - fi - print "Another TFT launcher already owns the AVD lock (PID $active_lock_pid)." - exit 1 - fi - AVD_LOCK_HELD=1 - trap release_avd_lock EXIT -fi - -if "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - print "The rootable TFT AVD is already running on $SERIAL. Close it first." - exit 1 -fi -if [[ "$AUDIO_ENABLED" != "0" && "$AUDIO_ENABLED" != "1" ]]; then - print "TFT_AUDIO_ENABLED must be 0 or 1." - exit 2 -fi - -typeset -a EMULATOR_ARGS -EMULATOR_ARGS=( - "@$AVD_NAME" - -id "TFT-$AVD_NAME" - -port "$EMULATOR_PORT" - -gpu "$HOST_GPU" - "${EXTRA_EMULATOR_FLAGS[@]}" - -append-userspace-opt "androidboot.mactician.graphics_profile=$GRAPHICS_PROFILE" - -skin "$DISPLAY_SIZE" - -vsync-rate 60 - -dns-server 1.1.1.1,8.8.8.8 - -cores "$CPU_CORES" - -memory "$MEMORY_MB" - -no-snapshot - -no-metrics - -no-boot-anim - -crash-report-mode disabled -) -typeset AUDIO_STATUS="enabled" -if [[ "$AUDIO_ENABLED" == "0" ]]; then - EMULATOR_ARGS+=(-no-audio) - AUDIO_STATUS="disabled" -fi -readonly AUDIO_STATUS -if [[ -n "$EMULATOR_APP" ]]; then - typeset -a APP_ENV_ARGS - APP_ENV_ARGS=( - --env "TFT_EMULATOR=$EMULATOR" - --env "TFT_ADB_SERVER_PORT=$ADB_SERVER_PORT" - --env "ANDROID_ADB_SERVER_PORT=$ADB_SERVER_PORT" - --env "ADB_MDNS_AUTO_CONNECT=" - --env "ANDROID_SDK_ROOT=$SDK_ROOT" - --env "ANDROID_AVD_HOME=$AVD_HOME" - ) - for environment_name in \ - ANGLE_FEATURE_OVERRIDES_ENABLED \ - ANGLE_FEATURE_OVERRIDES_DISABLED \ - MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS \ - MVK_CONFIG_SHOULD_MAXIMIZE_CONCURRENT_COMPILATION \ - MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE \ - MVK_CONFIG_LOG_LEVEL \ - MVK_CONFIG_PERFORMANCE_LOGGING_FRAME_COUNT \ - MVK_CONFIG_PERFORMANCE_TRACKING \ - MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS \ - MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE \ - MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS \ - MVK_CONFIG_USE_MTLHEAP \ - MVK_CONFIG_FAST_MATH_ENABLED \ - MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS \ - MVK_CONFIG_VK_SEMAPHORE_SUPPORT_STYLE; do - if [[ -n "${(P)environment_name:-}" ]]; then - APP_ENV_ARGS+=(--env "$environment_name=${(P)environment_name}") - fi - done - /usr/bin/open -n -W \ - "${APP_ENV_ARGS[@]}" \ - "$EMULATOR_APP" --args "${EMULATOR_ARGS[@]}" & -else - "$EMULATOR" "${EMULATOR_ARGS[@]}" & -fi -readonly EMULATOR_PID=$! -WATCHER_PID="" -INPUT_BRIDGE_PID="" -UI_SCALE_TEMP_DIR="" - -cleanup() { - if [[ -n "$UI_SCALE_TEMP_DIR" && -d "$UI_SCALE_TEMP_DIR" ]]; then - rm -rf "$UI_SCALE_TEMP_DIR" - UI_SCALE_TEMP_DIR="" - fi - if [[ -n "$INPUT_BRIDGE_PID" ]] && kill -0 "$INPUT_BRIDGE_PID" >/dev/null 2>&1; then - kill "$INPUT_BRIDGE_PID" >/dev/null 2>&1 || true - wait "$INPUT_BRIDGE_PID" >/dev/null 2>&1 || true - fi - if [[ -n "$WATCHER_PID" ]] && kill -0 "$WATCHER_PID" >/dev/null 2>&1; then - kill "$WATCHER_PID" >/dev/null 2>&1 || true - wait "$WATCHER_PID" >/dev/null 2>&1 || true - fi - if [[ ( "$OVERLAY_MOUNTED" == "1" || "$PROFILE_MANAGED" == "1" \ - || "$UNREAL_LIB_MOUNTED" == "1" ) ]] \ - && "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - "$ADB" -s "$SERIAL" shell am force-stop "$PACKAGE" >/dev/null 2>&1 || true - integer wait_attempt - for (( wait_attempt = 1; wait_attempt <= 20; wait_attempt++ )); do - if [[ -z "$("$ADB" -s "$SERIAL" shell pidof "$PACKAGE" 2>/dev/null | tr -d '\r')" ]]; then - break - fi - sleep 0.25 - done - if [[ "$PROFILE_MANAGED" == "1" && -n "$PROFILE_DESTINATION" ]]; then - if [[ "$PROFILE_MOUNTED" == "1" ]]; then - if "$ADB" -s "$SERIAL" shell umount "$PROFILE_DESTINATION" >/dev/null 2>&1; then - PROFILE_MOUNTED=0 - print "The persistent guest DeviceProfiles.ini mount was removed." - else - print "Warning: the guest DeviceProfiles.ini mount was not removed; the transaction marker remains for cold-boot recovery." - fi - fi - if [[ "$PROFILE_MOUNTED" == "0" ]]; then - PROFILE_ROLLBACK_APPLIED=0 - if [[ "$PROFILE_WAS_PRESENT" == "1" && -n "$PROFILE_BACKUP" ]]; then - if "$ADB" -s "$SERIAL" shell cp "$PROFILE_BACKUP" "$PROFILE_DESTINATION" \ - && "$ADB" -s "$SERIAL" shell chown "$PROFILE_ORIGINAL_OWNER" "$PROFILE_DESTINATION" \ - && "$ADB" -s "$SERIAL" shell chmod "$PROFILE_ORIGINAL_MODE" "$PROFILE_DESTINATION"; then - PROFILE_ROLLBACK_APPLIED=1 - print "The original guest DeviceProfiles.ini was restored; the journal will be cleared on the next cold boot." - else - print "Warning: guest DeviceProfiles.ini could not be restored before the AVD shut down." - fi - else - if "$ADB" -s "$SERIAL" shell rm -f "$PROFILE_DESTINATION"; then - PROFILE_ROLLBACK_APPLIED=1 - print "The temporary guest DeviceProfiles.ini was removed; the journal will be cleared on the next cold boot." - else - print "Warning: the guest profile marker remains for recovery on the next launch." - fi - fi - if [[ "$PROFILE_ROLLBACK_APPLIED" == "1" ]]; then - PROFILE_MANAGED=0 - fi - fi - fi - if [[ "$OVERLAY_MOUNTED" == "1" && -n "$OVERLAY_BASE_PATH" ]]; then - if "$ADB" -s "$SERIAL" shell umount "$OVERLAY_BASE_PATH" >/dev/null 2>&1; then - OVERLAY_MOUNTED=0 - else - print "Warning: the APK overlay is busy; shutting down the AVD will clear the mount." - fi - fi - if [[ "$UNREAL_LIB_MOUNTED" == "1" && -n "$UNREAL_LIB_TARGET" ]]; then - if "$ADB" -s "$SERIAL" shell umount "$UNREAL_LIB_TARGET" >/dev/null 2>&1; then - UNREAL_LIB_MOUNTED=0 - print "The temporary libUnreal.so overlay was removed." - else - print "Warning: the libUnreal.so overlay is busy; shutting down the AVD will clear the mount." - fi - fi - fi - if [[ "$ANGLE_SETTINGS_MANAGED" == "1" ]] \ - && "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - typeset setting_name original_value - for setting_name original_value in \ - angle_gl_driver_selection_pkgs "$ANGLE_ORIGINAL_PACKAGES" \ - angle_gl_driver_selection_values "$ANGLE_ORIGINAL_VALUES" \ - angle_egl_features "$ANGLE_ORIGINAL_FEATURES"; do - if [[ "$original_value" == "null" ]]; then - "$ADB" -s "$SERIAL" shell settings delete global "$setting_name" >/dev/null 2>&1 || true - else - "$ADB" -s "$SERIAL" shell settings put global "$setting_name" "$original_value" >/dev/null 2>&1 || true - fi - done - ANGLE_SETTINGS_MANAGED=0 - print "The original Android graphics-driver selection was restored." - fi - if [[ "$GUEST_WRAP_MANAGED" == "1" ]] \ - && "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - if "$ADB" -s "$SERIAL" shell \ - "setprop '$WRAP_PROPERTY' '$GUEST_WRAP_ORIGINAL'" >/dev/null 2>&1; then - typeset restored_guest_wrap - restored_guest_wrap="$("$ADB" -s "$SERIAL" shell getprop "$WRAP_PROPERTY" 2>/dev/null | tr -d '\r')" - if [[ "$restored_guest_wrap" == "$GUEST_WRAP_ORIGINAL" ]]; then - GUEST_WRAP_MANAGED=0 - print "The original Android process wrapper was restored and verified." - else - print "Warning: the Android process wrapper does not match the original after rollback." - fi - else - print "Warning: the Android process wrapper could not be restored." - fi - fi - if [[ "$HWUI_RENDERER_MANAGED" == "1" ]] \ - && "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - if "$ADB" -s "$SERIAL" shell \ - "setprop debug.hwui.renderer '$HWUI_RENDERER_ORIGINAL'" >/dev/null 2>&1; then - typeset restored_hwui_renderer - restored_hwui_renderer="$( - "$ADB" -s "$SERIAL" shell getprop debug.hwui.renderer 2>/dev/null \ - | tr -d '\r' - )" - if [[ "$restored_hwui_renderer" == "$HWUI_RENDERER_ORIGINAL" ]]; then - HWUI_RENDERER_MANAGED=0 - print "The original Android HWUI renderer was restored: ${HWUI_RENDERER_ORIGINAL:-unset}." - else - print "Warning: the Android HWUI renderer does not match the original after rollback." - fi - else - print "Warning: the Android HWUI renderer could not be restored." - fi - fi - if kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - "$ADB" -s "$SERIAL" emu kill >/dev/null 2>&1 || true - wait "$EMULATOR_PID" >/dev/null 2>&1 || true - fi - release_avd_lock -} -trap cleanup EXIT -trap 'exit 130' INT TERM - -print "Waiting for the dedicated userdebug/rootable TFT AVD to boot..." -typeset -i adb_waited=0 -until "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; do - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited before ADB connected." - exit 0 - fi - if (( adb_waited >= BOOT_TIMEOUT_SECONDS )); then - print "ADB did not become available within ${BOOT_TIMEOUT_SECONDS} seconds." - exit 1 - fi - sleep 1 - (( adb_waited += 1 )) -done - -typeset -i boot_waited=0 -until [[ "$("$ADB" -s "$SERIAL" shell getprop sys.boot_completed 2>/dev/null | tr -d '\r')" == "1" ]]; do - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited before Android finished booting." - exit 0 - fi - if (( boot_waited >= BOOT_TIMEOUT_SECONDS )); then - print "Android did not finish booting within ${BOOT_TIMEOUT_SECONDS} seconds." - exit 1 - fi - sleep 1 - (( boot_waited += 1 )) -done - -typeset -i root_attempt -for (( root_attempt = 1; root_attempt <= 10; root_attempt++ )); do - "$ADB" -s "$SERIAL" root >/dev/null 2>&1 || true - typeset -i root_waited=0 - until "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; do - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited while adbd was restarting." - exit 0 - fi - if (( root_waited >= 10 )); then - break - fi - sleep 1 - (( root_waited += 1 )) - done - if [[ "$("$ADB" -s "$SERIAL" shell id -u 2>/dev/null | tr -d '\r')" == "0" ]]; then - break - fi - sleep 1 -done - -if [[ "$("$ADB" -s "$SERIAL" shell id -u 2>/dev/null | tr -d '\r')" != "0" ]]; then - print "Official adbd root could not be enabled." - exit 1 -fi - -if [[ -n "$GL_DRAW_FLUSH_INTERVAL" ]]; then - readonly ACTIVE_DRAW_FLUSH_INTERVAL="$( - "$ADB" -s "$SERIAL" shell getprop ro.boot.qemu.gltransport.drawFlushInterval 2>/dev/null \ - | tr -d '\r' - )" - if [[ "$ACTIVE_DRAW_FLUSH_INTERVAL" != "$GL_DRAW_FLUSH_INTERVAL" ]]; then - print "The draw flush interval was not applied: expected $GL_DRAW_FLUSH_INTERVAL, active ${ACTIVE_DRAW_FLUSH_INTERVAL:-unknown}." - exit 1 - fi -fi - -"$ADB" -s "$SERIAL" shell wm size "$DISPLAY_SIZE" -"$ADB" -s "$SERIAL" shell wm density "$DISPLAY_DENSITY" - -if [[ "$INPUT_BRIDGE_ENABLED" == "1" ]]; then - readonly DISPLAY_WIDTH="${DISPLAY_SIZE%x*}" - readonly DISPLAY_HEIGHT="${DISPLAY_SIZE#*x}" - "$INPUT_BRIDGE_BINARY" \ - --target-pid "$EMULATOR_PID" \ - --target-bundle-id "dev.sergeinaumov.mactician.experiment-emulator" \ - --adb "$ADB" \ - --adb-port "$ADB_SERVER_PORT" \ - --serial "$SERIAL" \ - --display-width "$DISPLAY_WIDTH" \ - --display-height "$DISPLAY_HEIGHT" \ - --diagnostics "$INPUT_DIAGNOSTICS" \ - --diagnostics-log "$INPUT_DIAGNOSTICS_LOG" \ - --shop-point "$INPUT_SHOP_POINT" \ - --reroll-point "$INPUT_REROLL_POINT" \ - --xp-point "$INPUT_XP_POINT" \ - --traits-point "$INPUT_TRAITS_POINT" \ - --items-point "$INPUT_ITEMS_POINT" \ - --damage-point "$INPUT_DAMAGE_POINT" \ - --players-point "$INPUT_PLAYERS_POINT" & - INPUT_BRIDGE_PID=$! - sleep 0.2 - if ! kill -0 "$INPUT_BRIDGE_PID" >/dev/null 2>&1; then - wait "$INPUT_BRIDGE_PID" || true - print "The input bridge exited immediately after launch." - exit 1 - fi -fi - -if ! "$ADB" -s "$SERIAL" shell pm path "$PACKAGE" | grep -q '^package:'; then - print "TFT PBE is not installed in the rootable AVD. The launcher does not copy the APK or private data." - exit 1 -fi - -readonly PROFILE_DIR="/data/user/0/$PACKAGE/files/UnrealGame/TFT/TFT/Saved/Config/Android" -PROFILE_DESTINATION="$PROFILE_DIR/DeviceProfiles.ini" -readonly DATA_OWNER="$( - "$ADB" -s "$SERIAL" shell stat -c '%u:%g' "/data/user/0/$PACKAGE" \ - | tr -d '\r' -)" -if [[ -z "$DATA_OWNER" ]]; then - print "The owner of TFT private data could not be determined." - exit 1 -fi - -# Recover a profile transaction left by SIGKILL/host failure before applying a -# new overlay. This also makes a later stock-root launch self-healing. -typeset RECOVERY_REMOTE_DIR RECOVERY_BACKUP RECOVERY_PRESENT_MARKER RECOVERY_ABSENT_MARKER -for RECOVERY_REMOTE_DIR in "$DIRECT_VULKAN_REMOTE_DIR" "$ANGLE_OPENGL_REMOTE_DIR"; do - RECOVERY_BACKUP="$RECOVERY_REMOTE_DIR/DeviceProfiles.ini.mactician-backup" - RECOVERY_PRESENT_MARKER="$RECOVERY_REMOTE_DIR/DeviceProfiles.ini.mactician-present" - RECOVERY_ABSENT_MARKER="$RECOVERY_REMOTE_DIR/DeviceProfiles.ini.mactician-absent" - if "$ADB" -s "$SERIAL" shell test -f "$RECOVERY_PRESENT_MARKER"; then - if ! "$ADB" -s "$SERIAL" shell test -f "$RECOVERY_BACKUP"; then - print "The rollback guest profile is corrupted: $RECOVERY_BACKUP is missing" - exit 1 - fi - "$ADB" -s "$SERIAL" shell mkdir -p "$PROFILE_DIR" - "$ADB" -s "$SERIAL" shell cp -p "$RECOVERY_BACKUP" "$PROFILE_DESTINATION" - "$ADB" -s "$SERIAL" shell rm -f "$RECOVERY_BACKUP" "$RECOVERY_PRESENT_MARKER" - print "Guest DeviceProfiles.ini was restored after an interrupted launch." - elif "$ADB" -s "$SERIAL" shell test -f "$RECOVERY_ABSENT_MARKER"; then - "$ADB" -s "$SERIAL" shell rm -f "$PROFILE_DESTINATION" "$RECOVERY_ABSENT_MARKER" - print "The temporary guest DeviceProfiles.ini was removed after an interrupted launch." - elif "$ADB" -s "$SERIAL" shell test -f "$RECOVERY_BACKUP"; then - print "A guest profile backup without a transaction marker was found: $RECOVERY_BACKUP" - exit 1 - fi -done - -if [[ -n "$OVERLAY_APK" ]]; then - OVERLAY_BASE_PATH="$( - "$ADB" -s "$SERIAL" shell pm path "$PACKAGE" \ - | tr -d '\r' \ - | sed -n 's/^package:\(.*\/base\.apk\)$/\1/p' \ - | head -n 1 - )" - if [[ -z "$OVERLAY_BASE_PATH" ]]; then - print "The installed TFT base.apk could not be located." - exit 1 - fi - - readonly EXISTING_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$OVERLAY_BASE_PATH" '$5 == target { count++ } END { print count + 0 }' - )" - if [[ "$EXISTING_MOUNT_COUNT" != "0" ]]; then - print "$OVERLAY_LABEL invariant violation: mounts=$EXISTING_MOUNT_COUNT were found before launch." - print "Shut down the AVD; the launcher will not stack another APK overlay." - exit 1 - fi - - readonly OVERLAY_TARGET_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$OVERLAY_BASE_PATH" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$OVERLAY_TARGET_CONTEXT" != "u:object_r:apk_data_file:s0" ]]; then - print "Unexpected SELinux context for the installed base.apk: ${OVERLAY_TARGET_CONTEXT:-empty}." - exit 1 - fi - - readonly INSTALLED_BASE_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$OVERLAY_BASE_PATH" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$INSTALLED_BASE_SHA256" != "$ORIGINAL_BASE_SHA256" ]]; then - print "The installed base.apk does not match the signed TFT PBE update manifest." - print "Actual SHA-256: $INSTALLED_BASE_SHA256" - exit 42 - fi - - "$ADB" -s "$SERIAL" shell mkdir -p "$OVERLAY_REMOTE_DIR" - "$ADB" -s "$SERIAL" push "$OVERLAY_APK" "$OVERLAY_REMOTE_DIR/base.apk.next" >/dev/null - "$ADB" -s "$SERIAL" shell chmod 644 "$OVERLAY_REMOTE_DIR/base.apk.next" - "$ADB" -s "$SERIAL" shell chcon "$OVERLAY_TARGET_CONTEXT" "$OVERLAY_REMOTE_DIR/base.apk.next" - "$ADB" -s "$SERIAL" shell mv "$OVERLAY_REMOTE_DIR/base.apk.next" "$OVERLAY_REMOTE_DIR/base.apk" - - readonly REMOTE_OVERLAY_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$OVERLAY_REMOTE_DIR/base.apk" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - readonly REMOTE_OVERLAY_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$OVERLAY_REMOTE_DIR/base.apk" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$REMOTE_OVERLAY_SHA256" != "$OVERLAY_SHA256" \ - || "$REMOTE_OVERLAY_CONTEXT" != "$OVERLAY_TARGET_CONTEXT" ]]; then - print "The uploaded $OVERLAY_LABEL APK is corrupted: $REMOTE_OVERLAY_SHA256" - exit 1 - fi - - "$ADB" -s "$SERIAL" shell mount -o bind "$OVERLAY_REMOTE_DIR/base.apk" "$OVERLAY_BASE_PATH" - OVERLAY_MOUNTED=1 - - readonly ACTIVE_BASE_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$OVERLAY_BASE_PATH" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - readonly ACTIVE_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$OVERLAY_BASE_PATH" '$5 == target { count++ } END { print count + 0 }' - )" - readonly ACTIVE_BASE_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$OVERLAY_BASE_PATH" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$ACTIVE_BASE_SHA256" != "$OVERLAY_SHA256" \ - || "$ACTIVE_MOUNT_COUNT" != "1" \ - || "$ACTIVE_BASE_CONTEXT" != "$OVERLAY_TARGET_CONTEXT" ]]; then - print "A single verified $OVERLAY_LABEL overlay could not be mounted." - exit 1 - fi - - readonly PROFILE_REMOTE="$OVERLAY_REMOTE_DIR/DeviceProfiles.ini" - - "$ADB" -s "$SERIAL" push "$OVERLAY_PROFILE" "$PROFILE_REMOTE" >/dev/null - "$ADB" -s "$SERIAL" shell mkdir -p "$PROFILE_DIR" - readonly PROFILE_TARGET_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$PROFILE_DIR" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ ! "$PROFILE_TARGET_CONTEXT" =~ '^u:object_r:[A-Za-z0-9_]+:s0(:c[0-9]+(,c[0-9]+)*)?$' ]]; then - print "The guest profile SELinux context could not be determined safely: $PROFILE_TARGET_CONTEXT" - exit 1 - fi - "$ADB" -s "$SERIAL" shell chcon "$PROFILE_TARGET_CONTEXT" "$PROFILE_REMOTE" - "$ADB" -s "$SERIAL" shell chown 0:0 "$PROFILE_REMOTE" - "$ADB" -s "$SERIAL" shell chmod 444 "$PROFILE_REMOTE" - readonly EXPECTED_PROFILE_SHA256="$(shasum -a 256 "$OVERLAY_PROFILE" | awk '{ print $1 }')" - readonly REMOTE_PROFILE_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$PROFILE_REMOTE" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$REMOTE_PROFILE_SHA256" != "$EXPECTED_PROFILE_SHA256" ]]; then - print "The uploaded guest DeviceProfiles.ini is corrupted: $REMOTE_PROFILE_SHA256" - exit 1 - fi - PROFILE_BACKUP="$OVERLAY_REMOTE_DIR/DeviceProfiles.ini.mactician-backup" - PROFILE_PRESENT_MARKER="$OVERLAY_REMOTE_DIR/DeviceProfiles.ini.mactician-present" - PROFILE_ABSENT_MARKER="$OVERLAY_REMOTE_DIR/DeviceProfiles.ini.mactician-absent" - if "$ADB" -s "$SERIAL" shell test -f "$PROFILE_DESTINATION"; then - PROFILE_WAS_PRESENT=1 - PROFILE_ORIGINAL_OWNER="$("$ADB" -s "$SERIAL" shell stat -c '%u:%g' "$PROFILE_DESTINATION" | tr -d '\r')" - PROFILE_ORIGINAL_MODE="$("$ADB" -s "$SERIAL" shell stat -c '%a' "$PROFILE_DESTINATION" | tr -d '\r')" - "$ADB" -s "$SERIAL" shell cp -p "$PROFILE_DESTINATION" "$PROFILE_BACKUP" - "$ADB" -s "$SERIAL" shell touch "$PROFILE_PRESENT_MARKER" - else - PROFILE_WAS_PRESENT=0 - "$ADB" -s "$SERIAL" shell touch "$PROFILE_ABSENT_MARKER" - fi - PROFILE_MANAGED=1 - "$ADB" -s "$SERIAL" shell cp "$PROFILE_REMOTE" "$PROFILE_DESTINATION" - "$ADB" -s "$SERIAL" shell chown "$DATA_OWNER" "$PROFILE_DESTINATION" - "$ADB" -s "$SERIAL" shell chmod 600 "$PROFILE_DESTINATION" - readonly EXISTING_PROFILE_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$PROFILE_DESTINATION" '$5 == target { count++ } END { print count + 0 }' - )" - if [[ "$EXISTING_PROFILE_MOUNT_COUNT" != "0" ]]; then - print "Guest DeviceProfiles.ini invariant violation: mounts=$EXISTING_PROFILE_MOUNT_COUNT were found before the bind mount." - exit 1 - fi - "$ADB" -s "$SERIAL" shell mount -o bind "$PROFILE_REMOTE" "$PROFILE_DESTINATION" - PROFILE_MOUNTED=1 - readonly ACTIVE_PROFILE_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$PROFILE_DESTINATION" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - readonly ACTIVE_PROFILE_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$PROFILE_DESTINATION" '$5 == target { count++ } END { print count + 0 }' - )" - readonly ACTIVE_PROFILE_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$PROFILE_DESTINATION" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$ACTIVE_PROFILE_SHA256" != "$EXPECTED_PROFILE_SHA256" \ - || "$ACTIVE_PROFILE_MOUNT_COUNT" != "1" \ - || "$ACTIVE_PROFILE_CONTEXT" != "$PROFILE_TARGET_CONTEXT" ]]; then - print "A single guest DeviceProfiles.ini mount could not be established." - exit 1 - fi -fi - -# Unreal exposes ApplicationScale as the global multiplier applied after its -# resolution-dependent DPI rule. Stage it before every game start without -# changing the 3D framebuffer resolution or r.ScreenPercentage. TFT may later -# normalize Saved/Config/Android/Engine.ini, so the launcher preference remains -# the source of truth and is reapplied on every Play. -readonly ENGINE_CONFIG="$PROFILE_DIR/Engine.ini" -UI_SCALE_TEMP_DIR="$(mktemp -d /private/tmp/tft-ui-scale.XXXXXX)" -readonly ENGINE_CONFIG_CURRENT="$UI_SCALE_TEMP_DIR/Engine.ini.current" -readonly ENGINE_CONFIG_NEXT="$UI_SCALE_TEMP_DIR/Engine.ini.next" -"$ADB" -s "$SERIAL" shell mkdir -p "$PROFILE_DIR" -if "$ADB" -s "$SERIAL" shell test -f "$ENGINE_CONFIG"; then - "$ADB" -s "$SERIAL" pull "$ENGINE_CONFIG" "$ENGINE_CONFIG_CURRENT" >/dev/null -else - /usr/bin/touch "$ENGINE_CONFIG_CURRENT" -fi -/usr/bin/awk -v scale="$UI_SCALE" ' - BEGIN { - section = "[/Script/Engine.UserInterfaceSettings]" - found = 0 - in_section = 0 - } - $0 == section { - print - print "ApplicationScale=" scale - found = 1 - in_section = 1 - next - } - /^\[/ { in_section = 0 } - in_section && /^[[:space:]]*ApplicationScale[[:space:]]*=/ { next } - { print } - END { - if (!found) { - print "" - print section - print "ApplicationScale=" scale - } - } -' "$ENGINE_CONFIG_CURRENT" > "$ENGINE_CONFIG_NEXT" -readonly ENGINE_CONFIG_CONTEXT="$( - if "$ADB" -s "$SERIAL" shell test -f "$ENGINE_CONFIG"; then - "$ADB" -s "$SERIAL" shell ls -Zd "$ENGINE_CONFIG" - else - "$ADB" -s "$SERIAL" shell ls -Zd "$PROFILE_DIR" - fi | tr -d '\r' | awk '{ print $1 }' -)" -if [[ ! "$ENGINE_CONFIG_CONTEXT" =~ '^u:object_r:[A-Za-z0-9_]+:s0(:c[0-9]+(,c[0-9]+)*)?$' ]]; then - print "The Engine.ini SELinux context could not be determined safely: $ENGINE_CONFIG_CONTEXT" - exit 1 -fi -readonly ENGINE_CONFIG_REMOTE_NEXT="$PROFILE_DIR/Engine.ini.ui-scale-next" -"$ADB" -s "$SERIAL" push "$ENGINE_CONFIG_NEXT" "$ENGINE_CONFIG_REMOTE_NEXT" >/dev/null -"$ADB" -s "$SERIAL" shell chown "$DATA_OWNER" "$ENGINE_CONFIG_REMOTE_NEXT" -"$ADB" -s "$SERIAL" shell chmod 600 "$ENGINE_CONFIG_REMOTE_NEXT" -"$ADB" -s "$SERIAL" shell chcon "$ENGINE_CONFIG_CONTEXT" "$ENGINE_CONFIG_REMOTE_NEXT" -"$ADB" -s "$SERIAL" shell mv "$ENGINE_CONFIG_REMOTE_NEXT" "$ENGINE_CONFIG" -readonly EXPECTED_ENGINE_CONFIG_SHA256="$(shasum -a 256 "$ENGINE_CONFIG_NEXT" | awk '{ print $1 }')" -readonly ACTIVE_ENGINE_CONFIG_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$ENGINE_CONFIG" \ - | tr -d '\r' \ - | awk '{ print $1 }' -)" -if [[ "$ACTIVE_ENGINE_CONFIG_SHA256" != "$EXPECTED_ENGINE_CONFIG_SHA256" ]]; then - print "Engine.ini with the UI scale failed SHA-256 verification: ${ACTIVE_ENGINE_CONFIG_SHA256:-empty}." - exit 1 -fi -rm -rf "$UI_SCALE_TEMP_DIR" -UI_SCALE_TEMP_DIR="" -print "Unreal UI scale is configured: ${UI_SCALE}x with a ${DISPLAY_SIZE} framebuffer." - -if [[ -n "$UNREAL_LIB_OVERLAY" ]]; then - if [[ -z "$OVERLAY_BASE_PATH" ]]; then - print "The temporary libUnreal.so overlay requires a verified base.apk target." - exit 1 - fi - UNREAL_LIB_TARGET="${OVERLAY_BASE_PATH%/base.apk}/lib/arm64/libUnreal.so" - readonly INSTALLED_UNREAL_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$UNREAL_LIB_TARGET" 2>/dev/null \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$INSTALLED_UNREAL_SHA256" != "$UNREAL_LIB_ORIGINAL_SHA256" ]]; then - print "The installed libUnreal.so does not match the verified original: $INSTALLED_UNREAL_SHA256" - exit 1 - fi - readonly EXISTING_UNREAL_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$UNREAL_LIB_TARGET" '$5 == target { count++ } END { print count + 0 }' - )" - if [[ "$EXISTING_UNREAL_MOUNT_COUNT" != "0" ]]; then - print "A libUnreal.so mount already exists before launch; shut down the AVD before applying another overlay." - exit 1 - fi - - readonly UNREAL_REMOTE="$UNREAL_LIB_REMOTE_DIR/libUnreal.so" - readonly UNREAL_TARGET_OWNER="$("$ADB" -s "$SERIAL" shell stat -c '%u:%g' "$UNREAL_LIB_TARGET" | tr -d '\r')" - readonly UNREAL_TARGET_MODE="$("$ADB" -s "$SERIAL" shell stat -c '%a' "$UNREAL_LIB_TARGET" | tr -d '\r')" - readonly UNREAL_TARGET_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$UNREAL_LIB_TARGET" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ ! "$UNREAL_TARGET_CONTEXT" =~ '^u:object_r:[A-Za-z0-9_]+:s0$' ]]; then - print "The libUnreal.so SELinux context could not be determined safely: $UNREAL_TARGET_CONTEXT" - exit 1 - fi - "$ADB" -s "$SERIAL" shell mkdir -p "$UNREAL_LIB_REMOTE_DIR" - "$ADB" -s "$SERIAL" push "$UNREAL_LIB_OVERLAY" "$UNREAL_REMOTE.next" >/dev/null - "$ADB" -s "$SERIAL" shell chmod "$UNREAL_TARGET_MODE" "$UNREAL_REMOTE.next" - "$ADB" -s "$SERIAL" shell chown "$UNREAL_TARGET_OWNER" "$UNREAL_REMOTE.next" - "$ADB" -s "$SERIAL" shell chcon "$UNREAL_TARGET_CONTEXT" "$UNREAL_REMOTE.next" - readonly UNREAL_REMOTE_CONTEXT="$( - "$ADB" -s "$SERIAL" shell ls -Zd "$UNREAL_REMOTE.next" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - if [[ "$UNREAL_REMOTE_CONTEXT" != "$UNREAL_TARGET_CONTEXT" ]]; then - print "The staging libUnreal.so SELinux context does not match the target." - exit 1 - fi - "$ADB" -s "$SERIAL" shell mv "$UNREAL_REMOTE.next" "$UNREAL_REMOTE" - "$ADB" -s "$SERIAL" shell mount -o bind "$UNREAL_REMOTE" "$UNREAL_LIB_TARGET" - UNREAL_LIB_MOUNTED=1 - - readonly ACTIVE_UNREAL_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "$UNREAL_LIB_TARGET" \ - | tr -d '\r' \ - | awk '{ print $1 }' - )" - readonly ACTIVE_UNREAL_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat /proc/self/mountinfo \ - | tr -d '\r' \ - | awk -v target="$UNREAL_LIB_TARGET" '$5 == target { count++ } END { print count + 0 }' - )" - if [[ "$ACTIVE_UNREAL_SHA256" != "$UNREAL_LIB_OVERLAY_SHA256" \ - || "$ACTIVE_UNREAL_MOUNT_COUNT" != "1" ]]; then - print "A single verified libUnreal.so overlay could not be mounted." - exit 1 - fi -fi - -if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - ANGLE_ORIGINAL_PACKAGES="$("$ADB" -s "$SERIAL" shell settings get global angle_gl_driver_selection_pkgs | tr -d '\r')" - ANGLE_ORIGINAL_VALUES="$("$ADB" -s "$SERIAL" shell settings get global angle_gl_driver_selection_values | tr -d '\r')" - ANGLE_ORIGINAL_FEATURES="$("$ADB" -s "$SERIAL" shell settings get global angle_egl_features | tr -d '\r')" - ANGLE_SETTINGS_MANAGED=1 -fi - -"$ADB" -s "$SERIAL" shell settings put global angle_gl_driver_selection_pkgs "$PACKAGE" -"$ADB" -s "$SERIAL" shell settings put global angle_gl_driver_selection_values "$GUEST_GL_DRIVER" -if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - "$ADB" -s "$SERIAL" shell settings delete global angle_egl_features >/dev/null - "$ADB" -s "$SERIAL" shell "setprop debug.angle.feature_overrides_enabled ''" - "$ADB" -s "$SERIAL" shell "setprop debug.angle.feature_overrides_disabled ''" -else - "$ADB" -s "$SERIAL" shell settings put global angle_egl_features "$ANGLE_FEATURES" - "$ADB" -s "$SERIAL" shell setprop debug.angle.feature_overrides_enabled "$ANGLE_FEATURES" - if [[ -n "$ANGLE_DISABLED_FEATURES" ]]; then - "$ADB" -s "$SERIAL" shell setprop debug.angle.feature_overrides_disabled "$ANGLE_DISABLED_FEATURES" - else - "$ADB" -s "$SERIAL" shell "setprop debug.angle.feature_overrides_disabled ''" - fi -fi -"$ADB" -s "$SERIAL" shell settings put global show_angle_in_use_dialog_box 0 - -if [[ "$GUEST_SUBMIT_THREAD" != "default" ]]; then - GUEST_WRAP_ORIGINAL="$("$ADB" -s "$SERIAL" shell getprop "$WRAP_PROPERTY" | tr -d '\r')" - if [[ ! "$GUEST_WRAP_ORIGINAL" =~ '^[-A-Za-z0-9_./= ]*$' ]]; then - print "The original Android process wrapper contains unsafe characters; refusing to modify it." - exit 1 - fi - GUEST_WRAP_MANAGED=1 - if [[ "$GUEST_SUBMIT_THREAD" == "on-demand" ]]; then - "$ADB" -s "$SERIAL" shell "setprop '$WRAP_PROPERTY' '/system/bin/env'" - readonly EXPECTED_GUEST_WRAP="/system/bin/env" - else - "$ADB" -s "$SERIAL" shell \ - "setprop '$WRAP_PROPERTY' '/system/bin/env MESA_VK_ENABLE_SUBMIT_THREAD=$GUEST_SUBMIT_THREAD'" - readonly EXPECTED_GUEST_WRAP="/system/bin/env MESA_VK_ENABLE_SUBMIT_THREAD=$GUEST_SUBMIT_THREAD" - fi - readonly ACTIVE_GUEST_WRAP="$("$ADB" -s "$SERIAL" shell getprop "$WRAP_PROPERTY" | tr -d '\r')" - if [[ "$ACTIVE_GUEST_WRAP" != "$EXPECTED_GUEST_WRAP" ]]; then - print "The Android process wrapper was not applied: ${ACTIVE_GUEST_WRAP:-empty}." - exit 1 - fi -fi - -HWUI_RENDERER_ORIGINAL="$( - "$ADB" -s "$SERIAL" shell getprop debug.hwui.renderer \ - | tr -d '\r' -)" -if [[ ! "$HWUI_RENDERER_ORIGINAL" =~ '^[-A-Za-z0-9._]*$' ]]; then - print "The original Android HWUI renderer contains unsafe characters." - exit 1 -fi -if [[ "$HWUI_RENDERER_ORIGINAL" != "$HWUI_RENDERER" ]]; then - "$ADB" -s "$SERIAL" shell setprop debug.hwui.renderer "$HWUI_RENDERER" - HWUI_RENDERER_MANAGED=1 -fi -readonly ACTIVE_HWUI_RENDERER="$( - "$ADB" -s "$SERIAL" shell getprop debug.hwui.renderer \ - | tr -d '\r' -)" -if [[ "$ACTIVE_HWUI_RENDERER" != "$HWUI_RENDERER" ]]; then - print "The Android HWUI renderer was not applied: ${ACTIVE_HWUI_RENDERER:-empty}." - exit 1 -fi - -if ! "$ADB" -s "$SERIAL" shell cmd locale set-app-locales "$PACKAGE" "$GAME_LANGUAGE" >/dev/null 2>&1; then - print "Android app locale could not be applied; Unreal will use the selected culture from UECommandLine." -fi -"$ADB" -s "$SERIAL" shell am force-stop "$PACKAGE" - -# Riot's streaming installer can leave a zero-byte release manifest and sparse -# chunk placeholders behind when its first download is interrupted. On every -# later start the game tries to repair that cache, fails with "Truncated -# manifest header", and leaves the patching screen waiting forever. The cache -# contains only downloadable public game resources, so reset that directory -# when the exact corrupt state is present. Login and other app data stay intact. -readonly STREAMING_INSTALL_DIR="/sdcard/Android/data/$PACKAGE/files/StreamingInstalls" -readonly STREAMING_INSTALL_MANIFEST="$STREAMING_INSTALL_DIR/Metadata.manifest" -if "$ADB" -s "$SERIAL" shell test -e "$STREAMING_INSTALL_MANIFEST" \ - && ! "$ADB" -s "$SERIAL" shell test -s "$STREAMING_INSTALL_MANIFEST"; then - print "Empty TFT streaming manifest detected; resetting the downloadable streaming cache." - "$ADB" -s "$SERIAL" shell rm -rf "$STREAMING_INSTALL_DIR" - "$ADB" -s "$SERIAL" shell sync - if "$ADB" -s "$SERIAL" shell test -e "$STREAMING_INSTALL_DIR"; then - print "Could not remove the corrupt TFT streaming cache." - exit 1 - fi - print "Corrupt TFT streaming cache removed; TFT will download the required resources again." -fi - -"$ADB" -s "$SERIAL" shell am start -n "$PACKAGE/$ACTIVITY" - -if [[ "$PROFILE_MOUNTED" == "1" ]]; then - typeset -i profile_waited=0 - typeset PROFILE_GAME_PID PROFILE_PROCESS_MOUNT_COUNT PROFILE_PROCESS_SHA256 - PROFILE_PROCESS_VERIFIED=0 - while (( profile_waited < 90 )); do - PROFILE_GAME_PID="$("$ADB" -s "$SERIAL" shell pidof "$PACKAGE" 2>/dev/null | tr -d '\r' || true)" - PROFILE_GAME_PID="${PROFILE_GAME_PID%% *}" - if [[ -n "$PROFILE_GAME_PID" ]]; then - PROFILE_PROCESS_MOUNT_COUNT="$( - "$ADB" -s "$SERIAL" shell cat "/proc/$PROFILE_GAME_PID/mountinfo" 2>/dev/null \ - | tr -d '\r' \ - | awk -v target="$PROFILE_DESTINATION" '$5 == target { count++ } END { print count + 0 }' \ - || true - )" - PROFILE_PROCESS_SHA256="$( - "$ADB" -s "$SERIAL" shell sha256sum "/proc/$PROFILE_GAME_PID/root$PROFILE_DESTINATION" 2>/dev/null \ - | tr -d '\r' \ - | awk '{ print $1 }' \ - || true - )" - if [[ "$PROFILE_PROCESS_MOUNT_COUNT" == "1" \ - && "$PROFILE_PROCESS_SHA256" == "$EXPECTED_PROFILE_SHA256" ]]; then - PROFILE_PROCESS_VERIFIED=1 - break - fi - fi - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited while the guest profile namespace was being verified." - exit 0 - fi - sleep 1 - (( profile_waited += 1 )) - done - if [[ "$PROFILE_PROCESS_VERIFIED" != "1" ]]; then - print "Guest DeviceProfiles.ini with the expected SHA-256 is not visible in the TFT mount namespace." - exit 1 - fi - print "Guest DeviceProfiles.ini was verified in the mount namespace of TFT PID $PROFILE_GAME_PID." -fi - -if [[ "$GUEST_SUBMIT_THREAD" == "0" || "$GUEST_SUBMIT_THREAD" == "1" ]]; then - typeset -i submit_waited=0 - typeset SUBMIT_GAME_PID ACTIVE_SUBMIT_ENV - SUBMIT_ENV_VERIFIED=0 - while (( submit_waited < 90 )); do - SUBMIT_GAME_PID="$("$ADB" -s "$SERIAL" shell pidof "$PACKAGE" 2>/dev/null | tr -d '\r' || true)" - if [[ -n "$SUBMIT_GAME_PID" ]]; then - ACTIVE_SUBMIT_ENV="$( - "$ADB" -s "$SERIAL" shell cat "/proc/$SUBMIT_GAME_PID/environ" 2>/dev/null \ - | tr '\0' '\n' \ - | grep -Fx "MESA_VK_ENABLE_SUBMIT_THREAD=$GUEST_SUBMIT_THREAD" || true - )" - if [[ "$ACTIVE_SUBMIT_ENV" == "MESA_VK_ENABLE_SUBMIT_THREAD=$GUEST_SUBMIT_THREAD" ]]; then - SUBMIT_ENV_VERIFIED=1 - break - fi - fi - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited while the guest submit thread was being verified." - exit 0 - fi - sleep 1 - (( submit_waited += 1 )) - done - if [[ "$SUBMIT_ENV_VERIFIED" != "1" ]]; then - print "MESA_VK_ENABLE_SUBMIT_THREAD did not appear in the TFT environment within 90 seconds." - exit 1 - fi - print "The guest Vulkan submit mode was verified through /proc/PID/environ: $GUEST_SUBMIT_THREAD." -elif [[ "$GUEST_SUBMIT_THREAD" == "on-demand" ]]; then - typeset -i control_waited=0 - typeset CONTROL_GAME_PID CONTROL_SUBMIT_ENV - CONTROL_ENV_VERIFIED=0 - while (( control_waited < 90 )); do - CONTROL_GAME_PID="$("$ADB" -s "$SERIAL" shell pidof "$PACKAGE" 2>/dev/null | tr -d '\r' || true)" - CONTROL_GAME_PID="${CONTROL_GAME_PID%% *}" - if [[ -n "$CONTROL_GAME_PID" ]]; then - CONTROL_SUBMIT_ENV="$( - "$ADB" -s "$SERIAL" shell cat "/proc/$CONTROL_GAME_PID/environ" 2>/dev/null \ - | tr '\0' '\n' \ - | grep -E '^MESA_VK_ENABLE_SUBMIT_THREAD=' || true - )" - if [[ -z "$CONTROL_SUBMIT_ENV" ]]; then - CONTROL_ENV_VERIFIED=1 - break - fi - fi - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited while the control submit mode was being verified." - exit 0 - fi - sleep 1 - (( control_waited += 1 )) - done - if [[ "$CONTROL_ENV_VERIFIED" != "1" ]]; then - print "The control mode is contaminated by MESA_VK_ENABLE_SUBMIT_THREAD." - exit 1 - fi - print "The guest Vulkan submit control was verified: MESA_VK_ENABLE_SUBMIT_THREAD is absent." -fi - -if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - typeset -i native_waited=0 - typeset GAME_PID GAME_MAPS - NATIVE_GLES_VERIFIED=0 - while (( native_waited < 90 )); do - GAME_PID="$("$ADB" -s "$SERIAL" shell pidof "$PACKAGE" 2>/dev/null | tr -d '\r' || true)" - if [[ -n "$GAME_PID" ]]; then - GAME_MAPS="$("$ADB" -s "$SERIAL" shell cat "/proc/$GAME_PID/maps" 2>/dev/null | tr -d '\r' || true)" - if [[ "$GAME_MAPS" == *libEGL_emulation.so* \ - && "$GAME_MAPS" == *libGLESv2_emulation.so* \ - && "$GAME_MAPS" == *libGLESv2_enc.so* ]]; then - if [[ "$GAME_MAPS" == *libGLESv2_angle.so* ]]; then - print "Native GLES verification failed: guest ANGLE is still loaded." - exit 1 - fi - NATIVE_GLES_VERIFIED=1 - break - fi - fi - if ! kill -0 "$EMULATOR_PID" >/dev/null 2>&1; then - print "The emulator exited while native GLES was being verified." - exit 0 - fi - sleep 1 - (( native_waited += 1 )) - done - if [[ "$NATIVE_GLES_VERIFIED" != "1" ]]; then - print "Native GLES could not be verified through /proc/PID/maps within 90 seconds." - exit 1 - fi - print "Native GLES was verified: the gfxstream GLES encoder is loaded and guest ANGLE is absent." -fi - -TFT_SERIAL="$SERIAL" \ -TFT_ADB="$ADB" \ -TFT_PSO_CPU_LIST="0-$(( CPU_CORES - 1 ))" \ - "$PROJECT_DIR/scripts/watch-root-pso.command" & -WATCHER_PID=$! - -case "$RENDERER" in - direct-vulkan) - print "TFT is running: Unreal Vulkan -> gfxstream -> MoltenVK -> Metal, ${DISPLAY_SIZE}@${DISPLAY_DENSITY}dpi@60, audio $AUDIO_STATUS." - ;; - angle-opengl) - if [[ "$GUEST_GL_DRIVER" == "native" ]]; then - if [[ "$HOST_GPU" == "swangle" ]]; then - print "TFT is running: Unreal OpenGL ES -> gfxstream GLES encoder -> host ANGLE -> Vulkan -> SwiftShader CPU, ${DISPLAY_SIZE}@${DISPLAY_DENSITY}dpi@60, audio $AUDIO_STATUS." - else - print "TFT is running: Unreal OpenGL ES -> gfxstream GLES encoder -> host ANGLE -> Metal, ${DISPLAY_SIZE}@${DISPLAY_DENSITY}dpi@60, audio $AUDIO_STATUS." - fi - else - print "TFT is running: Unreal OpenGL ES -> guest ANGLE -> Vulkan -> Metal, ${DISPLAY_SIZE}@${DISPLAY_DENSITY}dpi@60, audio $AUDIO_STATUS." - fi - ;; - angle) - print "TFT is running: stock OpenGL ES -> ANGLE -> Vulkan -> Metal, ${DISPLAY_SIZE}@${DISPLAY_DENSITY}dpi@60, audio $AUDIO_STATUS." - ;; -esac -print "Root remains visible; the watcher only changes live scheduling for PSO threads." -if [[ "$INPUT_BRIDGE_ENABLED" == "1" ]]; then - print "GameActivity controls: Space - shop, D - reroll, F - buy XP, Tab - items/traits, V - players/damage; right-click is blocked only in game." - if [[ "$INPUT_DIAGNOSTICS" == "1" ]]; then - print "Input diagnostics: click marker and host timestamps are enabled; log=${INPUT_DIAGNOSTICS_LOG:-stderr}." - fi -fi -print "Graphics profile: $GRAPHICS_PROFILE." -print "TFT renderer: $RENDERER." -print "Host GPU backend: $HOST_GPU." -print "Android HWUI renderer: $HWUI_RENDERER; the Unreal renderer is unchanged." -print "Guest GL driver: $GUEST_GL_DRIVER." -print "Guest Vulkan submit thread: $GUEST_SUBMIT_THREAD." -print "Guest resources: ${CPU_CORES} cores, ${MEMORY_MB} MB RAM." -print "Unreal UI scale: ${UI_SCALE}x." -print "ANGLE enabled features: $ANGLE_FEATURES." -print "ANGLE disabled features: ${ANGLE_DISABLED_FEATURES:-none}." -if [[ -n "$OVERLAY_APK" ]]; then - print "$OVERLAY_LABEL overlay: the APK and DeviceProfile passed SHA-256 verification and bind mounts were established 0->1." -fi -if [[ "$UNREAL_LIB_MOUNTED" == "1" ]]; then - print "libUnreal.so overlay: SHA-256 and the 0->1 mount invariant were verified before process startup." -fi -if [[ "$BATCHED_DESCRIPTORS" == "1" ]]; then - print "Experiment enabled: VulkanBatchedDescriptorSetUpdate." -fi -if [[ "$VIRTIO_GPU_NATIVE_SYNC" == "1" ]]; then - print "Experiment enabled: VirtioGpuNativeSync." -fi -if [[ "$VIRTIO_GPU_NEXT" == "1" ]]; then - print "Experiment enabled: VirtioGpuNext." -fi -if [[ -n "$GL_DRAW_FLUSH_INTERVAL" ]]; then - print "Graphics draw flush interval: $GL_DRAW_FLUSH_INTERVAL microseconds." -fi -if [[ "$MVK_QUEUE_MODE" == "async" ]]; then - print "Experiment enabled: asynchronous MoltenVK queue submissions." -elif [[ "$MVK_QUEUE_MODE" == "sync" ]]; then - print "Control mode: synchronous MoltenVK queue submissions." -fi -if [[ "${MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE:-}" == "8" \ - && "${MVK_CONFIG_FAST_MATH_ENABLED:-}" == "1" ]]; then - print "OSFT MoltenVK tuning: 8 active Metal command buffers, fast math." -fi -if [[ "$MACOS_GAME_MODE" == "1" ]]; then - print "The Game Mode app wrapper is active. Enter fullscreen and verify Cmd-Esc -> Game Mode: On." -fi -print "Closing the Android Emulator window will shut down the experimental AVD." - -wait "$EMULATOR_PID" || true -print "The emulator was closed; this is treated as a normal exit." diff --git a/scripts/audit-native-gles-coverage.command b/scripts/audit-native-gles-coverage.command index b95ee50..9517ca8 100755 --- a/scripts/audit-native-gles-coverage.command +++ b/scripts/audit-native-gles-coverage.command @@ -73,7 +73,7 @@ if [[ -z "$NM_TOOL" || ! -x "$NM_TOOL" ]]; then exit 2 fi -WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/mactician-gles-audit.XXXXXX") +WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/tftmac-gles-audit.XXXXXX") trap 'rm -rf "$WORK_DIR"' EXIT extract_exports() { diff --git a/scripts/build-android-egl-capability-probe.command b/scripts/build-android-egl-capability-probe.command index e33e523..0c9290e 100755 --- a/scripts/build-android-egl-capability-probe.command +++ b/scripts/build-android-egl-capability-probe.command @@ -5,7 +5,7 @@ readonly PROJECT_DIR="${0:A:h:h}" readonly SOURCE_DIR="$PROJECT_DIR/artifacts/android-egl-capability-probe" readonly OUTPUT="${1:-$PROJECT_DIR/runtime/android-egl-capability-probe}" readonly GO_COMMAND="${TFT_GO_COMMAND:-go1.24.3}" -readonly BUILD_CACHE="$(mktemp -d -t mactician-android-egl-go-cache)" +readonly BUILD_CACHE="$(mktemp -d -t tftmac-android-egl-go-cache)" cleanup() { rm -rf "$BUILD_CACHE" diff --git a/scripts/login-tft-from-keychain.command b/scripts/login-tft-from-keychain.command index 614ed89..b80055a 100755 --- a/scripts/login-tft-from-keychain.command +++ b/scripts/login-tft-from-keychain.command @@ -12,7 +12,7 @@ ADB="$(tft_resolve_adb)" readonly ADB readonly SERIAL="${TFT_SERIAL:-emulator-5582}" readonly PACKAGE="com.riotgames.league.teamfighttactics.pbe" -readonly KEYCHAIN_SERVICE="${MACTICIAN_KEYCHAIN_SERVICE:-dev.sergeinaumov.mactician}" +readonly KEYCHAIN_SERVICE="${TFTMAC_KEYCHAIN_SERVICE:-com.flashls1.tftmac}" readonly CDP_HELPER="$SCRIPT_DIR/login-tft-webview.mjs" if [[ "$ADB_SERVER_PORT" != <-> ]] \ diff --git a/scripts/restore-emulator-graphics.command b/scripts/restore-emulator-graphics.command index 744d98f..3df64fb 100755 --- a/scripts/restore-emulator-graphics.command +++ b/scripts/restore-emulator-graphics.command @@ -10,7 +10,7 @@ readonly ANGLE_DIR="$LIB_DIR/gles_angle" restore_library() { local active="$1" - local backup="$active.mactician-original" + local backup="$active.tftmac-original" if [[ -L "$active" && -f "$backup" ]]; then unlink "$active" diff --git a/scripts/run-android-ui-transport-probe.command b/scripts/run-android-ui-transport-probe.command deleted file mode 100755 index 5a12ffe..0000000 --- a/scripts/run-android-ui-transport-probe.command +++ /dev/null @@ -1,250 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly SCRIPT_DIR="${0:A:h}" -readonly PROJECT_DIR="${SCRIPT_DIR:h}" -source "$PROJECT_DIR/scripts/android-environment.sh" - -readonly LABEL="${1:-}" -readonly ROUNDS="${2:-6}" -readonly SWIPE_PAIRS="${TFT_UI_TRANSPORT_SWIPE_PAIRS:-15}" -readonly SWIPE_DURATION_MS="${TFT_UI_TRANSPORT_SWIPE_DURATION_MS:-180}" -readonly MINIMUM_FRAMES_PER_ROUND="${TFT_UI_TRANSPORT_MINIMUM_FRAMES_PER_ROUND:-$(( SWIPE_PAIRS * 8 ))}" -readonly ADB_SERVER_PORT="${TFT_ADB_SERVER_PORT:-5038}" -readonly SERIAL="${TFT_SERIAL:-emulator-5582}" -readonly EXPECTED_GRAPHICS_PROFILE="${TFT_UI_TRANSPORT_EXPECTED_GRAPHICS_PROFILE:-}" -readonly TFT_PACKAGE="com.riotgames.league.teamfighttactics.pbe" -readonly SETTINGS_PACKAGE="com.android.settings" -readonly ADB="$(tft_resolve_adb)" -readonly JQ="$(command -v jq || true)" - -if [[ ! "$LABEL" =~ '^[A-Za-z0-9][A-Za-z0-9._-]*$' ]]; then - print -u2 "Usage: ${0:t} [rounds]" - print -u2 "The profile label may contain letters, digits, dots, underscores, and dashes." - exit 2 -fi -for numeric_name numeric_value in \ - rounds "$ROUNDS" \ - swipe-pairs "$SWIPE_PAIRS" \ - swipe-duration-ms "$SWIPE_DURATION_MS" \ - minimum-frames-per-round "$MINIMUM_FRAMES_PER_ROUND"; do - if [[ "$numeric_value" != <-> ]] || (( numeric_value < 1 )); then - print -u2 "$numeric_name must be a positive integer." - exit 2 - fi -done -if [[ -z "$JQ" ]]; then - print -u2 "jq is required to write the transport-probe summary." - exit 1 -fi -if [[ ! "$EXPECTED_GRAPHICS_PROFILE" =~ '^[a-z0-9][a-z0-9-]*$' ]]; then - print -u2 "TFT_UI_TRANSPORT_EXPECTED_GRAPHICS_PROFILE is required and must use lowercase letters, digits, and dashes." - exit 2 -fi -if [[ "$ADB_SERVER_PORT" != <-> ]] \ - || (( ADB_SERVER_PORT < 1024 || ADB_SERVER_PORT > 65534 )); then - print -u2 "TFT_ADB_SERVER_PORT must be a TCP port from 1024 through 65534." - exit 2 -fi - -unset ADB_SERVER_SOCKET ANDROID_ADB_SERVER_ADDRESS -export ANDROID_ADB_SERVER_PORT="$ADB_SERVER_PORT" -"$ADB" -P "$ADB_SERVER_PORT" start-server >/dev/null -if ! "$ADB" -s "$SERIAL" get-state >/dev/null 2>&1; then - print -u2 "The transport probe requires an already running AVD on $SERIAL." - exit 1 -fi -readonly ACTIVE_GRAPHICS_PROFILE="$( - "$ADB" -s "$SERIAL" shell getprop ro.boot.mactician.graphics_profile 2>/dev/null \ - | tr -d '\r' -)" -if [[ "$ACTIVE_GRAPHICS_PROFILE" != "$EXPECTED_GRAPHICS_PROFILE" ]]; then - print -u2 "The running AVD graphics profile is '${ACTIVE_GRAPHICS_PROFILE:-}', expected '$EXPECTED_GRAPHICS_PROFILE'." - print -u2 "Cold-boot the requested profile before collecting transport evidence." - exit 1 -fi -readonly TRANSPORT="$( - "$ADB" -s "$SERIAL" shell getprop ro.boot.hardware.gltransport 2>/dev/null \ - | tr -d '\r' -)" -readonly HWUI_RENDERER="$( - "$ADB" -s "$SERIAL" shell getprop debug.hwui.renderer 2>/dev/null \ - | tr -d '\r' -)" - -readonly DISPLAY_SIZE="$( - "$ADB" -s "$SERIAL" shell wm size 2>/dev/null \ - | tr -d '\r' \ - | sed -n \ - -e 's/^Physical size: \([0-9][0-9]*x[0-9][0-9]*\)$/\1/p' \ - -e 's/^Override size: \([0-9][0-9]*x[0-9][0-9]*\)$/\1/p' \ - | tail -n 1 -)" -if [[ ! "$DISPLAY_SIZE" =~ '^([0-9]+)x([0-9]+)$' ]]; then - print -u2 "Could not determine the active AVD display size." - exit 1 -fi -readonly DISPLAY_WIDTH="${match[1]}" -readonly DISPLAY_HEIGHT="${match[2]}" -readonly DISPLAY_DENSITY="$( - "$ADB" -s "$SERIAL" shell wm density 2>/dev/null \ - | tr -d '\r' \ - | sed -n \ - -e 's/^Physical density: \([0-9][0-9]*\)$/\1/p' \ - -e 's/^Override density: \([0-9][0-9]*\)$/\1/p' \ - | tail -n 1 -)" -if [[ "$DISPLAY_DENSITY" != <-> ]]; then - print -u2 "Could not determine the active AVD display density." - exit 1 -fi -readonly SWIPE_X=$(( DISPLAY_WIDTH / 2 )) -readonly SWIPE_LOW_Y=$(( DISPLAY_HEIGHT * 3 / 4 )) -readonly SWIPE_HIGH_Y=$(( DISPLAY_HEIGHT / 4 )) - -readonly UTC="$(date -u +%Y%m%dT%H%M%SZ)" -readonly RUN_DIR="$PROJECT_DIR/runtime/measurements/android-ui-transport/${UTC}__${LABEL}" -readonly ROUNDS_JSONL="$RUN_DIR/rounds.jsonl" -mkdir -p "${RUN_DIR:h}" -if ! mkdir "$RUN_DIR" 2>/dev/null; then - if [[ -e "$RUN_DIR" ]]; then - print -u2 "Transport-probe evidence directory already exists: $RUN_DIR" - print -u2 "Use a distinct label; existing evidence will not be overwritten." - else - print -u2 "Could not create the transport-probe evidence directory: $RUN_DIR" - fi - exit 1 -fi -: > "$ROUNDS_JSONL" - -write_rejected_summary() { - local reason="$1" - "$JQ" -s \ - --arg utc "$UTC" \ - --arg profile_label "$LABEL" \ - --arg graphics_profile "$ACTIVE_GRAPHICS_PROFILE" \ - --arg serial "$SERIAL" \ - --arg display "$DISPLAY_SIZE" \ - --argjson display_density "$DISPLAY_DENSITY" \ - --arg transport "$TRANSPORT" \ - --arg hwui_renderer "$HWUI_RENDERER" \ - --arg rejected_reason "$reason" \ - --argjson swipe_pairs "$SWIPE_PAIRS" \ - --argjson swipe_duration_ms "$SWIPE_DURATION_MS" \ - --argjson minimum_frames_per_round "$MINIMUM_FRAMES_PER_ROUND" \ - '{schema_version: 5, utc: $utc, "label": $profile_label, serial: $serial, - graphics_profile: $graphics_profile, - display: $display, display_density: $display_density, - transport: $transport, hwui_renderer: $hwui_renderer, - swipe_pairs: $swipe_pairs, swipe_duration_ms: $swipe_duration_ms, - minimum_frames_per_round: $minimum_frames_per_round, - rejected_reason: $rejected_reason, rounds: .}' \ - "$ROUNDS_JSONL" > "$RUN_DIR/summary.json" -} - -"$ADB" -s "$SERIAL" shell am force-stop "$TFT_PACKAGE" -"$ADB" -s "$SERIAL" shell am start -W -a android.settings.SETTINGS > "$RUN_DIR/start.txt" -if ! grep -Fqx 'Status: ok' "$RUN_DIR/start.txt" \ - || ! grep -Eq '^Activity: com[.]android[.]settings/' "$RUN_DIR/start.txt"; then - write_rejected_summary settings_not_foreground - print -u2 "Android Settings did not become the measured foreground activity." - print -u2 "Partial evidence is retained: $RUN_DIR" - exit 1 -fi -sleep 2 - -integer round pair -for (( round = 1; round <= ROUNDS; round++ )); do - round_gfxinfo="$RUN_DIR/round-$round-gfxinfo.txt" - "$ADB" -s "$SERIAL" shell dumpsys gfxinfo "$SETTINGS_PACKAGE" reset >/dev/null - start_ns="$(date +%s%N)" - for (( pair = 1; pair <= SWIPE_PAIRS; pair++ )); do - "$ADB" -s "$SERIAL" shell input swipe \ - "$SWIPE_X" "$SWIPE_LOW_Y" "$SWIPE_X" "$SWIPE_HIGH_Y" \ - "$SWIPE_DURATION_MS" >/dev/null - "$ADB" -s "$SERIAL" shell input swipe \ - "$SWIPE_X" "$SWIPE_HIGH_Y" "$SWIPE_X" "$SWIPE_LOW_Y" \ - "$SWIPE_DURATION_MS" >/dev/null - done - end_ns="$(date +%s%N)" - elapsed_ns=$(( end_ns - start_ns )) - "$ADB" -s "$SERIAL" shell dumpsys gfxinfo "$SETTINGS_PACKAGE" > "$round_gfxinfo" - - total_frames="$(sed -n 's/^Total frames rendered: \([0-9][0-9]*\)$/\1/p' "$round_gfxinfo" | head -n 1)" - janky_frames="$(sed -n 's/^Janky frames: \([0-9][0-9]*\) .*/\1/p' "$round_gfxinfo" | head -n 1)" - p50_ms="$(sed -n 's/^50th percentile: \([0-9][0-9]*\)ms$/\1/p' "$round_gfxinfo" | head -n 1)" - p90_ms="$(sed -n 's/^90th percentile: \([0-9][0-9]*\)ms$/\1/p' "$round_gfxinfo" | head -n 1)" - p95_ms="$(sed -n 's/^95th percentile: \([0-9][0-9]*\)ms$/\1/p' "$round_gfxinfo" | head -n 1)" - p99_ms="$(sed -n 's/^99th percentile: \([0-9][0-9]*\)ms$/\1/p' "$round_gfxinfo" | head -n 1)" - if [[ -z "$total_frames" || -z "$janky_frames" || -z "$p50_ms" \ - || -z "$p90_ms" || -z "$p95_ms" || -z "$p99_ms" ]]; then - write_rejected_summary "gfxinfo_parse_round_$round" - print -u2 "Could not parse Android gfxinfo for round $round." - exit 1 - fi - - "$JQ" -n \ - --argjson round "$round" \ - --argjson elapsed_ns "$elapsed_ns" \ - --argjson total_frames "$total_frames" \ - --argjson janky_frames "$janky_frames" \ - --argjson p50_ms "$p50_ms" \ - --argjson p90_ms "$p90_ms" \ - --argjson p95_ms "$p95_ms" \ - --argjson p99_ms "$p99_ms" \ - '{round: $round, elapsed_ns: $elapsed_ns, total_frames: $total_frames, - janky_frames: $janky_frames, p50_ms: $p50_ms, p90_ms: $p90_ms, - p95_ms: $p95_ms, p99_ms: $p99_ms}' >> "$ROUNDS_JSONL" - if (( total_frames < MINIMUM_FRAMES_PER_ROUND )); then - write_rejected_summary "non_rendering_round_$round" - print -u2 "Transport probe became non-rendering in round $round: $total_frames frames, expected at least $MINIMUM_FRAMES_PER_ROUND." - print -u2 "Partial evidence is retained: $RUN_DIR" - exit 1 - fi -done - -"$JQ" -s \ - --arg utc "$UTC" \ - --arg profile_label "$LABEL" \ - --arg graphics_profile "$ACTIVE_GRAPHICS_PROFILE" \ - --arg serial "$SERIAL" \ - --arg display "$DISPLAY_SIZE" \ - --argjson display_density "$DISPLAY_DENSITY" \ - --arg transport "$TRANSPORT" \ - --arg hwui_renderer "$HWUI_RENDERER" \ - --argjson swipe_pairs "$SWIPE_PAIRS" \ - --argjson swipe_duration_ms "$SWIPE_DURATION_MS" \ - --argjson minimum_frames_per_round "$MINIMUM_FRAMES_PER_ROUND" \ - 'def median: - sort as $sorted - | ($sorted | length) as $count - | if ($count % 2) == 1 then $sorted[($count / 2 | floor)] - else (($sorted[$count / 2 - 1] + $sorted[$count / 2]) / 2) - end; - . as $all - | ($all | if length > 3 then .[3:] else . end) as $warm - | {schema_version: 5, utc: $utc, "label": $profile_label, serial: $serial, - graphics_profile: $graphics_profile, - display: $display, display_density: $display_density, - transport: $transport, hwui_renderer: $hwui_renderer, - swipe_pairs: $swipe_pairs, - swipe_duration_ms: $swipe_duration_ms, - minimum_frames_per_round: $minimum_frames_per_round, rounds: $all, - warmup_rounds_discarded: (($all | length) - ($warm | length)), - mean_elapsed_ms: (($all | map(.elapsed_ns) | add) / ($all | length) / 1000000), - median_elapsed_ms: (($all | map(.elapsed_ns) | median) / 1000000), - max_p95_ms: ($all | map(.p95_ms) | max), - max_p99_ms: ($all | map(.p99_ms) | max), - total_janky_frames: ($all | map(.janky_frames) | add), - warm_mean_elapsed_ms: (($warm | map(.elapsed_ns) | add) / ($warm | length) / 1000000), - warm_median_elapsed_ms: (($warm | map(.elapsed_ns) | median) / 1000000), - warm_max_p95_ms: ($warm | map(.p95_ms) | max), - warm_max_p99_ms: ($warm | map(.p99_ms) | max), - warm_total_janky_frames: ($warm | map(.janky_frames) | add)}' \ - "$ROUNDS_JSONL" > "$RUN_DIR/summary.json" - -print "Android UI transport probe complete: $RUN_DIR" -"$JQ" '{"label": .label, graphics_profile, transport, hwui_renderer, warm_mean_elapsed_ms, - warm_median_elapsed_ms, warm_max_p95_ms, warm_max_p99_ms, - warm_total_janky_frames}' "$RUN_DIR/summary.json" -print "TFT remains stopped in the running experimental AVD." diff --git a/scripts/run-asg-experiment.command b/scripts/run-asg-experiment.command index 7700196..09334d7 100755 --- a/scripts/run-asg-experiment.command +++ b/scripts/run-asg-experiment.command @@ -17,9 +17,9 @@ readonly LAUNCHER="${TFT_LAUNCHER:-$PROJECT_DIR/run-tft-gles32.command}" readonly PACKAGE="com.riotgames.league.teamfighttactics.pbe" readonly CONFIG="$AVD_HOME/$AVD_NAME.avd/config.ini" readonly HARDWARE_CONFIG="$AVD_HOME/$AVD_NAME.avd/hardware-qemu.ini" -readonly CONFIG_BACKUP="$CONFIG.mactician-asg-backup" -readonly HARDWARE_CONFIG_BACKUP="$HARDWARE_CONFIG.mactician-asg-backup" -readonly LOCK_FILE="$AVD_HOME/$AVD_NAME.avd/.mactician-avd.lock" +readonly CONFIG_BACKUP="$CONFIG.tftmac-asg-backup" +readonly HARDWARE_CONFIG_BACKUP="$HARDWARE_CONFIG.tftmac-asg-backup" +readonly LOCK_FILE="$AVD_HOME/$AVD_NAME.avd/.tftmac-avd.lock" readonly TRANSPORT="${TFT_GLTRANSPORT:-virtio-gpu-asg}" readonly EXPECTED_BASELINE_TRANSPORT="${TFT_EXPECTED_GLTRANSPORT_BASELINE:-pipe}" readonly DRAW_FLUSH_INTERVAL="${TFT_GL_DRAW_FLUSH_INTERVAL:-}" diff --git a/scripts/run-autonomous-trial-benchmark.command b/scripts/run-autonomous-trial-benchmark.command index d025e07..84fd9c9 100755 --- a/scripts/run-autonomous-trial-benchmark.command +++ b/scripts/run-autonomous-trial-benchmark.command @@ -32,9 +32,9 @@ readonly AVD_NAME="${TFT_AVD_NAME:-TftRootAffinity}" readonly AVD_DIR="$AVD_HOME/$AVD_NAME.avd" readonly CONFIG="$AVD_DIR/config.ini" readonly HARDWARE_CONFIG="$AVD_DIR/hardware-qemu.ini" -readonly ASG_CONFIG_BACKUP="$CONFIG.mactician-asg-backup" -readonly ASG_HARDWARE_BACKUP="$HARDWARE_CONFIG.mactician-asg-backup" -readonly AVD_LOCK="$AVD_DIR/.mactician-avd.lock" +readonly ASG_CONFIG_BACKUP="$CONFIG.tftmac-asg-backup" +readonly ASG_HARDWARE_BACKUP="$HARDWARE_CONFIG.tftmac-asg-backup" +readonly AVD_LOCK="$AVD_DIR/.tftmac-avd.lock" readonly WRAP_PROPERTY="wrap.$PACKAGE" if [[ -z "$CANDIDATE_ID" ]] \ diff --git a/scripts/run-host-angle-capability-probe.command b/scripts/run-host-angle-capability-probe.command index ae06c36..365a354 100755 --- a/scripts/run-host-angle-capability-probe.command +++ b/scripts/run-host-angle-capability-probe.command @@ -8,7 +8,7 @@ readonly ANGLE_DIR="$SDK_ROOT/emulator/lib64/gles_angle" readonly EGL_LIBRARY="$ANGLE_DIR/libEGL.dylib" readonly GLES_LIBRARY="$ANGLE_DIR/libGLESv2.dylib" readonly SWIFTSHADER_ICD="$ANGLE_DIR/vk_swiftshader_icd.json" -readonly BUILD_DIR="$(mktemp -d "${TMPDIR:-/tmp}/mactician-angle-probe.XXXXXX")" +readonly BUILD_DIR="$(mktemp -d "${TMPDIR:-/tmp}/tftmac-angle-probe.XXXXXX")" readonly PROBE="$BUILD_DIR/angle-egl-capability-probe" cleanup() { diff --git a/scripts/run-performance-campaign.command b/scripts/run-performance-campaign.command index 405a445..d37a1b7 100755 --- a/scripts/run-performance-campaign.command +++ b/scripts/run-performance-campaign.command @@ -806,9 +806,9 @@ if "$ADB" -P "$ADB_SERVER_PORT" -s "$SERIAL" get-state >/dev/null 2>&1; then exit 4 fi typeset AVD_DIR="${TFT_ROOT_AVD_HOME:-$(tft_resolve_avd_home)}/${TFT_AVD_NAME:-TftRootAffinity}.avd" -if [[ -e "$AVD_DIR/.mactician-avd.lock" \ - || -e "$AVD_DIR/config.ini.mactician-asg-backup" \ - || -e "$AVD_DIR/hardware-qemu.ini.mactician-asg-backup" ]]; then +if [[ -e "$AVD_DIR/.tftmac-avd.lock" \ + || -e "$AVD_DIR/config.ini.tftmac-asg-backup" \ + || -e "$AVD_DIR/hardware-qemu.ini.tftmac-asg-backup" ]]; then print "Final check failed: AVD rollback markers were not removed." exit 4 fi diff --git a/scripts/verify-telemetry-contract.command b/scripts/verify-telemetry-contract.command deleted file mode 100755 index 711f696..0000000 --- a/scripts/verify-telemetry-contract.command +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/zsh -set -euo pipefail - -readonly PROJECT_DIR="${0:A:h:h}" -readonly CONTRACT_DIR="$PROJECT_DIR/docs/telemetry-contract" -readonly API_CONTRACT_DIR="${MACTICIAN_API_CONTRACT_DIR:-$PROJECT_DIR/../sergeinaumov.dev/server/mactician-api/testdata/contract}" - -( - cd "$CONTRACT_DIR" - shasum -a 256 -c SHA256SUMS -) - -if [[ -d "$API_CONTRACT_DIR" ]]; then - for fixture in first-game-session-v2.json game-session-diagnostics-v2.json SHA256SUMS; do - cmp -s "$CONTRACT_DIR/$fixture" "$API_CONTRACT_DIR/$fixture" || { - print -u2 "Telemetry contract drift: $fixture differs from $API_CONTRACT_DIR/$fixture" - exit 1 - } - done - print "Launcher and API telemetry contracts match." -else - print "API contract directory not present; canonical launcher fixture hashes are valid." -fi diff --git a/ssot/TFTMAC_REBUILD_PREFLIGHT.md b/ssot/TFTMAC_REBUILD_PREFLIGHT.md deleted file mode 100644 index c132664..0000000 --- a/ssot/TFTMAC_REBUILD_PREFLIGHT.md +++ /dev/null @@ -1,922 +0,0 @@ -# TFTMAC Rebuild Preflight — Fact Base Before Specification - -**Status:** ACTIVE PREFLIGHT — specification is intentionally not frozen yet -**Date:** 2026-08-28 -**Purpose:** Replace assumption-driven implementation with a fact-driven product specification using current TFTMAC evidence, the successful Mactician run on the target Mac, current Mactician open-source code, and explicit product requirements. - ---- - -## 0. Governing rule - -This document is the decision boundary between research and the next TFTMAC specification. - -The next spec may contain only: - -1. facts already proven by current TFTMAC evidence; -2. facts reproduced on the target Mac; -3. source-verified donor behavior that we deliberately choose to adopt; -4. explicit product requirements from the user; -5. clearly labeled unresolved decisions with a bounded preflight probe. - -The existing `TFTMAC_GPU_RUNTIME_SSOT.md` and `TFTMAC_FULL_IMPLEMENTATION_PLAN.md` remain historical planning inputs, but their source-built-AEMU critical path is **not automatically authoritative for the rebuild**. No new source-AEMU work should resume merely because the old plan says to do so. - -Donor research remains quarantined in: - -`ssot/donors/TFTMAC_DONOR_RESEARCH.sql` - -Nothing enters production truth merely because Mactician or another donor did it. - ---- - -# 1. Evidence classes - -Every fact in the rebuild must be attributable to one of these classes. - -| Class | Meaning | -|---|---| -| `PROJECT_PROVEN` | Proven by current TFTMAC project artifacts or probes. | -| `TARGET_HOST_PROVEN` | Observed directly on the target Mac Mini M4. | -| `DONOR_SOURCE_VERIFIED` | Present in current open-source donor code/manifests. | -| `DONOR_AUTHOR_MEASURED` | Published by the donor author with a described controlled measurement. | -| `TARGET_RUNTIME_OBSERVED` | Observed in the actual Mactician runtime/log on this Mac. | -| `USER_OBSERVED` | Direct user observation during actual use; requires instrumentation before becoming a quantitative engineering claim. | -| `PRODUCT_REQUIREMENT` | Required behavior regardless of donor implementation. | -| `UNKNOWN` | Must be resolved before the corresponding spec section is frozen. | - ---- - -# 2. Target Mac — proven facts - -Source: `ssot/host-preflight.json`, `ssot/STACK.lock.yaml`. - -| Fact | Value | Class | -|---|---|---| -| Host | Mac mini | `PROJECT_PROVEN` | -| Model | Mac16,10 | `PROJECT_PROVEN` | -| Chip | Apple M4 | `PROJECT_PROVEN` | -| RAM | 16 GB | `PROJECT_PROVEN` | -| Architecture | arm64 | `PROJECT_PROVEN` | -| macOS | 26.6.2 build 25G83 | `PROJECT_PROVEN` | -| Installed Xcode | 26.6 / 17F113 | `PROJECT_PROVEN` | -| Additional Xcode | 26.4 / 17E192 | `PROJECT_PROVEN` | -| Current macOS SDK | 26.5 | `PROJECT_PROVEN` | -| Google Emulator control version already known | 37.1.11 | `PROJECT_PROVEN` | - -### Rebuild consequence - -The target host is already proven capable of running Google Android Emulator 37.1.11 with hardware acceleration and the Mactician graphics path. The rebuild does not need to prove basic Apple-Silicon virtualization feasibility again. - ---- - -# 3. Storage — new hard direction - -## 3.1 Proven/current state - -The old TFTMAC path created a very large AEMU source/build workspace on `/Volumes/MAC MINI M4/TFTMAC` and made the external volume mandatory for Build and Runtime roots. - -Mactician demonstrates a much thinner product model: - -- it ships a native Mac launcher rather than an AEMU source tree; -- it downloads verified released Android components; -- its current README requires 25 GiB of free disk headroom for downloads, extraction, the AVD, game assets, and updates; -- its documented initial download is about 2.3 GB before extraction and provisioning. - -Sources: -- https://github.com/tweet9ra/mactician -- https://sergeinaumov.dev/writing/how-i-built-mactician - -## 3.2 Product requirements - -1. **No 100+ GB or ~200 GB source/build tree is a production dependency.** -2. Source-built AEMU becomes optional research material only unless a measured blocker requires a custom emulator binary. -3. TFTMAC runtime storage must be a bounded installed runtime, not a development checkout. -4. Runtime location must not be hardcoded to one external volume. -5. Default runtime may live in normal macOS Application Support when space permits. -6. A user-selectable external runtime location may be supported for large game/runtime state. -7. The installer must show required and expected disk space before downloading. -8. A cleanup inventory must distinguish: - - shippable runtime; - - caches safe to delete; - - user game/AVD state; - - optional development source; - - diagnostic artifacts. -9. Stateful AVD images must never be placed in File Provider/cloud-offloaded storage. - -## 3.3 Preflight unknown - -`UNKNOWN-STORAGE-01`: Measure a clean direct-Google TFTMAC runtime after install and after one fully patched live TFT session. Freeze exact installed-size budget in the spec only after measurement. - ---- - -# 4. Mactician current upstream — source facts we can legally use - -Current public repository: - -`https://github.com/tweet9ra/mactician` - -License: MIT. The license explicitly allows use, copy, modification, merge, publication, distribution, sublicensing, and sale, provided the copyright/permission notice is retained in copies or substantial portions. - -Current repository facts observed 2026-08-28: - -| Area | Current donor fact | Class | -|---|---|---| -| App | Native SwiftUI launcher | `DONOR_SOURCE_VERIFIED` | -| Version | 1.1.0 build 45 | `DONOR_SOURCE_VERIFIED` | -| Minimum macOS | 12.0 | `DONOR_SOURCE_VERIFIED` | -| Emulator | Google Android Emulator 37.1.11 | `DONOR_SOURCE_VERIFIED` | -| Guest generation | Android 36 ARM64 | `DONOR_SOURCE_VERIFIED` | -| Installer | Direct verified Android component downloads | `DONOR_SOURCE_VERIFIED` | -| Integrity | SHA-256 verification of runtime components/game splits | `DONOR_SOURCE_VERIFIED` | -| Lifecycle | `needsInstall -> installing -> ready -> launching -> playing -> stopping`, plus failed/recovery states | `DONOR_SOURCE_VERIFIED` | -| AVD ownership | Dedicated AVD create/provision/start/stop/repair/reset | `DONOR_SOURCE_VERIFIED` | -| Settings | Resolution, UI scale, Android RAM, vCPU, language, graphics controls | `DONOR_SOURCE_VERIFIED` | -| FPS | Native FPS overlay service exists | `DONOR_SOURCE_VERIFIED` | -| Audio | Emulator audio recovery service exists | `DONOR_SOURCE_VERIFIED` | -| Input | Native macOS input/hotkey bridge exists | `DONOR_SOURCE_VERIFIED` | -| Recovery | Repair and destructive Reset are distinct | `DONOR_SOURCE_VERIFIED` | -| Updates | Sparkle update mechanism for Mac app | `DONOR_SOURCE_VERIFIED` | -| Diagnostics | Optional extended diagnostics + telemetry notice/service | `DONOR_SOURCE_VERIFIED` | -| Release | Developer ID signing, hardened runtime, notarization | `DONOR_SOURCE_VERIFIED` / author-documented | - -Relevant source layout includes: - -- `launcher/Sources/CoreModels.swift` -- `launcher/Sources/InstallerService.swift` -- `launcher/Sources/LauncherModel.swift` -- `launcher/Sources/LauncherSettingsView.swift` -- `launcher/Sources/LauncherStateViews.swift` -- `launcher/Sources/LauncherTheme.swift` -- `launcher/Sources/LauncherView.swift` -- `launcher/Sources/RuntimeController.swift` -- `launcher/Sources/FPSOverlayService.swift` -- `launcher/Sources/EmulatorAudioRecoveryService.swift` -- `launcher/Sources/InputBridgeService.swift` -- `launcher/Sources/HostedGameUpdate.swift` -- `launcher/Sources/LauncherTelemetryService.swift` -- `launcher/Sources/LauncherUpdateController.swift` - -### Rebuild consequence - -We do not need to reinvent the launcher/state-management/product-shell patterns. We may fork or adapt the MIT implementation and then replace the game-delivery, fullscreen/presentation, performance, branding, and runtime policies that do not meet TFTMAC requirements. - ---- - -# 5. Proven working graphics recipe from Mactician - -Author engineering source: - -`https://sergeinaumov.dev/writing/how-i-built-mactician` - -The donor's working conceptual path is: - -```text -TFT OpenGL ES - -> Android ANGLE - -> Vulkan - -> Android Emulator gfxstream / MoltenVK - -> Apple Metal -``` - -The donor proved that forcing the game itself to direct Vulkan was not the correct boundary. The working route kept the game's GLES renderer and translated beneath it. - -The donor also proved: - -- native Android Emulator presentation was substantially better than scrcpy because scrcpy added guest CPU video encoding and incorrect input semantics; -- zsh `BG_NICE` could silently reduce QEMU priority to nice=5; normal priority mattered; -- simply adding more vCPU/RAM did not cure the active bottleneck; -- DeviceProfiles/runtime behavior could matter more than visible in-game graphics settings; -- ASG transport materially outperformed legacy `pipe` in a controlled scene; -- cold repeated measurements are mandatory because one-run wins frequently disappeared. - -These are engineering priors, not automatic current settings. - ---- - -# 6. Actual successful Mactician run on this exact Mac - -Source: copied live runtime log at `artifacts/mactician-live.log` plus direct user observation. - -## 6.1 Host/guest runtime facts observed - -Mactician successfully launched a runtime on the Apple M4 with: - -- Android Emulator 37.1.11; -- Android 36 ARM64 Google APIs image; -- gfxstream; -- Apple M4 selected through MoltenVK; -- Vulkan 1.4.x host path reported by MoltenVK; -- guest ANGLE; -- `virtio-gpu-asg` graphics transport; -- ASG write buffer 1,048,576 bytes; -- ASG write step 16,384 bytes; -- ASG data ring 32,768 bytes; -- 1920x1080 framebuffer; -- 320 DPI; -- 60 Hz; -- 6 guest cores; -- 6144 MB guest RAM; -- audio enabled; -- asynchronous MoltenVK queue submission; -- 64 active Metal command buffers; -- fast math; -- PSO watcher/scheduling adjustments; -- donor graphics profile identified in the log as `osft`; -- `preferSubmitAtFBOBoundary` disabled in ANGLE. - -The successful log explicitly reported: - -```text -TFT is running: Unreal OpenGL ES -> guest ANGLE -> Vulkan -> Metal -``` - -and a real TFT process was launched. - -## 6.2 Important conformance fact - -The successful donor runtime also reported: - -```text -ANGLE enabled features: exposeNonConformantExtensionsAndVersions:exposeES32ForTesting -``` - -and exposed GLES 3.2 to the guest. - -This is a **donor compatibility technique**, not automatically a TFTMAC shipping requirement. The old TFTMAC SSOT forbids claiming genuine GLES 3.2 merely through nonconformant version exposure. - -The rebuild spec must explicitly choose between: - -A. compatibility-first parity with the donor exposure mechanism; or -B. genuine feature-complete ES 3.2 without the exposure shortcut. - -The decision must be based on whether current live TFT actually executes features that the host/guest path cannot provide, not on ideology or version strings. - ---- - -# 7. Actual game/update failure we observed - -## 7.1 Successful user-visible sequence - -The actual user experience was: - -1. Mactician installed successfully after one reinstall retry. -2. TFT launched. -3. TFT downloaded a patch. -4. The user logged in. -5. The user joined a party with another current TFT player. -6. When the party attempted to start a game, Riot reported that the game versions did not match. -7. The user restarted Mactician to allow the patch/update state to settle. -8. Subsequent launches failed. - -## 7.2 Log evidence - -Mactician repeatedly reported: - -```text -Hosted TFT feed unavailable, using bundled fallback: Invalid TFT release -``` - -or: - -```text -Game update availability check failed: Invalid TFT release -``` - -After the failed restart, Android itself still booted successfully, but Mactician then encountered: - -```text -stat: '/data/user/0/com.riotgames.league.teamfighttactics': No such file or directory -The owner of TFT private data could not be determined. -``` - -Mactician then intentionally shut down the emulator. The visible `Snapshots have been disabled by the user` message occurred during shutdown and was not the root cause. - -## 7.3 Product consequence - -**TFTMAC must not depend on a third-party hosted game-package feed for current live TFT.** - -The next architecture uses authoritative upstream delivery directly: - -```text -Google Android repository -> Android runtime components -Google Play -> TFT application install/update authority -Riot services -> in-game patch/content/authentication/matchmaking -``` - -No Sergei/Mactician game feed is a production dependency. - -No public APK mirror is a production dependency. - -No Riot APK is committed to the repository. - ---- - -# 8. Direct Google/Riot delivery — required architecture - -## 8.1 Android runtime components - -TFTMAC downloads required Google Android components directly from official Google endpoints and verifies them locally. - -Mactician already source-verifies its Android SDK component URLs to `https://dl.google.com`, proving this distribution pattern is simple and productized. - -## 8.2 TFT package authority - -Primary requirement: - -- use a Google Play-enabled guest where practical; -- user signs into Google Play inside Android; -- install official `com.riotgames.league.teamfighttactics` through Google Play; -- Google Play handles APK/split delivery and application updates; -- Riot handles its own in-game content patching; -- TFTMAC records installed package name, versionName, versionCode, signature/certificate identity, and split inventory for diagnostics; -- TFTMAC never invents a current version number from a third-party feed. - -## 8.3 Update UX - -The launcher needs explicit states: - -```text -Game missing -Game installed -Google Play update required/check requested -Riot content patching/incomplete -Ready to play -Version mismatch/recovery guidance -``` - -The launcher must not treat a missing private-data directory as an opaque fatal crash. It must identify whether the package is missing, not initialized, mid-update, or damaged and present a targeted repair path. - ---- - -# 9. Guest choice — not yet frozen - -There are two materially different donor/current paths: - -### Candidate A — single official Google Play guest - -- official Play-enabled ARM64 Android image; -- Google Play directly owns TFT install/update; -- no root dependency; -- simplest user product; -- preferred architecture if graphics/performance requirements can be met. - -### Candidate B — authority/execution split, only if required - -- Play-enabled guest is package/update authority; -- rootable execution guest is used only if required for runtime-only graphics/profile controls; -- exact official package splits may be transferred locally only after identity/signature/hash verification; -- no third-party package feed. - -### Current rule - -Do **not** build Candidate B speculatively. - -`UNKNOWN-GUEST-01`: Prove whether Candidate A can launch current live TFT with the required graphics path and acceptable performance. Only if it fails for a root-owned requirement may Candidate B enter the spec. - -Android 36 and the existing API 37 Play image are both evidence-bearing candidates. Do not select based on newest/oldest labels alone. - ---- - -# 10. Source-built AEMU — demoted from critical path - -## Proven facts - -The old plan required building AEMU from `emu-master-dev`. Phase 1 encountered a sequence of host-build compatibility problems and most recently failed because the build adapter forced a macOS 10.14 deployment target while source required `std::filesystem` availability from 10.15+. - -Separately, Mactician proves that stock Google Emulator 37.1.11 can execute the relevant graphics stack on Apple Silicon. - -## New rule - -The normal rebuild starts with the stock released Google emulator. - -Source-built AEMU is justified only by a specific measured requirement such as: - -- a missing emulator feature that cannot be enabled/configured in stock; -- a confirmed gfxstream defect requiring a patch; -- native presentation integration impossible through supported stock boundaries; -- a performance bottleneck proven inside AEMU/gfxstream source rather than elsewhere. - -If none of those occurs, no source AEMU build is part of production. - ---- - -# 11. Performance — current facts and new acceptance behavior - -## 11.1 Donor measured facts - -Mactician's author reports: - -- ASG vs legacy pipe in the same early combat scene: about **40.1 FPS vs 29.6 FPS**; -- reproducible control series around **40.60 / 36.03 / 27.83 FPS** at progressively heavier stages; -- the heavy-stage target of 57 FPS was **not reached**; -- 128 Metal command buffers looked good once but failed cold confirmation; -- forced submit thread regressed performance; -- aggressive PSO prewarm caused crashes; -- higher resolution was not always materially slower because tested scenes were often CPU/RHI/transport bound. - -This donor evidence means a lobby overlay showing 60 FPS is not sufficient evidence of a smooth product. - -## 11.2 User-observed target-Mac behavior - -The user observed: - -- approximately 60 FPS in light conditions; -- dramatic transient drops, including a reported drop to roughly 6 FPS while entering/loading activity; -- experience felt glitchy despite the 60 FPS overlay. - -This is `USER_OBSERVED`, not yet a controlled benchmark. - -## 11.3 Product requirement - -TFTMAC performance acceptance must include: - -- lobby/light scene; -- game transition/load into match; -- early combat; -- middle combat; -- late/heavy combat; -- shop/board rapid interaction; -- a second warm match after caches are populated. - -Metrics: - -- presented FPS; -- p50/p95/p99 frame interval; -- >33.3 ms jank percentage; -- >100 ms stalls; -- host CPU; -- host GPU where measurable; -- guest CPU saturation; -- memory pressure; -- shader/PSO worker activity; -- input-to-visible-response latency. - -The existing TFTMAC 60 Hz contract remains a candidate target: - -```text -average >= 58 FPS -p95 <= 20 ms -p99 <= 33.334 ms -jank <= 1% -``` - -but the spec must pair these with heavy-scene evidence rather than averages that can hide 6–20 FPS collapses. - -`UNKNOWN-PERF-01`: Establish the target-M4 stock-emulator baseline with the donor-compatible graphics path using one fixed heavy scene and one transition measurement before selecting optimization work. - ---- - -# 12. Resource allocation - -## Facts - -- target Mac has 16 GB total RAM; -- actual Mactician run used 6 vCPU / 6144 MB; -- donor author found that blindly adding CPU/RAM was not causal on his M1 Max; -- TFTMAC historical profiles already considered 6/6144 and 8/8192. - -## Requirement - -Do not hardcode “more is better.” - -Initial target-M4 control: - -```text -6 vCPU / 6144 MB -``` - -Only one bounded comparison is justified initially: - -```text -6/6144 control -vs -one alternate profile chosen from measured host pressure -``` - -No broad CPU/RAM matrix. - ---- - -# 13. Native macOS UI — required product direction - -## Donor facts - -Mactician already provides a solid native SwiftUI product shell with: - -- install/progress UI; -- Play/Stop lifecycle; -- settings menus; -- resolution; -- UI scale; -- CPU/RAM controls; -- graphics controls; -- language; -- hotkeys; -- Repair; -- Reset; -- app update controls; -- diagnostics/feedback concepts; -- clear state-specific UI. - -Mactician intentionally keeps the launcher and the running Android Emulator window side by side and provides a macOS **window-fill** shortcut. This is not the same as one native fullscreen game application. - -## New hard requirements - -TFTMAC must: - -1. be a native macOS application; -2. have normal macOS menu-bar behavior; -3. support true macOS fullscreen using the green-window/fullscreen convention and keyboard shortcut; -4. present the game without visible Android Emulator chrome in normal play; -5. make the game visually feel like the application content, not a second utility window the user has to resize; -6. preserve direct/high-performance presentation and must not regress to a scrcpy-like encode/stream path; -7. preserve correct mouse, keyboard, scroll, right-click and focus semantics; -8. provide seamless exit from fullscreen; -9. handle display changes and Retina scaling without making the guest framebuffer lie about its real render size; -10. support 1920x1080 as the initial guaranteed profile and adapt the native window to the physical display. - -`UNKNOWN-UI-01`: Select and prove the presentation boundary. The prototype must compare direct emulator presentation against the chosen native fullscreen integration for FPS, frame-time, input latency and window behavior. The implementation may use a custom host/helper only if it preserves the direct-rendering characteristics. - -This unknown must be resolved **before** the final UI architecture is frozen. - ---- - -# 14. Display and render profiles - -Initial guaranteed product target: - -```text -1920x1080 @ 60 Hz -``` - -Requirements: - -- fullscreen window size and actual guest render size are separately measurable; -- no stretched 1280x720 pretending to be 1920x1080; -- UI scaling is independently configurable from actual render resolution; -- dynamic resolution must be observable and not silently defeat quality settings; -- higher-resolution profiles may exist later but do not ship until 1080p heavy-match performance is acceptable. - -Do not prioritize 1440p/4K while late-game 1080p performance is unstable. - ---- - -# 15. Graphics tuning — what we inherit and what we do not - -## Strong donor priors to reproduce first - -- stock Emulator 37.1.11; -- host GPU acceleration; -- ANGLE below TFT GLES; -- Vulkan beneath ANGLE; -- gfxstream; -- MoltenVK -> Metal; -- ASG instead of legacy pipe; -- 16 KiB ASG write step as a control candidate; -- normal host process scheduling priority; -- no scrcpy rendering path; -- async MoltenVK / bounded command buffers as later performance candidates; -- persistent and reversible graphics/profile changes; -- cold-run confirmation before promotion. - -## Explicitly not inherited blindly - -- nonconformant ES 3.2 exposure as final proof; -- donor `osft` profile name/assumptions; -- stale PBE package hashes; -- donor hosted TFT feed; -- private/bundled Riot APK delivery; -- root requirement unless Candidate A proves insufficient; -- 1440p as primary profile; -- 128/256 Metal command buffer experiments; -- rejected prewarm/submit-thread experiments; -- any tuning whose exact current ANGLE/gfxstream/MoltenVK version differs without remeasurement. - ---- - -# 16. Audio, microphone and voice - -## Proven - -The target runtime successfully produced game audio. Mactician includes explicit emulator audio recovery logic. - -## Requirements - -TFTMAC must support: - -- stable output audio; -- host microphone transport into Android when enabled; -- macOS microphone permission UX; -- an explicit microphone on/off control; -- no silent microphone activation; -- diagnostics that distinguish “host mic unavailable” from “Android mic unavailable” from “game does not implement voice.” - -`UNKNOWN-AUDIO-01`: Determine whether the current live TFT Android package declares/uses microphone/voice functionality. Emulator microphone transport is a product capability regardless, but the spec must not promise Riot in-game voice unless the current client supports it. - ---- - -# 17. Installer and recovery requirements - -Borrow the successful product pattern from Mactician, but remove its package-feed weakness. - -Required states: - -```text -Needs Install -Downloading Android Runtime -Creating Device -Google Play Setup Required -TFT Missing -TFT Updating -Riot Content Updating -Ready -Launching -Playing -Stopping -Repairing -Failed with specific recovery action -``` - -Required actions: - -- Install; -- Play; -- Stop; -- Check/Refresh game state; -- Open Google Play/TFT update path; -- Repair runtime without deleting game state when possible; -- Recreate AVD when runtime corruption is proven; -- Reset only as destructive last resort; -- Export diagnostics; -- optional send-feedback/send-diagnostics flow. - -Recovery must be state-aware. A missing package or private-data directory must trigger package recovery, not a generic emulator shutdown. - ---- - -# 18. Diagnostics requirements - -The launcher should expose useful diagnostics without requiring Terminal. - -Minimum UI-visible diagnostics: - -- installed TFT versionName/versionCode; -- Android version/image; -- Emulator version; -- graphics path summary; -- current framebuffer/density/refresh; -- CPU/RAM allocation; -- current FPS; -- p95/p99 frame time over recent window; -- severe-stall counter; -- audio state; -- microphone state; -- Google Play/package state; -- last recovery action; -- log export. - -Optional extended diagnostics may include host model/macOS/memory/CPU count and applied runtime profile, with explicit user consent. - -No Riot password, session token, Google credential, serial number, or unfiltered private game state should be sent by diagnostics. - ---- - -# 19. App updates vs game updates - -These are separate systems. - -### TFTMAC application update - -- signed/notarized native Mac application; -- Sparkle or equivalent signed update mechanism is acceptable; -- app bundle is replaceable without deleting runtime/user state. - -### Android runtime update - -- update only when current compatibility testing approves a new Google Emulator/system image; -- do not auto-upgrade a known-good emulator merely because Google published a newer one. - -### TFT update - -- Google Play is application package authority; -- Riot in-game updater is content authority; -- launcher observes current installed state and guides official update flow; -- no third-party hosted TFT package feed. - ---- - -# 20. Security / trust boundaries - -Preserve: - -- Riot login occurs inside official TFT client; -- Google login occurs inside Google Play/Android; -- TFTMAC does not request or proxy Riot credentials; -- no Riot APKs or Android userdata committed to Git; -- no third-party APK mirrors as production authority; -- runtime component hashes/integrity are recorded; -- native Mac release is signed/notarized; -- diagnostic upload is explicit and sanitized; -- destructive Reset requires confirmation. - ---- - -# 21. Existing TFTMAC work to retain - -The rebuild does **not** mean throwing away everything already learned. - -Retain/reuse: - -- host preflight and machine discovery; -- Google Android component/version discovery; -- current external/internal storage migration knowledge; -- package inspection tools; -- ADB isolation and serial management; -- capability probes where they answer a current question; -- performance/frame-time methodology; -- historical benchmark/rejected-experiment database; -- known ASG findings; -- MoltenVK/ANGLE/gfxstream research; -- Apple signing/notarization work; -- native shell code where useful; -- update/rollback/diagnostic design; -- engineering map and donor research database. - -Demote/archive from critical path: - -- giant AEMU source checkout/build requirement; -- custom-AEMU toolchain adaptation unless later evidence requires it; -- stale Android/PBE package pins; -- experimental graphics variants already rejected; -- assumptions that newest Android/Xcode is automatically best. - ---- - -# 22. Immediate spec blockers — bounded and small - -The next product specification does **not** require another massive research campaign. It requires only these bounded preflight answers: - -### P1 — Direct official game delivery - -Prove one clean Google Play-enabled ARM64 guest can install/update current live TFT through official Google Play and reach Riot login without any third-party package feed. - -**Pass:** package installed from Play, package metadata captured, Riot login opens. -**Fail owner:** guest/Play compatibility only. - -### P2 — Working graphics parity on the Play guest - -Apply the minimum donor-compatible runtime controls that do not require root and attempt current TFT launch. - -**Pass:** real TFT UI launches and stays alive. -**Fail owner:** identify exact root-owned/profile/graphics requirement before considering a second execution guest. - -### P3 — Performance baseline on target M4 - -Measure one transition and one fixed heavy scene using stock Emulator 37.1.11 + chosen guest. - -**Pass:** produces trustworthy FPS/frame-time/stall evidence. -**Purpose:** determine the actual bottleneck before optimization. - -### P4 — Native fullscreen presentation prototype - -Demonstrate a fullscreen native macOS presentation route that hides emulator chrome and preserves direct-render performance/input characteristics. - -**Pass:** native fullscreen works and does not materially regress direct emulator control. -**Fail:** keep direct emulator window as temporary control and investigate presentation boundary only. - -### P5 — Storage bill of materials - -Measure clean runtime + AVD + fully patched TFT + realistic update headroom. - -**Pass:** exact product storage budget frozen; no 100+ GB source tree required. - -These five answers are enough to write the new implementation spec. - ---- - -# 23. Proposed rebuilt product architecture — provisional until P1–P5 - -```text -TFTMAC.app (native SwiftUI) -| -|-- Installer / state machine -|-- Settings / profiles -|-- Fullscreen presentation controller -|-- Input bridge -|-- Audio + microphone controller -|-- FPS/frame-time diagnostics -|-- Repair/reset/diagnostics -|-- Signed app updater -| -+--> Official Google Android components - | - +--> Stock Android Emulator 37.1.11 control - | - +--> Play-enabled ARM64 Android guest - | - +--> Google Play - | +--> official live TFT package - | - +--> Riot patch/auth/game services - | - +--> TFT GLES - -> ANGLE - -> Vulkan - -> gfxstream - -> MoltenVK - -> Metal - -> Apple M4 -``` - -No third-party TFT package feed appears in this architecture. - -Source-built AEMU is outside the normal box and enters only as a measured repair adapter. - ---- - -# 24. Product win condition for the upcoming spec - -The next spec should define “done” as a user product, not a graphics experiment. - -At minimum: - -1. Install TFTMAC like a normal signed/notarized Mac app. -2. Install the Android runtime without Android Studio or Terminal. -3. Obtain current live TFT from official Google Play/Riot paths. -4. Launch, authenticate, join a party, enter a current live match, and complete it without version mismatch. -5. Present TFT as a native-feeling fullscreen Mac application with emulator chrome hidden. -6. Keep mouse/keyboard/audio stable. -7. Support host microphone transport and truthfully report whether the current game implements voice. -8. Maintain acceptable late-game frame pacing, not just 60 FPS in the lobby. -9. Repair package/runtime damage without unnecessary full resets. -10. Show useful FPS/version/runtime diagnostics in the UI. -11. Update the Mac app independently of Android/game state. -12. Keep product storage bounded and remove giant source-build trees from the normal install. -13. Depend on Google/Riot for authoritative game delivery, not a community-maintained TFT package feed. -14. Preserve user state across app updates. -15. Fail with a specific recovery action rather than an unexplained emulator shutdown. - ---- - -# 25. Preflight decision summary - -### Already decided - -- Rebuild around the working donor recipe and our existing TFTMAC knowledge. -- Mactician is a donor/reference, not a production dependency. -- MIT launcher/product-shell code may be forked/adapted with required license notice retained. -- Use stock Google Emulator first. -- Direct Google/Riot package/update authority. -- No third-party hosted TFT feed. -- No giant AEMU source tree in the normal product. -- Native SwiftUI Mac application. -- True fullscreen/native-feeling game presentation is required. -- 1080p/60 is the first guaranteed target. -- Heavy-match frame pacing matters more than lobby FPS. -- Installer/Repair/Reset/diagnostics/FPS concepts are required product features. - -### Must be proven before final spec freeze - -- exact Play-enabled Android guest/version; -- whether root is avoidable for current live TFT; -- exact compatibility mechanism needed for current live renderer; -- target-M4 heavy-scene baseline and bottleneck; -- native fullscreen presentation boundary; -- clean installed storage footprint; -- current TFT microphone/voice capability. - -### Explicitly not a blocker anymore - -- rebuilding AEMU from source; -- reproducing every historical graphics experiment; -- maintaining a private/community TFT package feed; -- solving every Vulkan/GLES theoretical capability before proving the current game path; -- downloading every Xcode/Android/emulator version. - ---- - -# 26. Source index - -Current Mactician source/research used as donor evidence: - -- https://github.com/tweet9ra/mactician -- https://github.com/tweet9ra/mactician/blob/master/LICENSE -- https://github.com/tweet9ra/mactician/tree/master/launcher/Sources -- https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/CoreModels.swift -- https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/LauncherModel.swift -- https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/InstallerService.swift -- https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/LauncherSettingsView.swift -- https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/RuntimeController.swift -- https://sergeinaumov.dev/writing/how-i-built-mactician - -Current TFTMAC evidence: - -- `ssot/host-preflight.json` -- `ssot/STACK.lock.yaml` -- `ssot/TFTMAC_ENGINEERING_MAP.sql` -- `ssot/donors/TFTMAC_DONOR_RESEARCH.sql` -- `docs/TFTMAC_GRAPHICS_ARCHITECTURE.md` -- `artifacts/mactician-live.log` - ---- - -**Preflight state:** READY FOR P1–P5 EXECUTION. The next implementation specification should be written only after these bounded proofs are recorded. diff --git a/ssot/donors/TFTMAC_DONOR_RESEARCH.sql b/ssot/donors/TFTMAC_DONOR_RESEARCH.sql deleted file mode 100644 index f9829c3..0000000 --- a/ssot/donors/TFTMAC_DONOR_RESEARCH.sql +++ /dev/null @@ -1,452 +0,0 @@ --- TFTMAC Donor Research Database --- --- QUARANTINE CONTRACT --- =================== --- This file is deliberately separate from ssot/TFTMAC_ENGINEERING_MAP.sql. --- Nothing in this database is TFTMAC production authority merely because it --- appears here. Donor facts, public claims, historical measurements, inferred --- relationships, and black-box observations are isolated so they cannot poison --- the production SSOT. --- --- Promotion rule: --- A donor finding may be copied into TFTMAC_ENGINEERING_MAP.sql only after an --- explicit TFTMAC reproduction/probe produces direct current evidence on the --- current host/workload or after the governing SSOT is deliberately revised. --- --- Reverse-engineering boundary: --- Open-source code may be inspected, compared, built, forked, and adapted --- within its license. Proprietary applications such as OS FIGHT TACTICS are --- treated as black-box/public-evidence donors only. Do not decompile, bypass --- licensing, or copy proprietary implementation details. --- --- SQLite compatible. - -PRAGMA foreign_keys = ON; -BEGIN; - -CREATE TABLE donor_meta ( - key TEXT PRIMARY KEY, - value TEXT NOT NULL -); - -CREATE TABLE donor_projects ( - id TEXT PRIMARY KEY, - name TEXT NOT NULL, - project_type TEXT NOT NULL CHECK (project_type IN ('OPEN_SOURCE','PUBLIC_BLACK_BOX','INTERNAL_DONOR','UPSTREAM_COMPONENT')), - source_url TEXT, - website_url TEXT, - license TEXT, - source_access TEXT NOT NULL CHECK (source_access IN ('FULL','PARTIAL','NONE','LOCAL_SNAPSHOT')), - current_research_role TEXT NOT NULL, - trust_boundary TEXT NOT NULL, - observed_at TEXT NOT NULL, - notes TEXT -); - -CREATE TABLE donor_snapshots ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - snapshot_kind TEXT NOT NULL CHECK (snapshot_kind IN ('REPOSITORY_BRANCH','LOCAL_TREE','PUBLIC_WEBSITE','CASE_STUDY','SOURCE_FILE','RELEASE_BINARY','HISTORICAL_DOC')), - ref TEXT, - observed_at TEXT NOT NULL, - source_url TEXT, - source_path TEXT, - content_sha256 TEXT, - evidence_class TEXT NOT NULL CHECK (evidence_class IN ('SOURCE_VERIFIED','PROJECT_LOCAL','AUTHOR_TECHNICAL_WRITEUP','PUBLIC_CLAIM','HISTORICAL','INFERRED','UNVERIFIED')), - freshness TEXT NOT NULL CHECK (freshness IN ('CURRENT','CURRENT_BUT_VERSION_VOLATILE','HISTORICAL','UNKNOWN')), - notes TEXT -); - -CREATE TABLE donor_components ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - name TEXT NOT NULL, - component_type TEXT NOT NULL, - version_or_ref TEXT, - architecture TEXT, - host_requirement TEXT, - guest_requirement TEXT, - role TEXT NOT NULL, - evidence_class TEXT NOT NULL, - source_snapshot_id TEXT REFERENCES donor_snapshots(id), - notes TEXT -); - -CREATE TABLE donor_architecture_edges ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - from_component TEXT NOT NULL, - to_component TEXT NOT NULL, - interface_type TEXT NOT NULL, - relationship TEXT NOT NULL, - state TEXT NOT NULL CHECK (state IN ('SOURCE_VERIFIED','AUTHOR_VERIFIED','PUBLIC_CLAIM','INFERRED','UNKNOWN')), - evidence_snapshot_id TEXT REFERENCES donor_snapshots(id), - notes TEXT -); - -CREATE TABLE donor_capabilities ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - capability TEXT NOT NULL, - layer TEXT NOT NULL, - status TEXT NOT NULL CHECK (status IN ('PROVEN_BY_SOURCE','PROVEN_BY_MEASUREMENT','AUTHOR_CLAIM','PUBLIC_CLAIM','PARTIAL','FAILED','UNKNOWN')), - exact_result TEXT NOT NULL, - workload_scope TEXT, - evidence_snapshot_id TEXT REFERENCES donor_snapshots(id), - reproducibility TEXT, - limitations TEXT -); - -CREATE TABLE donor_techniques ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - technique TEXT NOT NULL, - layer TEXT NOT NULL, - problem_solved TEXT NOT NULL, - implementation_summary TEXT NOT NULL, - state TEXT NOT NULL CHECK (state IN ('PROMOTED_BY_DONOR','RETAINED','PROVISIONAL','REJECTED','HISTORICAL','UNKNOWN')), - source_snapshot_id TEXT REFERENCES donor_snapshots(id), - tftmac_relevance TEXT NOT NULL, - contamination_risk TEXT NOT NULL CHECK (contamination_risk IN ('LOW','MEDIUM','HIGH')), - notes TEXT -); - -CREATE TABLE donor_failures ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - layer TEXT NOT NULL, - attempted_path TEXT NOT NULL, - observed_failure TEXT NOT NULL, - causal_interpretation TEXT NOT NULL, - donor_decision TEXT NOT NULL, - source_snapshot_id TEXT REFERENCES donor_snapshots(id), - tftmac_rule TEXT NOT NULL -); - -CREATE TABLE donor_runtime_profiles ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - profile_name TEXT NOT NULL, - emulator_version TEXT, - android_version TEXT, - system_image TEXT, - cpu_config TEXT, - memory_config TEXT, - display_config TEXT, - gpu_mode TEXT, - graphics_transport TEXT, - angle_mode TEXT, - vulkan_mode TEXT, - moltenvk_mode TEXT, - package_authority TEXT, - status TEXT NOT NULL CHECK (status IN ('WORKING_DONOR','HISTORICAL_WORKING','PUBLIC_CLAIM','CONTROL','EXPERIMENTAL','REJECTED','UNKNOWN')), - evidence_snapshot_id TEXT REFERENCES donor_snapshots(id), - notes TEXT -); - -CREATE TABLE donor_build_system ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - area TEXT NOT NULL, - implementation TEXT NOT NULL, - exact_tool_or_target TEXT, - status TEXT NOT NULL CHECK (status IN ('SOURCE_VERIFIED','AUTHOR_DOCUMENTED','PUBLIC_CLAIM','INFERRED','UNKNOWN')), - source_snapshot_id TEXT REFERENCES donor_snapshots(id), - tftmac_relevance TEXT NOT NULL, - notes TEXT -); - -CREATE TABLE donor_measurements ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - workload TEXT NOT NULL, - comparison TEXT NOT NULL, - result TEXT NOT NULL, - classification TEXT NOT NULL CHECK (classification IN ('CONFIRMED','PROVISIONAL','REJECTED','DIAGNOSTIC','PUBLIC_CLAIM')), - environment TEXT, - source_snapshot_id TEXT REFERENCES donor_snapshots(id), - transferable_lesson TEXT NOT NULL, - transfer_limit TEXT NOT NULL -); - -CREATE TABLE donor_public_claims ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - claim TEXT NOT NULL, - claim_scope TEXT NOT NULL, - observed_at TEXT NOT NULL, - evidence_snapshot_id TEXT REFERENCES donor_snapshots(id), - corroboration_state TEXT NOT NULL CHECK (corroboration_state IN ('SOURCE_CORROBORATED','MEASUREMENT_CORROBORATED','PARTIALLY_CORROBORATED','UNVERIFIED','CONTRADICTED')), - notes TEXT -); - -CREATE TABLE donor_deltas ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - tftmac_area TEXT NOT NULL, - donor_state TEXT NOT NULL, - current_tftmac_state TEXT NOT NULL, - delta_type TEXT NOT NULL CHECK (delta_type IN ('DONOR_SIMPLER','TFTMAC_STRONGER','INCOMPATIBLE_ASSUMPTION','SAME_APPROACH','UNKNOWN')), - significance INTEGER NOT NULL CHECK (significance BETWEEN 1 AND 10), - recommended_action TEXT NOT NULL, - promotion_test TEXT NOT NULL, - notes TEXT -); - -CREATE TABLE donor_promotion_queue ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - finding TEXT NOT NULL, - target_main_map_area TEXT NOT NULL, - priority INTEGER NOT NULL CHECK (priority BETWEEN 1 AND 10), - status TEXT NOT NULL CHECK (status IN ('QUEUED','TESTING','PROMOTED','REJECTED','DEFERRED')), - required_tftmac_evidence TEXT NOT NULL, - reason TEXT NOT NULL -); - -CREATE TABLE donor_checkout_registry ( - id TEXT PRIMARY KEY, - donor_id TEXT NOT NULL REFERENCES donor_projects(id), - repository_url TEXT, - desired_ref TEXT, - local_target TEXT, - license_ok INTEGER NOT NULL CHECK (license_ok IN (0,1)), - checkout_state TEXT NOT NULL CHECK (checkout_state IN ('NOT_NEEDED','PLANNED','PRESENT','STALE','BLOCKED')), - reason TEXT NOT NULL, - notes TEXT -); - -CREATE VIEW v_donor_priority AS -SELECT p.name, - q.finding, - q.priority, - q.status, - q.required_tftmac_evidence, - q.reason -FROM donor_promotion_queue q -JOIN donor_projects p ON p.id=q.donor_id -ORDER BY q.status='QUEUED' DESC, q.priority DESC, p.name; - -CREATE VIEW v_working_donor_profiles AS -SELECT p.name AS donor, - r.profile_name, - r.emulator_version, - r.android_version, - r.cpu_config, - r.memory_config, - r.display_config, - r.graphics_transport, - r.angle_mode, - r.vulkan_mode, - r.moltenvk_mode, - r.package_authority, - r.status -FROM donor_runtime_profiles r -JOIN donor_projects p ON p.id=r.donor_id -WHERE r.status IN ('WORKING_DONOR','HISTORICAL_WORKING','PUBLIC_CLAIM','CONTROL') -ORDER BY p.name,r.profile_name; - -CREATE VIEW v_source_verified_techniques AS -SELECT p.name AS donor, - t.technique, - t.layer, - t.problem_solved, - t.implementation_summary, - t.state, - t.tftmac_relevance -FROM donor_techniques t -JOIN donor_projects p ON p.id=t.donor_id -WHERE t.source_snapshot_id IN ( - SELECT id FROM donor_snapshots - WHERE evidence_class IN ('SOURCE_VERIFIED','PROJECT_LOCAL','AUTHOR_TECHNICAL_WRITEUP') -) -ORDER BY p.name,t.layer,t.id; - -CREATE VIEW v_black_box_claims AS -SELECT p.name AS donor, - c.claim, - c.claim_scope, - c.corroboration_state, - c.notes -FROM donor_public_claims c -JOIN donor_projects p ON p.id=c.donor_id -WHERE p.project_type='PUBLIC_BLACK_BOX' -ORDER BY p.name,c.id; - -INSERT INTO donor_meta(key,value) VALUES -('schema_version','1'), -('created_at','2026-08-28T06:00:00Z'), -('project','TFTMAC'), -('quarantine','TRUE'), -('authority','NON_AUTHORITATIVE_DONOR_RESEARCH'), -('promotion_rule','No donor finding enters TFTMAC production truth without independent current reproduction or explicit coupled SSOT/plan revision.'), -('version_policy','Patch/game version strings are volatile. Architecture, component relationships, exact build mechanics, and reproducible capability evidence matter more than README freshness.'), -('source_policy','Prefer source code, exact manifests, runtime scripts and measurements over README text. Public proprietary claims remain black-box claims.'), -('research_goal','Identify the minimum already-working architecture and harvest open-source implementation patterns before inventing replacements.'); - -INSERT INTO donor_projects VALUES -('mactician_upstream','Mactician current upstream','OPEN_SOURCE','https://github.com/tweet9ra/mactician','https://sergeinaumov.dev/mactician','MIT','FULL','Primary open-source working/reference implementation for TFT on Apple Silicon.','Open-source source may be inspected/adapted under MIT; volatile game pins are not authority.','2026-08-28T06:00:00Z','Current public repository and author technical case study sampled.'), -('mactician_local','Mactician donor snapshot embedded in TFTMAC','INTERNAL_DONOR',NULL,NULL,'MIT','LOCAL_SNAPSHOT','Local reproducible donor snapshot for code-level comparison without network drift.','Useful historical/source evidence only; predates current TFTMAC v2 authority.','2026-08-28T06:00:00Z','launcher/, scripts/, artifacts/, docs/ and run-tft-* files in TFTMAC repository.'), -('osft','OS FIGHT TACTICS','PUBLIC_BLACK_BOX',NULL,'https://macosfighttactics.com/en',NULL,'NONE','Independent contemporary implementation proving another design can run TFT locally on Apple Silicon.','Public capability/architecture claims only. No source repository found in current search; application is proprietary.','2026-08-28T06:00:00Z','Do not decompile or bypass license; use only public technical claims and observable behavior.'), -('utm_mvk','UTM/CrossOver MoltenVK donor','UPSTREAM_COMPONENT','https://github.com/utmapp/MoltenVK',NULL,'Apache-2.0','FULL','Lower-layer donor for Metal/Vulkan fixes if a measured MoltenVK gap exists.','Not a TFT implementation; only causal patches may be harvested.','2026-08-28T06:00:00Z','Already referenced by TFTMAC SSOT as conditional donor.'); - -INSERT INTO donor_snapshots VALUES -('snap_mactician_master','mactician_upstream','REPOSITORY_BRANCH','master','2026-08-28T06:00:00Z','https://github.com/tweet9ra/mactician',NULL,NULL,'SOURCE_VERIFIED','CURRENT_BUT_VERSION_VOLATILE','Repository has SwiftUI launcher, installer, runtime scripts, benchmark tooling, profiles, tests and docs.'), -('snap_mactician_runtime_controller','mactician_upstream','SOURCE_FILE','master','2026-08-28T06:00:00Z','https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/RuntimeController.swift','launcher/Sources/RuntimeController.swift',NULL,'SOURCE_VERIFIED','CURRENT','Source shows runtime environment, ASG, ANGLE, MoltenVK and profile controls.'), -('snap_mactician_installer','mactician_upstream','SOURCE_FILE','master','2026-08-28T06:00:00Z','https://github.com/tweet9ra/mactician/blob/master/launcher/Sources/InstallerService.swift','launcher/Sources/InstallerService.swift',NULL,'SOURCE_VERIFIED','CURRENT','Source shows AVD creation, package installation, overlay creation, state persistence and integrity verification.'), -('snap_mactician_manifest','mactician_upstream','SOURCE_FILE','master','2026-08-28T06:00:00Z','https://github.com/tweet9ra/mactician/blob/master/launcher/Resources/release-manifest.json','launcher/Resources/release-manifest.json',NULL,'SOURCE_VERIFIED','CURRENT_BUT_VERSION_VOLATILE','Pins platform-tools 36.0.2, Emulator37.1.11 and Android36 Google APIs ARM64 r07; bundled game fields may lag hosted feed.'), -('snap_mactician_case','mactician_upstream','CASE_STUDY','2026-08-09','2026-08-28T06:00:00Z','https://sergeinaumov.dev/writing/how-i-built-mactician',NULL,NULL,'AUTHOR_TECHNICAL_WRITEUP','HISTORICAL','Author documents actual causal experiments, rejected paths and measured working graphics chain.'), -('snap_mactician_local_core','mactician_local','LOCAL_TREE','TFTMAC embedded donor','2026-08-28T06:00:00Z',NULL,'launcher/Sources/CoreModels.swift','9e2c332811b38c3d5f1195a3fb10b49b5adc64c3f588d929e9bb7fe72a4d9fa4','PROJECT_LOCAL','HISTORICAL','Contains signed hosted-game feed URL/public key and legacy PBE package validation.'), -('snap_mactician_local_hosted','mactician_local','LOCAL_TREE','TFTMAC embedded donor','2026-08-28T06:00:00Z',NULL,'launcher/Sources/HostedGameUpdate.swift','ce8d437e7a687c0cc8bcc05c5be9be5f7bf26ac64ded561f5e7d61ae38835d5b','PROJECT_LOCAL','HISTORICAL','Ed25519 signed remote game feed, same-origin HTTPS APK restriction, versionCode update logic.'), -('snap_osft_site','osft','PUBLIC_WEBSITE','current public product site','2026-08-28T06:00:00Z','https://macosfighttactics.com/en',NULL,NULL,'PUBLIC_CLAIM','CURRENT_BUT_VERSION_VOLATILE','Claims Apple Hypervisor, local Android, real Google Play, GPU-accelerated OpenGL, macOS12+, Apple Silicon and current TFT/PBE support.'), -('snap_osft_legal','osft','PUBLIC_WEBSITE','legal notice 2026-08-11','2026-08-28T06:00:00Z','https://macosfighttactics.com/en/legal/mentions-legales',NULL,NULL,'PUBLIC_CLAIM','CURRENT','Confirms proprietary OSFT Launcher/IP status; source must not be assumed public.'), -('snap_mactician_arch_local','mactician_local','LOCAL_TREE','TFTMAC embedded donor','2026-08-28T06:00:00Z',NULL,'docs/architecture.md','7132bf652fc1d851cf5479f49d9258f9b6e789c6f299db3a868f657515994c2e','PROJECT_LOCAL','HISTORICAL','Complete donor architecture/state-machine description.'), -('snap_mactician_bench_local','mactician_local','LOCAL_TREE','TFTMAC embedded donor','2026-08-28T06:00:00Z',NULL,'docs/benchmarks.md','526507229e293e92155fc3ba588bc48d6a149cc7c164d24e5d10ac33755d7965','PROJECT_LOCAL','HISTORICAL','Fixed-scene performance evidence and rejected candidate record.'); - -INSERT INTO donor_components VALUES -('mac_comp_host','mactician_upstream','Apple Silicon Mac','host',NULL,'arm64','macOS12+',NULL,'Host hardware','AUTHOR_TECHNICAL_WRITEUP','snap_mactician_case',NULL), -('mac_comp_emulator','mactician_upstream','Google Android Emulator','emulator','37.1.11','darwin-aarch64','Apple Silicon','Android36 ARM64','Virtual device host','SOURCE_VERIFIED','snap_mactician_manifest','Stock released Google emulator, not a source-built custom AEMU requirement.'), -('mac_comp_guest','mactician_upstream','Android 36 Google APIs ARM64','guest_os','r07','arm64',NULL,NULL,'Guest OS','SOURCE_VERIFIED','snap_mactician_manifest','Source AVD config explicitly uses Google APIs image with PlayStore.enabled=false in the provisioning guest.'), -('mac_comp_angle','mactician_upstream','Android/system ANGLE','graphics_translation',NULL,'arm64',NULL,NULL,'Package GLES->Vulkan translation','AUTHOR_TECHNICAL_WRITEUP','snap_mactician_case','Source runtime sets package-specific ANGLE controls.'), -('mac_comp_gfxstream','mactician_upstream','gfxstream','graphics_transport',NULL,NULL,NULL,NULL,'Guest/host graphics transport','AUTHOR_TECHNICAL_WRITEUP','snap_mactician_case',NULL), -('mac_comp_mvk','mactician_upstream','MoltenVK','graphics_translation',NULL,'darwin-aarch64',NULL,NULL,'Host Vulkan->Metal','AUTHOR_TECHNICAL_WRITEUP','snap_mactician_case',NULL), -('mac_comp_metal','mactician_upstream','Apple Metal','host_graphics',NULL,'arm64',NULL,NULL,'Final GPU API','AUTHOR_TECHNICAL_WRITEUP','snap_mactician_case',NULL), -('mac_comp_swiftui','mactician_upstream','Native SwiftUI launcher','native_ui',NULL,'arm64','macOS12+',NULL,'Install/state/runtime orchestration UI','SOURCE_VERIFIED','snap_mactician_master',NULL), -('mac_comp_gamefeed','mactician_upstream','Signed hosted game update feed','package_update',NULL,NULL,NULL,NULL,'Move fast-moving game payload/version outside static app release','PROJECT_LOCAL','snap_mactician_local_hosted','Ed25519 envelope validation and same-origin HTTPS APK URLs.'), -('osft_comp_hypervisor','osft','Apple Hypervisor local Android runtime','emulator','unknown','arm64','macOS12+',NULL,'Local Android execution','PUBLIC_CLAIM','snap_osft_site','Exact emulator implementation/version not public.'), -('osft_comp_opengl','osft','GPU-accelerated OpenGL path','graphics','unknown','arm64','macOS12+',NULL,'TFT renderer path','PUBLIC_CLAIM','snap_osft_site','Claims guaranteed OpenGL3.2; exact ANGLE/gfxstream/MoltenVK implementation not published.'), -('osft_comp_play','osft','Google Play','package_authority','current',NULL,NULL,NULL,'Official TFT install/update path','PUBLIC_CLAIM','snap_osft_site',NULL); - -INSERT INTO donor_architecture_edges VALUES -('edge_mac_tft_angle','mactician_upstream','TFT GLES','Android/system ANGLE','GLES','TFT remains a GLES-rendered application while ANGLE translates below it.','AUTHOR_VERIFIED','snap_mactician_case',NULL), -('edge_mac_angle_vk','mactician_upstream','Android/system ANGLE','Vulkan','graphics API translation','ANGLE emits Vulkan for emulator graphics stack.','AUTHOR_VERIFIED','snap_mactician_case',NULL), -('edge_mac_vk_gfx','mactician_upstream','Vulkan','gfxstream','guest-host transport','Vulkan commands cross emulator graphics transport.','AUTHOR_VERIFIED','snap_mactician_case',NULL), -('edge_mac_gfx_mvk','mactician_upstream','gfxstream','MoltenVK','host Vulkan backend','gfxstream host path reaches MoltenVK.','AUTHOR_VERIFIED','snap_mactician_case',NULL), -('edge_mac_mvk_metal','mactician_upstream','MoltenVK','Metal','Vulkan-to-Metal','MoltenVK targets Apple Metal.','AUTHOR_VERIFIED','snap_mactician_case',NULL), -('edge_mac_launcher_runtime','mactician_upstream','SwiftUI launcher','runtime project','process/state control','Launcher refreshes owned runtime scripts, validates hashes and starts runtime helper.','SOURCE_VERIFIED','snap_mactician_runtime_controller',NULL), -('edge_osft_hv_android','osft','OSFT Launcher','local Android device','Hypervisor','Public site says Android runs locally on Apple Hypervisor.','PUBLIC_CLAIM','snap_osft_site',NULL), -('edge_osft_play_game','osft','Google Play','TFT','package install','User installs official TFT from Google Play.','PUBLIC_CLAIM','snap_osft_site',NULL), -('edge_osft_game_gpu','osft','TFT','GPU-accelerated OpenGL','graphics','Public site claims OpenGL direct GPU rendering.','PUBLIC_CLAIM','snap_osft_site','Do not infer exact lower translation layers without evidence.'); - -INSERT INTO donor_runtime_profiles VALUES -('profile_mac_source','mactician_upstream','Source-verified runtime baseline','37.1.11','Android36','Google APIs ARM64 r07','6 logical vCPU baseline; host sizing can vary','6144MB baseline; user-selectable validated values','1920x1080/320 baseline with higher profiles','host','virtio-gpu-asg at runtime despite AVD baseline pipe','package/system ANGLE with donor controls','Vulkan under ANGLE','async; 64 active Metal command buffers; fast math enabled','bundled/signed hosted game feed in source design','WORKING_DONOR','snap_mactician_runtime_controller','RuntimeController sets TFT_GLTRANSPORT=virtio-gpu-asg, write step 16384, MVK async/64, fast math and disables ANGLE preferSubmitAtFBOBoundary.'), -('profile_mac_case','mactician_upstream','Author measured working graphics path','37.1.11','Android16/36 family','ARM64','7 vCPU measured M1 Max','guest had ample free RAM; more RAM not causal','2560x1440 historical quality profile','host','ASG','ANGLE controlled ES3.2 exposure','Vulkan','MoltenVK->Metal','historical pinned TFT PBE payload','HISTORICAL_WORKING','snap_mactician_case','Author entered real matches and ran fixed-stage performance experiments.'), -('profile_osft_public','osft','OSFT public working profile','unknown','local Android','unknown','tuned per machine','tuned per machine','fullscreen/user-facing','GPU accelerated','unknown','OpenGL 3.2 claimed','unknown','unknown','real Google Play','PUBLIC_CLAIM','snap_osft_site','Useful proof of product feasibility; internal implementation remains unknown.'); - -INSERT INTO donor_capabilities VALUES -('cap_mac_real_match','mactician_upstream','Game reaches UI/content/authentication/match','workload','PROVEN_BY_MEASUREMENT','Author defines working result as UI + content + auth + entered match, not process existence.','Historical TFT PBE research','snap_mactician_case','Author technical case study with benchmark work.','Historical workload/version; architecture lessons transfer, current live compatibility must be separately verified.'), -('cap_mac_stock_emulator','mactician_upstream','Stock Emulator37.1.11 sufficient for donor runtime','emulator','PROVEN_BY_SOURCE','Donor ships/pins Google Emulator37.1.11 binary rather than requiring source-built AEMU.','Mactician release architecture','snap_mactician_manifest','Source and author documentation agree on stock emulator dependency.','Does not prove TFTMAC v2 genuine-conformance requirement.'), -('cap_mac_asg','mactician_upstream','ASG transport improves controlled match performance','graphics_transport','PROVEN_BY_MEASUREMENT','40.1 FPS / 34.85ms p95 ASG vs 29.6 FPS / 49.75ms p95 old pipe in exact stage1-1 A/B.','Historical fixed TFT scene','snap_mactician_bench_local','Controlled A/B.','Different host/workload; direction is stronger evidence than absolute numbers.'), -('cap_mac_native_window','mactician_upstream','Native emulator window removes scrcpy CPU/video path','presentation','PROVEN_BY_MEASUREMENT','Moving off scrcpy removed software guest video encode path and intermittent freezes.','Historical runtime','snap_mactician_case','Author causal diagnosis.','Native single-window TFTMAC UX may later use a different presentation transport.'), -('cap_mac_bg_nice','mactician_upstream','QEMU process priority correction','host_runtime','PROVEN_BY_MEASUREMENT','unsetopt BG_NICE prevents zsh background QEMU from inheriting nice=5; QEMU runs nice=0.','Historical runtime','snap_mactician_case','Author causal diagnosis.','TFTMAC should preserve this launch invariant if shell backgrounding is used.'), -('cap_mac_update_feed','mactician_upstream','Fast-moving game payload decoupled from static app manifest','package_update','PROVEN_BY_SOURCE','Hosted signed feed supports versionCode comparison, per-APK hashes and same-origin HTTPS downloads.','Mactician app update flow','snap_mactician_local_hosted','Local source direct.','Legacy validation hardcodes PBE package; concept remains valuable even if exact package logic changes.'), -('cap_osft_local','osft','Runs TFT locally on Apple Silicon','runtime','PUBLIC_CLAIM','Public product site says local Android on Apple Hypervisor, no cloud streaming.','Current product','snap_osft_site','Public commercial claim.','No source or independent TFTMAC measurement in this database.'), -('cap_osft_play','osft','Real Google Play acquisition','package_authority','PUBLIC_CLAIM','Public site instructs user to sign into Google Play and install TFT officially.','Current product','snap_osft_site','Public commercial claim.','Exact image/Play Services architecture unknown.'), -('cap_osft_gl32','osft','OpenGL 3.2 support','graphics','PUBLIC_CLAIM','Product site advertises guaranteed OpenGL3.2 support and GPU-accelerated OpenGL.','Current product','snap_osft_site','Public claim only.','No source evidence of whether this is conformant, spoofed, ANGLE-backed, or another method.'); - -INSERT INTO donor_techniques VALUES -('tech_mac_stock_pin','mactician_upstream','Pin a released stock emulator instead of source-building AEMU','emulator','Reduce build-system/toolchain surface while retaining known runtime behavior.','Manifest pins Emulator37.1.11 download/hash; launcher installs it as a verified runtime component.','PROMOTED_BY_DONOR','snap_mactician_manifest','Highest-value TFTMAC comparison: prove whether stock37.1.11 + our guest/capability probes makes source AEMU unnecessary.','LOW','This directly challenges our source-first assumption.'), -('tech_mac_asg','mactician_upstream','Promote ASG transport over legacy pipe','graphics_transport','Reduce guest-host transport overhead.','Runtime sets virtio-gpu-asg; measured exact-scene A/B selected ASG.','PROMOTED_BY_DONOR','snap_mactician_case','Use as prior for current control profile, but remeasure current stack.','LOW',NULL), -('tech_mac_write_step','mactician_upstream','Use 16KiB ASG write step','graphics_transport','Reduce transport syscall/MMIO/ring overhead.','RuntimeController exports TFT_ASG_WRITE_STEP_SIZE=16384.','PROMOTED_BY_DONOR','snap_mactician_runtime_controller','Candidate current control parameter; already represented in historical TFTMAC donor.','MEDIUM','Revalidate because source/guest changed.'), -('tech_mac_mvk_async','mactician_upstream','MoltenVK async queue + bounded active command buffers','host_graphics','Improve host submission throughput without pathological buffer growth.','Runtime exports TFT_MVK_QUEUE_MODE=async and MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE=64.','PROMOTED_BY_DONOR','snap_mactician_runtime_controller','Strong donor default for host-side performance experiments after capability correctness.','MEDIUM','Performance setting, not correctness proof.'), -('tech_mac_no_fbo_submit','mactician_upstream','Disable ANGLE preferSubmitAtFBOBoundary','guest_graphics','Reduce unnecessary submit boundaries.','Runtime exports TFT_ANGLE_DISABLED_FEATURES=preferSubmitAtFBOBoundary.','PROMOTED_BY_DONOR','snap_mactician_runtime_controller','Potential current candidate only after matching ANGLE version/behavior.','MEDIUM','Historical evidence originally provisional; current source promotion indicates donor accepted it later.'), -('tech_mac_device_profile','mactician_upstream','Transactional DeviceProfiles/overlay with hash + rollback','workload_profile','Prevent game restart from reverting framebuffer/profile and preserve exact rendering assumptions.','Launcher verifies source/hash, applies profile for AVD session, stores sidecar backups and restores on cleanup.','PROMOTED_BY_DONOR','snap_mactician_case','Strong implementation pattern if current live client still consumes equivalent profile/overlay mechanism.','HIGH','Engine/layout specific; do not apply to Riot-native client without evidence.'), -('tech_mac_native_window','mactician_upstream','Use native Emulator window rather than scrcpy','presentation','Avoid guest software video encode and wrong right-click semantics.','Removed scrcpy display loop after causal failures.','PROMOTED_BY_DONOR','snap_mactician_case','Keep native emulator as control even if TFTMAC later wraps presentation.','LOW',NULL), -('tech_mac_bg_nice','mactician_upstream','Disable zsh BG_NICE for background emulator launch','host_runtime','Avoid QEMU silently running at nice=5.','unsetopt BG_NICE before orchestration.','PROMOTED_BY_DONOR','snap_mactician_case','Add as explicit TFTMAC launch invariant if relevant.','LOW',NULL), -('tech_mac_signed_feed','mactician_upstream','Signed remote game-update feed','package_update','Riot patches quickly; avoid shipping a new launcher binary for every game payload update.','Ed25519 envelope + same-host HTTPS + per-APK size/hash + monotonic versionCode handling.','PROMOTED_BY_DONOR','snap_mactician_local_hosted','Very useful architectural idea independent of game version.','LOW','TFTMAC prefers Google Play production authority; feed pattern may instead apply to compatibility metadata, not distributing Riot binaries.'), -('tech_osft_googleplay','osft','User installs TFT through real Google Play','package_authority','Avoid stale bundled game payloads and mirror/update burden.','Public product flow: login to Google Play once; install/update TFT there.','PROMOTED_BY_DONOR','snap_osft_site','Matches TFTMAC v2 package-authority goal exactly.','LOW','Public black-box claim, but architecture is independently reasonable.'), -('tech_osft_machine_tuning','osft','Tune RAM/cores by host model','resource_management','Avoid one-size-fits-all guest sizing.','Public site says RAM and cores tuned to machine; implementation unpublished.','UNKNOWN','snap_osft_site','We can implement independently using our own measured resource profiles.','LOW','No proprietary details needed.'); - -INSERT INTO donor_failures VALUES -('fail_mac_generic_gles','mactician_upstream','guest_graphics','Plain emulator GLES2/3.0/3.1','TFT PBE would not complete startup because workload required ES3.2.','Installed APK != graphics compatibility; game requirement lives above emulator package installation.','Select package ANGLE + Vulkan-backed path.','snap_mactician_case','Never use install/process existence as graphics acceptance.'), -('fail_mac_direct_vk','mactician_upstream','workload_graphics','Force Unreal direct Vulkan RHI','Did not solve compatibility; device profile kept game on OpenGL.','Changing game RHI was not the correct boundary.','Keep game GLES; use Vulkan beneath ANGLE.','snap_mactician_case','Do not force a different workload API without proof the exact game build supports it.'), -('fail_mac_scrcpy','mactician_upstream','presentation','scrcpy display path','Guest software video encoding caused stalls and right-click mapped to Android Back.','Presentation layer introduced its own CPU/input failure modes.','Use native emulator window.','snap_mactician_case','Keep direct emulator presentation as baseline/control.'), -('fail_mac_more_resources','mactician_upstream','resource_management','Increase guest CPU/RAM blindly','Measurements showed CPUs idle and RAM available while active bottleneck remained elsewhere.','Resource quantity was not the constrained boundary.','Measure before increasing resources.','snap_mactician_case','Do not use more vCPU/RAM as generic performance cure.'), -('fail_mac_prewarm','mactician_upstream','shader_pipeline','Aggressive PSO prewarming','Reproducible crash in OpenGL program-binary cache.','Broad shader warmup disturbed a fragile cache path.','Reject broad prewarm; preserve persistent cache.','snap_mactician_case','Do not revive broad prewarm without new causal evidence.'), -('fail_mac_submit_thread','mactician_upstream','graphics_transport','Forced submit thread','Heavy-stage performance regressed to about25.8 FPS in donor campaign.','Threading change increased submission/marshalling overhead or synchronization cost.','Reject default submit-thread path.','snap_mactician_bench_local','Historical negative prior; only retest if current traces identify same boundary differently.'), -('fail_mac_mvk128','mactician_upstream','host_graphics','128 active Metal command buffers','Strong first result failed cold repeat; heavy stage fell to23.3 FPS.','Single-run improvement was not reproducible.','Keep experimental only.','snap_mactician_case','Never promote isolated FPS win without cold confirmation.'), -('fail_mac_fileprovider','mactician_upstream','storage','Keep stateful AVD under File Provider-managed directory','Large qcow2 files became compressed/dataless placeholders and AVD became unrecoverable.','Stateful virtual disks cannot tolerate cloud/offload semantics.','Dedicated local Application Support runtime.','snap_mactician_case','Our external M4 runtime must remain ordinary local filesystem storage, not File Provider/cloud-synced.'); - -INSERT INTO donor_build_system VALUES -('build_mac_native','mactician_upstream','macOS app','SwiftUI app compiled as native arm64 macOS app','arm64-apple-macosx12.0','SOURCE_VERIFIED','snap_mactician_master','Confirms no requirement for Xcode26.6 specifically to build donor application; minimum deployment target12.0 is deliberate.',NULL), -('build_mac_emulator_delivery','mactician_upstream','Android emulator','Download verified Google Emulator37.1.11 archive','emulator-darwin_aarch64-15917651.zip','SOURCE_VERIFIED','snap_mactician_manifest','Avoids AEMU source compile entirely for donor shipping runtime.',NULL), -('build_mac_guest_delivery','mactician_upstream','Android guest','Download verified Android36 ARM64 system image','android-36 Google APIs r07','SOURCE_VERIFIED','snap_mactician_manifest','Guest image is treated as immutable verified dependency.',NULL), -('build_mac_state_machine','mactician_upstream','installation','Durable install state stages empty->downloading->sdk_installed->avd_created->ready','InstallState','SOURCE_VERIFIED','snap_mactician_installer','Useful production pattern; separates resumable setup from runtime launch.',NULL), -('build_mac_avd_manual','mactician_upstream','AVD construction','Create config.ini + qcow2 userdata + encryption key directly','qemu-img create 12G','SOURCE_VERIFIED','snap_mactician_installer','Avoids Android Studio; exact AVD configuration is deterministic.',NULL), -('build_mac_integrity','mactician_upstream','integrity','SHA256 every downloaded component/game split; transactional staging','SHA-256','SOURCE_VERIFIED','snap_mactician_installer','Useful unchanged principle for TFTMAC runtime components.',NULL), -('build_mac_release','mactician_upstream','distribution','Native app bundle, hardened runtime/DeveloperID/notarization, Sparkle updates','macOS release pipeline','AUTHOR_DOCUMENTED','snap_mactician_case','Donor proves normal signed/notarized macOS packaging is independent of Android runtime complexity.',NULL), -('build_osft_engine','osft','engine install','One-time engine installation then launcher controls local Android','unknown','PUBLIC_CLAIM','snap_osft_site','Evidence that user-facing runtime can be packaged as an installed engine rather than a developer build tree.',NULL); - -INSERT INTO donor_measurements VALUES -('measure_mac_asg','mactician_upstream','Exact TFT stage1-1 combat','virtio-gpu ASG vs old pipe','40.1 FPS /34.85ms p95 vs29.6 FPS /49.75ms p95','CONFIRMED','M1 Max donor environment','snap_mactician_case','Prefer ASG as the stock donor transport baseline.','Absolute FPS does not transfer to M4/API37/current client.'), -('measure_mac_resolution','mactician_upstream','TFT stage1-5','1600x900 vs2560x1440','30.5 vs31.3 FPS despite2.56x pixels','CONFIRMED','M1 Max donor environment','snap_mactician_case','The tested scene was CPU/RHI/transport-bound; lowering resolution was not the causal fix.','Scene-specific; no general resolution-free claim.'), -('measure_mac_control','mactician_upstream','Tocker Trial fixed stages','reproducible donor baseline','40.60 /36.03 /27.83 FPS stages1-2/1-5/1-8','CONFIRMED','M1 Max donor environment','snap_mactician_case','Use fixed-scene repeatability instead of lobby FPS.','Historical PBE workload.'), -('measure_mac_mvk128','mactician_upstream','Heavy TFT scene','MVK128 first vs cold repeat','32.4 FPS first; cold repeat23.3 FPS heavy stage','REJECTED','M1 Max donor environment','snap_mactician_case','Cold repeat is required before promotion.','Historical setting/driver behavior.'), -('measure_osft_ranked','osft','Live ranked TFT','Public site points to Master-ranked users playing on OSFT','Product feasibility claim','PUBLIC_CLAIM','Current commercial product','snap_osft_site','Treat as feasibility signal only.','No controlled technical measurement or source evidence.'); - -INSERT INTO donor_public_claims VALUES -('claim_osft_mac12','osft','Supports Apple Silicon M1+ on macOS12+','host compatibility','2026-08-28T06:00:00Z','snap_osft_site','UNVERIFIED','Public product requirement.'), -('claim_osft_local_android','osft','Runs a real Android device locally using Apple Hypervisor','virtualization','2026-08-28T06:00:00Z','snap_osft_site','UNVERIFIED','Exact virtual-machine/emulator stack is not public.'), -('claim_osft_gl32','osft','Guarantees OpenGL3.2 support with GPU-accelerated OpenGL','graphics','2026-08-28T06:00:00Z','snap_osft_site','UNVERIFIED','Important feasibility claim; exact conformance/translation technique unknown.'), -('claim_osft_play','osft','Uses real Google Play for user-installed TFT','package authority','2026-08-28T06:00:00Z','snap_osft_site','PARTIALLY_CORROBORATED','Architecture independently matches TFTMAC goal; implementation is proprietary.'), -('claim_osft_disk','osft','Requires about10GB disk space','resource footprint','2026-08-28T06:00:00Z','snap_osft_site','UNVERIFIED','Potentially much smaller than our 131GB AEMU source workspace because it ships/installs runtime artifacts rather than development source.'), -('claim_mactician_current','mactician_upstream','Current public project positions Mactician as a native TFT launcher for Apple Silicon','product scope','2026-08-28T06:00:00Z','snap_mactician_master','SOURCE_CORROBORATED','Do not use patch string as blocker; source architecture is the relevant evidence.'); - -INSERT INTO donor_deltas VALUES -('delta_stock_vs_source','mactician_upstream','emulator acquisition','Ships verified stock Emulator37.1.11 binary.','TFTMAC v2 currently mandates source-built emu-master-dev.','DONOR_SIMPLER',10,'Run TFTMAC capability probes against stock37.1.11 before continuing source-build critical path.','Stock37.1.11 + current guest must pass host/guest Vulkan, genuine GLES3.2 and live TFT smoke without prohibited spoofing.','Potentially removes almost the entire Phase1 source-build burden.'), -('delta_guest36_37','mactician_upstream','guest OS','Android36 ARM64 known donor stack.','TFTMAC v2 freezes Android17/API37 Google Play.','INCOMPATIBLE_ASSUMPTION',8,'Keep Android36 as a control candidate, not authority.','Measure current live TFT install/launch and graphics capability on a clean donor-compatible Android36 guest.','Older guest may be simpler and sufficiently compatible.'), -('delta_package_authority','osft','package acquisition','Real Google Play user install/update.','TFTMAC v2 also requires Google Play authority.','SAME_APPROACH',9,'Preserve Google Play authority; do not distribute Riot binaries as production mechanism.','Current Play guest can install/update official live TFT and package identity/signature can be recorded.','Strong convergence between independent implementations.'), -('delta_storage_size','osft','runtime footprint','Public product claims ~10GB installed space.','TFTMAC development source tree alone is ~131GB.','DONOR_SIMPLER',8,'Separate development-source workspace from shippable runtime footprint; stop assuming source checkout is a production dependency.','Build a runtime bill-of-materials and measure only required shipping artifacts.','This may expose huge simplification.'), -('delta_native_window','mactician_upstream','presentation','Native Emulator window is known stable donor path.','TFTMAC SSOT ultimately wants a single native shell with hidden emulator chrome.','TFTMAC_STRONGER',5,'Keep native emulator window as control; native wrapping is a later UX optimization.','Do not hide emulator chrome until latency/control acceptance proves wrapper parity.','Avoid reintroducing scrcpy-like cost.'), -('delta_gles_truth','mactician_upstream','GLES3.2 acceptance','Historical donor used controlled ES3.2 exposure to make PBE workload run.','TFTMAC v2 forbids nonconformant version exposure as final proof.','TFTMAC_STRONGER',10,'Harvest transport/performance/runtime mechanics but do not inherit donor ES3.2 acceptance shortcut.','TFTMAC guest probe must create real3.2 context and execute required features without nonconformant exposure.','This is exactly why donor success is not automatically production truth.'), -('delta_dynamic_updates','mactician_upstream','fast game patch handling','Signed hosted feed decouples fast Riot payload updates from app binary updates.','TFTMAC v2 prefers Google Play for game delivery but has no equivalent rapidly-updated compatibility metadata channel yet.','DONOR_SIMPLER',6,'Borrow the signed-manifest concept for compatibility metadata/runtime profiles, not necessarily Riot APK distribution.','Implement signed compatibility manifest and prove downgrade/replay resistance.','Solves user point that Riot patch strings should not block architecture progress.'); - -INSERT INTO donor_promotion_queue VALUES -('promote_stock37111','mactician_upstream','Stock Google Emulator37.1.11 may make source-built AEMU unnecessary for production.','architecture_candidates',10,'QUEUED','Run the same current host Vulkan, guest Vulkan, genuine GLES3.2 and live TFT probes against stock37.1.11.','Largest potential reduction in complexity and build time.'), -('promote_android36_control','mactician_upstream','Android36 ARM64 donor guest may be simpler than API37 for current workload.','version_catalog/stack_profiles',9,'QUEUED','Create clean isolated Android36 control with official package authority where possible; run live package compatibility + graphics probes.','Older working guest may satisfy requirements with fewer preview/current API complications.'), -('promote_asg','mactician_upstream','ASG should be current graphics transport control baseline.','runtime_profile',8,'QUEUED','Verify active transport and run one current capability/frame smoke comparison against pipe only if pipe control is needed.','Strongest measured donor transport improvement.'), -('promote_mvk_async64','mactician_upstream','Async MoltenVK +64 active command buffers is a high-value donor default.','performance_candidates',5,'DEFERRED','Only test after current host/guest capability correctness is green and profiling indicates host submission relevance.','Performance tuning should not precede correctness.'), -('promote_signed_compat_feed','mactician_upstream','Use signed rapidly-updated compatibility metadata so Riot patch strings do not require hardcoded app releases.','update_architecture',6,'QUEUED','Design a signed non-Riot-binary compatibility manifest with exact runtime/profile/package metadata and rollback rules.','Makes fast game patches non-blocking while preserving integrity.'), -('promote_native_control','mactician_upstream','Native emulator window should remain the presentation latency/control baseline.','phase8_control',6,'QUEUED','Boot current working runtime in direct native emulator window and capture control latency before any custom native presentation.','Avoids unnecessary presentation invention before runtime works.'), -('promote_osft_feasibility','osft','Independent product claims Google Play + local Android + OpenGL3.2 on macOS12+ with ~10GB footprint.','architecture_research',4,'DEFERRED','Only compare behavior through lawful public/demo/user-owned execution; do not infer private implementation.','Useful independent feasibility signal but not source authority.'); - -INSERT INTO donor_checkout_registry VALUES -('checkout_mactician','mactician_upstream','https://github.com/tweet9ra/mactician','master','/Volumes/MAC MINI M4/TFTMAC/Donors/mactician-upstream',1,'PLANNED','A clean external checkout can enable exact source diff against embedded donor without polluting repository history.','Do not vendor the entire donor into TFTMAC Git unless a specific source subset is adopted; keep checkout under external build/research storage.'), -('checkout_utm_mvk','utm_mvk','https://github.com/utmapp/MoltenVK','crossovers/v25.1.0','/Volumes/MAC MINI M4/TFTMAC/Donors/utm-moltenvk',1,'NOT_NEEDED','Only needed if current host Vulkan probe proves a MoltenVK-owned missing feature.','Avoid speculative donor checkout.'), -('checkout_osft','osft',NULL,NULL,NULL,0,'BLOCKED','OSFT is proprietary/public black-box; no open-source repository was found in current search.','Do not attempt to decompile or bypass licensing.'); - --- Target-M4 real-run evidence captured after installing current Mactician. -INSERT INTO donor_snapshots VALUES -('snap_mactician_target_m4_live','mactician_upstream','LOCAL_TREE','target M4 live runtime log','2026-08-28T06:39:17Z',NULL,'artifacts/mactician-live.log','8042a71ff6b22dc1e0791653fde5068b269c84352b78ccf738e54436c2dacc75','PROJECT_LOCAL','CURRENT','Actual Mactician session log from Mac16,10 Apple M4. Contains successful TFT launch, exact active graphics/runtime profile, later hosted-feed failures, post-patch version-state failure, and repeated controlled shutdowns.'); - -INSERT INTO donor_runtime_profiles VALUES -('profile_mac_target_m4_observed','mactician_upstream','Target Mac M4 observed gameplay profile','37.1.11','Android36','Google APIs ARM64','6 vCPU','6144MB','1920x1080@320dpi@60','host','virtio-gpu-asg','guest ANGLE; exposeNonConformantExtensionsAndVersions/exposeES32ForTesting observed','Vulkan beneath ANGLE','async queue; 64 active Metal command buffers; fast math','Mactician hosted/fallback package mechanism; later invalid feed','CONTROL','snap_mactician_target_m4_live','Log reports ASG writeBufferSize1048576, writeStepSize16384, dataRingSize32768, graphics profile osft, audio enabled, PSO watcher active, and TFT Unreal OpenGL ES -> guest ANGLE -> Vulkan -> Metal.'); - -INSERT INTO donor_capabilities VALUES -('cap_mac_target_m4_launch','mactician_upstream','Current donor runtime launches TFT on target Apple M4','workload','PROVEN_BY_MEASUREMENT','TFT launched as com.riotgames.league.teamfighttactics, real process PID observed, login path operated, game patched, and user reached party/lobby before Riot rejected match start for version mismatch.','Target Mac M4 actual session','snap_mactician_target_m4_live','Direct runtime log plus user-observed party/version-mismatch sequence.','Does not prove current package version parity or complete live-match stability.'), -('cap_mac_target_m4_graphics','mactician_upstream','Target M4 executes donor ANGLE/Vulkan/MoltenVK/Metal path','graphics','PROVEN_BY_MEASUREMENT','Runtime log reports TFT Unreal OpenGL ES -> guest ANGLE -> Vulkan -> Metal, Apple M4 MoltenVK device, gfxstream initialized, ASG transport active.','Target Mac M4 actual session','snap_mactician_target_m4_live','Direct runtime log.','Donor also enables nonconformant ES3.2 exposure; do not treat as genuine conformance proof.'); - -INSERT INTO donor_failures VALUES -('fail_mac_target_feed','mactician_upstream','package_update','Hosted TFT feed during target-M4 session','Hosted feed repeatedly returned Invalid TFT release; launcher fell back to bundled metadata. User could patch/login/join party but Riot then reported game versions did not match.','Third-party package metadata/feed was not synchronized with current Riot live client state.','Remove third-party TFT package feed from TFTMAC production architecture; use official Google Play/Riot authority.','snap_mactician_target_m4_live','A community feed must never be the authoritative current-live package source for TFTMAC.'), -('fail_mac_target_postpatch','mactician_upstream','package_state','Restart after in-game patch/version mismatch','Android booted normally, then launcher found /data/user/0/com.riotgames.league.teamfighttactics missing, could not determine owner, and intentionally shut emulator down.','Package/private-data assumptions were invalid after the patch/update sequence; snapshot warning was only shutdown noise.','TFTMAC recovery must classify package missing/not initialized/updating/damaged and route to official package repair instead of generic shutdown.','snap_mactician_target_m4_live','Repeated across multiple launches in the copied log.'); - -INSERT INTO donor_measurements VALUES -('measure_mac_target_user_drop','mactician_upstream','Target M4 real use during patch/loading','FPS overlay light-state vs user-observed transition drop','Approximately 60 FPS in light state with a reported transient drop to roughly 6 FPS while entering/loading activity','DIAGNOSTIC','Mac16,10 Apple M4, 16GB; session included patching and cache activity','snap_mactician_target_m4_live','Do not accept lobby/light-scene FPS as product performance; measure transitions and heavy combat explicitly.','User observation is not a controlled benchmark; exact frame-time trace still required.'); - -INSERT INTO donor_deltas VALUES -('delta_target_direct_delivery','mactician_upstream','game delivery','Current donor depends on hosted/bundled package metadata and exact APKs; target session demonstrated feed/version drift.','Rebuild requirement is Google Play/Riot direct authority with no third-party TFT feed.','TFTMAC_STRONGER',10,'Use Play-enabled guest first; inspect installed package/version/signature locally and let Google Play/Riot own update state.','Clean Play-enabled ARM64 guest installs current live TFT, reaches Riot login, and after update can enter a party/match without version mismatch.','Tonight provided direct target-host evidence that feed drift is a user-visible production failure.'), -('delta_target_fullscreen','mactician_upstream','presentation','Donor uses launcher plus separate resizable/window-fill emulator window.','Rebuild requires one native-feeling macOS fullscreen product surface with emulator chrome hidden.','TFTMAC_STRONGER',9,'Prototype native fullscreen presentation while retaining direct-emulator frame/input path as the control.','Fullscreen prototype must preserve FPS/frame time/input latency within the product acceptance envelope.','Do not reintroduce scrcpy/software encode path.'); - -INSERT INTO donor_promotion_queue VALUES -('promote_direct_google_target','mactician_upstream','Replace donor hosted/bundled TFT delivery with direct Google Play/Riot authority.','package_update_architecture',10,'QUEUED','Prove a clean Play-enabled ARM64 guest installs and updates current live TFT and reaches a match without version mismatch.','Direct target-M4 failure demonstrated the third-party feed is a reliability dependency we do not need.'), -('promote_target_profile_control','mactician_upstream','Use the exact successful M4 donor runtime profile as a comparison control, not as final product truth.','performance_control',9,'QUEUED','Reproduce stock37.1.11 + ASG16KiB + 6/6144 + 1080p on official package-authority guest and collect transition/heavy-scene frame-time data.','Gives TFTMAC a proven starting control while allowing measured performance improvement.'); - -COMMIT; - --- High-value queries --- SELECT * FROM v_donor_priority; --- SELECT * FROM v_working_donor_profiles; --- SELECT * FROM v_source_verified_techniques; --- SELECT * FROM donor_deltas ORDER BY significance DESC; --- SELECT * FROM donor_failures ORDER BY donor_id,layer; --- SELECT * FROM v_black_box_claims; diff --git a/tools/clara-task.mjs b/tools/clara-task.mjs deleted file mode 100644 index 63f5cf2..0000000 --- a/tools/clara-task.mjs +++ /dev/null @@ -1,1003 +0,0 @@ -#!/usr/bin/env node -import { createHash } from 'node:crypto'; -import { createReadStream, existsSync } from 'node:fs'; -import { mkdir, readFile, rename, rm, stat, writeFile, copyFile, readdir } from 'node:fs/promises'; -import { dirname, join, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { spawn, spawnSync } from 'node:child_process'; - -const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..'); -const PRIVATE = join(ROOT, 'private'); -const ACQ = join(PRIVATE, 'live-acquisition'); -const SDK = join(ACQ, 'sdk'); -const DOWNLOADS = join(ACQ, 'downloads'); -const AVD_HOME = join(ACQ, 'avd'); -const AVD_NAME = 'TftLiveStore'; -const PERFORMANCE_AVD_NAME = 'TftHighEndTablet'; -const SERIAL = 'emulator-5590'; -const PERFORMANCE_SERIAL = 'emulator-5592'; -const ADB_PORT = '5040'; -const PACKAGE = 'com.riotgames.league.teamfighttactics'; -const EXPECTED_ACTIVITY = 'com.riotgames.leagueoflegends.RiotNativeActivity'; -const LIVE_ROOT = join(PRIVATE, 'live-apks'); -const LIVE_CURRENT = join(LIVE_ROOT, 'current'); -const LIVE_MANIFEST = join(LIVE_ROOT, 'manifest.json'); -const RELEASE_TEMPLATE = join(ROOT, 'launcher', 'Resources', 'release-manifest.json'); -const PLAY_REPO = 'https://dl.google.com/android/repository/sys-img/google_apis_playstore/sys-img2-3.xml'; -const PLAY_REPO_BASE = 'https://dl.google.com/android/repository/sys-img/google_apis_playstore/'; -const PLAY_PACKAGE_PATH = 'system-images;android-36;google_apis_playstore;arm64-v8a'; - -function die(message) { - console.error(`TFTMAC: ${message}`); - process.exit(1); -} - -function run(executable, args, options = {}) { - const result = spawnSync(executable, args, { - cwd: options.cwd ?? ROOT, - env: options.env ?? process.env, - encoding: 'utf8', - stdio: options.capture ? ['ignore', 'pipe', 'pipe'] : 'inherit', - maxBuffer: 16 * 1024 * 1024 - }); - if (result.error) die(`${executable} failed to start: ${result.error.message}`); - if (result.status !== 0) { - if (options.capture) { - if (result.stdout) process.stdout.write(result.stdout); - if (result.stderr) process.stderr.write(result.stderr); - } - die(`${executable} exited with ${result.status}`); - } - return options.capture ? String(result.stdout ?? '').trim() : ''; -} - -async function hashFile(path, algorithm = 'sha256') { - return new Promise((resolveHash, reject) => { - const hash = createHash(algorithm); - const stream = createReadStream(path); - stream.on('error', reject); - stream.on('data', chunk => hash.update(chunk)); - stream.on('end', () => resolveHash(hash.digest('hex'))); - }); -} - -async function download(url, destination, expectedHash, algorithm = 'sha256') { - await mkdir(dirname(destination), { recursive: true }); - if (existsSync(destination) && expectedHash) { - if (await hashFile(destination, algorithm) === expectedHash) return; - await rm(destination, { force: true }); - } - const partial = `${destination}.partial`; - run('/usr/bin/curl', ['-fL', '--retry', '3', '--retry-delay', '2', '--continue-at', '-', url, '-o', partial]); - if (expectedHash) { - const actual = await hashFile(partial, algorithm); - if (actual !== expectedHash) { - await rm(partial, { force: true }); - die(`checksum mismatch for ${url}: expected ${expectedHash}, got ${actual}`); - } - } - await rename(partial, destination); -} - -async function extractZip(zip, destination) { - await rm(destination, { recursive: true, force: true }); - await mkdir(destination, { recursive: true }); - run('/usr/bin/unzip', ['-q', zip, '-d', destination]); -} - -async function ensureCoreSDK() { - const template = JSON.parse(await readFile(RELEASE_TEMPLATE, 'utf8')); - for (const id of ['platform-tools', 'emulator']) { - const component = template.components.find(entry => entry.id === id); - if (!component) die(`release template lacks ${id}`); - const target = join(ACQ, component.installPath); - const marker = id === 'platform-tools' ? join(target, 'adb') : join(target, 'emulator'); - if (existsSync(marker)) continue; - const archive = join(DOWNLOADS, `${id}.zip`); - await download(component.url, archive, component.sha256, 'sha256'); - const stage = join(ACQ, `.stage-${id}`); - await extractZip(archive, stage); - const source = join(stage, component.archiveRoot); - if (!existsSync(source)) die(`${id} archive did not contain ${component.archiveRoot}`); - await mkdir(dirname(target), { recursive: true }); - await rm(target, { recursive: true, force: true }); - await rename(source, target); - await rm(stage, { recursive: true, force: true }); - } -} - -function xmlBlockForPackage(xml, packagePath) { - const escaped = packagePath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - const match = xml.match(new RegExp(`]*path=["']${escaped}["'][^>]*>([\\s\\S]*?)<\\/remotePackage>`)); - if (!match) die(`Google repository does not list ${packagePath}`); - return match[1]; -} - -function xmlText(block, tag) { - const match = block.match(new RegExp(`<${tag}(?:\\s[^>]*)?>([\\s\\S]*?)<\\/${tag}>`)); - return match?.[1]?.trim() ?? null; -} - -async function ensurePlayImage() { - const install = join(SDK, 'system-images', 'android-36', 'google_apis_playstore', 'arm64-v8a'); - if (existsSync(join(install, 'system.img')) && existsSync(join(install, 'source.properties'))) return; - await mkdir(DOWNLOADS, { recursive: true }); - const repoXML = join(DOWNLOADS, 'google-play-system-images.xml'); - run('/usr/bin/curl', ['-fL', '--retry', '3', PLAY_REPO, '-o', repoXML]); - const xml = await readFile(repoXML, 'utf8'); - const block = xmlBlockForPackage(xml, PLAY_PACKAGE_PATH); - const archives = block.match(/([\s\S]*?)<\/archives>/)?.[1] ?? block; - const archive = archives.match(/([\s\S]*?[\s\S]*?<\/complete>[\s\S]*?)<\/archive>/)?.[1]; - if (!archive) die('Google Play system-image metadata has no complete archive'); - const complete = archive.match(/([\s\S]*?)<\/complete>/)?.[1]; - if (!complete) die('Google Play system-image metadata is incomplete'); - const filename = xmlText(complete, 'url'); - const checksumMatch = complete.match(/([0-9a-fA-F]+)<\/checksum>/); - if (!filename || !checksumMatch) die('Google Play system-image URL/checksum missing'); - const algorithm = checksumMatch[1].toLowerCase(); - const expected = checksumMatch[2].toLowerCase(); - const archivePath = join(DOWNLOADS, filename.split('/').pop()); - await download(new URL(filename, PLAY_REPO_BASE).href, archivePath, expected, algorithm); - const stage = join(ACQ, '.stage-play-image'); - await extractZip(archivePath, stage); - const source = existsSync(join(stage, 'arm64-v8a')) ? join(stage, 'arm64-v8a') : stage; - if (!existsSync(join(source, 'system.img'))) die('Google Play archive did not contain system.img'); - await mkdir(dirname(install), { recursive: true }); - await rm(install, { recursive: true, force: true }); - if (source === stage) { - await mkdir(install, { recursive: true }); - for (const entry of await readdir(stage)) await rename(join(stage, entry), join(install, entry)); - await rm(stage, { recursive: true, force: true }); - } else { - await rename(source, install); - await rm(stage, { recursive: true, force: true }); - } -} - -async function ensureAcquisitionAVD() { - const avd = join(AVD_HOME, `${AVD_NAME}.avd`); - const ini = join(AVD_HOME, `${AVD_NAME}.ini`); - if (existsSync(join(avd, 'config.ini')) && existsSync(ini)) return false; - await mkdir(avd, { recursive: true }); - const config = `AvdId=${AVD_NAME}\navd.ini.displayname=TFTMAC Google Play Acquisition\nabi.type=arm64-v8a\nhw.cpu.arch=arm64\nhw.cpu.ncore=4\nhw.lcd.density=320\nhw.lcd.height=1080\nhw.lcd.width=1920\nhw.ramSize=4096\nhw.vmHeapSize=576\nhw.gpu.enabled=yes\nhw.gpu.mode=host\nhw.keyboard=yes\nskin.name=1920x1080\nshowDeviceFrame=no\ndisk.dataPartition.size=12288M\nimage.sysdir.1=system-images/android-36/google_apis_playstore/arm64-v8a/\ntag.id=google_apis_playstore\ntag.display=Google Play\nPlayStore.enabled=true\nfastboot.forceColdBoot=yes\nfastboot.forceFastBoot=no\navd.ini.encoding=UTF-8\n`; - await writeFile(join(avd, 'config.ini'), config); - await writeFile(ini, `avd.ini.encoding=UTF-8\npath=${avd}\npath.rel=${AVD_NAME}.avd\ntarget=android-36\n`); - const qemuImg = join(SDK, 'emulator', 'qemu-img'); - run(qemuImg, ['create', '-f', 'qcow2', join(avd, 'userdata-qemu.img'), '12G']); - const encryption = join(SDK, 'system-images', 'android-36', 'google_apis_playstore', 'arm64-v8a', 'encryptionkey.img'); - if (existsSync(encryption)) await copyFile(encryption, join(avd, 'encryptionkey.img')); - return true; -} - -function adb(args, capture = true) { - const executable = join(SDK, 'platform-tools', 'adb'); - return run(executable, ['-P', ADB_PORT, '-s', SERIAL, ...args], { - capture, - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); -} - -function adbMaybe(args) { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 16 * 1024 * 1024 - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; -} - -async function waitUntil(description, seconds, test) { - const deadline = Date.now() + seconds * 1000; - while (Date.now() < deadline) { - const value = await test(); - if (value) return value; - await new Promise(resolveWait => setTimeout(resolveWait, 1000)); - } - die(`timed out waiting for ${description}`); -} - -async function acquireLive() { - await mkdir(ACQ, { recursive: true }); - console.log('TFTMAC: preparing official Google Android components...'); - await ensureCoreSDK(); - await ensurePlayImage(); - const firstBoot = await ensureAcquisitionAVD(); - const adbExe = join(SDK, 'platform-tools', 'adb'); - run(adbExe, ['-P', ADB_PORT, 'start-server'], { env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } }); - - let emulator = null; - if (!adbMaybe(['get-state'])) { - const emulatorExe = join(SDK, 'emulator', 'emulator'); - const args = [`@${AVD_NAME}`, '-id', 'TFTMAC-Google-Play', '-port', '5590', '-gpu', 'host', '-skin', '1920x1080', '-cores', '4', '-memory', '4096', '-no-snapshot', '-no-metrics', '-no-boot-anim', '-no-audio', '-crash-report-mode', 'disabled']; - if (firstBoot) args.push('-wipe-data'); - emulator = spawn(emulatorExe, args, { - cwd: ROOT, - env: { ...process.env, ANDROID_SDK_ROOT: SDK, ANDROID_AVD_HOME: AVD_HOME, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - stdio: 'ignore' - }); - emulator.on('error', error => die(`Google Play emulator failed: ${error.message}`)); - } - - await waitUntil('Google Play emulator ADB', 240, () => adbMaybe(['get-state']) === 'device'); - await waitUntil('Android boot', 240, () => adbMaybe(['shell', 'getprop', 'sys.boot_completed'])?.replace(/\r/g, '') === '1'); - await writeFile(join(AVD_HOME, `${AVD_NAME}.avd`, '.tftmac-initialized'), new Date().toISOString()); - - const installed = adbMaybe(['shell', 'pm', 'path', PACKAGE]); - if (!installed) { - adb(['shell', 'am', 'start', '-a', 'android.intent.action.VIEW', '-d', `market://details?id=${PACKAGE}`], false); - console.log('\nTFTMAC_GOOGLE_PLAY_READY'); - console.log('Google Play is open in the Android window. Sign in there and install "TFT: Teamfight Tactics" from Riot Games.'); - console.log('Do not enter Google or Riot credentials anywhere outside the Google Play / TFT Android windows.'); - console.log('This process will detect the completed install automatically.\n'); - await waitUntil('live TFT installation from Google Play', 1800, () => adbMaybe(['shell', 'pm', 'path', PACKAGE])); - } - - const installerLine = adb(['shell', 'pm', 'list', 'packages', '-i', PACKAGE]); - if (!installerLine.includes(`package:${PACKAGE}`) || !installerLine.includes('installer=com.android.vending')) { - die(`live TFT was not installed by Google Play: ${installerLine || 'no installer record'}`); - } - - const packagePathsOutput = adb(['shell', 'pm', 'path', PACKAGE]).replace(/\r/g, ''); - const packagePaths = packagePathsOutput.split('\n').map(line => line.replace(/^package:/, '').trim()).filter(Boolean); - if (!packagePaths.length) die('Google Play TFT has no APK paths'); - packagePaths.sort((a, b) => (a.endsWith('/base.apk') ? -1 : b.endsWith('/base.apk') ? 1 : a.localeCompare(b))); - if (!packagePaths[0].endsWith('/base.apk')) die('Google Play TFT base.apk was not found'); - - const dump = adb(['shell', 'dumpsys', 'package', PACKAGE]); - const versionName = dump.match(/versionName=([^\s]+)/)?.[1]; - const versionCodeText = dump.match(/versionCode=(\d+)/)?.[1]; - if (!versionName || !versionCodeText) die('could not determine live TFT version'); - const versionCode = Number(versionCodeText); - - const resolved = adbMaybe(['shell', 'cmd', 'package', 'resolve-activity', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]) ?? ''; - if (!resolved.includes(EXPECTED_ACTIVITY) && !dump.includes(EXPECTED_ACTIVITY)) { - die(`live TFT no longer exposes expected Unreal activity ${EXPECTED_ACTIVITY}; observed ${resolved || 'none'}`); - } - - const stage = join(LIVE_ROOT, `.next-${Date.now()}`); - await rm(stage, { recursive: true, force: true }); - await mkdir(stage, { recursive: true }); - const apks = []; - const used = new Set(); - for (const remotePath of packagePaths) { - let name = remotePath.split('/').pop(); - if (used.has(name)) die(`duplicate APK split filename from Google Play: ${name}`); - used.add(name); - const localPath = join(stage, name); - adb(['pull', remotePath, localPath], false); - const info = await stat(localPath); - const sha256 = await hashFile(localPath, 'sha256'); - apks.push({ name, size: info.size, sha256 }); - } - - const base = apks[0]; - const basePath = join(stage, 'base.apk'); - const zipList = run('/usr/bin/unzip', ['-l', basePath], { capture: true }); - const hasUECommandLine = zipList.includes('assets/UECommandLine.txt'); - - const manifest = { - packageName: PACKAGE, - version: versionName, - versionCode, - launchActivity: resolved.split('\n').pop()?.trim() || null, - baseSHA256: base.sha256, - donorUECommandLineCompatible: hasUECommandLine, - apks - }; - await mkdir(LIVE_ROOT, { recursive: true }); - const manifestNext = join(LIVE_ROOT, '.manifest.next.json'); - await writeFile(manifestNext, `${JSON.stringify(manifest, null, 2)}\n`); - await rm(LIVE_CURRENT, { recursive: true, force: true }); - await rename(stage, LIVE_CURRENT); - await rename(manifestNext, LIVE_MANIFEST); - console.log(`TFTMAC_ACQUIRED ${versionName} versionCode=${versionCode} splits=${apks.length}`); - console.log(`TFTMAC_BASE_SHA256 ${base.sha256}`); - console.log(`TFTMAC_LAUNCH_ACTIVITY ${manifest.launchActivity ?? 'unknown'}`); - console.log(`TFTMAC_UECOMMANDLINE ${hasUECommandLine ? 'present' : 'absent'}`); - - adbMaybe(['emu', 'kill']); - if (emulator) { - await new Promise(resolveWait => { - const timer = setTimeout(resolveWait, 15000); - emulator.once('exit', () => { clearTimeout(timer); resolveWait(); }); - }); - } -} - -async function prepareHighEndTablet() { - await mkdir(ACQ, { recursive: true }); - await ensureCoreSDK(); - await ensurePlayImage(); - await ensureAcquisitionAVD(); - if (adbMaybe(['get-state'])) { - die('Google Play acquisition device is still running; finish the Riot patch and shut it down cleanly before cloning the high-end tablet'); - } - const sourceAVD = join(AVD_HOME, `${AVD_NAME}.avd`); - const targetAVD = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.avd`); - const sourceINI = join(AVD_HOME, `${AVD_NAME}.ini`); - const targetINI = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.ini`); - if (!existsSync(sourceAVD) || !existsSync(sourceINI)) die('source Google Play AVD is missing'); - await rm(targetAVD, { recursive: true, force: true }); - await rm(targetINI, { force: true }); - run('/bin/cp', ['-R', sourceAVD, targetAVD]); - let config = await readFile(join(targetAVD, 'config.ini'), 'utf8'); - const set = (key, value) => { - const pattern = new RegExp(`^${key.replace(/[.*+?^${}()|[\\]\\]/g, '\\$&')}=.*$`, 'm'); - if (pattern.test(config)) config = config.replace(pattern, `${key}=${value}`); - else config += `\n${key}=${value}`; - }; - set('AvdId', PERFORMANCE_AVD_NAME); - set('avd.ini.displayname', 'TFTMAC High-End Tablet'); - set('hw.device.manufacturer', 'Google'); - set('hw.device.name', 'pixel_tablet'); - set('hw.initialOrientation', 'Landscape'); - set('hw.cpu.ncore', '8'); - set('hw.ramSize', '8192'); - set('hw.vmHeapSize', '768'); - set('hw.lcd.width', '1920'); - set('hw.lcd.height', '1080'); - set('hw.lcd.density', '280'); - set('hw.gpu.enabled', 'yes'); - set('hw.gpu.mode', 'host'); - set('hw.keyboard', 'yes'); - set('showDeviceFrame', 'no'); - set('skin.name', '1920x1080'); - set('runtime.network.speed', 'full'); - set('runtime.network.latency', 'none'); - set('fastboot.forceColdBoot', 'yes'); - set('fastboot.forceFastBoot', 'no'); - await writeFile(join(targetAVD, 'config.ini'), config); - await rm(join(targetAVD, 'hardware-qemu.ini'), { force: true }); - await rm(join(targetAVD, 'hardware-qemu.ini.lock'), { force: true }); - await rm(join(targetAVD, 'multiinstance.lock'), { force: true }); - await writeFile(targetINI, `avd.ini.encoding=UTF-8\npath=${targetAVD}\npath.rel=${PERFORMANCE_AVD_NAME}.avd\ntarget=android-36\n`); - const contract = { - schemaVersion: 1, - avdName: PERFORMANCE_AVD_NAME, - donorProfile: 'Pixel Tablet / custom high-end tablet', - sourceImage: 'Google Play ARM64 Android 16 API 36', - renderTarget: '1920x1080', - densityDpi: 280, - smallestWidthDp: Math.floor(1080 * 160 / 280), - cpuCores: 8, - ramMB: 8192, - vmHeapMB: 768, - gpuMode: 'host', - enhancedBootFlags: [ - '-feature', 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,AsyncComposeSupport,VirtioGpuFenceContexts', - '-append-userspace-opt', 'androidboot.opengles.version=196610' - ], - createdAt: new Date().toISOString() - }; - await writeFile(join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.json`), `${JSON.stringify(contract, null, 2)}\n`); - console.log(JSON.stringify(contract, null, 2)); -} - -async function stopAcquisition() { - await ensureCoreSDK(); - if (!adbMaybe(['get-state'])) { - console.log('TFTMAC_ACQUISITION_STOPPED already_off'); - return; - } - adbMaybe(['emu', 'kill']); - await waitUntil('Google Play acquisition shutdown', 60, () => !adbMaybe(['get-state'])); - console.log('TFTMAC_ACQUISITION_STOPPED clean'); -} - -async function playHighEndTablet() { - await ensureCoreSDK(); - await ensurePlayImage(); - const targetAVD = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.avd`); - const targetINI = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.ini`); - if (!existsSync(join(targetAVD, 'config.ini')) || !existsSync(targetINI)) { - die('high-end tablet is not prepared yet'); - } - const adbExe = join(SDK, 'platform-tools', 'adb'); - run(adbExe, ['-P', ADB_PORT, 'start-server'], { env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } }); - const performanceState = (() => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, 'get-state'], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; - })(); - if (performanceState !== 'device') { - const emulatorExe = join(SDK, 'emulator', 'emulator'); - const child = spawn(emulatorExe, [ - `@${PERFORMANCE_AVD_NAME}`, '-id', 'TFTMAC-High-End-Tablet', '-port', '5592', - '-gpu', 'host', '-skin', '1920x1080', '-cores', '8', '-memory', '8192', - '-no-snapshot', '-no-metrics', '-no-boot-anim', '-crash-report-mode', 'disabled', - '-feature', 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,AsyncComposeSupport,VirtioGpuFenceContexts', - '-append-userspace-opt', 'androidboot.opengles.version=196610' - ], { - cwd: ROOT, - env: { ...process.env, ANDROID_SDK_ROOT: SDK, ANDROID_AVD_HOME: AVD_HOME, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - detached: true, - stdio: 'ignore' - }); - child.unref(); - } - const perfADB = args => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 16 * 1024 * 1024 - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; - }; - await waitUntil('high-end tablet ADB', 240, () => perfADB(['get-state']) === 'device'); - await waitUntil('high-end tablet Android boot', 240, () => perfADB(['shell', 'getprop', 'sys.boot_completed'])?.replace(/\r/g, '') === '1'); - perfADB(['shell', 'wm', 'size', '1920x1080']); - perfADB(['shell', 'wm', 'density', '280']); - const installed = perfADB(['shell', 'pm', 'path', PACKAGE]); - if (!installed) die('TFT is missing from high-end tablet clone'); - perfADB(['shell', 'am', 'force-stop', PACKAGE]); - perfADB(['shell', 'am', 'start', '-n', `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`]); - const pid = await waitUntil('TFT on high-end tablet', 120, () => perfADB(['shell', 'pidof', PACKAGE])); - const gles = perfADB(['shell', 'getprop', 'ro.opengles.version']); - const bootGles = perfADB(['shell', 'getprop', 'ro.boot.opengles.version']); - const vulkan = perfADB(['shell', 'getprop', 'ro.hardware.vulkan']); - const size = perfADB(['shell', 'wm', 'size']); - const density = perfADB(['shell', 'wm', 'density']); - console.log(JSON.stringify({ - ok: true, - avdName: PERFORMANCE_AVD_NAME, - pid, - packageName: PACKAGE, - renderTarget: size, - density, - roOpenGLESVersion: gles, - bootOpenGLESVersion: bootGles, - vulkanHardware: vulkan, - cpuCores: 8, - ramMB: 8192 - }, null, 2)); -} - -async function repairHighEndLaunchState() { - await ensureCoreSDK(); - const runPerf = args => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 16 * 1024 * 1024 - }); - return { status: result.status, stdout: String(result.stdout ?? '').trim(), stderr: String(result.stderr ?? '').trim() }; - }; - const component = `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`; - const packageEnable = runPerf(['shell', 'pm', 'enable', '--user', '0', PACKAGE]); - const unstop = runPerf(['shell', 'cmd', 'package', 'set-stopped-state', '--user', '0', PACKAGE, 'false']); - const activityEnable = runPerf(['shell', 'pm', 'enable', '--user', '0', component]); - const query = runPerf(['shell', 'cmd', 'package', 'resolve-activity', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]); - const start = runPerf(['shell', 'am', 'start', '-W', '--user', '0', '-n', component]); - await new Promise(resolveWait => setTimeout(resolveWait, 3000)); - const pid = runPerf(['shell', 'pidof', PACKAGE]); - const top = runPerf(['shell', 'dumpsys', 'activity', 'activities']); - const result = { - packageEnable, - unstop, - activityEnable, - resolvedAfterRepair: query, - start, - pid: pid.stdout || null, - topActivities: top.stdout.split('\n').filter(line => /topResumedActivity|mResumedActivity|teamfighttactics/i.test(line)).slice(0, 100) - }; - console.log(JSON.stringify(result, null, 2)); -} - -async function reinstallHighEndFromOfficialApk() { - await ensureCoreSDK(); - await ensurePlayImage(); - const targetAVD = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.avd`); - const targetINI = join(AVD_HOME, `${PERFORMANCE_AVD_NAME}.ini`); - if (!existsSync(join(targetAVD, 'config.ini')) || !existsSync(targetINI)) { - die('high-end tablet is not prepared yet'); - } - const adbExe = join(SDK, 'platform-tools', 'adb'); - run(adbExe, ['-P', ADB_PORT, 'start-server'], { - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); - const deviceState = spawnSync(adbExe, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, 'get-state'], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); - if (deviceState.status !== 0 || String(deviceState.stdout ?? '').trim() !== 'device') { - const emulatorExe = join(SDK, 'emulator', 'emulator'); - const child = spawn(emulatorExe, [ - `@${PERFORMANCE_AVD_NAME}`, '-id', 'TFTMAC-High-End-Tablet', '-port', '5592', - '-gpu', 'host', '-skin', '1920x1080', '-cores', '8', '-memory', '8192', - '-no-snapshot', '-no-metrics', '-no-boot-anim', '-crash-report-mode', 'disabled', - '-feature', 'GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,AsyncComposeSupport,VirtioGpuFenceContexts', - '-append-userspace-opt', 'androidboot.opengles.version=196610' - ], { - cwd: ROOT, - env: { ...process.env, ANDROID_SDK_ROOT: SDK, ANDROID_AVD_HOME: AVD_HOME, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - detached: true, - stdio: 'ignore' - }); - child.unref(); - } - const ready = args => { - const result = spawnSync(adbExe, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; - }; - await waitUntil('high-end tablet ADB', 240, () => ready(['get-state']) === 'device'); - await waitUntil('high-end tablet Android boot', 240, () => ready(['shell', 'getprop', 'sys.boot_completed'])?.replace(/\r/g, '') === '1'); - const activeGLES = ready(['shell', 'getprop', 'ro.opengles.version']); - if (activeGLES !== '196610') die(`high-end tablet booted without ES 3.2 capability: ${activeGLES ?? 'unknown'}`); - if (!existsSync(LIVE_MANIFEST) || !existsSync(join(LIVE_CURRENT, 'base.apk'))) { - die('official Google Play TFT capture is missing'); - } - const manifest = JSON.parse(await readFile(LIVE_MANIFEST, 'utf8')); - const basePath = join(LIVE_CURRENT, 'base.apk'); - const actualHash = await hashFile(basePath, 'sha256'); - if (manifest.packageName !== PACKAGE || manifest.baseSHA256 !== actualHash) { - die('official TFT APK hash no longer matches the captured Google Play manifest'); - } - const executable = join(SDK, 'platform-tools', 'adb'); - const install = spawnSync(executable, [ - '-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, - 'install', '--no-streaming', '-r', '-g', basePath - ], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - const runPerf = args => { - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - return { status: result.status, stdout: String(result.stdout ?? '').trim(), stderr: String(result.stderr ?? '').trim() }; - }; - const component = `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`; - const query = runPerf(['shell', 'cmd', 'package', 'resolve-activity', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]); - const start = runPerf(['shell', 'am', 'start', '-W', '--user', '0', '-n', component]); - await new Promise(resolveWait => setTimeout(resolveWait, 3000)); - const pid = runPerf(['shell', 'pidof', PACKAGE]); - console.log(JSON.stringify({ - officialBaseSHA256: actualHash, - install: { - status: install.status, - stdout: String(install.stdout ?? '').trim(), - stderr: String(install.stderr ?? '').trim() - }, - resolvedAfterInstall: query, - start, - pid: pid.stdout || null - }, null, 2)); - if (install.status !== 0) die('reinstalling the exact Google Play APK onto the high-end clone failed'); - if (!pid.stdout) die('TFT still did not stay running after PackageManager refresh'); -} - -async function inspectHighEndPackageState() { - await ensureCoreSDK(); - const runPerf = args => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - return { status: result.status, stdout: String(result.stdout ?? '').trim(), stderr: String(result.stderr ?? '').trim() }; - }; - const dump = runPerf(['shell', 'dumpsys', 'package', PACKAGE]); - const lines = dump.stdout.split('\n'); - const userIndex = lines.findIndex(line => line.includes('User 0:')); - const userState = userIndex >= 0 ? lines.slice(userIndex, userIndex + 80) : []; - const activityIndex = lines.findIndex(line => line.includes(`${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`)); - const activityContext = activityIndex >= 0 ? lines.slice(Math.max(0, activityIndex - 10), activityIndex + 30) : []; - const disabledPackages = runPerf(['shell', 'pm', 'list', 'packages', '-d']); - const enabledPackages = runPerf(['shell', 'pm', 'list', 'packages', '-e']); - const queryMain = runPerf(['shell', 'cmd', 'package', 'query-activities', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]); - const resolveDefault = runPerf(['shell', 'cmd', 'package', 'resolve-activity', '--brief', PACKAGE]); - const result = { - packageDisabled: disabledPackages.stdout.includes(`package:${PACKAGE}`), - packageEnabled: enabledPackages.stdout.includes(`package:${PACKAGE}`), - queryMain, - resolveDefault, - userState, - activityContext - }; - console.log(JSON.stringify(result, null, 2)); -} - -async function diagnoseHighEndLaunch() { - await ensureCoreSDK(); - const perfRun = args => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - return { - status: result.status, - stdout: String(result.stdout ?? '').trim(), - stderr: String(result.stderr ?? '').trim() - }; - }; - const packageDump = perfRun(['shell', 'dumpsys', 'package', PACKAGE]); - const activities = packageDump.stdout.split('\n').filter(line => - /RiotNativeActivity|SplashActivity|MAIN|LAUNCHER|activity|enabled=|stopped=/i.test(line) - ).slice(0, 500); - const explicit = perfRun(['shell', 'am', 'start', '-W', '-n', `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`]); - const monkey = perfRun(['shell', 'monkey', '-p', PACKAGE, '-c', 'android.intent.category.LAUNCHER', '1']); - await new Promise(resolveWait => setTimeout(resolveWait, 2000)); - const pid = perfRun(['shell', 'pidof', PACKAGE]); - const top = perfRun(['shell', 'dumpsys', 'activity', 'activities']); - const log = perfRun(['logcat', '-d', '-t', '700']); - const relevantLog = log.stdout.split('\n').filter(line => - /teamfighttactics|RiotNativeActivity|leagueoflegends|ActivityTaskManager|PackageManager|Permission Denial|SecurityException|FATAL EXCEPTION|AndroidRuntime|Unable to start|class.*not found/i.test(line) - ).slice(-300); - const result = { - explicitStart: explicit, - monkeyStart: monkey, - pid: pid.stdout || null, - topActivities: top.stdout.split('\n').filter(line => /topResumedActivity|mResumedActivity|teamfighttactics/i.test(line)).slice(0, 100), - packageActivityEvidence: activities, - relevantLog - }; - console.log(JSON.stringify(result, null, 2)); -} - -async function inspectHighEndTablet() { - await ensureCoreSDK(); - const perfADB = args => { - const executable = join(SDK, 'platform-tools', 'adb'); - const result = spawnSync(executable, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 32 * 1024 * 1024 - }); - return { - ok: result.status === 0, - status: result.status, - stdout: String(result.stdout ?? '').trim(), - stderr: String(result.stderr ?? '').trim() - }; - }; - const state = perfADB(['get-state']); - const boot = perfADB(['shell', 'getprop', 'sys.boot_completed']); - const packagePath = perfADB(['shell', 'pm', 'path', PACKAGE]); - const resolve = perfADB(['shell', 'cmd', 'package', 'resolve-activity', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]); - const pid = perfADB(['shell', 'pidof', PACKAGE]); - const activity = perfADB(['shell', 'dumpsys', 'activity', 'activities']); - const packageDump = perfADB(['shell', 'dumpsys', 'package', PACKAGE]); - const gles = perfADB(['shell', 'getprop', 'ro.opengles.version']); - const bootGles = perfADB(['shell', 'getprop', 'ro.boot.opengles.version']); - const vulkan = perfADB(['shell', 'getprop', 'ro.hardware.vulkan']); - const angle = perfADB(['shell', 'getprop', 'ro.hardware.egl']); - const size = perfADB(['shell', 'wm', 'size']); - const density = perfADB(['shell', 'wm', 'density']); - const display = perfADB(['shell', 'dumpsys', 'display']); - const crash = perfADB(['logcat', '-d', '-t', '1200']); - const filteredLog = crash.stdout.split('\n').filter(line => - /teamfighttactics|RiotNativeActivity|leagueoflegends|FATAL EXCEPTION|AndroidRuntime|SIG(SEGV|ABRT)|crash|vulkan|angle|egl|gles|linker/i.test(line) - ).slice(-400); - const topActivities = activity.stdout.split('\n').filter(line => - /topResumedActivity|mResumedActivity|teamfighttactics|AccountPicker|SignInHub/i.test(line) - ).slice(0, 200); - const result = { - ok: state.ok && state.stdout === 'device' && boot.stdout.replace(/\r/g, '') === '1', - state, - boot: boot.stdout, - packageInstalled: packagePath.ok && packagePath.stdout.includes('package:'), - packagePath: packagePath.stdout, - resolvedActivity: resolve.stdout, - pid: pid.stdout || null, - openGLESVersion: gles.stdout, - bootOpenGLESVersion: bootGles.stdout, - vulkanHardware: vulkan.stdout, - eglHardware: angle.stdout, - displaySize: size.stdout, - displayDensity: density.stdout, - displayTabletEvidence: display.stdout.split('\n').filter(line => /smallest|density|DisplayDeviceInfo|1920|1080/i.test(line)).slice(0, 100), - topActivities, - packageEnabledState: packageDump.stdout.split('\n').filter(line => /User 0:|enabled=|stopped=|hidden=|suspended=/i.test(line)).slice(0, 50), - filteredLog - }; - await writeFile(join(LIVE_ROOT, 'high-end-tablet-inspection.json'), `${JSON.stringify(result, null, 2)}\n`); - console.log(JSON.stringify(result, null, 2)); -} - -async function inspectPostPatch() { - await mkdir(ACQ, { recursive: true }); - await ensureCoreSDK(); - await ensurePlayImage(); - await ensureAcquisitionAVD(); - const adbExe = join(SDK, 'platform-tools', 'adb'); - run(adbExe, ['-P', ADB_PORT, 'start-server'], { env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } }); - if (!adbMaybe(['get-state'])) die('Google Play TFT device is not running; launch TFT before post-patch inspection'); - const pid = adbMaybe(['shell', 'pidof', PACKAGE]) ?? ''; - const activity = adbMaybe(['shell', 'dumpsys', 'activity', 'activities']) ?? ''; - const packageDump = adbMaybe(['shell', 'dumpsys', 'package', PACKAGE]) ?? ''; - const layers = adbMaybe(['shell', 'dumpsys', 'SurfaceFlinger', '--list']) ?? ''; - const gl = adbMaybe(['shell', 'getprop']) ?? ''; - const storageCandidates = []; - for (const root of [ - `/sdcard/Android/data/${PACKAGE}`, - `/storage/emulated/0/Android/data/${PACKAGE}`, - `/sdcard/Android/obb/${PACKAGE}`, - `/storage/emulated/0/Android/obb/${PACKAGE}` - ]) { - const listing = adbMaybe(['shell', 'find', root, '-maxdepth', '6', '-type', 'f']) ?? ''; - const matches = listing.split('\n').filter(Boolean).filter(name => /(?:unreal|\.pak$|\.ucas$|\.utoc$|deviceprofile|engine\.ini|rhi|vulkan|shader|patch)/i.test(name)); - if (matches.length) storageCandidates.push({ root, matches: matches.slice(0, 300) }); - } - const maps = pid ? (adbMaybe(['shell', 'cat', `/proc/${pid.split(/\s+/)[0]}/maps`]) ?? '') : ''; - const mappedLibraries = maps.split('\n') - .map(line => line.trim().split(/\s+/).pop()) - .filter(Boolean) - .filter(path => /(?:unreal|leagueoflegends|riot|vulkan|angle|gles|egl|shader)/i.test(path)); - const topActivity = activity.split('\n').find(line => line.includes('topResumedActivity=ActivityRecord'))?.trim() ?? null; - const gameLayers = layers.split('\n').filter(line => /teamfighttactics|unreal|surfaceview/i.test(line)).slice(0, 100); - const graphicsProperties = gl.split('\n').filter(line => /(?:egl|gles|vulkan|angle|gpu)/i.test(line)).slice(0, 200); - const result = { - observedAt: new Date().toISOString(), - packageName: PACKAGE, - pid: pid || null, - topActivity, - versionName: packageDump.match(/versionName=([^\s]+)/)?.[1] ?? null, - versionCode: packageDump.match(/versionCode=(\d+)/)?.[1] ?? null, - unrealEvidence: mappedLibraries.some(path => /unreal/i.test(path)) || storageCandidates.some(entry => entry.matches.some(path => /unreal|\.pak$|\.ucas$|\.utoc$/i.test(path))), - mappedLibraries: [...new Set(mappedLibraries)].slice(0, 300), - gameLayers, - graphicsProperties, - storageCandidates - }; - await writeFile(join(LIVE_ROOT, 'post-patch-inspection.json'), `${JSON.stringify(result, null, 2)}\n`); - console.log(JSON.stringify(result, null, 2)); -} - -async function inspectLive() { - if (!existsSync(LIVE_MANIFEST)) die('live TFT has not been acquired yet'); - const manifest = JSON.parse(await readFile(LIVE_MANIFEST, 'utf8')); - if (manifest.packageName !== PACKAGE || !Array.isArray(manifest.apks) || manifest.apks.length < 1 || manifest.apks[0].name !== 'base.apk') die('live manifest identity is invalid'); - for (const apk of manifest.apks) { - const path = join(LIVE_CURRENT, apk.name); - if (!existsSync(path)) die(`missing live split ${apk.name}`); - const info = await stat(path); - const sha = await hashFile(path); - if (info.size !== apk.size || sha !== apk.sha256) die(`chain-of-custody mismatch for ${apk.name}`); - } - const engineEvidence = []; - for (const apk of manifest.apks) { - const listing = run('/usr/bin/unzip', ['-l', join(LIVE_CURRENT, apk.name)], { capture: true }); - const names = listing - .split('\n') - .map(line => line.trim().split(/\s+/).pop()) - .filter(Boolean); - const candidates = names.filter(name => /(?:libUnreal|libUE4|libmain|libGame|libRiot|libunity|libil2cpp|libmono|UECommandLine|DefaultEngine|DeviceProfiles|\.uproject)/i.test(name)); - const nativeLibraries = names.filter(name => /^lib\/arm64-v8a\/[^/]+\.so$/i.test(name)); - if (candidates.length || nativeLibraries.length) engineEvidence.push({ - apk: apk.name, - candidates: [...new Set(candidates)].slice(0, 200), - nativeLibraries: [...new Set(nativeLibraries)].slice(0, 300) - }); - } - console.log(JSON.stringify({ - ok: true, - packageName: manifest.packageName, - version: manifest.version, - versionCode: manifest.versionCode, - launchActivity: manifest.launchActivity ?? null, - donorUECommandLineCompatible: manifest.donorUECommandLineCompatible === true, - splits: manifest.apks.length, - baseSHA256: manifest.baseSHA256, - engineEvidence - }, null, 2)); -} - -function runZsh(script, env = {}) { - run('/bin/zsh', [script], { env: { ...process.env, ...env } }); -} - -async function playStock() { - await mkdir(ACQ, { recursive: true }); - await ensureCoreSDK(); - await ensurePlayImage(); - await ensureAcquisitionAVD(); - const adbExe = join(SDK, 'platform-tools', 'adb'); - run(adbExe, ['-P', ADB_PORT, 'start-server'], { env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } }); - if (!adbMaybe(['get-state'])) { - const emulatorExe = join(SDK, 'emulator', 'emulator'); - const child = spawn(emulatorExe, [`@${AVD_NAME}`, '-id', 'TFTMAC-Live', '-port', '5590', '-gpu', 'host', '-skin', '1920x1080', '-cores', '6', '-memory', '6144', '-no-snapshot', '-no-metrics', '-no-boot-anim', '-crash-report-mode', 'disabled'], { - cwd: ROOT, - env: { ...process.env, ANDROID_SDK_ROOT: SDK, ANDROID_AVD_HOME: AVD_HOME, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - detached: true, - stdio: 'ignore' - }); - child.unref(); - } - await waitUntil('live TFT emulator ADB', 240, () => adbMaybe(['get-state']) === 'device'); - await waitUntil('Android boot', 240, () => adbMaybe(['shell', 'getprop', 'sys.boot_completed'])?.replace(/\r/g, '') === '1'); - const installed = adbMaybe(['shell', 'pm', 'path', PACKAGE]); - if (!installed) die('live TFT is no longer installed in the Google Play device'); - const manifest = existsSync(LIVE_MANIFEST) ? JSON.parse(await readFile(LIVE_MANIFEST, 'utf8')) : null; - const component = manifest?.launchActivity || `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`; - adb(['shell', 'am', 'force-stop', PACKAGE], false); - adb(['shell', 'am', 'start', '-n', component], false); - const pid = await waitUntil('live TFT process', 120, () => adbMaybe(['shell', 'pidof', PACKAGE])); - console.log(`TFTMAC_STOCK_LAUNCHED pid=${pid} component=${component}`); - console.log('TFTMAC: Riot live TFT is running in the Google Play device.'); -} - -function loggedInUserHome() { - const user = run('/usr/bin/id', ['-un'], { capture: true }); - const record = run('/usr/bin/dscl', ['.', '-read', `/Users/${user}`, 'NFSHomeDirectory'], { capture: true }); - const marker = 'NFSHomeDirectory:'; - if (!record.startsWith(marker)) die(`could not resolve home directory for ${user}`); - return record.slice(marker.length).trim(); -} - -async function installStableRuntime() { - const home = loggedInUserHome(); - const stable = join(home, 'Library', 'Application Support', 'TFTMAC'); - const stableNext = `${stable}.next`; - const adbExe = join(SDK, 'platform-tools', 'adb'); - const adbState = serial => { - const result = spawnSync(adbExe, ['-P', ADB_PORT, '-s', serial, 'get-state'], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; - }; - const killDevice = serial => { - spawnSync(adbExe, ['-P', ADB_PORT, '-s', serial, 'emu', 'kill'], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' } - }); - }; - killDevice(SERIAL); - killDevice(PERFORMANCE_SERIAL); - const deadline = Date.now() + 60000; - while (Date.now() < deadline && (adbState(SERIAL) || adbState(PERFORMANCE_SERIAL))) { - await new Promise(resolveWait => setTimeout(resolveWait, 500)); - } - if (adbState(SERIAL) || adbState(PERFORMANCE_SERIAL)) { - die('Android devices did not shut down cleanly before runtime migration'); - } - await rm(stableNext, { recursive: true, force: true }); - await mkdir(stableNext, { recursive: true }); - run('/bin/cp', ['-R', join(ACQ, 'sdk'), join(stableNext, 'sdk')]); - run('/bin/cp', ['-R', join(ACQ, 'avd'), join(stableNext, 'avd')]); - for (const avdName of [AVD_NAME, PERFORMANCE_AVD_NAME]) { - const ini = join(stableNext, 'avd', `${avdName}.ini`); - if (!existsSync(ini)) continue; - const finalAVD = join(stable, 'avd', `${avdName}.avd`); - await writeFile(ini, `avd.ini.encoding=UTF-8\npath=${finalAVD}\npath.rel=${avdName}.avd\ntarget=android-36\n`); - } - await writeFile(join(stableNext, 'runtime.json'), `${JSON.stringify({ - schemaVersion: 1, - packageName: PACKAGE, - launchActivity: `${PACKAGE}/com.riotgames.leagueoflegends.RiotNativeActivity`, - acquiredVersion: existsSync(LIVE_MANIFEST) ? JSON.parse(await readFile(LIVE_MANIFEST, 'utf8')).version : null, - source: 'Google Play', - defaultAVD: PERFORMANCE_AVD_NAME, - renderTarget: '1920x1080', - densityDpi: 280, - cpuCores: 8, - ramMB: 8192, - enhancedOpenGLESVersion: 196610, - installedAt: new Date().toISOString() - }, null, 2)}\n`); - const backup = `${stable}.previous`; - await rm(backup, { recursive: true, force: true }); - if (existsSync(stable)) await rename(stable, backup); - await rename(stableNext, stable); - await rm(backup, { recursive: true, force: true }); - console.log(`TFTMAC_RUNTIME_INSTALLED ${stable}`); -} - -async function testAll() { - runZsh(join(ROOT, 'scripts', 'test-mactician.command')); - const source = join(ROOT, 'tftmac', 'Sources', 'TFTMACApp.swift'); - run('/usr/bin/xcrun', ['swiftc', '-parse-as-library', '-typecheck', '-target', 'arm64-apple-macosx12.0', source]); - const shellSource = await readFile(source, 'utf8'); - if (!shellSource.includes('"1920x1080"') || !shellSource.includes('androidboot.opengles.version=196610')) { - die('TFTMAC Enhanced 1080p graphics contract is missing'); - } - const graphicsContract = await readFile(join(ROOT, 'docs', 'TFTMAC_GRAPHICS_ARCHITECTURE.md'), 'utf8'); - if (!graphicsContract.includes('Primary target') || !graphicsContract.includes('617dp tablet class') || !graphicsContract.includes('UnrealEnhancedAdapter')) { - die('TFTMAC graphics architecture contract is incomplete'); - } - console.log('TFTMAC_TESTS_OK donor=green native_shell=green graphics_contract=green'); -} - -async function build() { - await inspectLive(); - const source = join(ROOT, 'tftmac', 'Sources', 'TFTMACApp.swift'); - const plist = join(ROOT, 'tftmac', 'Info.plist'); - const dist = join(ROOT, 'dist'); - const app = join(dist, 'TFTMAC.app'); - const contents = join(app, 'Contents'); - const macOS = join(contents, 'MacOS'); - const version = run('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleShortVersionString', plist], { capture: true }); - const dmg = join(dist, `TFTMAC-${version}.dmg`); - await rm(app, { recursive: true, force: true }); - await rm(dmg, { force: true }); - await mkdir(macOS, { recursive: true }); - await copyFile(plist, join(contents, 'Info.plist')); - run('/usr/bin/xcrun', ['swiftc', '-O', '-parse-as-library', '-target', 'arm64-apple-macosx12.0', source, '-o', join(macOS, 'TFTMAC')]); - run('/usr/bin/codesign', ['--force', '--sign', '-', '--timestamp=none', '--options', 'runtime', app]); - run('/usr/bin/codesign', ['--verify', '--deep', '--strict', '--verbose=2', app]); - const dmgRoot = join(dist, '.tftmac-dmg-root'); - await rm(dmgRoot, { recursive: true, force: true }); - await mkdir(dmgRoot, { recursive: true }); - run('/bin/cp', ['-R', app, join(dmgRoot, 'TFTMAC.app')]); - run('/bin/ln', ['-s', '/Applications', join(dmgRoot, 'Applications')]); - run('/usr/bin/hdiutil', ['create', '-size', '32m', '-fs', 'HFS+', '-volname', 'TFTMAC', '-srcfolder', dmgRoot, '-ov', '-format', 'UDZO', dmg]); - await rm(dmgRoot, { recursive: true, force: true }); - console.log(`TFTMAC_BUILT app=${app}`); - console.log(`TFTMAC_DMG ${dmg}`); -} - -async function acceptance() { - const app = join(ROOT, 'dist', 'TFTMAC.app'); - const version = run('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleShortVersionString', join(ROOT, 'tftmac', 'Info.plist')], { capture: true }); - const dmg = join(ROOT, 'dist', `TFTMAC-${version}.dmg`); - if (!existsSync(app) || !existsSync(dmg)) die('TFTMAC app/DMG build outputs are missing'); - run('/usr/bin/codesign', ['--verify', '--deep', '--strict', '--verbose=2', app]); - const identifier = run('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleIdentifier', join(app, 'Contents', 'Info.plist')], { capture: true }); - const displayName = run('/usr/libexec/PlistBuddy', ['-c', 'Print :CFBundleDisplayName', join(app, 'Contents', 'Info.plist')], { capture: true }); - if (identifier !== 'com.flashls1.tftmac' || displayName !== 'TFTMAC') die(`unexpected built identity: ${identifier} / ${displayName}`); - await installStableRuntime(); - const installedApp = '/Applications/TFTMAC.app'; - await rm(installedApp, { recursive: true, force: true }); - run('/bin/cp', ['-R', app, installedApp]); - run('/usr/bin/codesign', ['--verify', '--deep', '--strict', '--verbose=2', installedApp]); - run('/usr/bin/open', ['-n', installedApp]); - const home = loggedInUserHome(); - const stable = join(home, 'Library', 'Application Support', 'TFTMAC'); - const stableADB = join(stable, 'sdk', 'platform-tools', 'adb'); - const stableRun = args => { - const result = spawnSync(stableADB, ['-P', ADB_PORT, '-s', PERFORMANCE_SERIAL, ...args], { - encoding: 'utf8', - env: { ...process.env, ANDROID_ADB_SERVER_PORT: ADB_PORT, ADB_MDNS_AUTO_CONNECT: '' }, - maxBuffer: 16 * 1024 * 1024 - }); - return result.status === 0 ? String(result.stdout ?? '').trim() : null; - }; - await waitUntil('installed TFTMAC high-end tablet ADB', 240, () => stableRun(['get-state']) === 'device'); - await waitUntil('installed TFTMAC Android boot', 240, () => stableRun(['shell', 'getprop', 'sys.boot_completed'])?.replace(/\r/g, '') === '1'); - const pid = await waitUntil('installed TFTMAC Riot process', 120, () => stableRun(['shell', 'pidof', PACKAGE])); - const gles = stableRun(['shell', 'getprop', 'ro.opengles.version']); - const egl = stableRun(['shell', 'getprop', 'ro.hardware.egl']); - const size = stableRun(['shell', 'wm', 'size']); - const density = stableRun(['shell', 'wm', 'density']); - const resolved = stableRun(['shell', 'cmd', 'package', 'resolve-activity', '--brief', '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER', PACKAGE]); - if (gles !== '196610' || egl !== 'angle' || !size?.includes('1920x1080') || !density?.includes('280') || !resolved?.includes(EXPECTED_ACTIVITY)) { - die(`installed TFTMAC runtime did not match enhanced 1080p contract: gles=${gles} egl=${egl} size=${size} density=${density} activity=${resolved}`); - } - console.log(`TFTMAC_ACCEPTED app=${installedApp} pid=${pid} gles=${gles} egl=${egl} size=${size} density=${density}`); -} - -const action = process.argv[2]; -switch (action) { - case 'test': await testAll(); break; - case 'acquire-live': await acquireLive(); break; - case 'inspect-live': await inspectLive(); break; - case 'inspect-post-patch': await inspectPostPatch(); break; - case 'stop-acquisition': await stopAcquisition(); break; - case 'prepare-high-end-tablet': await prepareHighEndTablet(); break; - case 'play-high-end-tablet': await playHighEndTablet(); break; - case 'inspect-high-end-tablet': await inspectHighEndTablet(); break; - case 'diagnose-high-end-launch': await diagnoseHighEndLaunch(); break; - case 'inspect-high-end-package-state': await inspectHighEndPackageState(); break; - case 'repair-high-end-launch-state': await repairHighEndLaunchState(); break; - case 'reinstall-high-end-official-apk': await reinstallHighEndFromOfficialApk(); break; - case 'play-stock': await playStock(); break; - case 'build': await build(); break; - case 'acceptance': await acceptance(); break; - default: die('usage: node tools/clara-task.mjs test|acquire-live|inspect-live|inspect-post-patch|stop-acquisition|prepare-high-end-tablet|play-high-end-tablet|inspect-high-end-tablet|diagnose-high-end-launch|inspect-high-end-package-state|repair-high-end-launch-state|reinstall-high-end-official-apk|play-stock|build|acceptance'); -} diff --git a/tools/tft-input-bridge.swift b/tools/tft-input-bridge.swift index b024428..9a89297 100644 --- a/tools/tft-input-bridge.swift +++ b/tools/tft-input-bridge.swift @@ -302,7 +302,7 @@ private final class InputDiagnostics { private final class TapDispatcher { private let configuration: Configuration - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.input-bridge.adb") + private let queue = DispatchQueue(label: "com.flashls1.tftmac.input-bridge.adb") private var process: Process? private var input: FileHandle? private var showTraitsNext = true @@ -395,7 +395,7 @@ private final class AndroidActivityMonitor { private static let stateMaxAge: TimeInterval = 3 private let configuration: Configuration - private let queue = DispatchQueue(label: "dev.sergeinaumov.mactician.input-bridge.activity") + private let queue = DispatchQueue(label: "com.flashls1.tftmac.input-bridge.activity") private let stateLock = NSLock() private var state = ForegroundActivityState.unknown private var stateUpdatedAt: TimeInterval = 0 diff --git a/tools/tftmac-v2.mjs b/tools/tftmac-v2.mjs deleted file mode 100644 index 960d1cc..0000000 --- a/tools/tftmac-v2.mjs +++ /dev/null @@ -1,1760 +0,0 @@ -#!/usr/bin/env node -import { createHash } from 'node:crypto'; -import { closeSync, createReadStream, existsSync, openSync } from 'node:fs'; -import { chmod, copyFile, mkdir, readFile, readdir, rename, rm, stat, symlink, writeFile } from 'node:fs/promises'; -import { dirname, join, resolve } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import { homedir } from 'node:os'; -import { spawn, spawnSync } from 'node:child_process'; -import { DatabaseSync } from 'node:sqlite'; - -function resolveConsoleUserHome() { - const userResult = spawnSync('/usr/bin/stat', ['-f', '%Su', '/dev/console'], { encoding: 'utf8' }); - const user = String(userResult.stdout ?? '').trim(); - if (user && user !== 'root' && user !== 'loginwindow') { - const homeResult = spawnSync('/usr/bin/dscl', ['.', '-read', `/Users/${user}`, 'NFSHomeDirectory'], { encoding: 'utf8' }); - const match = String(homeResult.stdout ?? '').match(/NFSHomeDirectory:\s+(.+)/); - if (match?.[1]) return match[1].trim(); - } - return homedir(); -} - -const REPO = resolve(dirname(fileURLToPath(import.meta.url)), '..'); -const USER_HOME = resolveConsoleUserHome(); -const SANDBOX_HOME = homedir(); -const APP = join(USER_HOME, 'Library', 'Application Support', 'TFTMAC'); -const DEFAULT_BUILD_VOLUME = '/Volumes/MAC MINI M4'; -const DEFAULT_BUILD_ROOT = join(DEFAULT_BUILD_VOLUME, 'TFTMAC', 'Build'); -const BUILD = resolve(process.env.TFTMAC_BUILD_ROOT ?? DEFAULT_BUILD_ROOT); -const DEFAULT_RUNTIME_ROOT = join(DEFAULT_BUILD_VOLUME, 'TFTMAC', 'Runtime'); -const RUNTIME = resolve(process.env.TFTMAC_RUNTIME_ROOT ?? DEFAULT_RUNTIME_ROOT); -const SDK = join(RUNTIME, 'SDK'); -const AVD_HOME = join(RUNTIME, 'AVD'); -const PACKAGES = join(RUNTIME, 'Packages'); -const PROBES = join(RUNTIME, 'Probes'); -const MANIFESTS = join(RUNTIME, 'Manifests'); -const LOGS = join(APP, 'Logs'); -const DIAGNOSTICS = join(APP, 'Diagnostics'); -const ROLLBACK = join(APP, 'Rollback'); -const SSOT = join(REPO, 'ssot'); -const SOURCE_WORKER_STATE = join(LOGS, 'phase0-source-worker.json'); -const SOURCE_WORKER_STDOUT = join(LOGS, 'phase0-source-worker.stdout.log'); -const SOURCE_WORKER_STDERR = join(LOGS, 'phase0-source-worker.stderr.log'); -const PHASE1_BUILD_STATE = join(MANIFESTS, 'phase1-build-worker.json'); -const PHASE1_BUILD_LOG_ROOT = join(BUILD, 'logs'); -const PHASE1_BUILD_STDOUT = join(PHASE1_BUILD_LOG_ROOT, 'phase1-build.stdout.log'); -const PHASE1_BUILD_STDERR = join(PHASE1_BUILD_LOG_ROOT, 'phase1-build.stderr.log'); -const PHASE1_AEMU_ALIAS = '/private/tmp/tftmac-aemu'; -const DIRECT_CONTROL_REQUEST = join(REPO, '.tftmac-direct-control-request.json'); - -const EXPECTED = Object.freeze({ - architecture: 'arm64', - xcodeVersion: '26.6', - xcodeBuild: '17F113', - commandLineToolsArchive: 'commandlinetools-mac_arm64-15859902_latest.zip', - commandLineToolsURL: 'https://dl.google.com/android/repository/commandlinetools-mac_arm64-15859902_latest.zip', - commandLineToolsSHA256: '835b62a26162b229b441d1f6d4680383815a270809eb33522c0d480fa5002c4e', - androidPackages: [ - 'platform-tools', - 'emulator', - 'platforms;android-36', - 'build-tools;37.0.0', - 'system-images;android-36;google_apis_playstore;arm64-v8a' - ], - playImagePackage: 'system-images;android-36;google_apis_playstore;arm64-v8a', - minimumPlayImageRevision: 7, - avdName: 'TFTMAC_Live_API36', - aemuBranch: 'emu-master-dev', - vulkanSDKVersion: '1.4.357.0', - vulkanSDKSHA256: '539433589c83522e6f31b1c7b418a4167e21597a4a361ab119e1dc0760cf3865', - moltenVKReferenceTag: 'v1.4.2', - glesCTSTag: 'opengl-es-cts-3.2.14.1', - vulkanCTSTag: 'vulkan-cts-1.4.6.1', - vulkanCTSCommit: '5c8aae22885448d70a2873e94a93b24b49505c32', - vulkanSamplesCommit: '89dd3af22d41f9244eeab6e0650460112285c0e1' -}); - -function die(message, code = 1) { - console.error(`TFTMAC_V2: ${message}`); - process.exit(code); -} - -function run(executable, args = [], options = {}) { - const result = spawnSync(executable, args, { - cwd: options.cwd ?? REPO, - env: options.env ?? process.env, - encoding: 'utf8', - input: options.input, - maxBuffer: options.maxBuffer ?? 64 * 1024 * 1024, - stdio: ['pipe', 'pipe', 'pipe'] - }); - if (result.error) { - throw new Error(`${executable} failed to start: ${result.error.message}`); - } - const stdout = String(result.stdout ?? ''); - const stderr = String(result.stderr ?? ''); - if (result.status !== 0 && !options.allowFailure) { - const detail = [stdout.trim(), stderr.trim()].filter(Boolean).join('\n'); - throw new Error(`${executable} ${args.join(' ')} exited ${result.status}${detail ? `\n${detail}` : ''}`); - } - return { status: result.status ?? 1, stdout, stderr }; -} - -function runInherited(executable, args = [], options = {}) { - const result = spawnSync(executable, args, { - cwd: options.cwd ?? REPO, - env: options.env ?? process.env, - stdio: 'inherit' - }); - if (result.error) { - throw new Error(`${executable} failed to start: ${result.error.message}`); - } - if (result.status !== 0) { - throw new Error(`${executable} ${args.join(' ')} exited ${result.status}`); - } - return { status: result.status ?? 1 }; -} - -function pidIsAlive(pid) { - if (!Number.isInteger(pid) || pid <= 0) return false; - try { - process.kill(pid, 0); - return true; - } catch { - return false; - } -} - -async function readSourceWorkerState() { - if (!existsSync(SOURCE_WORKER_STATE)) return null; - try { - return JSON.parse(await readFile(SOURCE_WORKER_STATE, 'utf8')); - } catch { - return { schema: 1, status: 'INVALID_STATE_FILE', path: SOURCE_WORKER_STATE }; - } -} - -async function readPhase1BuildState() { - if (!existsSync(PHASE1_BUILD_STATE)) return null; - try { - return JSON.parse(await readFile(PHASE1_BUILD_STATE, 'utf8')); - } catch { - return { schema: 1, status: 'INVALID_STATE_FILE', path: PHASE1_BUILD_STATE }; - } -} - -function firstExisting(paths) { - return paths.find(path => path && existsSync(path)) ?? null; -} - -async function sha256(path) { - return new Promise((resolveHash, reject) => { - const hash = createHash('sha256'); - const stream = createReadStream(path); - stream.on('error', reject); - stream.on('data', chunk => hash.update(chunk)); - stream.on('end', () => resolveHash(hash.digest('hex'))); - }); -} - -async function atomicWrite(path, content) { - await mkdir(dirname(path), { recursive: true }); - const temp = `${path}.tmp-${process.pid}`; - await writeFile(temp, content); - await rename(temp, path); -} - -async function ensureRoots() { - const usesDefaultExternalBuild = !process.env.TFTMAC_BUILD_ROOT; - const usesDefaultExternalRuntime = !process.env.TFTMAC_RUNTIME_ROOT; - if ((usesDefaultExternalBuild || usesDefaultExternalRuntime) && !existsSync(DEFAULT_BUILD_VOLUME)) { - die(`TFTMAC_EXTERNAL_VOLUME_REQUIRED: ${DEFAULT_BUILD_VOLUME} is not mounted; refusing to create Build or Runtime data on the internal disk.`, 17); - } - for (const path of [BUILD, SDK, AVD_HOME, PACKAGES, PROBES, MANIFESTS, LOGS, DIAGNOSTICS, ROLLBACK, SSOT]) { - await mkdir(path, { recursive: true }); - } -} - -function parseXcode(text) { - const version = text.match(/^Xcode\s+([^\s]+)/m)?.[1] ?? null; - const build = text.match(/^Build version\s+([^\s]+)/m)?.[1] ?? null; - return { version, build }; -} - -function discoverInstalledXcodes() { - const applications = '/Applications'; - const listing = run('/bin/ls', ['-1', applications], { allowFailure: true }).stdout.split(/\r?\n/).filter(Boolean); - const applicationCandidates = listing.filter(name => /^Xcode.*\.app$/i.test(name)).map(name => join(applications, name)); - const spotlight = run('/usr/bin/mdfind', ["kMDItemCFBundleIdentifier == 'com.apple.dt.Xcode'"], { allowFailure: true }).stdout - .split(/\r?\n/).map(value => value.trim()).filter(value => /Xcode.*\.app$/i.test(value)); - const candidateApps = [...new Set([ - ...applicationCandidates, - ...spotlight, - join(USER_HOME, 'Downloads', 'Xcode.app'), - join(USER_HOME, 'Applications', 'Xcode.app') - ])]; - const discovered = []; - for (const app of candidateApps) { - if (!existsSync(app)) continue; - const developerDir = join(app, 'Contents', 'Developer'); - if (!existsSync(developerDir)) continue; - const result = run('/usr/bin/xcodebuild', ['-version'], { - env: { ...process.env, DEVELOPER_DIR: developerDir }, - allowFailure: true - }); - discovered.push({ app, developerDir, status: result.status, version: parseXcode(result.stdout) }); - } - return discovered; -} - -function findRequiredXcode(discovered) { - return discovered.find(item => item.status === 0 && item.version.version === EXPECTED.xcodeVersion && item.version.build === EXPECTED.xcodeBuild) ?? null; -} - -function parseMacOS(text) { - const values = {}; - for (const line of text.split(/\r?\n/)) { - const [key, ...rest] = line.split(':'); - if (rest.length) values[key.trim()] = rest.join(':').trim(); - } - return { - productName: values.ProductName ?? null, - productVersion: values.ProductVersion ?? null, - buildVersion: values.BuildVersion ?? null - }; -} - -function parseHardware(text) { - const modelName = text.match(/^\s*Model Name:\s*(.+)$/m)?.[1]?.trim() ?? null; - const modelIdentifier = text.match(/^\s*Model Identifier:\s*(.+)$/m)?.[1]?.trim() ?? null; - const chip = text.match(/^\s*Chip:\s*(.+)$/m)?.[1]?.trim() ?? null; - const memory = text.match(/^\s*Memory:\s*(.+)$/m)?.[1]?.trim() ?? null; - return { modelName, modelIdentifier, chip, memory }; -} - -function parseProperties(text) { - const result = {}; - for (const raw of text.split(/\r?\n/)) { - const line = raw.trim(); - if (!line || line.startsWith('#')) continue; - const index = line.indexOf('='); - if (index < 0) continue; - result[line.slice(0, index).trim()] = line.slice(index + 1).trim(); - } - return result; -} - -function yamlScalar(value) { - if (value === null) return 'null'; - if (typeof value === 'number' || typeof value === 'boolean') return String(value); - return JSON.stringify(String(value)); -} - -function setYamlScalar(text, path, value) { - const lines = text.split('\n'); - const stack = []; - for (let index = 0; index < lines.length; index += 1) { - const match = lines[index].match(/^(\s*)([A-Za-z0-9_]+):(?:\s*(.*))?$/); - if (!match) continue; - const indent = match[1].length; - if (indent % 2 !== 0) continue; - const level = indent / 2; - stack.length = level; - const key = match[2]; - const current = [...stack, key]; - if (current.length === path.length && current.every((part, i) => part === path[i])) { - lines[index] = `${match[1]}${key}: ${yamlScalar(value)}`; - return lines.join('\n'); - } - const remainder = match[3]; - if (remainder === undefined || remainder === '') stack[level] = key; - } - throw new Error(`STACK.lock.yaml path not found: ${path.join('.')}`); -} - -async function updateStackLock(updates) { - const path = join(SSOT, 'STACK.lock.yaml'); - let text = await readFile(path, 'utf8'); - for (const [yamlPath, value] of updates) text = setYamlScalar(text, yamlPath, value); - await atomicWrite(path, text); -} - -function parseInstalledPackages(text) { - const packages = new Map(); - for (const line of text.split(/\r?\n/)) { - if (!line.includes('|')) continue; - const columns = line.split('|').map(value => value.trim()); - if (columns.length < 2 || !columns[0] || columns[0] === 'Path' || /^-+$/.test(columns[0])) continue; - packages.set(columns[0], columns[1]); - } - return packages; -} - -const CRITICAL_LOCK_PATHS = Object.freeze([ - ['frozen_at'], - ['host', 'architecture'], - ['host', 'macos_version'], - ['host', 'macos_build'], - ['host', 'xcode_version'], - ['host', 'xcode_build'], - ['host', 'macos_sdk_path'], - ['host', 'hardware_model'], - ['android_command_line_tools', 'installed_revision'], - ['android', 'play_image_revision'], - ['android', 'platform_tools_revision'], - ['android', 'emulator_revision'], - ['android', 'platform_revision'], - ['android', 'build_tools_revision'], - ['aemu', 'resolved_manifest_sha256'], - ['aemu', 'qemu_commit'], - ['aemu', 'aemu_commit'], - ['aemu', 'gfxstream_commit'], - ['aemu', 'integrated_angle_commit'], - ['aemu', 'integrated_moltenvk_commit'], - ['aemu', 'guestangle_authority'], - ['vulkan_sdk', 'vulkaninfo_version'], - ['moltenvk', 'reference_commit'], - ['generality', 'gles_cts_commit'], - ['generality', 'vulkan_required_cases_sha256'] -]); - -function parseSimpleYamlScalars(text) { - const scalars = new Map(); - const stack = []; - for (const line of text.split(/\r?\n/)) { - if (!line.trim() || line.trim().startsWith('#') || /^\s*-\s/.test(line)) continue; - const match = line.match(/^(\s*)([A-Za-z0-9_]+):(?:\s*(.*))?$/); - if (!match) continue; - const indent = match[1].length; - if (indent % 2 !== 0) continue; - const level = indent / 2; - stack.length = level; - const key = match[2]; - const raw = match[3]; - const path = [...stack, key]; - if (raw === undefined || raw === '') { - stack[level] = key; - continue; - } - let value = raw.trim(); - if (value === 'null') value = null; - else if (value === 'true') value = true; - else if (value === 'false') value = false; - else if (/^-?\d+(?:\.\d+)?$/.test(value)) value = Number(value); - else if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) { - try { value = JSON.parse(value); } catch { value = value.slice(1, -1); } - } - scalars.set(path.join('.'), value); - } - return scalars; -} - -async function phase0Host() { - await ensureRoots(); - const arch = run('/usr/bin/uname', ['-m']).stdout.trim(); - const sw = parseMacOS(run('/usr/bin/sw_vers').stdout); - const installedXcodes = discoverInstalledXcodes(); - const requiredXcode = findRequiredXcode(installedXcodes); - const xcodeEnv = requiredXcode ? { ...process.env, DEVELOPER_DIR: requiredXcode.developerDir } : process.env; - const xcodeRaw = run('/usr/bin/xcodebuild', ['-version'], { env: xcodeEnv }).stdout; - const xcode = parseXcode(xcodeRaw); - const sdkPath = run('/usr/bin/xcrun', ['--sdk', 'macosx', '--show-sdk-path'], { env: xcodeEnv }).stdout.trim(); - const hardwareRaw = run('/usr/sbin/system_profiler', ['SPHardwareDataType']).stdout; - const hardware = parseHardware(hardwareRaw); - - const checks = { - architecture: arch === EXPECTED.architecture, - xcodeVersion: xcode.version === EXPECTED.xcodeVersion, - xcodeBuild: xcode.build === EXPECTED.xcodeBuild, - macosVersionPresent: Boolean(sw.productVersion), - macosSDKPresent: Boolean(sdkPath), - appleSiliconChip: /Apple\s+M\d|Apple Silicon/i.test(hardware.chip ?? '') - }; - const pass = Object.values(checks).every(Boolean); - const artifact = { - schema: 1, - observedAt: new Date().toISOString(), - expected: { - architecture: EXPECTED.architecture, - xcodeVersion: EXPECTED.xcodeVersion, - xcodeBuild: EXPECTED.xcodeBuild - }, - observed: { - architecture: arch, - macOS: sw, - xcode, - selectedXcodeBundle: requiredXcode?.app ?? null, - selectedDeveloperDir: requiredXcode?.developerDir ?? null, - installedXcodes, - macosSDKPath: sdkPath, - hardware - }, - checks, - pass - }; - await atomicWrite(join(SSOT, 'host-preflight.json'), `${JSON.stringify(artifact, null, 2)}\n`); - const toolVersions = [ - `uname=${arch}`, - `macos=${sw.productVersion ?? 'unknown'} (${sw.buildVersion ?? 'unknown'})`, - `xcode=${xcode.version ?? 'unknown'} (${xcode.build ?? 'unknown'})`, - `macos_sdk=${sdkPath}`, - `node=${process.version}`, - `git=${run('/usr/bin/git', ['--version']).stdout.trim()}` - ]; - await atomicWrite(join(SSOT, 'tool-versions.txt'), `${toolVersions.join('\n')}\n`); - await updateStackLock([ - [['host', 'architecture'], arch], - [['host', 'macos_version'], sw.productVersion], - [['host', 'macos_build'], sw.buildVersion], - [['host', 'hardware_model'], hardware.modelIdentifier ?? hardware.modelName] - ]); - if (requiredXcode && checks.xcodeVersion && checks.xcodeBuild && checks.macosSDKPresent) { - await updateStackLock([ - [['host', 'xcode_version'], xcode.version], - [['host', 'xcode_build'], xcode.build], - [['host', 'macos_sdk_path'], sdkPath] - ]); - } - console.log(JSON.stringify({ phase: '0-host', pass, checks, observed: artifact.observed }, null, 2)); - if (!pass) die('PHASE_0_HOST_PREFLIGHT_FAILED', 2); -} - -async function downloadVerified(url, destination, expectedSHA256) { - await mkdir(dirname(destination), { recursive: true }); - if (existsSync(destination)) { - const current = await sha256(destination); - if (current === expectedSHA256) return; - await rm(destination, { force: true }); - } - const partial = `${destination}.partial`; - run('/usr/bin/curl', ['-fL', '--retry', '3', '--retry-delay', '2', '--continue-at', '-', url, '-o', partial]); - const actual = await sha256(partial); - if (actual !== expectedSHA256) { - await rm(partial, { force: true }); - throw new Error(`checksum mismatch for ${url}: expected ${expectedSHA256}, got ${actual}`); - } - await rename(partial, destination); -} - -async function installCommandLineTools() { - await ensureRoots(); - const archive = join(PACKAGES, EXPECTED.commandLineToolsArchive); - await downloadVerified(EXPECTED.commandLineToolsURL, archive, EXPECTED.commandLineToolsSHA256); - const sdkmanager = join(SDK, 'cmdline-tools', 'latest', 'bin', 'sdkmanager'); - if (!existsSync(sdkmanager)) { - const stage = join(PACKAGES, '.cmdline-tools-stage'); - await rm(stage, { recursive: true, force: true }); - await mkdir(stage, { recursive: true }); - run('/usr/bin/unzip', ['-q', archive, '-d', stage]); - const source = join(stage, 'cmdline-tools'); - if (!existsSync(source)) throw new Error('Android command-line tools archive has unexpected layout'); - const latest = join(SDK, 'cmdline-tools', 'latest'); - await rm(latest, { recursive: true, force: true }); - await mkdir(dirname(latest), { recursive: true }); - await rename(source, latest); - await rm(stage, { recursive: true, force: true }); - } - const hash = await sha256(archive); - console.log(JSON.stringify({ archive, sha256: hash, sdkmanager }, null, 2)); -} - -async function seedPreviouslyAcceptedAndroidLicenses() { - const target = join(SDK, 'licenses'); - if (existsSync(join(target, 'android-sdk-license'))) return { seeded: false, source: 'already-local' }; - const spotlightLicenses = run('/usr/bin/mdfind', ["kMDItemFSName == 'android-sdk-license'"], { allowFailure: true }).stdout - .split(/\r?\n/).map(value => value.trim()).filter(Boolean).map(path => dirname(dirname(path))); - const candidates = [...new Set([ - process.env.ANDROID_SDK_ROOT, - process.env.ANDROID_HOME, - join(USER_HOME, 'Library', 'Android', 'sdk'), - ...spotlightLicenses - ].filter(Boolean))]; - for (const candidate of candidates) { - const source = join(candidate, 'licenses'); - if (!existsSync(join(source, 'android-sdk-license'))) continue; - await mkdir(target, { recursive: true }); - for (const name of ['android-sdk-license', 'android-sdk-preview-license', 'google-gdk-license']) { - const from = join(source, name); - if (existsSync(from)) await copyFile(from, join(target, name)); - } - return { seeded: true, source }; - } - return { seeded: false, source: null }; -} - -function resolveJavaHome() { - const tool = run('/usr/libexec/java_home', ['-v', '17'], { allowFailure: true }).stdout.trim(); - const candidates = [ - process.env.JAVA_HOME, - tool, - '/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home', - '/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home', - '/Applications/Android Studio.app/Contents/jbr/Contents/Home', - '/Applications/Android Studio.app/Contents/jre/Contents/Home' - ].filter(Boolean); - return candidates.find(home => existsSync(join(home, 'bin', 'java'))) ?? null; -} - -function androidEnv() { - const javaHome = resolveJavaHome(); - if (!javaHome) throw new Error('JAVA_17_REQUIRED: no usable Java 17 runtime was found for Android sdkmanager.'); - return { - ...process.env, - JAVA_HOME: javaHome, - PATH: `${join(javaHome, 'bin')}:${process.env.PATH ?? ''}`, - ANDROID_SDK_ROOT: SDK, - ANDROID_HOME: SDK, - ANDROID_AVD_HOME: AVD_HOME, - ANDROID_ADB_SERVER_PORT: '5040', - ADB_MDNS_AUTO_CONNECT: '' - }; -} - -async function phase0Android() { - await ensureRoots(); - await installCommandLineTools(); - const license = await seedPreviouslyAcceptedAndroidLicenses(); - const sdkmanager = join(SDK, 'cmdline-tools', 'latest', 'bin', 'sdkmanager'); - const androidCli = join(SDK, 'cmdline-tools', 'latest', 'bin', 'android'); - const avdmanager = join(SDK, 'cmdline-tools', 'latest', 'bin', 'avdmanager'); - if (!existsSync(join(SDK, 'licenses', 'android-sdk-license'))) { - await atomicWrite(join(SSOT, 'android-license-status.json'), `${JSON.stringify({ acceptedLicenseEvidenceFound: false, checkedAt: new Date().toISOString() }, null, 2)}\n`); - die('ANDROID_LICENSE_ACCEPTANCE_REQUIRED: no previously accepted Android SDK license evidence was found; no license was accepted automatically.', 3); - } - if (!existsSync(androidCli)) throw new Error(`ANDROID_CLI_REQUIRED: ${androidCli} was not found.`); - const env = androidEnv(); - const api36CatalogResult = run(androidCli, [`--sdk=${SDK}`, 'sdk', 'list', '.*(36|Baklava).*', '--all', '--all-versions'], { env, allowFailure: true, maxBuffer: 128 * 1024 * 1024 }); - await atomicWrite(join(SSOT, 'android-api36-catalog.txt'), `${api36CatalogResult.stdout}${api36CatalogResult.stderr}`); - run(androidCli, [`--sdk=${SDK}`, 'sdk', 'install', 'platform-tools', 'emulator', 'build-tools/37.0.0'], { env, maxBuffer: 128 * 1024 * 1024 }); - run(androidCli, [`--sdk=${SDK}`, 'sdk', 'install', '--canary', 'platforms/android-36', 'system-images/android-36/google_apis_playstore/arm64-v8a'], { env, maxBuffer: 128 * 1024 * 1024 }); - - const revisionAt = async relative => { - const propertiesPath = join(SDK, relative, 'source.properties'); - if (!existsSync(propertiesPath)) return null; - return parseProperties(await readFile(propertiesPath, 'utf8'))['Pkg.Revision'] ?? null; - }; - const discoverPlatform36 = async () => { - const root = join(SDK, 'platforms'); - if (!existsSync(root)) return null; - for (const entry of await readdir(root, { withFileTypes: true })) { - if (!entry.isDirectory()) continue; - const propertiesPath = join(root, entry.name, 'source.properties'); - if (!existsSync(propertiesPath)) continue; - const properties = parseProperties(await readFile(propertiesPath, 'utf8')); - if (!String(properties['AndroidVersion.ApiLevel'] ?? '').startsWith('36')) continue; - return { directory: entry.name, revision: properties['Pkg.Revision'] ?? null, codeName: properties['AndroidVersion.CodeName'] ?? null }; - } - return null; - }; - const platform36 = await discoverPlatform36(); - const requiredVersions = { - 'platform-tools': await revisionAt('platform-tools'), - 'emulator': await revisionAt('emulator'), - 'platforms;android-36': platform36?.revision ?? null, - 'build-tools;37.0.0': await revisionAt('build-tools/37.0.0'), - [EXPECTED.playImagePackage]: await revisionAt('system-images/android-36/google_apis_playstore/arm64-v8a') - }; - const missingPackages = Object.entries(requiredVersions).filter(([, version]) => !version).map(([path]) => path); - if (missingPackages.length) throw new Error(`required Android packages missing after install: ${missingPackages.join(', ')}`); - const installed = `${JSON.stringify({ schema: 1, observedAt: new Date().toISOString(), requiredVersions }, null, 2)}\n`; - await atomicWrite(join(SSOT, 'android-sdk-packages.txt'), installed); - const playRevision = Number.parseInt(requiredVersions[EXPECTED.playImagePackage], 10); - if (!Number.isFinite(playRevision) || playRevision < EXPECTED.minimumPlayImageRevision) { - throw new Error(`Android Play image revision ${requiredVersions[EXPECTED.playImagePackage]} is below required ${EXPECTED.minimumPlayImageRevision}`); - } - const cmdlinePropertiesPath = join(SDK, 'cmdline-tools', 'latest', 'source.properties'); - const cmdlineRevision = existsSync(cmdlinePropertiesPath) ? parseProperties(await readFile(cmdlinePropertiesPath, 'utf8'))['Pkg.Revision'] ?? null : null; - if (!cmdlineRevision) throw new Error('could not resolve installed Android command-line tools revision'); - - const ini = join(AVD_HOME, `${EXPECTED.avdName}.ini`); - const configPath = join(AVD_HOME, `${EXPECTED.avdName}.avd`, 'config.ini'); - if (!existsSync(configPath) || !existsSync(ini)) { - run(avdmanager, [ - 'create', 'avd', '--name', EXPECTED.avdName, - '--package', EXPECTED.playImagePackage, - '--device', 'pixel_tablet', '--force' - ], { env: androidEnv(), input: 'no\n' }); - } - let config = existsSync(configPath) ? await readFile(configPath, 'utf8') : ''; - const values = { - AvdId: EXPECTED.avdName, - 'avd.ini.displayname': 'TFTMAC Live', - 'hw.device.manufacturer': 'Google', - 'hw.device.name': 'pixel_tablet', - 'hw.initialOrientation': 'Landscape', - 'hw.cpu.arch': 'arm64', - 'hw.cpu.ncore': '6', - 'hw.ramSize': '6144', - 'hw.vmHeapSize': '768', - 'hw.lcd.width': '1920', - 'hw.lcd.height': '1080', - 'hw.lcd.density': '320', - 'hw.gpu.enabled': 'yes', - 'hw.gpu.mode': 'host', - 'hw.audioInput': 'yes', - 'hw.keyboard': 'yes', - showDeviceFrame: 'no', - 'skin.name': '1920x1080', - 'disk.dataPartition.size': '16G', - 'runtime.network.speed': 'full', - 'runtime.network.latency': 'none', - 'PlayStore.enabled': 'true', - 'fastboot.forceColdBoot': 'yes', - 'fastboot.forceFastBoot': 'no' - }; - for (const [key, value] of Object.entries(values)) { - const escaped = key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); - const pattern = new RegExp(`^${escaped}=.*$`, 'm'); - config = pattern.test(config) ? config.replace(pattern, `${key}=${value}`) : `${config.replace(/\s*$/, '')}\n${key}=${value}\n`; - } - await atomicWrite(configPath, config); - await atomicWrite(join(SSOT, 'android-license-status.json'), `${JSON.stringify({ acceptedLicenseEvidenceFound: true, seededFrom: license.source, checkedAt: new Date().toISOString() }, null, 2)}\n`); - await updateStackLock([ - [['android_command_line_tools', 'installed_revision'], cmdlineRevision], - [['android', 'play_image_revision'], playRevision], - [['android', 'platform_tools_revision'], requiredVersions['platform-tools']], - [['android', 'emulator_revision'], requiredVersions['emulator']], - [['android', 'platform_revision'], requiredVersions['platforms;android-36']], - [['android', 'build_tools_revision'], requiredVersions['build-tools;37.0.0']] - ]); - console.log(JSON.stringify({ phase: '0-android', pass: true, license, avd: EXPECTED.avdName, sdk: SDK, commandLineToolsRevision: cmdlineRevision, requiredVersions }, null, 2)); -} - -async function phase0Vulkan() { - await ensureRoots(); - const externalSDKRoot = join(RUNTIME, 'VulkanSDK', EXPECTED.vulkanSDKVersion); - const externalVulkanInfo = join(externalSDKRoot, 'macOS', 'bin', 'vulkaninfo'); - const expectedUserSDKRoot = join(USER_HOME, 'VulkanSDK', EXPECTED.vulkanSDKVersion, 'macOS'); - let vulkanInfo = firstExisting([ - process.env.VULKAN_SDK ? join(process.env.VULKAN_SDK, 'bin', 'vulkaninfo') : null, - externalVulkanInfo, - join(expectedUserSDKRoot, 'bin', 'vulkaninfo'), - '/opt/homebrew/bin/vulkaninfo', - '/usr/local/bin/vulkaninfo' - ]); - - if (!vulkanInfo) { - const archive = join(PACKAGES, `vulkansdk-macos-${EXPECTED.vulkanSDKVersion}.zip`); - await downloadVerified(`https://sdk.lunarg.com/sdk/download/${EXPECTED.vulkanSDKVersion}/mac/vulkan_sdk.zip`, archive, EXPECTED.vulkanSDKSHA256); - const stage = join(PACKAGES, `vulkansdk-macos-${EXPECTED.vulkanSDKVersion}-installer`); - if (!existsSync(stage)) { - await mkdir(stage, { recursive: true }); - run('/usr/bin/unzip', ['-q', archive, '-d', stage], { maxBuffer: 128 * 1024 * 1024 }); - } - const installerApp = run('/usr/bin/find', [stage, '-maxdepth', '3', '-name', 'vulkansdk-macOS-*.app', '-print'], { allowFailure: true }).stdout - .split(/\r?\n/).map(value => value.trim()).find(Boolean) ?? null; - const installerBinary = installerApp ? join(installerApp, 'Contents', 'MacOS', installerApp.split('/').pop().replace(/\.app$/, '')) : null; - await atomicWrite(join(SSOT, 'vulkan-install-required.json'), `${JSON.stringify({ - schema: 1, - version: EXPECTED.vulkanSDKVersion, - archive, - archiveSHA256: EXPECTED.vulkanSDKSHA256, - installerApp, - installerBinary, - installRoot: externalSDKRoot, - copyOnly: true, - licenseAcceptanceRequired: true - }, null, 2)}\n`); - die(`VULKAN_SDK_LICENSE_ACCEPTANCE_REQUIRED: verified installer staged at ${installerApp ?? stage}; install root must be ${externalSDKRoot}.`, 4); - } - - const versionOutput = run(vulkanInfo, ['--version'], { allowFailure: true }).stdout.trim(); - const sdkPathVersionMatch = vulkanInfo.includes(`/${EXPECTED.vulkanSDKVersion}/`); - const envVersionMatch = Boolean(process.env.VULKAN_SDK?.includes(EXPECTED.vulkanSDKVersion)); - if (!sdkPathVersionMatch && !envVersionMatch) { - die(`VULKAN_SDK_VERSION_NOT_PROVEN: found ${vulkanInfo}, but frozen ${EXPECTED.vulkanSDKVersion} identity is not proven.`, 16); - } - const sdkRoot = resolve(vulkanInfo, '..', '..'); - const env = { - ...process.env, - VULKAN_SDK: sdkRoot, - PATH: `${join(sdkRoot, 'bin')}:${process.env.PATH ?? ''}`, - DYLD_LIBRARY_PATH: `${join(sdkRoot, 'lib')}:${process.env.DYLD_LIBRARY_PATH ?? ''}`, - VK_ICD_FILENAMES: join(sdkRoot, 'share', 'vulkan', 'icd.d', 'MoltenVK_icd.json'), - VK_LAYER_PATH: join(sdkRoot, 'share', 'vulkan', 'explicit_layer.d') - }; - const summary = run(vulkanInfo, ['--summary'], { env, maxBuffer: 64 * 1024 * 1024 }).stdout; - await atomicWrite(join(SSOT, 'vulkaninfo-summary.txt'), summary); - await updateStackLock([[['vulkan_sdk', 'vulkaninfo_version'], versionOutput || EXPECTED.vulkanSDKVersion]]); - console.log(JSON.stringify({ phase: '0-vulkan', pass: true, vulkaninfo: vulkanInfo, sdkRoot, version: versionOutput || null }, null, 2)); -} - -async function ensureRepoTool() { - const systemRepo = firstExisting(['/opt/homebrew/bin/repo', '/usr/local/bin/repo']); - if (systemRepo) return systemRepo; - const localRepo = join(BUILD, 'bin', 'repo'); - if (!existsSync(localRepo)) { - await mkdir(dirname(localRepo), { recursive: true }); - run('/usr/bin/curl', ['-fL', '--retry', '3', 'https://storage.googleapis.com/git-repo-downloads/repo', '-o', localRepo]); - await chmod(localRepo, 0o755); - } - return localRepo; -} - -function gitCommit(path) { - return run('/usr/bin/git', ['-C', path, 'rev-parse', 'HEAD']).stdout.trim(); -} - -function lineEvidence(text, patterns) { - const lines = text.split(/\r?\n/); - const evidence = []; - for (let index = 0; index < lines.length; index += 1) { - if (patterns.some(pattern => pattern.test(lines[index]))) { - evidence.push({ line: index + 1, text: lines[index].trim() }); - } - } - return evidence; -} - -function resolveRemoteTag(url, tag) { - const output = run('/usr/bin/git', ['ls-remote', '--tags', url, `refs/tags/${tag}`, `refs/tags/${tag}^{}`]).stdout; - const rows = output.trim().split(/\r?\n/).filter(Boolean).map(line => line.split(/\s+/)); - const peeled = rows.find(row => row[1]?.endsWith('^{}')); - const direct = rows.find(row => row[1] === `refs/tags/${tag}`); - return peeled?.[0] ?? direct?.[0] ?? null; -} - -async function discoverIntegratedMoltenVK(components, commits) { - const probes = []; - for (const [component, path] of Object.entries(components)) { - const grep = run('/usr/bin/git', ['-C', path, 'grep', '-n', '-i', 'MoltenVK', '--', '.'], { - allowFailure: true, - maxBuffer: 32 * 1024 * 1024 - }); - const matches = grep.stdout.split(/\r?\n/).filter(Boolean); - const hashCandidates = [...new Set(matches.flatMap(line => line.match(/\b[0-9a-f]{40}\b/g) ?? []))]; - probes.push({ - component, - path, - commit: commits[component], - matchCount: matches.length, - hashCandidates, - matches: matches.slice(0, 80) - }); - } - const artifact = { - schema: 1, - observedAt: new Date().toISOString(), - branchAuthority: EXPECTED.aemuBranch, - probes - }; - await atomicWrite(join(SSOT, 'moltenvk-integration-discovery.json'), `${JSON.stringify(artifact, null, 2)}\n`); - return artifact; -} - -async function phase0SourceForeground() { - await ensureRoots(); - const repoTool = await ensureRepoTool(); - const aemuRoot = join(BUILD, 'aemu'); - await mkdir(aemuRoot, { recursive: true }); - const repoEnv = { ...process.env, HOME: USER_HOME }; - runInherited(repoTool, ['init', '-u', 'https://android.googlesource.com/platform/manifest', '-b', EXPECTED.aemuBranch], { - cwd: aemuRoot, - env: repoEnv - }); - runInherited(repoTool, ['sync', '-c', '-j8'], { - cwd: aemuRoot, - env: repoEnv - }); - - const resolvedManifest = run(repoTool, ['manifest', '-r'], { - cwd: aemuRoot, - env: repoEnv, - maxBuffer: 256 * 1024 * 1024 - }).stdout; - const manifestPath = join(SSOT, 'upstreams-aemu.lock.xml'); - await atomicWrite(manifestPath, resolvedManifest); - const manifestSHA256 = await sha256(manifestPath); - - const components = { - qemu: join(aemuRoot, 'external', 'qemu'), - aemu: join(aemuRoot, 'hardware', 'google', 'aemu'), - gfxstream: join(aemuRoot, 'hardware', 'google', 'gfxstream'), - angle: join(aemuRoot, 'external', 'angle'), - moltenvkPrebuilt: join(aemuRoot, 'prebuilts', 'android-emulator') - }; - for (const [name, path] of Object.entries(components)) { - if (!existsSync(path)) throw new Error(`locked AEMU manifest is missing required component ${name}: ${path}`); - } - const commits = Object.fromEntries(Object.entries(components).map(([name, path]) => [name, gitCommit(path)])); - const moltenVKConfigPath = join(components.qemu, 'android', 'build', 'cmake', 'config', 'emu-vulkan-config.cmake'); - const moltenVKConfigText = await readFile(moltenVKConfigPath, 'utf8'); - const moltenVKPrebuiltEvidence = lineEvidence(moltenVKConfigText, [/PREBUILT_ROOT.*libMoltenVK\.dylib/, /PREBUILT_ROOT.*MoltenVK_icd\.json/]); - if (moltenVKPrebuiltEvidence.length < 2) { - throw new Error('MOLTENVK_PREBUILT_AUTHORITY_NOT_PROVEN: qemu does not prove MoltenVK is supplied from PREBUILT_ROOT/icds.'); - } - const integratedMoltenVKCommit = commits.moltenvkPrebuilt; - await atomicWrite(join(SSOT, 'moltenvk-integration-discovery.json'), `${JSON.stringify({ - schema: 2, - observedAt: new Date().toISOString(), - branchAuthority: EXPECTED.aemuBranch, - authorityType: 'resolved-manifest-prebuilt', - authorityPath: 'prebuilts/android-emulator', - authorityCommit: integratedMoltenVKCommit, - qemuCommit: commits.qemu, - qemuEvidencePath: 'external/qemu/android/build/cmake/config/emu-vulkan-config.cmake', - evidence: moltenVKPrebuiltEvidence, - pass: true - }, null, 2)}\n`); - - const guestAngleSource = join(components.qemu, 'android', 'android-emu', 'android', 'userspace-boot-properties.cpp'); - const sourceText = await readFile(guestAngleSource, 'utf8'); - const sourceSHA256 = await sha256(guestAngleSource); - const checks = { - guestAngleFeatureGate: /fc::isEnabled\(fc::GuestAngle\)/.test(sourceText), - hardwareEGLAngle: /params\.push_back\(\{\"androidboot\.hardwareegl\",\s*\"angle\"\}\)/.test(sourceText), - guestAngleRequiresVulkan: /Cannot use GuestAngle without Vulkan enabled/.test(sourceText), - hardwareVulkanRanchu: /params\.push_back\(\{\"androidboot\.hardware\.vulkan\",\s*\"ranchu\"\}\)/.test(sourceText), - nonconformantExposureExplicitlyDisabled: /Without turning off exposeNonConformantExtensionsAndVersions/.test(sourceText) && /extensionLimitStr\s*=\s*\"exposeN\*\"/.test(sourceText) && /angle_overrides_disabled\s*\+=\s*extensionLimitStr/.test(sourceText) - }; - const guestAnglePass = Object.values(checks).every(Boolean); - const guestAngleArtifact = { - schema: 1, - observedAt: new Date().toISOString(), - branchAuthority: EXPECTED.aemuBranch, - qemuCommit: commits.qemu, - sourcePath: 'external/qemu/android/android-emu/android/userspace-boot-properties.cpp', - sourceSHA256, - checks, - evidence: lineEvidence(sourceText, [ - /GuestAngle/, - /androidboot\.hardwareegl/, - /androidboot\.hardware\.vulkan/, - /exposeNonConformantExtensionsAndVersions/, - /extensionLimitStr/ - ]), - pass: guestAnglePass - }; - await atomicWrite(join(SSOT, 'guestangle-authority.json'), `${JSON.stringify(guestAngleArtifact, null, 2)}\n`); - - const referenceRoot = join(BUILD, 'references'); - await mkdir(referenceRoot, { recursive: true }); - const moltenVKReference = join(referenceRoot, 'MoltenVK-1.4.2'); - if (!existsSync(join(moltenVKReference, '.git'))) { - await rm(moltenVKReference, { recursive: true, force: true }); - run('/usr/bin/git', ['clone', '--depth', '1', '--branch', EXPECTED.moltenVKReferenceTag, 'https://github.com/KhronosGroup/MoltenVK.git', moltenVKReference], { maxBuffer: 128 * 1024 * 1024 }); - } - const moltenVKReferenceCommit = gitCommit(moltenVKReference); - const glesCTSCommit = resolveRemoteTag('https://github.com/KhronosGroup/VK-GL-CTS.git', EXPECTED.glesCTSTag); - if (!glesCTSCommit) throw new Error(`could not resolve ${EXPECTED.glesCTSTag}`); - - const repoVersion = run(repoTool, ['--version'], { cwd: aemuRoot, env: repoEnv, allowFailure: true }).stdout.trim(); - const repoToolSHA256 = await sha256(repoTool); - const sourceArtifact = { - schema: 1, - observedAt: new Date().toISOString(), - aemuBranch: EXPECTED.aemuBranch, - manifestSHA256, - commits, - guestAnglePass, - moltenVKIntegration: { authority: 'prebuilts/android-emulator', commit: integratedMoltenVKCommit, discovery: 'ssot/moltenvk-integration-discovery.json' }, - moltenVKReference: { tag: EXPECTED.moltenVKReferenceTag, commit: moltenVKReferenceCommit }, - generality: { - glesCTSTag: EXPECTED.glesCTSTag, - glesCTSCommit, - vulkanCTSTag: EXPECTED.vulkanCTSTag, - vulkanCTSCommit: EXPECTED.vulkanCTSCommit, - vulkanSamplesCommit: EXPECTED.vulkanSamplesCommit - }, - repoTool: { path: repoTool, sha256: repoToolSHA256, version: repoVersion } - }; - await atomicWrite(join(SSOT, 'phase0-source.json'), `${JSON.stringify(sourceArtifact, null, 2)}\n`); - await atomicWrite(join(SSOT, 'source-hashes.txt'), [ - `upstreams-aemu.lock.xml sha256=${manifestSHA256}`, - `userspace-boot-properties.cpp sha256=${sourceSHA256}`, - `repo sha256=${repoToolSHA256}`, - `integrated-moltenvk commit=${integratedMoltenVKCommit}`, - `moltenvk-reference commit=${moltenVKReferenceCommit}`, - `gles-cts commit=${glesCTSCommit}` - ].join('\n') + '\n'); - await updateStackLock([ - [['aemu', 'resolved_manifest_sha256'], manifestSHA256], - [['aemu', 'qemu_commit'], commits.qemu], - [['aemu', 'aemu_commit'], commits.aemu], - [['aemu', 'gfxstream_commit'], commits.gfxstream], - [['aemu', 'integrated_angle_commit'], commits.angle], - [['aemu', 'integrated_moltenvk_commit'], integratedMoltenVKCommit], - [['aemu', 'guestangle_authority'], guestAnglePass ? 'PASS' : 'FAIL'], - [['moltenvk', 'reference_commit'], moltenVKReferenceCommit], - [['generality', 'gles_cts_commit'], glesCTSCommit] - ]); - console.log(JSON.stringify(sourceArtifact, null, 2)); - if (!guestAnglePass) throw new Error('GUESTANGLE_AUTHORITY_FAILED: locked source semantics do not satisfy the SSOT.'); -} - -async function phase0SourceWorker() { - await ensureRoots(); - const startedAt = process.env.TFTMAC_SOURCE_WORKER_STARTED_AT ?? new Date().toISOString(); - const baseState = { - schema: 1, - pid: process.pid, - startedAt, - buildRoot: BUILD, - aemuRoot: join(BUILD, 'aemu'), - branch: EXPECTED.aemuBranch, - stdoutPath: SOURCE_WORKER_STDOUT, - stderrPath: SOURCE_WORKER_STDERR - }; - await atomicWrite(SOURCE_WORKER_STATE, `${JSON.stringify({ ...baseState, status: 'RUNNING' }, null, 2)}\n`); - try { - await phase0SourceForeground(); - await atomicWrite(SOURCE_WORKER_STATE, `${JSON.stringify({ ...baseState, status: 'SUCCEEDED', endedAt: new Date().toISOString() }, null, 2)}\n`); - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - await atomicWrite(SOURCE_WORKER_STATE, `${JSON.stringify({ ...baseState, status: 'FAILED', endedAt: new Date().toISOString(), error: message }, null, 2)}\n`); - throw error; - } -} - -async function phase0Source() { - await ensureRoots(); - const existing = await readSourceWorkerState(); - if (existing?.pid && pidIsAlive(existing.pid)) { - console.log(JSON.stringify({ - phase: '0-source', - launched: false, - alreadyRunning: true, - worker: existing - }, null, 2)); - return; - } - - const startedAt = new Date().toISOString(); - const stdoutFd = openSync(SOURCE_WORKER_STDOUT, 'a'); - const stderrFd = openSync(SOURCE_WORKER_STDERR, 'a'); - try { - const child = spawn(process.execPath, [fileURLToPath(import.meta.url), 'phase0-source-worker'], { - cwd: REPO, - env: { ...process.env, TFTMAC_SOURCE_WORKER_STARTED_AT: startedAt }, - detached: true, - stdio: ['ignore', stdoutFd, stderrFd] - }); - child.unref(); - console.log(JSON.stringify({ - phase: '0-source', - launched: true, - pid: child.pid, - startedAt, - buildRoot: BUILD, - branch: EXPECTED.aemuBranch, - statePath: SOURCE_WORKER_STATE, - stdoutPath: SOURCE_WORKER_STDOUT, - stderrPath: SOURCE_WORKER_STDERR - }, null, 2)); - } finally { - closeSync(stdoutFd); - closeSync(stderrFd); - } -} - -const AUTHORITY_FILES = Object.freeze([ - { - path: join(REPO, 'TFTMAC_FULL_IMPLEMENTATION_PLAN.md'), - sha256: '81bd386c1d9d47f26659c93af914ec9a92568ee689e7bed47eb0f2afd6dd5f1a' - }, - { - path: join(REPO, 'TFTMAC_GPU_RUNTIME_SSOT.md'), - sha256: '4c905ad35a676aa8f4ad0a22416e73d640120851ce9f41e742349ac61ceab1ea' - } -]); - -async function importAuthorityFiles() { - const verified = []; - for (const entry of AUTHORITY_FILES) { - if (!existsSync(entry.path)) throw new Error(`canonical authority document is unavailable: ${entry.path}`); - const actualSHA256 = await sha256(entry.path); - if (actualSHA256 !== entry.sha256) { - throw new Error(`canonical authority hash mismatch for ${entry.path}: expected ${entry.sha256}, got ${actualSHA256}`); - } - verified.push({ path: entry.path.replace(`${REPO}/`, ''), sha256: actualSHA256 }); - } - console.log(JSON.stringify({ phase: '0-authority-verify', pass: true, verified }, null, 2)); -} - -async function phase0Policy() { - await ensureRoots(); - const authority = []; - for (const entry of AUTHORITY_FILES) { - if (!existsSync(entry.path)) { - authority.push({ path: entry.path.replace(`${REPO}/`, ''), expectedSHA256: entry.sha256, exists: false, hashMatches: false }); - continue; - } - const actualSHA256 = await sha256(entry.path); - authority.push({ - path: entry.path.replace(`${REPO}/`, ''), - expectedSHA256: entry.sha256, - actualSHA256, - exists: true, - hashMatches: actualSHA256 === entry.sha256 - }); - } - - const legacyChecks = []; - const legacyFiles = [ - ['tftmac/Sources/TFTMACApp.swift', [ - ['opengles-version-boot-property', 'androidboot.opengles.version=196610'], - ['legacy-avd-name', 'TftHighEndTablet'] - ]], - ['tools/clara-task.mjs', [ - ['legacy-api36-image', 'system-images;android-36;google_apis_playstore;arm64-v8a'], - ['legacy-acquisition-avd', "const AVD_NAME = 'TftLiveStore'"], - ['legacy-performance-avd', "const PERFORMANCE_AVD_NAME = 'TftHighEndTablet'"] - ]], - ['TFTMAC.md', [ - ['legacy-api36-doc', 'Android 16 / API 36'], - ['legacy-196610-proof-doc', 'OpenGL ES: **3.2** (`196610`)'] - ]] - ]; - for (const [relative, checks] of legacyFiles) { - const path = join(REPO, relative); - const text = existsSync(path) ? await readFile(path, 'utf8') : ''; - for (const [id, needle] of checks) { - legacyChecks.push({ id, path: relative, present: text.includes(needle), classification: 'LEGACY_DONOR_NOT_V2_ACCEPTANCE' }); - } - } - - const forbiddenRuntimeProof = legacyChecks.filter(item => item.present).map(item => item.id); - const authorityPass = authority.every(item => item.exists && item.hashMatches); - const result = { - schema: 1, - observedAt: new Date().toISOString(), - authority, - legacyChecks, - authorityPass, - legacyRuntimeClaimsQuarantined: true, - forbiddenRuntimeProof, - pass: authorityPass - }; - await atomicWrite(join(SSOT, 'phase0-policy.json'), `${JSON.stringify(result, null, 2)}\n`); - console.log(JSON.stringify(result, null, 2)); - if (!result.pass) die('PHASE_0_POLICY_FAILED: canonical authority documents are missing or do not match approved hashes.', 14); -} - -async function ensureVulkanRequiredCases() { - await ensureRoots(); - const outputPath = join(SSOT, 'vulkan-required-cases.txt'); - const selectionPath = join(SSOT, 'vulkan-required-cases-selection.json'); - const ctsRoot = join(BUILD, 'references', `VK-GL-CTS-${EXPECTED.vulkanCTSTag}`); - - if (!existsSync(join(ctsRoot, '.git'))) { - await rm(ctsRoot, { recursive: true, force: true }); - run('/usr/bin/git', [ - 'clone', '--filter=blob:none', '--no-checkout', '--depth', '1', - '--branch', EXPECTED.vulkanCTSTag, - 'https://github.com/KhronosGroup/VK-GL-CTS.git', ctsRoot - ], { maxBuffer: 128 * 1024 * 1024 }); - } else { - run('/usr/bin/git', ['-C', ctsRoot, 'fetch', '--depth', '1', 'origin', `refs/tags/${EXPECTED.vulkanCTSTag}:refs/tags/${EXPECTED.vulkanCTSTag}`], { allowFailure: true, maxBuffer: 128 * 1024 * 1024 }); - } - run('/usr/bin/git', ['-C', ctsRoot, 'sparse-checkout', 'init', '--cone'], { allowFailure: true }); - run('/usr/bin/git', ['-C', ctsRoot, 'sparse-checkout', 'set', 'external/vulkancts/mustpass/main']); - let checkout = run('/usr/bin/git', ['-C', ctsRoot, 'checkout', '--detach', EXPECTED.vulkanCTSCommit], { allowFailure: true, maxBuffer: 128 * 1024 * 1024 }); - if (checkout.status !== 0) { - run('/usr/bin/git', ['-C', ctsRoot, 'fetch', '--depth', '1', 'origin', EXPECTED.vulkanCTSCommit], { maxBuffer: 128 * 1024 * 1024 }); - run('/usr/bin/git', ['-C', ctsRoot, 'checkout', '--detach', EXPECTED.vulkanCTSCommit], { maxBuffer: 128 * 1024 * 1024 }); - } - const observedCommit = gitCommit(ctsRoot); - if (observedCommit !== EXPECTED.vulkanCTSCommit) { - throw new Error(`VULKAN_CTS_COMMIT_MISMATCH: expected ${EXPECTED.vulkanCTSCommit}, got ${observedCommit}`); - } - - const mustpassRoot = join(ctsRoot, 'external', 'vulkancts', 'mustpass', 'main'); - const indexPath = join(mustpassRoot, 'vk-default.txt'); - if (!existsSync(indexPath)) throw new Error(`VULKAN_CTS_MUSTPASS_MISSING: ${indexPath}`); - - const visited = new Set(); - const allCases = []; - async function collectList(path) { - const absolute = resolve(path); - if (visited.has(absolute)) return; - visited.add(absolute); - const text = await readFile(absolute, 'utf8'); - for (const raw of text.split(/\r?\n/)) { - const line = raw.trim(); - if (!line || line.startsWith('#')) continue; - if (line.startsWith('dEQP-VK.')) { - allCases.push(line); - continue; - } - const candidates = [join(dirname(absolute), line), join(mustpassRoot, line), join(mustpassRoot, 'vk-default', line)]; - const nested = candidates.find(candidate => existsSync(candidate)); - if (nested) await collectList(nested); - } - } - await collectList(indexPath); - const uniqueCases = [...new Set(allCases)].sort(); - if (!uniqueCases.length) throw new Error('VULKAN_CTS_MUSTPASS_EMPTY: no dEQP-VK cases found in pinned mustpass tree.'); - - const boundaries = [ - ['core-draw', [/^dEQP-VK\.draw\./i, /\.draw\./i]], - ['geometry', [/geometry/i]], - ['tessellation', [/tessellation/i]], - ['shader-cull-distance', [/cull_distance/i, /culldistance/i]], - ['compute', [/^dEQP-VK\.compute\./i, /\.compute\./i]], - ['images', [/copy_and_blit/i, /\.image/i, /images?/i]], - ['descriptors', [/binding_model/i, /descriptor/i]], - ['indirect-draw', [/indirect.*draw/i, /draw.*indirect/i, /indirect/i]], - ['timeline-semaphore', [/timeline.*semaphore/i, /semaphore.*timeline/i]], - ['synchronization2', [/synchronization2/i, /sync2/i]], - ['dynamic-rendering', [/dynamic_rendering/i]], - ['buffer-device-address', [/buffer_device_address/i]], - ['subgroups', [/subgroup/i]], - ['sampler-filter', [/sampler/i, /filter/i]], - ['wsi-presentation', [/^dEQP-VK\.wsi\./i, /present/i]] - ]; - const selection = {}; - for (const [id, patterns] of boundaries) { - const matches = uniqueCases.filter(test => patterns.some(pattern => pattern.test(test))).slice(0, 2); - if (!matches.length) throw new Error(`VULKAN_CTS_REQUIRED_BOUNDARY_UNRESOLVED: ${id}`); - selection[id] = matches; - } - const selectedCases = [...new Set(Object.values(selection).flat())].sort(); - await atomicWrite(outputPath, `${selectedCases.join('\n')}\n`); - const outputSHA256 = await sha256(outputPath); - await atomicWrite(selectionPath, `${JSON.stringify({ - schema: 1, - ctsTag: EXPECTED.vulkanCTSTag, - ctsCommit: EXPECTED.vulkanCTSCommit, - mustpassRoot: 'external/vulkancts/mustpass/main', - totalMustpassCasesObserved: uniqueCases.length, - selection, - selectedCaseCount: selectedCases.length, - output: 'ssot/vulkan-required-cases.txt', - outputSHA256 - }, null, 2)}\n`); - await updateStackLock([[['generality', 'vulkan_required_cases_sha256'], outputSHA256]]); - return { outputPath, outputSHA256, selectedCaseCount: selectedCases.length, totalMustpassCasesObserved: uniqueCases.length }; -} - -async function preflightReport() { - await ensureVulkanRequiredCases(); - await ensureRoots(); - const artifactNames = [ - 'AUTHORITY_INPUTS.sha256', - 'STACK.lock.yaml', - 'host-preflight.json', - 'xcode-discovery.json', - 'android-license-status.json', - 'android-sdk-packages.txt', - 'vulkaninfo-summary.txt', - 'upstreams-aemu.lock.xml', - 'phase0-source.json', - 'source-hashes.txt', - 'guestangle-authority.json', - 'vulkan-required-cases.spec.json', - 'vulkan-required-cases.txt', - 'phase0-policy.json' - ]; - const rows = []; - for (const name of artifactNames) { - const path = join(SSOT, name); - if (!existsSync(path)) { - rows.push({ name, state: 'MISSING', sha256: null }); - continue; - } - rows.push({ name, state: 'PRESENT', sha256: await sha256(path) }); - } - const host = existsSync(join(SSOT, 'host-preflight.json')) ? JSON.parse(await readFile(join(SSOT, 'host-preflight.json'), 'utf8')) : null; - const policy = existsSync(join(SSOT, 'phase0-policy.json')) ? JSON.parse(await readFile(join(SSOT, 'phase0-policy.json'), 'utf8')) : null; - const guestAngle = existsSync(join(SSOT, 'guestangle-authority.json')) ? JSON.parse(await readFile(join(SSOT, 'guestangle-authority.json'), 'utf8')) : null; - const stackText = await readFile(join(SSOT, 'STACK.lock.yaml'), 'utf8'); - const stackScalars = parseSimpleYamlScalars(stackText); - const unresolvedCriticalLockFields = CRITICAL_LOCK_PATHS - .map(path => path.join('.')) - .filter(path => !stackScalars.has(path) || stackScalars.get(path) === null || stackScalars.get(path) === ''); - const blockers = []; - if (!host?.pass) blockers.push('Host preflight is not green (frozen Xcode 26.6 / 17F113 required).'); - if (!policy?.pass) blockers.push('Canonical authority documents are missing or hash-mismatched.'); - if (!existsSync(join(SSOT, 'android-sdk-packages.txt'))) blockers.push('Android API 37 package freeze is incomplete.'); - if (!existsSync(join(SSOT, 'vulkaninfo-summary.txt'))) blockers.push('Vulkan SDK 1.4.357.0 validation is incomplete.'); - if (!existsSync(join(SSOT, 'upstreams-aemu.lock.xml'))) blockers.push('Resolved emu-master-dev manifest is not frozen.'); - if (!guestAngle?.pass) blockers.push('Locked-source GuestAngle authority proof is not green.'); - if (!existsSync(join(SSOT, 'vulkan-required-cases.txt'))) blockers.push('Exact Vulkan CTS required-case list is not frozen.'); - if (unresolvedCriticalLockFields.length) blockers.push(`STACK.lock.yaml has ${unresolvedCriticalLockFields.length} unresolved critical field(s): ${unresolvedCriticalLockFields.join(', ')}`); - - const markdown = [ - '# TFTMAC GPU Runtime v2.0 — Phase 0 Preflight Report', - '', - `Generated: ${new Date().toISOString()}`, - '', - `Status: **${blockers.length === 0 ? 'PASS' : 'BLOCKED'}**`, - '', - '## Blockers', - '', - ...(blockers.length ? blockers.map(item => `- ${item}`) : ['- None.']), - '', - '## Artifact inventory', - '', - '| Artifact | State | SHA-256 |', - '|---|---|---|', - ...rows.map(row => `| \`ssot/${row.name}\` | ${row.state} | ${row.sha256 ?? '—'} |`), - '', - 'Phase 0 may be declared complete only when this report is PASS and `STACK.lock.yaml` contains no unresolved critical-path null.' - ].join('\n') + '\n'; - await atomicWrite(join(SSOT, 'preflight-report.md'), markdown); - console.log(markdown); - if (blockers.length) die(`PHASE_0_BLOCKED: ${blockers.length} unresolved blocker(s).`, 15); -} - -async function cleanupSandboxBootstrap() { - const sandboxApp = join(SANDBOX_HOME, 'Library', 'Application Support', 'TFTMAC'); - if (sandboxApp === APP) { - console.log(JSON.stringify({ removed: false, reason: 'sandbox-home-is-console-home', path: sandboxApp }, null, 2)); - return; - } - if (!sandboxApp.includes('/CLARA-RUNTIME/process-home/')) { - die(`REFUSING_SANDBOX_CLEANUP_OUTSIDE_CLARA_RUNTIME: ${sandboxApp}`, 6); - } - const existed = existsSync(sandboxApp); - if (existed) await rm(sandboxApp, { recursive: true, force: true }); - console.log(JSON.stringify({ removed: existed, path: sandboxApp, canonicalAppRoot: APP }, null, 2)); -} - -async function discoverXcodes() { - const discovered = discoverInstalledXcodes(); - const match = findRequiredXcode(discovered); - await atomicWrite(join(SSOT, 'xcode-discovery.json'), `${JSON.stringify({ observedAt: new Date().toISOString(), required: { version: EXPECTED.xcodeVersion, build: EXPECTED.xcodeBuild }, selected: match, discovered }, null, 2)}\n`); - console.log(JSON.stringify({ phase: '0-xcode-discovery', required: { version: EXPECTED.xcodeVersion, build: EXPECTED.xcodeBuild }, selected: match, discovered }, null, 2)); - if (!match) die(`XCODE_${EXPECTED.xcodeVersion}_${EXPECTED.xcodeBuild}_NOT_FOUND`, 5); -} - -async function phase1BuildWorker() { - await ensureRoots(); - await mkdir(PHASE1_BUILD_LOG_ROOT, { recursive: true }); - const aemuRoot = join(BUILD, 'aemu'); - const qemuRoot = join(aemuRoot, 'external', 'qemu'); - const outRoot = join(qemuRoot, 'objs'); - const toolchainGeneratorPath = join(qemuRoot, 'android', 'scripts', 'unix', 'gen-android-sdk-toolchain.sh'); - const toolchainBackupPath = join(BUILD, 'compat', 'gen-android-sdk-toolchain.original.sh'); - await mkdir(dirname(toolchainBackupPath), { recursive: true }); - if (existsSync(toolchainBackupPath) && existsSync(toolchainGeneratorPath)) { - const backupText = await readFile(toolchainBackupPath, 'utf8'); - const currentText = await readFile(toolchainGeneratorPath, 'utf8'); - if (backupText !== currentText && currentText.includes('26.5')) { - await writeFile(toolchainGeneratorPath, backupText); - } - } - await rm(PHASE1_AEMU_ALIAS, { recursive: true, force: true }); - await symlink(aemuRoot, PHASE1_AEMU_ALIAS, 'dir'); - const buildAemuRoot = PHASE1_AEMU_ALIAS; - const buildQemuRoot = join(buildAemuRoot, 'external', 'qemu'); - const buildOutRoot = join(buildQemuRoot, 'objs'); - const startedAt = process.env.TFTMAC_PHASE1_BUILD_STARTED_AT ?? new Date().toISOString(); - const stackText = await readFile(join(SSOT, 'STACK.lock.yaml'), 'utf8'); - const stack = parseSimpleYamlScalars(stackText); - if (stack.get('phase0_status') !== 'PASS') throw new Error('PHASE1_REQUIRES_PHASE0_PASS'); - const lockedQemuCommit = stack.get('aemu.qemu_commit'); - if (!lockedQemuCommit) throw new Error('PHASE1_QEMU_LOCK_MISSING'); - if (!existsSync(qemuRoot)) throw new Error(`PHASE1_QEMU_SOURCE_MISSING: ${qemuRoot}`); - const observedQemuCommit = gitCommit(qemuRoot); - if (observedQemuCommit !== lockedQemuCommit) { - throw new Error(`PHASE1_QEMU_COMMIT_MISMATCH: expected ${lockedQemuCommit}, got ${observedQemuCommit}`); - } - const xcode = findRequiredXcode(discoverInstalledXcodes()); - if (!xcode) throw new Error(`PHASE1_XCODE_${EXPECTED.xcodeVersion}_${EXPECTED.xcodeBuild}_REQUIRED`); - const env = { - ...process.env, - DEVELOPER_DIR: xcode.developerDir, - ANDROID_SDK_ROOT: SDK, - ANDROID_HOME: SDK, - ANDROID_AVD_HOME: AVD_HOME, - ANDROID_ADB_SERVER_PORT: '5040' - }; - const ninjaCandidates = run('/usr/bin/find', [join(aemuRoot, 'prebuilts'), '-type', 'f', '-name', 'ninja', '-print'], { allowFailure: true, maxBuffer: 4 * 1024 * 1024 }).stdout - .split(/\r?\n/).map(value => value.trim()).filter(Boolean); - const ninjaPhysical = ninjaCandidates[0] ?? null; - const ninjaBinary = ninjaPhysical ? ninjaPhysical.replace(aemuRoot, buildAemuRoot) : null; - if (ninjaBinary) env.PATH = `${dirname(ninjaBinary)}:${env.PATH ?? ''}`; - const baseState = { - schema: 1, - pid: process.pid, - startedAt, - qemuCommit: observedQemuCommit, - xcode: { version: EXPECTED.xcodeVersion, build: EXPECTED.xcodeBuild, developerDir: xcode.developerDir }, - sourceRoot: qemuRoot, - buildAliasRoot: buildAemuRoot, - outRoot, - stdoutPath: PHASE1_BUILD_STDOUT, - stderrPath: PHASE1_BUILD_STDERR - }; - const writeState = async state => atomicWrite(PHASE1_BUILD_STATE, `${JSON.stringify({ ...baseState, ...state }, null, 2)}\n`); - const qtRoot = join(aemuRoot, 'prebuilts', 'android-emulator-build', 'qt'); - const qtRegularLibexec = join(qtRoot, 'darwin-aarch64', 'libexec'); - const qtNoWebLibexec = join(qtRoot, 'darwin-aarch64-nowebengine', 'libexec'); - let qtLibexecBridgeCreated = false; - if (!existsSync(qtRegularLibexec)) { - if (!existsSync(qtNoWebLibexec)) throw new Error(`PHASE1_QT_HOST_TOOLS_MISSING: ${qtNoWebLibexec}`); - await symlink(qtNoWebLibexec, qtRegularLibexec, 'dir'); - qtLibexecBridgeCreated = true; - } - const removeQtLibexecBridge = async () => { - if (qtLibexecBridgeCreated && existsSync(qtRegularLibexec)) { - await rm(qtRegularLibexec, { force: true }); - } - }; - const originalToolchainGenerator = await readFile(toolchainGeneratorPath, 'utf8'); - const originalToolchainGeneratorSHA256 = await sha256(toolchainGeneratorPath); - await writeFile(toolchainBackupPath, originalToolchainGenerator); - const sourceLines = originalToolchainGenerator.split(/\r?\n/); - const patchedLines = []; - let supportedSdkEdits = 0; - let sdkProbeEdits = 0; - let xcodePathEdits = 0; - let xcodeClangEdits = 0; - for (let index = 0; index < sourceLines.length; index += 1) { - let line = sourceLines[index]; - if (line.includes('OSX_SDK_SUPPORTED=') && line.includes('15.2') && !line.includes('26.5')) { - line = line.replace('15.2"', '15.2 26.5"'); - supportedSdkEdits += 1; - } - if (line.includes('OSX_SDK_INSTALLED_LIST=$(xcodebuild -showsdks')) { - const indent = line.match(/^\s*/)?.[0] ?? ''; - patchedLines.push(`${indent}OSX_SDK_INSTALLED_LIST=$(xcrun --sdk macosx --show-sdk-version 2>/dev/null)`); - index += 2; - sdkProbeEdits += 1; - continue; - } - if (line.includes('XCODE_PATH=$(xcode-select -print-path 2>/dev/null)')) { - line = line.replace('XCODE_PATH=$(xcode-select -print-path 2>/dev/null)', 'XCODE_PATH="${DEVELOPER_DIR:-$(xcode-select -print-path 2>/dev/null)}"'); - xcodePathEdits += 1; - } - if (line.trim() === 'CLANG_BINDIR=$PREBUILT_TOOLCHAIN_DIR/bin') { - line = `${line.match(/^\s*/)?.[0] ?? ''}CLANG_BINDIR="$XCODE_PATH/Toolchains/XcodeDefault.xctoolchain/usr/bin"`; - xcodeClangEdits += 1; - } - patchedLines.push(line); - } - if (supportedSdkEdits < 1 || sdkProbeEdits < 1 || xcodePathEdits < 1 || xcodeClangEdits < 1) { - throw new Error(`PHASE1_SDK_COMPAT_PATCH_SHAPE_CHANGED: supported=${supportedSdkEdits} probe=${sdkProbeEdits} xcode=${xcodePathEdits} clang=${xcodeClangEdits}`); - } - const patchedToolchainGenerator = patchedLines.join('\n'); - await writeFile(toolchainGeneratorPath, patchedToolchainGenerator); - const patchedToolchainGeneratorSHA256 = await sha256(toolchainGeneratorPath); - const restoreToolchainGenerator = async () => { - await writeFile(toolchainGeneratorPath, originalToolchainGenerator); - const restoredSHA256 = await sha256(toolchainGeneratorPath); - if (restoredSHA256 !== originalToolchainGeneratorSHA256) { - throw new Error(`PHASE1_TOOLCHAIN_RESTORE_FAILED: expected ${originalToolchainGeneratorSHA256}, got ${restoredSHA256}`); - } - return restoredSHA256; - }; - try { - await rm(outRoot, { recursive: true, force: true }); - const toolchainRoot = join(outRoot, 'toolchain'); - await mkdir(toolchainRoot, { recursive: true }); - const xcodeToolBin = join(xcode.developerDir, 'Toolchains', 'XcodeDefault.xctoolchain', 'usr', 'bin'); - const xcodeClang = join(xcodeToolBin, 'clang'); - const xcodeClangXX = join(xcodeToolBin, 'clang++'); - if (!existsSync(xcodeClang) || !existsSync(xcodeClangXX)) { - throw new Error(`PHASE1_XCODE_CLANG_MISSING: ${xcodeToolBin}`); - } - const macosSDKPath = run('/usr/bin/xcrun', ['--sdk', 'macosx', '--show-sdk-path'], { env }).stdout.trim(); - const makeCompilerWrapper = async (name, compiler) => { - const path = join(toolchainRoot, name); - await writeFile(path, [ - '#!/bin/bash', - `export SDKROOT=${JSON.stringify(macosSDKPath)}`, - `exec ${JSON.stringify(compiler)} -mmacosx-version-min=10.14 \"$@\"`, - '' - ].join('\n')); - await chmod(path, 0o755); - return path; - }; - const compilerWrappers = []; - for (const name of ['cc', 'gcc', 'clang']) compilerWrappers.push(await makeCompilerWrapper(name, xcodeClang)); - for (const name of ['c++', 'g++', 'clang++']) compilerWrappers.push(await makeCompilerWrapper(name, xcodeClangXX)); - const hostToolWrappers = []; - const makeHostToolWrapper = async (name, candidates) => { - const executable = firstExisting(candidates); - if (!executable) return null; - const path = join(toolchainRoot, name); - await writeFile(path, [ - '#!/bin/bash', - `exec ${JSON.stringify(executable)} \"$@\"`, - '' - ].join('\n')); - await chmod(path, 0o755); - hostToolWrappers.push({ name, path, executable }); - return path; - }; - await makeHostToolWrapper('ranlib', [join(xcodeToolBin, 'ranlib'), '/usr/bin/ranlib']); - await makeHostToolWrapper('ar', [join(xcodeToolBin, 'ar'), '/usr/bin/ar']); - await makeHostToolWrapper('nm', [join(xcodeToolBin, 'nm'), '/usr/bin/nm']); - await makeHostToolWrapper('strip', [join(xcodeToolBin, 'strip'), '/usr/bin/strip']); - await makeHostToolWrapper('ld', [join(xcodeToolBin, 'ld'), '/usr/bin/ld']); - await makeHostToolWrapper('libtool', [join(xcodeToolBin, 'libtool'), '/usr/bin/libtool']); - await makeHostToolWrapper('strings', [join(xcodeToolBin, 'strings'), '/usr/bin/strings']); - await makeHostToolWrapper('otool', [join(xcodeToolBin, 'otool'), '/usr/bin/otool']); - await makeHostToolWrapper('install_name_tool', [join(xcodeToolBin, 'install_name_tool'), '/usr/bin/install_name_tool']); - await makeHostToolWrapper('dsymutil', [join(xcodeToolBin, 'dsymutil'), '/usr/bin/dsymutil']); - await writeState({ - status: 'RUNNING', stage: 'BUILD', - compatibility: { - kind: 'temporary-host-sdk-parity', - sdk: '26.5', - sourceSHA256: originalToolchainGeneratorSHA256, - patchedSHA256: patchedToolchainGeneratorSHA256, - supportedSdkEdits, - sdkProbeEdits, - xcodePathEdits, - xcodeClangEdits, - ninjaBinary, - ninjaCandidates: ninjaCandidates.slice(0, 20), - compilerWrappers, - hostToolWrappers, - macosSDKPath, - qtLibexecBridgeCreated, - qtLibexecBridgeTarget: qtNoWebLibexec - } - }); - const buildPython = firstExisting([ - join(buildAemuRoot, 'prebuilts', 'python', 'darwin-x86', 'bin', 'python3'), - join(buildAemuRoot, 'prebuilts', 'python', 'darwin-arm64', 'bin', 'python3') - ]); - if (!buildPython) throw new Error(`PHASE1_AOSP_PREBUILT_PYTHON_MISSING: ${join(aemuRoot, 'prebuilts', 'python')}`); - const cmakeCompatLauncher = '/private/tmp/tftmac-aemu-cmake-compat.py'; - await writeFile(cmakeCompatLauncher, [ - 'import argparse, sys', - 'from pathlib import Path', - `sys.path.insert(0, ${JSON.stringify(join(buildQemuRoot, 'android', 'build', 'python'))})`, - '_orig = argparse.ArgumentParser.parse_known_args', - 'def _parse(self, *args, **kwargs):', - ' ns, rest = _orig(self, *args, **kwargs)', - ' for name in ("aosp", "out", "dist"):', - ' if hasattr(ns, name):', - ' value = getattr(ns, name)', - ' if isinstance(value, str): setattr(ns, name, Path(value))', - ' return ns, rest', - 'argparse.ArgumentParser.parse_known_args = _parse', - 'from aemu.tasks.configure import ConfigureTask', - 'def _without_webengine(self): return self', - 'ConfigureTask.with_webengine = _without_webengine', - 'from aemu import cmake', - 'cmake.launch()', - '' - ].join('\n')); - runInherited(buildPython, [ - cmakeCompatLauncher, - '--aosp', buildAemuRoot, - '--out', buildOutRoot, - '--ccache', 'auto', - '--task-disable', 'clean', - '--verbose' - ], { cwd: buildQemuRoot, env }); - - await writeState({ status: 'RUNNING', stage: 'CTEST' }); - const ctestBinary = join(buildAemuRoot, 'prebuilts', 'cmake', 'darwin-x86', 'bin', 'ctest'); - if (!existsSync(ctestBinary)) throw new Error(`PHASE1_CTEST_MISSING: ${ctestBinary}`); - runInherited(ctestBinary, ['-j8', '--output-on-failure'], { cwd: buildOutRoot, env }); - - await writeState({ status: 'RUNNING', stage: 'GFXSTREAM_BUILD_CHECK' }); - runInherited(buildPython, [ - cmakeCompatLauncher, - '--aosp', buildAemuRoot, - '--out', buildOutRoot, - '--gfxstream', - '--task-disable', 'clean' - ], { cwd: buildQemuRoot, env }); - - await removeQtLibexecBridge(); - const restoredToolchainSHA256 = await restoreToolchainGenerator(); - const emulatorCandidates = run('/usr/bin/find', [outRoot, '-type', 'f', '-name', 'emulator', '-perm', '+111', '-print'], { allowFailure: true, maxBuffer: 8 * 1024 * 1024 }).stdout - .split(/\r?\n/).map(value => value.trim()).filter(Boolean); - const emulatorBinary = emulatorCandidates[0] ?? null; - const artifact = { - schema: 1, - phase: 1, - pass: true, - completedAt: new Date().toISOString(), - qemuCommit: observedQemuCommit, - xcode: baseState.xcode, - sourceRoot: qemuRoot, - outRoot, - emulatorBinary, - checks: { build: 'PASS', ctest: 'PASS', gfxstreamBuildCheck: 'PASS', toolchainSourceRestored: restoredToolchainSHA256 === originalToolchainGeneratorSHA256 }, - hostCompatibility: { - macosSDK: '26.5', - originalToolchainGeneratorSHA256, - patchedToolchainGeneratorSHA256, - restoredToolchainSHA256 - } - }; - await atomicWrite(join(DIAGNOSTICS, 'phase1-build.json'), `${JSON.stringify(artifact, null, 2)}\n`); - await writeState({ status: 'SUCCEEDED', stage: 'COMPLETE', endedAt: new Date().toISOString(), emulatorBinary }); - } catch (error) { - const message = error instanceof Error ? error.message : String(error); - let restoreError = null; - try { - await removeQtLibexecBridge(); - await restoreToolchainGenerator(); - } catch (failure) { - restoreError = failure instanceof Error ? failure.message : String(failure); - } - await writeState({ status: 'FAILED', endedAt: new Date().toISOString(), error: message, restoreError }); - if (restoreError) throw new Error(`${message}; ${restoreError}`); - throw error; - } -} - -async function phase1Build() { - await ensureRoots(); - await mkdir(PHASE1_BUILD_LOG_ROOT, { recursive: true }); - const existing = await readPhase1BuildState(); - if (existing?.pid && pidIsAlive(existing.pid)) { - console.log(JSON.stringify({ phase: '1-build', launched: false, alreadyRunning: true, worker: existing }, null, 2)); - return; - } - const startedAt = new Date().toISOString(); - const stdoutFd = openSync(PHASE1_BUILD_STDOUT, 'w'); - const stderrFd = openSync(PHASE1_BUILD_STDERR, 'w'); - try { - const child = spawn(process.execPath, [fileURLToPath(import.meta.url), 'phase1-build-worker'], { - cwd: REPO, - env: { ...process.env, TFTMAC_PHASE1_BUILD_STARTED_AT: startedAt }, - detached: true, - stdio: ['ignore', stdoutFd, stderrFd] - }); - child.unref(); - console.log(JSON.stringify({ - phase: '1-build', launched: true, pid: child.pid, startedAt, - sourceRoot: join(BUILD, 'aemu', 'external', 'qemu'), outRoot: join(BUILD, 'aemu', 'external', 'qemu', 'objs'), - statePath: PHASE1_BUILD_STATE, stdoutPath: PHASE1_BUILD_STDOUT, stderrPath: PHASE1_BUILD_STDERR - }, null, 2)); - } finally { - closeSync(stdoutFd); - closeSync(stderrFd); - } -} - -async function validateEngineeringMap() { - const mapPath = join(SSOT, 'TFTMAC_ENGINEERING_MAP.sql'); - if (!existsSync(mapPath)) return { pass: false, error: 'ENGINEERING_MAP_MISSING', path: mapPath }; - const sql = await readFile(mapPath, 'utf8'); - const db = new DatabaseSync(':memory:'); - try { - db.exec(sql); - const foreignKeyProblems = db.prepare('PRAGMA foreign_key_check').all(); - const schemaVersion = db.prepare("SELECT value FROM map_meta WHERE key='schema_version'").get()?.value ?? null; - const tableCount = Number(db.prepare("SELECT COUNT(*) AS count FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'").get().count); - const viewCount = Number(db.prepare("SELECT COUNT(*) AS count FROM sqlite_master WHERE type='view'").get().count); - const fieldMetadataCount = Number(db.prepare('SELECT COUNT(*) AS count FROM field_metadata').get().count); - const versionCount = Number(db.prepare('SELECT COUNT(*) AS count FROM version_catalog').get().count); - const compatibilityClaimCount = Number(db.prepare('SELECT COUNT(*) AS count FROM compatibility_claims').get().count); - const environmentCount = Number(db.prepare('SELECT COUNT(*) AS count FROM environment_snapshots').get().count); - const documentCount = Number(db.prepare('SELECT COUNT(*) AS count FROM source_documents').get().count); - const deploymentCandidateCount = Number(db.prepare('SELECT COUNT(*) AS count FROM deployment_target_candidates').get().count); - const openBlockingUnknowns = Number(db.prepare("SELECT COUNT(*) AS count FROM unknowns WHERE blocking=1 AND status IN ('OPEN','TESTING')").get().count); - return { - pass: foreignKeyProblems.length === 0 && schemaVersion === '3', - path: mapPath, - sha256: await sha256(mapPath), - bytes: (await stat(mapPath)).size, - schemaVersion, - tableCount, - viewCount, - fieldMetadataCount, - versionCount, - compatibilityClaimCount, - environmentCount, - documentCount, - deploymentCandidateCount, - openBlockingUnknowns, - foreignKeyProblems - }; - } catch (error) { - return { pass: false, path: mapPath, error: error instanceof Error ? error.message : String(error) }; - } finally { - db.close(); - } -} - -function directControl(action, args = []) { - return runInherited(process.execPath, [join(REPO, 'tools', 'tftmac-direct-control.mjs'), action, ...args]); -} - -async function consumeDirectControlRequest() { - if (!existsSync(DIRECT_CONTROL_REQUEST)) return null; - const request = JSON.parse(await readFile(DIRECT_CONTROL_REQUEST, 'utf8')); - const allowed = new Set(['inventory', 'prepare', 'engineering-map-selftest', 'lab-selftest', 'build', 'launch-app', 'open-play-web', 'runtime-process-audit', 'cleanup-tftmac-adb-residue', 'single-runtime-preflight', 'launch-mactician-control', 'stop-mactician-control', 'mactician-runtime-audit', 'cleanup-observer-adb-5037', 'start', 'start-donor-control', 'start-donor-control-5gb', 'start-donor-control-5gb-flush400', 'play-action', 'play-probe', 'gles-capability-probe', 'launch-failure-probe', 'recover-anr-wait', 'logger-health', 'restart-game', 'preplay-optimize', 'restart-effect-analysis', 'analyze-latest-closed-run-trends', 'compare-latest-runs', 'screen-state-probe', 'reveal-lock-screen', 'wake-guest-screen', 'audio-health', 'audio-backend-probe', 'disconnect-window-audit', 'runtime-fault-audit', 'graphics-pipeline-audit', 'analyze-session', 'ingest-analysis', 'trace-capabilities', 'native-trace-smoke', 'native-trace-combat', 'presentation-probe', 'window-inventory', 'fit-window', 'play-certification', 'play-diagnose', 'google-account-ui', 'image-check', 'device-profiles', 'image-upgrade-start', 'image-upgrade-status', 'launch-game', 'status', 'marker', 'game-settings','quality-report','match-boundary-probe','analyze-approx-match','ingest-approx-match', 'match-entry', 'combat-start', 'first-place', 'stop', 'package-state', 'package-launch-probe', 'auth-brief', 'install-diagnose', 'play-install-brief', 'play-store-repair']); - const placementAction = /^placement-[1-8]$/.test(request?.action ?? ''); - if (!allowed.has(request?.action) && !placementAction) throw new Error(`DIRECT_CONTROL_ACTION_INVALID: ${request?.action ?? ''}`); - await rm(DIRECT_CONTROL_REQUEST, { force: true }); - const startedAt = new Date().toISOString(); - const requestArgs = Array.isArray(request?.args) ? request.args.map(value => String(value)).slice(0, 8) : []; - const result = run(process.execPath, [join(REPO, 'tools', 'tftmac-direct-control.mjs'), request.action, ...requestArgs], { - allowFailure: true, - timeout: 900000, - maxBuffer: 128 * 1024 * 1024 - }); - let parsed = null; - try { parsed = JSON.parse(result.stdout); } catch {} - return { - action: request.action, - startedAt, - endedAt: new Date().toISOString(), - exitCode: result.status, - result: parsed, - stdout: parsed ? null : result.stdout.trim() || null, - stderr: result.stderr.trim() || null - }; -} - -async function status() { - await ensureRoots(); - const directControlResult = await consumeDirectControlRequest(); - if (directControlResult) { - console.log(JSON.stringify({ - appRoot: APP, - buildRoot: BUILD, - runtimeRoot: RUNTIME, - repository: REPO, - directControlResult - }, null, 2)); - return; - } - const paths = [ - 'STACK.lock.yaml', 'host-preflight.json', 'android-sdk-packages.txt', 'tool-versions.txt', - 'source-hashes.txt', 'guestangle-authority.json', 'vulkan-required-cases.txt', 'preflight-report.md', - 'upstreams-aemu.lock.xml', 'vulkaninfo-summary.txt', 'TFTMAC_ENGINEERING_MAP.sql' - ]; - const artifacts = {}; - for (const name of paths) { - const path = join(SSOT, name); - artifacts[name] = existsSync(path) ? { exists: true, bytes: (await stat(path)).size, sha256: await sha256(path) } : { exists: false }; - } - const sourceWorker = await readSourceWorkerState(); - const sourceWorkerAlive = Boolean(sourceWorker?.pid && pidIsAlive(sourceWorker.pid)); - const sourceWorkerObservedStatus = sourceWorker?.status === 'RUNNING' && !sourceWorkerAlive - ? 'INTERRUPTED' - : sourceWorker?.status ?? 'NOT_STARTED'; - const phase1BuildWorker = await readPhase1BuildState(); - const phase1BuildAlive = Boolean(phase1BuildWorker?.pid && pidIsAlive(phase1BuildWorker.pid)); - const phase1BuildObservedStatus = phase1BuildWorker?.status === 'RUNNING' && !phase1BuildAlive - ? 'INTERRUPTED' - : phase1BuildWorker?.status ?? 'NOT_STARTED'; - let phase1BuildLogTail = null; - if (phase1BuildWorker && phase1BuildObservedStatus !== 'RUNNING') { - const tail = async path => { - if (!existsSync(path)) return null; - const text = await readFile(path, 'utf8'); - return text.slice(-8192); - }; - const rebuildPath = join(BUILD, 'aemu', 'external', 'qemu', 'android', 'rebuild.sh'); - let rebuildSnippet = null; - if (existsSync(rebuildPath)) { - const lines = (await readFile(rebuildPath, 'utf8')).split(/\r?\n/); - rebuildSnippet = lines.slice(38, 62).map((text, index) => ({ line: index + 39, text })); - } - const filteredSourceLines = async (path, pattern, maximum = 120) => { - if (!existsSync(path)) return null; - return (await readFile(path, 'utf8')).split(/\r?\n/) - .map((text, index) => ({ line: index + 1, text })) - .filter(item => pattern.test(item.text)) - .slice(0, maximum); - }; - const phase1AliasPython = firstExisting([ - join(PHASE1_AEMU_ALIAS, 'prebuilts', 'python', 'darwin-x86', 'bin', 'python3'), - join(PHASE1_AEMU_ALIAS, 'prebuilts', 'python', 'darwin-arm64', 'bin', 'python3') - ]); - const cmakeHelp = phase1AliasPython ? run(phase1AliasPython, [ - join(PHASE1_AEMU_ALIAS, 'external', 'qemu', 'android', 'build', 'python', 'cmake.py'), '--help' - ], { allowFailure: true, maxBuffer: 4 * 1024 * 1024 }) : null; - phase1BuildLogTail = { - stdout: await tail(PHASE1_BUILD_STDOUT), - stderr: await tail(PHASE1_BUILD_STDERR), - rebuildSnippet, - toolchainGenerator: await filteredSourceLines( - join(BUILD, 'aemu', 'external', 'qemu', 'android', 'scripts', 'unix', 'gen-android-sdk-toolchain.sh'), - /AOSP|aosp|gcc|g\+\+|clang|xcrun|ln |toolchain|realpath|dirname|SDK|sdk|xcodebuild|showsdks|SUPPORTED/ - ), - cmakeDriver: await filteredSourceLines( - join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'cmake.py'), - /aosp|AOSP|out-dir|argparse|ccache|toolchain/ - ), - cmakeHelp: cmakeHelp ? { status: cmakeHelp.status, stdout: cmakeHelp.stdout, stderr: cmakeHelp.stderr } : null, - cmakeAospParserUse: await filteredSourceLines( - join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'cmake.py'), - /aosp|Path\(|argument_parser|ArgumentParser|add_argument/, - 160 - ), - cmakeLauncherHead: (() => null)(), - cmakeModuleAospUse: await filteredSourceLines( - join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'aemu', 'cmake.py'), - /aosp|Path\(|add_argument|ArgumentParser|parser|args\./, - 220 - ), - sdkGateSnippet: null, - phase1FilesystemProbe: { - toolchain: run('/bin/ls', ['-la', join(BUILD, 'aemu', 'external', 'qemu', 'objs', 'toolchain')], { allowFailure: true, maxBuffer: 4 * 1024 * 1024 }), - clangHosts: run('/usr/bin/find', [join(BUILD, 'aemu', 'prebuilts', 'clang', 'host'), '-maxdepth', '4', '-type', 'f', '-name', 'clang', '-print'], { allowFailure: true, maxBuffer: 4 * 1024 * 1024 }), - ninja: run('/usr/bin/find', [join(BUILD, 'aemu', 'prebuilts'), '-type', 'f', '-name', 'ninja', '-print'], { allowFailure: true, maxBuffer: 4 * 1024 * 1024 }), - qtTools: run('/usr/bin/find', [join(BUILD, 'aemu', 'prebuilts', 'android-emulator-build', 'qt'), '-maxdepth', '5', '-type', 'f', '(', '-name', 'uic', '-o', '-name', 'moc', '-o', '-name', 'qmake', '-o', '-name', 'qtpaths', ')', '-print'], { allowFailure: true, maxBuffer: 8 * 1024 * 1024 }), - qtDirs: run('/usr/bin/find', [join(BUILD, 'aemu', 'prebuilts', 'android-emulator-build', 'qt'), '-maxdepth', '2', '-type', 'd', '-print'], { allowFailure: true, maxBuffer: 8 * 1024 * 1024 }), - qtWebengineLogic: run('/usr/bin/grep', ['-RniE', 'noqtwebengine|QTWEBENGINE|qtwebengine', join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'aemu')], { allowFailure: true, maxBuffer: 8 * 1024 * 1024 }), - qtConfigureSnippet: run('/usr/bin/sed', ['-n', '160,185p', join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'aemu', 'tasks', 'configure.py')], { allowFailure: true, maxBuffer: 2 * 1024 * 1024 }) - } - }; - { - const generatorPath = join(BUILD, 'aemu', 'external', 'qemu', 'android', 'scripts', 'unix', 'gen-android-sdk-toolchain.sh'); - if (existsSync(generatorPath)) { - const lines = (await readFile(generatorPath, 'utf8')).split(/\r?\n/); - phase1BuildLogTail.sdkGateSnippet = lines.slice(512, 566).map((text, index) => ({ line: index + 513, text })); - phase1BuildLogTail.wrapperProgramSnippet = lines.slice(150, 401).map((text, index) => ({ line: index + 151, text })); - phase1BuildLogTail.wrapperGeneratorSnippet = lines.slice(400, 475).map((text, index) => ({ line: index + 401, text })); - } - } - { - const cmakeLauncherPath = join(BUILD, 'aemu', 'external', 'qemu', 'android', 'build', 'python', 'cmake.py'); - if (existsSync(cmakeLauncherPath)) { - const text = await readFile(cmakeLauncherPath, 'utf8'); - phase1BuildLogTail.cmakeLauncherHead = text.split(/\r?\n/).slice(0, 260).map((line, index) => ({ line: index + 1, text: line })); - } - } - } - const engineeringMap = await validateEngineeringMap(); - console.log(JSON.stringify({ - appRoot: APP, - buildRoot: BUILD, - buildRootSource: process.env.TFTMAC_BUILD_ROOT ? 'TFTMAC_BUILD_ROOT' : 'default-external', - runtimeRoot: RUNTIME, - runtimeRootSource: process.env.TFTMAC_RUNTIME_ROOT ? 'TFTMAC_RUNTIME_ROOT' : 'default-external', - repository: REPO, - directControlResult, - sourceWorker: sourceWorker ? { ...sourceWorker, alive: sourceWorkerAlive, observedStatus: sourceWorkerObservedStatus } : null, - phase1BuildWorker: phase1BuildWorker ? { ...phase1BuildWorker, alive: phase1BuildAlive, observedStatus: phase1BuildObservedStatus } : null, - phase1BuildLogTail, - engineeringMap, - artifacts - }, null, 2)); -} - -const action = process.argv[2] ?? 'status'; -try { - switch (action) { - case 'phase0-host': await phase0Host(); break; - case 'phase0-android': await phase0Android(); break; - case 'phase0-vulkan': await phase0Vulkan(); break; - case 'phase0-source': await phase0Source(); break; - case 'phase0-source-worker': await phase0SourceWorker(); break; - case 'phase0-authority': await importAuthorityFiles(); break; - case 'phase0-policy': await phase0Policy(); break; - case 'phase0-report': await preflightReport(); break; - case 'phase0-xcode-discovery': await discoverXcodes(); break; - case 'phase1-build': await phase1Build(); break; - case 'phase1-build-worker': await phase1BuildWorker(); break; - case 'cleanup-sandbox-bootstrap': await cleanupSandboxBootstrap(); break; - case 'direct-inventory': directControl('inventory'); break; - case 'direct-build': directControl('build'); break; - case 'direct-launch-app': directControl('launch-app'); break; - case 'direct-start': directControl('start'); break; - case 'direct-play-action': directControl('play-action'); break; - case 'direct-launch-game': directControl('launch-game'); break; - case 'direct-status': directControl('status'); break; - case 'direct-stop': directControl('stop'); break; - case 'direct-package-state': directControl('package-state'); break; - case 'status': await status(); break; - default: die(`unknown action: ${action}`); - } -} catch (error) { - die(error instanceof Error ? error.message : String(error)); -} From 951354a3e0338a3df69118876b65d179926b0041 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:47:50 -0500 Subject: [PATCH 05/19] Complete Gate 3 zero-reference ownership migration --- TFTMAC.md | 2 +- TFTMACAPP.md | 4 +- TFTMAC_CLEAN_OWNERSHIP_PREFLIGHT.md | 976 ------------------ .../native-clean-boot-output.txt | 2 +- ...am-gles32-guest-proc-alias-prototype.patch | 2 +- docs/TFTMAC_GRAPHICS_ARCHITECTURE.md | 6 +- docs/telemetry-contract/README.md | 13 +- reference/avd/config.ini | 2 +- scripts/build-tftmac-app.command | 6 +- .../run-host-angle-capability-probe.command | 2 +- ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md | 12 +- ssot/TFTMAC_ENGINEERING_MAP.sql | 76 +- 12 files changed, 62 insertions(+), 1041 deletions(-) delete mode 100644 TFTMAC_CLEAN_OWNERSHIP_PREFLIGHT.md diff --git a/TFTMAC.md b/TFTMAC.md index f3d62bd..4b78d60 100644 --- a/TFTMAC.md +++ b/TFTMAC.md @@ -49,6 +49,6 @@ node tools/clara-task.mjs acceptance ## Unreal transition -The original Mactician PBE implementation is intentionally preserved as donor/reference code. When Riot's live Android client exposes Unreal runtime evidence, TFTMAC can activate a separately validated `UnrealEnhancedAdapter` using the donor ANGLE/MoltenVK/DeviceProfiles research. Until then, the working native live path remains isolated and is never replaced by an unproven Unreal overlay. +The original retired donor PBE implementation is intentionally preserved as donor/reference code. When Riot's live Android client exposes Unreal runtime evidence, TFTMAC can activate a separately validated `UnrealEnhancedAdapter` using the donor ANGLE/MoltenVK/DeviceProfiles research. Until then, the working native live path remains isolated and is never replaced by an unproven Unreal overlay. See `docs/TFTMAC_GRAPHICS_ARCHITECTURE.md` for the graphics and fallback design. diff --git a/TFTMACAPP.md b/TFTMACAPP.md index 7851eb3..69dcacd 100644 --- a/TFTMACAPP.md +++ b/TFTMACAPP.md @@ -24,7 +24,7 @@ This file supersedes the old production direction based on: - API 37 as the required production guest; - custom ANGLE as normal production work; - scrcpy, video encoding, screenshots, or software streaming as the gameplay display path; -- Mactician's hosted TFT feed/updater/orchestration; +- the retired donor's hosted TFT feed/updater/orchestration; - third-party Riot APK distribution; - per-match telemetry as the primary performance model. @@ -161,7 +161,7 @@ Do not silently default the app to Ultra High. Medium/60/OFF is the current play # 3. Non-negotiable architecture rules 1. **Stock Google Android Emulator remains the normal runtime.** No mandatory source-built AEMU tree. -2. **Mactician remains untouched as donor/control evidence.** Do not make the shipping app depend on Mactician servers, feed, updater, or orchestration. +2. **Retired donor evidence remains untouched as donor/control evidence.** Do not make the shipping app depend on retired donor servers, feed, updater, or orchestration. 3. **Official Google Play/Riot package only.** Do not mirror, repack, patch, or re-sign Riot binaries. 4. **The Android source framebuffer stays 1920×1080.** Native window resizing changes presentation size, not guest resolution. 5. **No visible Qt/QEMU UI in production.** The emulator runs hidden. diff --git a/TFTMAC_CLEAN_OWNERSHIP_PREFLIGHT.md b/TFTMAC_CLEAN_OWNERSHIP_PREFLIGHT.md deleted file mode 100644 index dbda155..0000000 --- a/TFTMAC_CLEAN_OWNERSHIP_PREFLIGHT.md +++ /dev/null @@ -1,976 +0,0 @@ -# TFTMAC Clean Ownership — Execution Preflight Evidence Handoff - -**Purpose:** eliminate redundant rediscovery before executing `TFTMAC_CLEAN_OWNERSHIP_PLAN.md`. - -**Status:** REQUIRED IMPLEMENTATION INPUT -**Authority repository:** `flashls1/TFTMAC` -**Observed master at preflight creation:** `0bb14a566be22af560548fcf5399e41babef05d5` -**Observed date:** 2026-08-29 -**Native work to preserve:** change `14d01e7a-b64d-4b7f-b856-e3366885b381` - -> **Execution rule:** The coding agent must consume this file before doing repository discovery. Items marked **PROVEN / STABLE** are already discovered facts and should not be re-researched unless the referenced file/hash has changed. Items marked **REMEASURE** are intentionally deferred because they are time-sensitive machine state. -> -> This preflight contains exact legacy identifiers and paths solely so they can be removed correctly. It is an execution artifact. Before the final repository-wide forbidden-reference gate, either remove this file from the tracked tree or replace it with a sanitized post-migration record that contains no retired product identifiers. - ---- - -# 1. Start here — what is already known - -Do **not** begin by searching the repository generally. The following work has already been completed: - -1. Current master/source authority was reconciled. -2. The legacy product contamination was searched across the repository. -3. CI/validation coupling was identified. -4. Runtime control functions that can still invoke the retired application were identified. -5. SQL/data-model legacy identifiers were identified. -6. The abandoned source-built emulator storage root was identified. -7. Redundant TFT project identities were inspected. -8. The MIT licensing boundary was inspected. -9. A new native Xcode/AppKit/Metal TFTMAC Gate 1 implementation was built successfully. -10. Native unit tests passed. -11. The exact installed Android Emulator controller protocol was frozen from the working stock runtime. - -The implementation agent should use the maps below as the starting point and spend discovery effort only where this preflight explicitly says a gap remains. - ---- - -# 2. Current authority and branch state - -## 2.1 Repository authority — PROVEN / STABLE at this preflight - -```text -project: TFTMAC -repository: flashls1/TFTMAC -default branch: master -master at preflight creation: 0bb14a566be22af560548fcf5399e41babef05d5 -implementation plan: TFTMAC_CLEAN_OWNERSHIP_PLAN.md -``` - -The clean-ownership plan was merged by PR #4. - -## 2.2 Native implementation work — MUST PRESERVE - -```text -change_id: 14d01e7a-b64d-4b7f-b856-e3366885b381 -branch: clara/implement-tftmac-native-mac-app-from-tft-14d01e7a -base/head at last observation: 4e5e62b3410426e06f17c52d2b045a221adcdb52 -worktree: -/Volumes/MAC MINI M4/Clara/Worktrees/flashls1--tftmac/tftmac--14d01e7a-b64d-4b7f-b856-e3366885b381 -state: dirty worktree containing new Gate 1 source -``` - -**Hard rule:** checkpoint this change before any destructive storage cleanup or worktree retirement. The code listed in section 3 exists only in this active change until checkpointed/merged. - ---- - -# 3. Native Gate 1 code already written and proven - -These files are not design suggestions. They are already present in the active native change and were compiled/tested successfully. - -## 3.1 App entry point - -**File:** `TFTMAC/App/TFTMACApplication.swift` -**SHA-256:** `463b4a4f83d3f777fb2f3a26f905c2a8cf44aa56a61d6fca27e9e03a27db1de7` - -Current implementation: - -```swift -import AppKit - -@main -enum TFTMACApplication { - @MainActor private static var coordinator: AppCoordinator? - - @MainActor - static func main() { - let application = NSApplication.shared - let coordinator = AppCoordinator() - Self.coordinator = coordinator - application.delegate = coordinator - application.setActivationPolicy(.regular) - application.run() - } -} -``` - -**Important prior compiler finding:** Swift 6 rejected the retained coordinator as unsafely shared mutable state until it was isolated to `@MainActor`. Do not remove that actor isolation casually. - -## 3.2 Application coordinator - -**File:** `TFTMAC/App/AppCoordinator.swift` -**SHA-256:** `054912c1da75cb1cab40a838de2d4112559ff516a0019efeac792aca452aa89f` - -Current behavior: - -- `@MainActor` -- owns `MainWindowController` -- creates/shows the main window on launch -- activates the app -- terminates after last window closes - -## 3.3 Main window - -**File:** `TFTMAC/App/MainWindowController.swift` -**SHA-256:** `0a257cb75580f3196c3a24869ef737d343b9579bffb3693c09ff61ad9126f875` - -Current facts: - -```text -initial content size: 1280 x 720 -minimum size: 960 x 540 -title: TFTMAC -style: titled / closable / miniaturizable / resizable / fullSizeContentView -fullscreen behavior: fullScreenPrimary -content view: EmbeddedEmulatorView -``` - -## 3.4 Metal presentation shell - -**File:** `TFTMAC/Presentation/EmbeddedEmulatorView.swift` -**SHA-256:** `1ea417309119395873c36daf723ad2b6f3a32bf1b1cb8e0be3f58176e259ecf5` - -Current proven shell: - -```text -base class: MTKView -Metal device: MTLCreateSystemDefaultDevice() -pixel format: bgra8Unorm_srgb -preferred FPS: 60 -framebufferOnly: true -continuous drawing: enabled -``` - -It currently clears/presents the drawable; real emulator frame ingestion is intentionally not implemented yet. Do not mistake this for completed embedded rendering. - -## 3.5 Viewport/input mapper - -**File:** `TFTMAC/Presentation/ViewportMapper.swift` -**SHA-256:** `a5a3158be2fb5d0513dbba4298c4849553c2b06df4e429e24430bb70d336984d` - -Already implements: - -- aspect-fit rectangle calculation; -- centered letterbox handling; -- viewport point -> source coordinate conversion; -- rejection of input outside displayed game content. - -This is the intended base for 1920x1080 Android coordinate mapping. - -## 3.6 Native Gate 1 tests - -**File:** `Tests/TFTMACTests/TFTMACGate1Tests.swift` -**SHA-256:** `b5bba4165b4c3db761a2d8ddd23a1952e59c0fe956da19260fe19f71bda7e01b` - -Existing tests prove: - -```text -1920x1080 -> 1600x900 fills exact 16:9 viewport -letterbox area produces no Android touch -viewport center maps to source 960,540 -``` - -These tests are useful regression protection and should survive ownership cleanup. - -## 3.7 Build evidence — PROVEN - -Successful native Release build operation: - -```text -operation: tftmac-native-gate1-build-after-mainactor-20260829 -result: SUCCEEDED -exit_code: 0 -``` - -Successful native test operation: - -```text -operation: tftmac-native-gate1-tests-quiet-20260829 -result: SUCCEEDED -exit_code: 0 -``` - -The first test attempt hit Clara's command-output ceiling due verbose Xcode output, not a logical test failure. `scripts/test-native-app.command` was changed to quiet Xcode output and then succeeded. Preserve quiet-output behavior. - ---- - -# 4. Native Xcode/dependency facts already resolved - -## 4.1 Xcode project - -`TFTMAC.xcodeproj` exists in the active native change. - -Observed build configuration facts: - -```text -architecture: arm64 -Swift: 6.0 -macOS deployment target in generated project: 15.0 -Release optimization: -O / whole-module -``` - -Do not recreate the project from scratch unless it is proven corrupt. - -## 4.2 Swift package versions resolved successfully - -The first successful resolution/build proved this dependency set works together: - -```text -grpc-swift-2 2.4.2 -grpc-swift-nio-transport 2.9.1 -grpc-swift-protobuf 2.4.1 -SwiftProtobuf 1.38.1 -``` - -Transitive versions are frozen in: - -```text -TFTMAC.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -``` - -Do not research substitute gRPC libraries before using this already-resolved graph. - ---- - -# 5. Installed Android Emulator controller authority already frozen - -## 5.1 Proven installed runtime - -**Installed emulator version:** - -```text -Android emulator version 37.1.11.0 -build_id 15917651 -``` - -**Installed binary:** - -```text -/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/emulator -``` - -## 5.2 Controller proto authority - -**Installed proto:** - -```text -/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto -``` - -**Vendored proto:** - -```text -Vendor/AndroidEmulator/emulator_controller.proto -``` - -**SHA-256 for both:** - -```text -1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f -``` - -**Provenance file:** `Vendor/AndroidEmulator/SOURCE.json` -**SHA-256:** `936aed845d7688a71c25daa4d1b1136f9f2b1766fadbca4f50bce4d20051c6f3` - -Known source authority recorded there: - -```text -emu branch: emu-master-dev -qemu commit: ae9d18d2b6261179fbd57fffec720a04f7bfb053 -aemu commit: 3c1ced8a369417db591eb7cd083af5bb2c317975 -manifest SHA-256: 28865cd8a162178ba462b296f5714b6b7b6916e0cafcddfc0c5e44aa03f8e8d3 -``` - -**Implementation rule:** generate/use the client from this frozen installed protocol. Do not fetch a random current AOSP proto and assume compatibility. - ---- - -# 6. Current legacy validation coupling — exact locations - -This is a required early cutover because deleting old source before replacing validation will deliberately break CI/Clara validation. - -## 6.1 GitHub CI - -**File:** `.github/workflows/ci.yml` - -Current steps include: - -```text -Validate repository policy and metadata -> ./scripts/verify-repository.command -Run launcher unit tests and production typecheck -> ./scripts/test-mactician.command -``` - -The old test invocation is at approximately line 29 in the current file. - -**Action:** REWRITE CI before deleting the old launcher/test tree. - -Target replacement from implementation plan: - -```text -./scripts/verify-tftmac.command -native Xcode Release build -native XCTest -frozen proto verification -Package.resolved verification -SQL/SSOT integrity checks that remain current -forbidden-reference scan -``` - -## 6.2 Clara registered production validator - -The Clara TFTMAC project validator is also currently wired to: - -```text -./scripts/test-mactician.command -``` - -**Action:** update Clara project validation only after the new TFTMAC verifier passes on the exact implementation change. - ---- - -# 7. Runtime-control legacy code — exact hotspots already found - -**Primary file:** `tools/tftmac-direct-control.mjs` - -Do not perform a blind file-wide rename. Use the classifications below. - -## 7.1 Baseline profile naming — MIGRATE/RENAME, preserve values - -Current symbol: - -```text -DONOR_PROFILE -``` - -Definition begins around line 21. - -The symbol is used throughout: - -```text -prepareDonorAVD -startDonorEmulator -donorRuntimeState -startDonorControl -window-fit functions -shutdown restore logic -``` - -Current runtime values represented by that profile are useful TFTMAC baseline facts; preserve values while moving them to TFTMAC-owned names such as: - -```text -BASELINE_PROFILE -prepareBaselineAVD -startBaselineEmulator -baselineRuntimeState -startBaselineControl -``` - -## 7.2 Legacy baseline IDs — SQL-aware migration required - -Current IDs found in code/data: - -```text -mactician_compatible_official_v0 -mactician_compatible_5gb_v1 -mactician_compatible_5gb_flush400_v1 -``` - -Known code locations include approximately: - -```text -tools/tftmac-direct-control.mjs:22 -tools/tftmac-direct-control.mjs:1406 -tools/tftmac-direct-control.mjs:1895 -tools/tftmac-direct-control.mjs:2140-2141 -tools/tftmac-direct-control.mjs:2257 -tools/tftmac-direct-control.mjs:3995 -tools/tftmac-direct-control.mjs:4295 -tools/tftmac-direct-control.mjs:4731-4732 -``` - -Target names proposed in the plan: - -```text -tftmac_official_baseline_v1 -tftmac_5gb_baseline_v1 -tftmac_5gb_flush400_exp_v1 -``` - -**Do not plain-text replace SQL keys.** See section 9. - -## 7.3 Old app launch/stop/audit functions — DELETE - -Known functions/dispatches: - -```text -launchMacticianControl() around line 4546 -stopMacticianControl() around line 4557 -macticianRuntimeAudit() later in same section -'action === launch-mactician-control' around line 4725 -'action === stop-mactician-control' around line 4726 -``` - -`tools/tftmac-v2.mjs` also currently allowlists those actions around line 1578. - -**Action:** DELETE the functions and remove them from every command allowlist/usage string. They must not remain callable under a renamed alias. - -## 7.4 Old installed-app/Application Support probes — DELETE - -Known current paths in `tools/tftmac-direct-control.mjs`: - -```text -/Applications/Mactician.app -~/Library/Application Support/Mactician/sdk/platform-tools/adb -/Volumes/MAC MINI M4/Mactician/sdk/platform-tools/adb -~/Library/Application Support/Mactician/logs -/Volumes/MAC MINI M4/Mactician -``` - -These are used by old process/audit/ADB cleanup functions. - -**Action:** remove these discovery paths entirely after confirming no current TFTMAC runtime function depends on them. - -## 7.5 Legacy icon fallback — DELETE/REPLACE - -Known current line near 4473: - -```js -const iconSource = path.join(repoRoot, 'branding', 'generated', 'Mactician.icns'); -``` - -This is a direct path from the current TFTMAC build fallback to retired branding. - -**Action:** replace with a TFTMAC-owned icon or omit icon copy until a TFTMAC asset exists. Never retain the old asset as fallback. - ---- - -# 8. Legacy product source/assets — known removal groups - -Repository search returned hundreds of legacy references. The following groups are already identified and should be processed directly, not rediscovered from scratch. - -## 8.1 Launcher implementation — DELETE unless a specific current TFTMAC dependency is proven - -```text -launcher/Sources/* -launcher/Tests/* -launcher/Resources/* -launcher/EmulatorHost/* -launcher/Info.plist -``` - -Known embedded identities include: - -```text -dev.sergeinaumov.mactician -dev.sergeinaumov.mactician.game-host -``` - -These appear in `launcher/Info.plist`, `launcher/Resources/EmulatorHost-Info.plist`, source queue labels, tests, keychain/defaults metadata, and helper targets. - -The preferred action is deletion of the obsolete launcher layer, not wholesale renaming of dead source. - -## 8.2 Legacy branding — DELETE - -Known source assets: - -```text -branding/mactician-app-icon.svg -branding/mactician-favicon.svg -branding/mactician-game-host-icon.svg -branding/mactician-mark.svg -branding/mactician-mark-dark.svg -branding/mactician-mark-light.svg -branding/mactician-mark-monochrome.svg -branding/mactician-open-graph.svg -branding/mactician-product-hero.svg -branding/mactician-small-size-test.svg -branding/mactician-social-preview.svg -branding/mactician-wordmark.svg -branding/generated/Mactician.icns -``` - -Also remove related generation scripts and generated PNG/ICO files. - -## 8.3 Legacy build/release/update scripts — DELETE - -Known obsolete scripts include: - -```text -scripts/build-mactician.command -scripts/build-mactician-icns.pl -scripts/generate-mactician-assets.command -scripts/integration-test-mactician.command -scripts/publish-mactician-update.command -scripts/test-mactician.command -``` - -Other scripts must be reviewed if they reference legacy Application Support, bundle IDs, old Game Host, hosted game updates, or legacy profile markers. - -## 8.4 Legacy docs/metadata — REWRITE - -Known files currently centered on the old product: - -```text -README.md -CHANGELOG.md -CONTRIBUTING.md -SUPPORT.md -SECURITY.md -NOTICE.md -docs/architecture.md -docs/building.md -docs/releasing.md -docs/reproducibility.md -docs/telemetry.md -docs/troubleshooting.md -.github/pull_request_template.md -.github/repository-metadata.yml -.github/ISSUE_TEMPLATE/bug_report.yml -``` - -Rewrite them for TFTMAC rather than leaving donor-era product instructions. - ---- - -# 9. SQL and evidence migration map — do not rediscover the key problem - -## 9.1 Performance lab - -**File:** `ssot/TFTMAC_PERFORMANCE_LAB.sql` - -Known current metadata/key references: - -```text -line ~527 current_playable_baseline -> mactician_compatible_official_v0 -line ~559 baseline config row -line ~560 5 GiB candidate -line ~561 flush400 candidate -line ~574 exp_ram_5gb_ab baseline/candidate references -line ~575 exp_native_frame_trace baseline reference -line ~578 baseline_config_id update -line ~585 supersession note -line ~597 exp_asg_flush400_ab references -line ~598 performance mode A/B baseline reference -line ~599 FPS cap A/B baseline reference -line ~600 graphics preset A/B baseline reference -line ~640 latest closed session label -line ~647 current graphics experiment label -``` - -**Required implementation:** transactional/idempotent relational migration. Preserve measurements, timestamps, experiment relationships and verdicts. Run `PRAGMA foreign_key_check` before commit. - -## 9.2 Engineering map - -**File:** `ssot/TFTMAC_ENGINEERING_MAP.sql` - -Known legacy-heavy areas include approximately: - -```text -~266 tftmac_shell note -~662-672 donor/version/evidence component rows -~697-749 donor documents/version stacks -~792 deployment-target decision tied to donor evidence -~888 version strategy history -~963-1000 legacy docs/runtime profile rows and experiment records -~1021-1025 donor artifact registry -~1344 current presentation candidate naming -~1358 latest closed run naming -~1364 current graphics next action naming -``` - -**Action classification:** - -- current product decisions that TFTMAC has independently reproduced -> rewrite as TFTMAC evidence; -- historical donor-only rows no longer needed for current decision -> remove/compact; -- negative experimental facts still protecting against regression -> preserve result but remove retired product identity where legally/semantically possible; -- relational IDs -> migrate carefully, not string replace. - ---- - -# 10. Current package/update authority — already decided - -Do not rediscover or redesign the package lifecycle. - -Current product authority is: - -```text -Android guest: official Google Play image -TFT package: com.riotgames.league.teamfighttactics -installer/update authority: com.android.vending -Riot content initialization/patching: official Riot application behavior -``` - -Forbidden to reintroduce: - -```text -hosted TFT APK feed -bundled game APK -third-party game update service -APK repacking -APK re-signing -binary patching -manual Riot content patch bundle -``` - -Existing runtime tooling already has package-state/Play diagnostics that should be kept where they operate on TFTMAC's stock runtime. - ---- - -# 11. Storage map already discovered - -## 11.1 Protected runtime — KEEP - -The working runtime is under: - -```text -/Volumes/MAC MINI M4/TFTMAC/Runtime -``` - -Known protected sub-authorities include: - -```text -/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk -/Volumes/MAC MINI M4/TFTMAC/Runtime/AVD -``` - -The current working AVD/product state must not be deleted during cleanup. - -Also preserve: - -```text -Google Play account/session state in AVD -official TFT package and Riot data in AVD -current runtime manifests required by stock control -current package authority evidence -Vendor/AndroidEmulator protocol snapshot -native source/worktree -``` - -## 11.2 Abandoned source-build tree — PRIMARY RECLAIM CANDIDATE - -Known path: - -```text -/Volumes/MAC MINI M4/TFTMAC/Build -``` - -Known contents/uses from earlier work: - -```text -repo launcher -AEMU multi-repo checkout -external/qemu source -prebuilts -CMake/Ninja objects -source-build compatibility wrappers -reference/CTS trees -phase1 build logs -failed worker/source-build state -``` - -Project research recorded the development tree around **131 GB** historically. - -Known source references that can recreate/use it: - -```text -TFTMAC_FULL_IMPLEMENTATION_PLAN.md ~261-262, 481-496 -ssot/phase0-remediation-inventory.md ~43,65 -ssot/phase0-source.json ~31+ -ssot/TFTMAC_ENGINEERING_MAP.sql ~314-315,444,670 -tools/tftmac-v2.mjs constants and Phase 0/Phase 1 source-build functions -``` - -**Hard sequence:** remove/disable current recreation paths first; prove stock runtime/native build independence; then delete the exact Build candidate. - -## 11.3 Native build caches — DISPOSABLE AFTER CHECKPOINT - -The active native worktree currently contains large generated `.build/native-release` and `.build/native-tests` trees from Xcode/SwiftPM. - -They are useful proof that compilation happened but are not source authority. - -After source is checkpointed and Package.resolved is retained, these generated caches are reclaimable and can be regenerated. - -Do not treat generated Xcode object files as required evidence. - -## 11.4 Exact size/free space — REMEASURE - -No exact current byte count was frozen because the live disk probe was rejected by Clara allowlist during the earlier preflight. - -At execution time, measure: - -```text -free bytes before cleanup -Build tree bytes -Runtime tree bytes -capture/diagnostic bytes -native .build/DerivedData bytes -redundant project/worktree bytes -free bytes after each tier -exact reclaimed bytes -``` - -This is a machine-state remeasurement, not repository rediscovery. - ---- - -# 12. Redundant project state already inspected - -## 12.1 TFTMAC2 — RETIREMENT CANDIDATE - -Observed project: - -```text -project_id: tftmac2 -repository: flashls1/tftmac2 -head: 30f9695b757551bad9fc788423e031e46a89f43d -active changes: 0 -operations: 0 -release: none -``` - -Contents observed as minimal foundation files only (`facts.md`, `AGENTS.md`, `README.md`, `.clara/project.json`). - -**Required remaining work:** one unique-content/commit check, then retire/archive/remove from active Clara catalog. - -Do not perform broad rediscovery. - -## 12.2 TFTMAC Runtime — UNIQUE-CONTENT REVIEW REQUIRED - -Observed project: - -```text -project_id: tftmac-runtime -repository: flashls1/tftmac-runtime -main head: a121c2681132428c0b3e04d73d748ffae1b3ffe2 -``` - -One published but unmerged managed change exists: - -```text -change_id: 7c24d6df-bb78-4a4d-9c8f-1b4028871f60 -branch: clara/phase-2-compatibility-laboratory-reevalu-7c24d6df -head: 994cf8d8524b87cc03c7decb4b253fc7be2253c7 -state: published / clean -``` - -**Required remaining work:** diff that exact head against current TFTMAC knowledge and classify only unique items: - -```text -MIGRATE_TO_TFTMAC -ALREADY_SUPERSEDED -REJECTED_OBSOLETE -``` - -Do not rerun the old compatibility laboratory just to understand the branch. - ---- - -# 13. Licensing boundary already discovered - -**Current `LICENSE`:** MIT license with copyright: - -```text -Copyright (c) 2026 Sergei Naumov -``` - -**Current `NOTICE.md`:** describes the old product and third-party components. - -The implementation agent must not assume that removing branding permits removing legally required copyright/license notices from substantial retained source. - -Efficient path: - -1. delete obsolete copied implementation wherever TFTMAC no longer needs it; -2. identify any substantial retained upstream-derived portions; -3. retain required MIT notice for those portions in neutral third-party notices; -4. rewrite/remove obsolete product-specific NOTICE text; -5. if no substantial licensed upstream portion remains, update project licensing metadata truthfully. - -This is a code-origin audit, not a branding preservation requirement. - ---- - -# 14. Known exact legacy identifier groups - -The repository currently contains the retired product token in hundreds of locations. Do not spend a new session proving that fact. - -Known categories already established: - -```text -product name in README/docs -bundle IDs -Application Support paths -keychain/defaults/logging subsystem names -launcher source/tests -helper Game Host app -build/release/update scripts -branding source/generated assets -CI and PR templates -runtime control actions -runtime process detection -profile/config IDs -performance-lab keys -engineering-map evidence rows -historical experiment scripts -old update URLs/feed logic -``` - -Final verification still must run a full forbidden-reference scan because implementation may miss an occurrence, but that scan is **validation**, not discovery. - ---- - -# 15. What to keep from current `tools/tftmac-direct-control.mjs` - -Ownership cleanup should not throw away the working TFTMAC runtime harness. - -Known useful current capabilities to retain under TFTMAC naming include: - -```text -runtime inventory/discovery -AVD preparation for stock runtime -stock emulator start/stop -Google Play account UI -Play certification/diagnostics -package-state capture -TFT launch/restart/status -CoreAudio health/probes -logger health -raw-first capture sealing -fast closed-run analysis -continuous-run analysis -SQLite normalization -SurfaceFlinger counters -native trace capability -window/presentation probes until native embedded replacement is proven -Android back/home/overview/power/volume/rotate/screenshot controls where still used -runtime process audit for TFTMAC/emulator/ADB -native Gate 1 bootstrap/build/test actions added in active native change -``` - -The cleanup target is legacy product coupling, not wholesale deletion of the proven TFTMAC harness. - ---- - -# 16. Already rejected/obsolete paths — do not restart them - -Do not restart source-built AEMU merely because its source tree exists. - -Known obsolete research path facts: - -```text -AEMU source checkout was moved to external Build root due internal-disk exhaustion -source build entered a 9,854-step Ninja compile -one observed failure was old macOS deployment-target/toolchain compatibility -later project direction explicitly chose released stock Emulator control instead -stock Emulator 37.1.11 is already working -native client freezes installed EmulatorController contract directly -``` - -Unless a new measured blocker proves a released-emulator limitation that cannot be solved otherwise, source-building AEMU is out of scope. - ---- - -# 17. Implementation order — optimized to avoid duplicated work - -The implementation agent should execute in this order: - -## A. Preserve current native source - -1. review `14d01e7a...`; -2. checkpoint its source files; -3. preserve `Package.resolved` and proto provenance; -4. exclude generated `.build` products from the checkpoint unless intentionally tracked. - -## B. Cut validation over before deleting old tests - -1. create `scripts/verify-tftmac.command`; -2. make it build/test the native Xcode target and run current static/SQL checks; -3. run it locally; -4. update GitHub CI; -5. update Clara project validation; -6. prove the new validator passes. - -## C. Remove obsolete product layers - -Use sections 7-9 and 14 as the source map. Delete old launcher/updater/branding paths; rename only active TFTMAC baseline concepts; migrate SQL relationally. - -## D. Prove runtime independence - -Use existing stock-runtime inventory/package/proto probes. Do not rebuild the runtime. Prove no required path resolves through `/Volumes/MAC MINI M4/TFTMAC/Build` or the retired installed application. - -## E. Measure and reclaim storage - -Remeasure exact machine bytes, classify candidates, delete by tier, and smoke-test after the large Build deletion. - -## F. Retire redundant projects - -TFTMAC2 first after unique-content check. TFTMAC Runtime only after exact `994cf8...` unique-content migration/supersession review. - -## G. Resume native Gate 2 - -Continue from the already-built Gate 1 Xcode project into authenticated hidden-emulator `EmulatorController` status/control. Do not recreate Gate 1. - ---- - -# 18. Mandatory implementation-agent no-rediscovery rules - -The coding agent MAY re-check a fact only when: - -```text -the referenced source hash changed; -the branch/head moved materially; -a required file no longer exists; -a runtime/storage fact is explicitly marked REMEASURE; -a validation run contradicts this preflight; -or a current compile/runtime error proves the recorded fact stale. -``` - -The coding agent MUST NOT: - -```text -repeat broad donor research; -repeat old source-build feasibility experiments; -redesign the dependency stack before using the resolved one; -rebuild the Xcode project from scratch; -redo the legacy-reference inventory as its first task; -retest whether the old launcher is useful; -rerun the old compatibility laboratory to understand its branch; -recreate the abandoned Build tree to inspect it; -reinstall the retired application for comparison; -``` - -A final repository-wide scan after implementation is required as validation, but it must be treated as a completeness gate rather than a new discovery phase. - ---- - -# 19. Remaining truthful unknowns - -These are the only material items intentionally left for execution-time resolution: - -1. **REMEASURE:** exact current bytes used by `/Volumes/MAC MINI M4/TFTMAC/Build`. -2. **REMEASURE:** exact free bytes before/after cleanup. -3. **REMEASURE:** exact bytes in captures/native build caches/redundant project roots. -4. **REVIEW:** unique content in `tftmac-runtime` head `994cf8d8524b87cc03c7decb4b253fc7be2253c7` not already represented in TFTMAC. -5. **LEGAL REVIEW:** which substantial upstream-derived source portions, if any, remain after deletion/replacement and therefore require MIT attribution. -6. **IMPLEMENTATION:** generated Swift protobuf/gRPC client sources from the frozen installed proto are not yet committed. -7. **IMPLEMENTATION:** native Gate 2 hidden authenticated EmulatorController connection/status/shutdown is not yet complete. - -Everything else above should be treated as existing engineering knowledge, not an invitation to start over. - ---- - -# 20. Preflight completion criteria - -This preflight is considered successfully consumed when the implementation agent can begin with the following statement of fact: - -```text -I know which current native files already compile and test, -which exact old source groups are obsolete, -which runtime functions need delete vs rename, -which SQL IDs require relational migration, -which validation paths must be cut over first, -which runtime/storage paths are protected, -which bulk Build path is the primary reclaim target, -which project identities are retirement candidates, -and which facts must be remeasured rather than rediscovered. -``` - -At that point implementation should begin. No second discovery phase is required. diff --git a/artifacts/android-egl-capability-probe/native-clean-boot-output.txt b/artifacts/android-egl-capability-probe/native-clean-boot-output.txt index aa2844c..e1c5bb7 100644 --- a/artifacts/android-egl-capability-probe/native-clean-boot-output.txt +++ b/artifacts/android-egl-capability-probe/native-clean-boot-output.txt @@ -1,4 +1,4 @@ -Mactician native gfxstream GLES capability probe +Retired-donor native gfxstream GLES capability probe UTC date: 2026-08-11 Emulator: 37.1.11.0 build 15917651 AVD: TftPBE, cold boot, GuestAngle disabled, host GPU diff --git a/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch b/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch index 2d6e3b5..1b24eef 100644 --- a/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch +++ b/artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch @@ -2,7 +2,7 @@ Subject: [PROTOTYPE] expose promoted GLES 3.2 command aliases in guest EGL Applies to gfxstream emu-main-dev revision a9184fd (2026-08-04). -This patch implements the 11 static alias candidates found by the Mactician +This patch implements the 11 static alias candidates found by the retired-donor Unreal symbol audit. It reuses existing guest encoder extension opcodes and has passed a standalone Clang syntax check. A later runtime probe showed that the shipped Android EGL loader already resolves all 11 names, so this patch is not diff --git a/docs/TFTMAC_GRAPHICS_ARCHITECTURE.md b/docs/TFTMAC_GRAPHICS_ARCHITECTURE.md index 8673a5f..c09a48a 100644 --- a/docs/TFTMAC_GRAPHICS_ARCHITECTURE.md +++ b/docs/TFTMAC_GRAPHICS_ARCHITECTURE.md @@ -22,7 +22,7 @@ TFTMAC uses a two-layer architecture: 2. **Engine adapter** - `LiveNativeAdapter`: current Google Play live client, stock Riot runtime; - - `UnrealEnhancedAdapter`: future/live Unreal client, harvesting the proven Mactician PBE renderer work; + - `UnrealEnhancedAdapter`: future/live Unreal client, harvesting the proven retired-donor PBE renderer work; - adapters are selected by evidence, never by version-string guesswork. ## Engine detection @@ -47,7 +47,7 @@ Current live evidence after the completed in-game patch: - post-patch process/storage inspection found no Unreal runtime evidence - the current live client therefore remains on Riot's native Android runtime for this build -The Unreal adapter remains prepared from Mactician donor work and must activate only when future live runtime evidence proves the engine transition. +The Unreal adapter remains prepared from retired-donor work and must activate only when future live runtime evidence proves the engine transition. ## Graphics presets @@ -87,7 +87,7 @@ Safe enhancement surface: ## UnrealEnhancedAdapter -When live TFT exposes the Unreal runtime, harvest Mactician's proven PBE work rather than rediscovering it. +When live TFT exposes the Unreal runtime, harvest the proven retired-donor PBE work rather than rediscovering it. Candidate stack: diff --git a/docs/telemetry-contract/README.md b/docs/telemetry-contract/README.md index d88145d..7fd45c3 100644 --- a/docs/telemetry-contract/README.md +++ b/docs/telemetry-contract/README.md @@ -1,10 +1,7 @@ -# Telemetry schema v2 contract +# Historical telemetry schema v2 fixtures -These JSON files are the canonical public wire examples for Mactician telemetry. -The Swift tests verify the encoded key sets and the private API repository keeps -byte-identical copies for its HTTP contract tests. Run -`scripts/verify-telemetry-contract.command` before a server or launcher release. +These JSON files are retained only as historical contract fixtures from the retired launcher. They are not part of TFTMAC's current runtime telemetry path. -Schema v2 intentionally contains no installation identifier, account identity, -network address, host name, serial number, MAC address, or game logs. Unknown -fields are rejected by the server. +Current TFTMAC diagnostics are local-first and raw-first as documented in `docs/telemetry.md`. No remote telemetry service is required for current runtime or acceptance. + +The retained fixture schemas intentionally contain no installation identifier, account identity, network address, host name, serial number, MAC address, or game logs. diff --git a/reference/avd/config.ini b/reference/avd/config.ini index 12ae1e7..d766717 100644 --- a/reference/avd/config.ini +++ b/reference/avd/config.ini @@ -1,5 +1,5 @@ AvdId=TftPBE -avd.ini.displayname=Mactician +avd.ini.displayname=TFTMAC Reference abi.type=arm64-v8a hw.cpu.arch=arm64 hw.lcd.density=260 diff --git a/scripts/build-tftmac-app.command b/scripts/build-tftmac-app.command index 81ddc3e..3f00d08 100644 --- a/scripts/build-tftmac-app.command +++ b/scripts/build-tftmac-app.command @@ -49,7 +49,7 @@ for spec in \ iconutil -c icns "$ICON_WORK/TFTMAC.iconset" -o "$RESOURCES/TFTMAC.icns" cp -f "$ICON_WORK/icon_1024x1024.png" "$RESOURCES/TFTMAC-1024.png" -# Compile only the new stock-runtime TFTMAC shell. The legacy Mactician/PBE launcher is not linked. +# Compile only the new stock-runtime TFTMAC shell. The retired donor/PBE launcher is not linked. typeset -a SWIFT_SOURCES SWIFT_SOURCES=("$SOURCES_DIR"/*.swift) xcrun swiftc \ @@ -72,8 +72,8 @@ cp -f "$PROJECT_DIR/ssot/STACK.lock.yaml" "$RESOURCES/ssot/STACK.lock.yaml" git -C "$PROJECT_DIR" rev-parse HEAD > "$RESOURCES/Tools/build-commit.txt" plutil -lint "$CONTENTS/Info.plist" >/dev/null -if rg -n 'CFBundle(DisplayName|Name).*Emulator|Emulator|Mactician' "$CONTENTS/Info.plist"; then - print -u2 "TFTMAC app metadata contains legacy Emulator/Mactician branding." +if rg -n 'CFBundle(DisplayName|Name).*Emulator|Emulator' "$CONTENTS/Info.plist"; then + print -u2 "TFTMAC app metadata contains legacy Emulator branding." exit 1 fi diff --git a/scripts/run-host-angle-capability-probe.command b/scripts/run-host-angle-capability-probe.command index 365a354..1d052c4 100755 --- a/scripts/run-host-angle-capability-probe.command +++ b/scripts/run-host-angle-capability-probe.command @@ -3,7 +3,7 @@ set -euo pipefail readonly PROJECT_DIR="${0:A:h:h}" readonly MODE="${1:-}" -readonly SDK_ROOT="${TFT_ROOT_SDK:-${TFT_ANDROID_SDK_ROOT:-$HOME/Library/Application Support/Mactician/sdk}}" +readonly SDK_ROOT="${TFT_ROOT_SDK:-${TFT_ANDROID_SDK_ROOT:-/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk}}" readonly ANGLE_DIR="$SDK_ROOT/emulator/lib64/gles_angle" readonly EGL_LIBRARY="$ANGLE_DIR/libEGL.dylib" readonly GLES_LIBRARY="$ANGLE_DIR/libGLESv2.dylib" diff --git a/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md b/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md index 1dfe8f4..8d878ec 100644 --- a/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md +++ b/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md @@ -183,8 +183,8 @@ Riot's own in-game content/update services Explicitly forbidden as production authority: -- Mactician's hosted TFT feed; -- Mactician's bundled TFT package; +- the retired donor's hosted TFT feed; +- the retired donor's bundled TFT package; - stale PBE package pins; - community APK mirrors; - public APK download sites; @@ -192,7 +192,7 @@ Explicitly forbidden as production authority: - re-signed Riot binaries; - patched Riot gameplay binaries. -Mactician is a donor/reference implementation only. +The retired implementation is donor/reference evidence only. ## 5.1 PackageStateManager @@ -338,7 +338,7 @@ The first official-package control should be as close to stock Google behavior a Use the known donor graphics configuration only to the minimum extent required to cross a real compatibility boundary. Every non-default graphics control must be captured in `runtime-state.json` and `renderer-state.json`. -Do not inherit Mactician's nonconformant GLES-version exposure into the product silently. If TFT requires it for this control, label it explicitly as a temporary compatibility adapter and keep the existing genuine-capability laboratory as the truth test. +Do not inherit the retired donor's nonconformant GLES-version exposure into the product silently. If TFT requires it for this control, label it explicitly as a temporary compatibility adapter and keep the existing genuine-capability laboratory as the truth test. --- @@ -372,7 +372,7 @@ No presentation system is allowed to reintroduce guest software video encoding. Use the strongest reusable open-source/donor product patterns already in the repository instead of re-inventing basic launcher UX. -Allowed Mactician donor concepts/code patterns under its applicable license include: +Allowed retired-donor concepts/code patterns under their applicable license include: - SwiftUI launcher structure; - install/readiness/running/failure states; @@ -992,7 +992,7 @@ The direct-play control is **PASS** only when all of these are true: 12. The logger starts before emulator/game launch and continues through shutdown. 13. Required runtime, package, renderer, clock, and frame-timing artifacts are captured. 14. A session artifact manifest is hashed. -15. No Mactician server/feed/bundled Riot package is required. +15. No retired-donor server/feed/bundled Riot package is required. 16. No giant AEMU source checkout is required for ordinary launch. 17. Poor FPS is allowed at this gate if the workload is playable enough to produce valid measurements. diff --git a/ssot/TFTMAC_ENGINEERING_MAP.sql b/ssot/TFTMAC_ENGINEERING_MAP.sql index 573a86f..91e86eb 100644 --- a/ssot/TFTMAC_ENGINEERING_MAP.sql +++ b/ssot/TFTMAC_ENGINEERING_MAP.sql @@ -263,7 +263,7 @@ INSERT OR REPLACE INTO components(id,name,kind,layer,ownership,status,purpose,no ('xcode','Xcode 26.6','toolchain','host_build','APPLE','PROVEN','Native compiler/toolchain authority','Build 17F113; selected explicitly.'), ('macos_sdk','macOS SDK 26.5','sdk','host_build','APPLE','PROVEN','Host SDK used for AEMU compilation','Located inside Xcode 26.6.'), ('tftmac_harness','TFTMAC build/runtime harness','owned_code','orchestration','TFTMAC','ACTIVE','Own compatibility, evidence, storage, build and runtime orchestration','This is the correct place to absorb stale upstream build-system assumptions.'), -('tftmac_shell','TFTMAC native macOS shell','owned_code','presentation','TFTMAC','AVAILABLE','Native single-window launcher/runtime UI','Existing SwiftUI/Mactician-derived foundation exists.'), +('tftmac_shell','TFTMAC native macOS shell','owned_code','presentation','TFTMAC','AVAILABLE','Native single-window launcher/runtime UI','Existing SwiftUI donor-derived foundation exists.'), ('android_guest','Android 17 Google Play ARM64 guest','guest_os','guest','GOOGLE','PROVEN','Official production Android guest','API 37; Google Play ARM64 ps16k image revision 6.'), ('google_play','Google Play','package_authority','guest','GOOGLE','PROVEN','Authoritative TFT acquisition/update path','Production app authority; avoid third-party APK mirrors.'), ('tft_android','Teamfight Tactics Android client','workload','application','RIOT','AVAILABLE','Primary production workload','Current live package is com.riotgames.league.teamfighttactics. Current evidence says Riot native Android runtime, not Unreal.'), @@ -659,17 +659,17 @@ INSERT OR REPLACE INTO map_meta(key, value) VALUES ('document_policy','Current authority, historical donor evidence, stale reports, and legacy claims must be distinguishable in queries; no whole-document trust by filename alone.'); INSERT OR REPLACE INTO components(id,name,kind,layer,ownership,status,purpose,notes) VALUES -('mactician_legacy','Mactician 1.x launcher/runtime','legacy_product','donor','UPSTREAM','AVAILABLE','Known working Apple-Silicon TFT PBE donor implementation','Useful compatibility evidence must be harvested field-by-field; legacy architecture is not v2 authority.'), -('android36_guest','Android 16 / API 36 ARM64 guests','guest_os','guest','GOOGLE','AVAILABLE','Historical working guest family for Mactician/TFTMAC experiments','Includes Google APIs userdebug and Google Play variants; not current v2 production authority.'), +('legacy_launcher_donor','Retired launcher/runtime donor','legacy_product','donor','UPSTREAM','AVAILABLE','Known working Apple-Silicon TFT PBE donor implementation','Useful compatibility evidence must be harvested field-by-field; legacy architecture is not v2 authority.'), +('android36_guest','Android 16 / API 36 ARM64 guests','guest_os','guest','GOOGLE','AVAILABLE','Historical working guest family for retired-donor/TFTMAC experiments','Includes Google APIs userdebug and Google Play variants; not current v2 production authority.'), ('gfxstream_main_dev_donor','emu-main-dev gfxstream donor build','gpu_transport','donor','UPSTREAM','AVAILABLE','Historical source-build evidence for native GLES/gfxstream experiments','Revision a9184fd was built successfully with local warning-compatibility allowances; not co-authoritative with locked emu-master-dev.'), ('deployment_target','macOS deployment target','build_contract','host_build','TFTMAC','ACTIVE','Defines minimum macOS API availability for produced native binaries','Must be selected independently from host OS and SDK version.'); INSERT OR REPLACE INTO evidence(id,observed_at,kind,source_path,source_sha256,statement,confidence,notes) VALUES ('ev_host_26_6_2','2026-08-28T04:07:47.479Z','host_preflight','ssot/host-preflight.json','c32ab07bdc18afa5ea261c4ab702f75a087319bce6f8cfe0efff9a3f898e5b97','Current host is Apple M4 Mac mini Mac16,10, arm64, 16 GB RAM, macOS 26.6.2 build 25G83; selected Xcode is 26.6 build 17F113 with macOS SDK 26.5.','DIRECT','This is current machine truth and must qualify every host-build compatibility claim.'), -('ev_mactician_target12','2026-08-27T01:46:26.991Z','source_build_contract','scripts/build-mactician.command','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','Mactician production Swift and emulator-host binaries explicitly target arm64-apple-macosx12.0; launcher Info.plist also declares minimum macOS 12.0.','DIRECT','This is strong project-local evidence that 12.0 is a real compatibility target, not an invented number.'), +('ev_legacy_target12','2026-08-27T01:46:26.991Z','source_build_contract','scripts/build-mactician.command','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','Retired donor production Swift and emulator-host binaries explicitly targeted arm64-apple-macosx12.0; historical launcher metadata also declared minimum macOS 12.0.','DIRECT','This is strong project-local evidence that 12.0 is a real compatibility target, not an invented number.'), ('ev_phase1_target1014_fail','2026-08-28T05:10:20.931Z','compiler_failure','/Volumes/MAC MINI M4/TFTMAC/Build/logs/phase1-build.stderr.log',NULL,'Phase 1 advanced through Ninja step 885/9854 and failed because AEMU host tooling set macOS deployment target 10.14 while source uses std::filesystem APIs marked available from macOS 10.15.','DIRECT','The current build worker is FAILED, not RUNNING. The failure is host build-contract compatibility, not a graphics capability failure.'), ('ev_aemu_legacy_target1014','2026-08-28T05:19:00Z','source_audit','external/qemu/android/scripts/unix/gen-android-sdk-toolchain.sh',NULL,'Locked AEMU helper carries OSX_DEPLOYMENT_TARGET=10.14 / OSX_REQUIRED=10.14 despite current upstream macOS development guidance requiring SDK 10.15 or later.','DIRECT','Treat this helper value as stale upstream build plumbing.'), -('ev_mactician_stack','2026-08-27T01:46:26.986Z','release_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','Mactician 1.0.4 pins Platform Tools 36.0.2, Android Emulator 37.1.11 build 15917651, Android 36 Google APIs ARM64 system image r07, and TFT PBE 18.1-5212127.','DIRECT','Exact archived donor component set.'), +('ev_legacy_stack','2026-08-27T01:46:26.986Z','release_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','Retired donor release evidence pins Platform Tools 36.0.2, Android Emulator 37.1.11 build 15917651, Android 36 Google APIs ARM64 system image r07, and TFT PBE 18.1-5212127.','DIRECT','Exact archived donor component set.'), ('ev_benchmark_m1max_stack','2026-08-27T01:46:26.981Z','benchmark_document','docs/benchmarks.md','526507229e293e92155fc3ba588bc48d6a149cc7c164d24e5d10ac33755d7965','Historical benchmark environment used M1 Max, macOS 26.6 build 25G72, Emulator 37.1.11 build 15917651, Android 36 ARM64 Google APIs userdebug, with ANGLE->Vulkan->gfxstream/MoltenVK->Metal.','DIRECT','This proves a specific older guest/runtime family ran extensively on macOS 26.x, but not on this exact M4 host.'), ('ev_native_gles_main_dev','2026-08-27T01:46:26.982Z','historical_source_build','docs/native-gles-transport-experiment.md','9b92313317a5eebd1900f5008c9db7018f467b20b6a6029dfc33523f240c650c','A historical emu-main-dev gfxstream host backend at revision a9184fd built successfully on the Mac after two AppleClang warning-compatibility adjustments; standalone backend was not a production drop-in.','DIRECT','Useful donor evidence only; do not mix branch authority.'), ('ev_live_tft_native','2026-08-27T01:46:35.222Z','package_architecture','docs/TFTMAC_GRAPHICS_ARCHITECTURE.md','06b7f5bf6ed6a84e7be2f3f296563a0fa9b436ec462eca0700d5bd8483490c59','Live TFT 16.16.8042660 base APK SHA 9ed691... launches RiotNativeActivity, contains libleagueoflegends.so, and showed no Unreal runtime markers.','DIRECT','Current workload engine evidence; separate from legacy PBE Unreal experiments.'); @@ -694,9 +694,9 @@ INSERT OR REPLACE INTO source_documents(id,path,sha256,role,authority_rank,tempo ('doc_phase0_remediation','ssot/phase0-remediation-inventory.md','608c258b56a57ab4775100cd2e7b333db183df86464e09c9c4419892623b2622','historical remediation log',30,'STALE','Pre-Phase-0 blocker inventory','2026-08-28T05:19:03.867Z',1,'Still lists blockers already resolved; never use as current status.'), ('doc_tftmac_legacy','TFTMAC.md','a93a4c96a37b89033b627520bdbe848cb39b68a12d257caec31ca77ea703e37c','legacy live-profile claim',35,'CURRENT_WITH_LEGACY_CONTENT','Pre-v2 live TFT architecture claims','2026-08-28T05:19:03.867Z',1,'Contains Android 16/API36 and ES3.2 property-era claims; candidate evidence only.'), ('doc_graphics_legacy','docs/TFTMAC_GRAPHICS_ARCHITECTURE.md','06b7f5bf6ed6a84e7be2f3f296563a0fa9b436ec462eca0700d5bd8483490c59','live engine evidence + legacy adapter design',45,'CURRENT_WITH_LEGACY_CONTENT','Live TFT engine identification and pre-v2 adapter architecture','2026-08-28T05:19:03.867Z',1,'Live package inspection remains useful; architecture is not v2 authority.'), -('doc_readme_mactician','README.md','810e1d7117f4e9f6253d680bef270958f18645d7e275dcf9384c7db1a8cd6a13','Mactician donor overview',30,'DONOR','Legacy product requirements/version pins/performance summary','2026-08-28T05:19:03.867Z',1,'Do not treat nonconformant GLES3.2-era behavior as v2 acceptance.'), +('doc_readme_legacy','README.md','810e1d7117f4e9f6253d680bef270958f18645d7e275dcf9384c7db1a8cd6a13','Retired donor overview',30,'DONOR','Legacy product requirements/version pins/performance summary','2026-08-28T05:19:03.867Z',1,'Do not treat nonconformant GLES3.2-era behavior as v2 acceptance.'), ('doc_mactician_build','scripts/build-mactician.command','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','legacy build implementation evidence',50,'DONOR','macOS 12 deployment, signing, packaging','2026-08-28T05:19:03.867Z',0,'Strong donor for native macOS compatibility target.'), -('doc_mactician_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','legacy exact version manifest',55,'DONOR','Mactician Android/emulator/game component pins','2026-08-28T05:19:03.867Z',0,'Exact archived component versions.'), +('doc_legacy_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','legacy exact version manifest',55,'DONOR','Retired donor Android/emulator/game component pins','2026-08-28T05:19:03.867Z',0,'Exact archived component versions.'), ('doc_benchmarks','docs/benchmarks.md','526507229e293e92155fc3ba588bc48d6a149cc7c164d24e5d10ac33755d7965','historical performance evidence',55,'HISTORICAL','M1 Max / Android36 / Emulator37.1.11 performance experiments','2026-08-28T05:19:03.867Z',0,'Scene-specific results; not current acceptance thresholds.'), ('doc_native_gles','docs/native-gles-transport-experiment.md','9b92313317a5eebd1900f5008c9db7018f467b20b6a6029dfc33523f240c650c','historical graphics capability research',65,'HISTORICAL','ANGLE/gfxstream/native GLES source and runtime experiments','2026-08-28T05:19:03.867Z',0,'Contains valuable negative evidence and emu-main-dev donor build results.'), ('doc_research_log','docs/research-log.md','e24b935ebcb6235db53130357121a26e724da0eec9186cbc90b6a0a1a6967dce','historical experiment chronology',50,'HISTORICAL','Compatibility/performance/rejected experiments','2026-08-28T05:19:03.867Z',0,'Useful for avoiding repeated failed experiments.'); @@ -709,16 +709,16 @@ INSERT OR REPLACE INTO version_catalog(id,component_id,product,version_label,rel ('vc_xcode164','xcode','Xcode','16.4',NULL,'stable','arm64','15.3','26.1.x',NULL,NULL,'15.5','10.13','15','Apple support matrix','ext_apple_xcode_matrix','OFFICIAL_DOCUMENTED','CANDIDATE','INCOMPATIBLE','2026-08-28T05:20:00Z','Ships SDK 15.5 and has older deployment range.','Apple support matrix stops host support at Tahoe 26.1.x; current host is 26.6.2. SDK 15.5 also exceeds locked helper allowlist ending at 15.2.','Rejected on current host unless isolated older build environment'), ('vc_xcode162','xcode','Xcode','16.2',NULL,'stable','arm64','14.5','15.x',NULL,NULL,'15.2','10.13','15','Apple support matrix','ext_apple_xcode_matrix','OFFICIAL_DOCUMENTED','CANDIDATE','INCOMPATIBLE','2026-08-28T05:20:00Z','Ships SDK 15.2, which matches the locked helper allowlist.','Apple does not support Xcode 16.2 on macOS 26.6.2. Could be useful only on a separate older macOS build environment.','Historical helper-compatible compiler candidate'), ('vc_xcode134','xcode','Xcode','13.4 / 13F17a',NULL,'historical','arm64',NULL,NULL,NULL,NULL,'12.3',NULL,NULL,'Google AEMU guide','ext_aemu_darwin_dev','OFFICIAL_DOCUMENTED','HISTORICAL','CLAIMED','2026-08-28T05:20:00Z','Current AEMU macOS guide names Xcode 13.4 with SDK 12.3 as a recommended historical build stack.','Not supported as a current-host installation claim; would require a compatible separate build OS.','Historical upstream reference'), -('vc_emulator37111','aemu','Android Emulator','37.1.11 / build 15917651','2026-07-30','stable','darwin-aarch64',NULL,NULL,36,37,NULL,NULL,NULL,'Google release notes + project manifest','ext_emulator_releases','PROJECT_ATTESTED','CURRENT_CONTROL','PROVEN','2026-08-28T05:20:00Z','Pinned by Mactician; benchmarked on macOS 26.6 M1 Max; Google 37.1.11 release adds Vulkan extensions required for API 37.','Stock graphics capability for genuine conformant ES3.2 on current M4/API37 is not yet proven.','High-value stock-control candidate'), +('vc_emulator37111','aemu','Android Emulator','37.1.11 / build 15917651','2026-07-30','stable','darwin-aarch64',NULL,NULL,36,37,NULL,NULL,NULL,'Google release notes + project manifest','ext_emulator_releases','PROJECT_ATTESTED','CURRENT_CONTROL','PROVEN','2026-08-28T05:20:00Z','Pinned by retired donor; benchmarked on macOS 26.6 M1 Max; Google 37.1.11 release adds Vulkan extensions required for API 37.','Stock graphics capability for genuine conformant ES3.2 on current M4/API37 is not yet proven.','High-value stock-control candidate'), ('vc_emulator36611','aemu','Android Emulator','36.6.11','2026-06-02','stable','darwin-aarch64',NULL,NULL,37,37,NULL,NULL,NULL,'Google release notes','ext_emulator_releases','OFFICIAL_DOCUMENTED','CANDIDATE','CLAIMED','2026-08-28T05:20:00Z','Explicitly supports API37 memory requirements and includes a macOS 26.3 Hypervisor cleanup fix.','No project-local TFT run yet; exact API37 Vulkan extension coverage versus 37.1.11 must be tested.','Older stable emulator candidate'), ('vc_emulator36510','aemu','Android Emulator','36.5.10','2026-04-02','stable','darwin-aarch64',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Google release notes','ext_emulator_releases','OFFICIAL_DOCUMENTED','CANDIDATE','CLAIMED','2026-08-28T05:35:30Z','Introduces the newer multi-device networking stack and includes a macOS crashpad high-CPU fix.','No official release-note evidence that this release adds the Vulkan improvements previously attributed to it; it also predates 37.1.11 API37 Vulkan-extension additions.','Older general-runtime control candidate'), ('vc_emulator3649','aemu','Android Emulator','36.4.9','2026-02-10','stable','darwin-aarch64',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Google release notes','ext_emulator_releases','OFFICIAL_DOCUMENTED','CANDIDATE','CLAIMED','2026-08-28T05:35:30Z','Updates the bundled Vulkan loader, fixes Vulkan backend invalid-use cases, adds SkiaVk graphics-queue-emulation support and VulkanNativeSwapchain composition support; release notes describe macOS Vulkan support as experimental.','Older than API37-specific 36.6/37.1 changes; must be tested with the exact current guest and workload before any promotion.','Older Vulkan-focused emulator candidate'), -('vc_platformtools3602','android36_guest','Android Platform Tools','36.0.2',NULL,'stable','darwin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Mactician manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Exact Mactician 1.0.4 platform-tools pin.','Not current v2 control revision.','Legacy donor'), -('vc_android36_r07','android36_guest','Android system image','Android 36 Google APIs ARM64 r07',NULL,'stable','arm64',NULL,NULL,36,36,NULL,NULL,NULL,'Mactician manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Exact Mactician system-image archive pin.','No Google Play in this exact manifest entry; rootable/Google Play variants were separate.','Legacy guest candidate'), +('vc_platformtools3602','android36_guest','Android Platform Tools','36.0.2',NULL,'stable','darwin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'retired-donor manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Exact retired-donor platform-tools pin.','Not current v2 control revision.','Legacy donor'), +('vc_android36_r07','android36_guest','Android system image','Android 36 Google APIs ARM64 r07',NULL,'stable','arm64',NULL,NULL,36,36,NULL,NULL,NULL,'retired-donor manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Exact retired-donor system-image archive pin.','No Google Play in this exact manifest entry; rootable/Google Play variants were separate.','Legacy guest candidate'), ('vc_android37_r6','android_guest','Android system image','Android 17 / API37 Google Play ps16k ARM64 rev6',NULL,'stable','arm64',NULL,NULL,37,37,NULL,NULL,NULL,'STACK.lock','ssot/STACK.lock.yaml','DIRECT_OBSERVED','CURRENT_AUTHORITY','PROVEN','2026-08-28T04:32:56.368Z','Current frozen production guest image.','Runtime graphics acceptance not yet completed.','Current guest'), -('vc_mactician104','mactician_legacy','Mactician','1.0.4 build 40',NULL,'release','arm64','12.0',NULL,36,36,NULL,'12.0',NULL,'project source','README.md + launcher/Info.plist','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Legacy Apple-Silicon launcher/runtime with minimum macOS 12.0 and exact Emulator37.1.11/Android36 pins.','Experimental/best-effort; PBE workload; historical nonconformant ES3.2 exposure was used and cannot satisfy v2 graphics truth.','Native shell/build/runtime donor'), +('vc_legacy_launcher104','legacy_launcher_donor','Retired donor launcher','1.0.4 build 40',NULL,'release','arm64','12.0',NULL,36,36,NULL,'12.0',NULL,'project source','README.md + launcher/Info.plist','PROJECT_ATTESTED','KNOWN_GOOD_DONOR','PROVEN','2026-08-27T01:46:26.986Z','Legacy Apple-Silicon launcher/runtime with minimum macOS 12.0 and exact Emulator37.1.11/Android36 pins.','Experimental/best-effort; PBE workload; historical nonconformant ES3.2 exposure was used and cannot satisfy v2 graphics truth.','Native shell/build/runtime donor'), ('vc_tft_live1616','tft_android','TFT Android live','16.16.8042660',NULL,'Google Play','arm64',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'package inspection','docs/TFTMAC_GRAPHICS_ARCHITECTURE.md','PROJECT_ATTESTED','CURRENT_CONTROL','PROVEN','2026-08-27T01:46:35.222Z','Current inspected live package uses RiotNativeActivity/libleagueoflegends.so with no Unreal markers.','Compatibility with v2 API37 source-built runtime still requires vertical-slice proof.','Current workload'), -('vc_pbe1815212127','tft_android','TFT PBE','18.1-5212127',NULL,'PBE','arm64',NULL,NULL,36,36,NULL,NULL,NULL,'Mactician manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','HISTORICAL','PROVEN','2026-08-27T01:46:26.986Z','Exact historical PBE workload used for Mactician 1.0.4 and benchmarks.','Not the current live production client.','Historical graphics/workload donor'), +('vc_pbe1815212127','tft_android','TFT PBE','18.1-5212127',NULL,'PBE','arm64',NULL,NULL,36,36,NULL,NULL,NULL,'retired-donor manifest','launcher/Resources/release-manifest.json','PROJECT_ATTESTED','HISTORICAL','PROVEN','2026-08-27T01:46:26.986Z','Exact historical PBE workload used for retired-donor benchmarks.','Not the current live production client.','Historical graphics/workload donor'), ('vc_gfx_main_a9184fd','gfxstream_main_dev_donor','gfxstream host backend','emu-main-dev a9184fd',NULL,'development','darwin-aarch64',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'historical project source build','docs/native-gles-transport-experiment.md','HISTORICAL_PROJECT','KNOWN_GOOD_DONOR','PARTIAL','2026-08-27T01:46:26.982Z','Standalone gfxstream_backend built successfully after two AppleClang warning allowances.','Export surface was not production drop-in; branch is not current authority.','Source-build donor'), ('vc_aemu_locked','aemu','AEMU/QEMU source','emu-master-dev qemu ae9d18d2',NULL,'development','darwin-aarch64',NULL,NULL,37,37,NULL,'10.14',NULL,'resolved manifest + source','ssot/STACK.lock.yaml','DIRECT_OBSERVED','CURRENT_AUTHORITY','PARTIAL','2026-08-28T05:19:03.867Z','Locked source configured fully and compiled through Ninja step 885/9854 with TFTMAC host adapters.','Upstream helper deployment target 10.14 is stale/incompatible with current source+Xcode; build not complete.','Current source authority'); @@ -726,27 +726,27 @@ INSERT OR REPLACE INTO compatibility_claims(id,version_id,environment_id,subject ('cc_current_host','vc_xcode266','env_current_m4','Xcode 26.6','runs on','macOS 26.6.2','OBSERVED','SUPPORTS','ev_host_26_6_2','ext_apple_xcode_matrix','doc_stack','2026-08-28T04:07:47.479Z','2026-08-28T05:20:00Z',NULL,'Installed and selected successfully.'), ('cc_xcode266_deployment','vc_xcode266','env_current_m4','Xcode 26.6','supports macOS deployment target','11 through 26.5','OFFICIAL_DOCUMENTED','SUPPORTS',NULL,'ext_apple_xcode_matrix',NULL,NULL,'2026-08-28T05:20:00Z',NULL,'Therefore 10.14 is outside the officially supported deployment-target range.'), ('cc_aemu_target1014','vc_aemu_locked','env_current_m4','Locked AEMU helper','forces deployment target','10.14','OBSERVED','BLOCKS','ev_phase1_target1014_fail','ext_aemu_helper',NULL,'2026-08-28T05:10:20.931Z','2026-08-28T05:19:03.867Z',NULL,'Directly caused std::filesystem availability compile errors under SDK26.5.'), -('cc_mactician_target12','vc_mactician104','env_current_m4','Mactician donor build','targets minimum macOS','12.0','OBSERVED','SUPPORTS','ev_mactician_target12',NULL,'doc_mactician_build','2026-08-27T01:46:26.991Z','2026-08-28T05:19:03.867Z',NULL,'12.0 is inside Xcode26.6 supported deployment range and satisfies std::filesystem availability.'), +('cc_legacy_target12','vc_legacy_launcher104','env_current_m4','Retired donor build','targets minimum macOS','12.0','OBSERVED','SUPPORTS','ev_legacy_target12',NULL,'doc_legacy_build','2026-08-27T01:46:26.991Z','2026-08-28T05:19:03.867Z',NULL,'12.0 is inside Xcode26.6 supported deployment range and satisfies std::filesystem availability.'), ('cc_xcode162_helper','vc_xcode162','env_current_m4','Xcode 16.2 SDK15.2','matches locked AEMU helper SDK allowlist','yes','INFERRED','BLOCKS',NULL,'ext_apple_xcode_matrix',NULL,NULL,'2026-08-28T05:20:00Z',NULL,'SDK matches helper but Apple does not support Xcode16.2 on current macOS26.6.2, so it is not a direct current-host solution.'), ('cc_xcode263_helper','vc_xcode263','env_current_m4','Xcode 26.3 SDK26.2','matches locked AEMU helper SDK allowlist','no','INFERRED','CONDITIONAL',NULL,'ext_apple_xcode_matrix',NULL,NULL,'2026-08-28T05:20:00Z',NULL,'Can run on current host but still needs adapter for stale AEMU helper.'), ('cc_emulator37111_mac26','vc_emulator37111','env_benchmark_m1max','Emulator 37.1.11','runs extensively on','macOS 26.6 M1 Max + Android36 userdebug','OBSERVED','SUPPORTS','ev_benchmark_m1max_stack',NULL,'doc_benchmarks','2026-08-27T01:46:26.981Z','2026-08-28T05:19:03.867Z',NULL,'Historical project benchmark evidence, not a guarantee for every guest or M4.'), ('cc_emulator37111_api37','vc_emulator37111',NULL,'Emulator 37.1.11','adds Vulkan extensions required for','API37 system images','OFFICIAL_DOCUMENTED','SUPPORTS',NULL,'ext_emulator_releases',NULL,'2026-07-30','2026-08-28T05:20:00Z',NULL,'High-value reason to keep 37.1.11 as stock control.'), ('cc_emulator36611_api37','vc_emulator36611',NULL,'Emulator 36.6.11','supports minimum VM memory behavior for','API37','OFFICIAL_DOCUMENTED','SUPPORTS',NULL,'ext_emulator_releases',NULL,'2026-06-02','2026-08-28T05:20:00Z',NULL,'Candidate older stable control; graphics extension parity not assumed.'), ('cc_emulator3649_vulkan','vc_emulator3649',NULL,'Emulator 36.4.9','documents Vulkan improvements including','loader/backend/SkiaVk/VulkanNativeSwapchain','OFFICIAL_DOCUMENTED','SUPPORTS',NULL,'ext_emulator_releases',NULL,'2026-02-10','2026-08-28T05:35:30Z',NULL,'Useful older graphics-focused control candidate, but macOS Vulkan was still described as experimental and API37 parity is not assumed.'), -('cc_legacy_es32','vc_mactician104','env_benchmark_m1max','Historical Mactician graphics path','claimed ES3.2 using','exposeNonConformantExtensionsAndVersions','PROJECT_DOCUMENTED','BLOCKS',NULL,NULL,'doc_research_log',NULL,'2026-08-28T05:19:03.867Z',NULL,'Worked as historical workload-enablement evidence but is forbidden as v2 conformance proof.'), +('cc_legacy_es32','vc_legacy_launcher104','env_benchmark_m1max','Historical retired-donor graphics path','claimed ES3.2 using','exposeNonConformantExtensionsAndVersions','PROJECT_DOCUMENTED','BLOCKS',NULL,NULL,'doc_research_log',NULL,'2026-08-28T05:19:03.867Z',NULL,'Worked as historical workload-enablement evidence but is forbidden as v2 conformance proof.'), ('cc_live_api36_claim','vc_tft_live1616',NULL,'Legacy TFTMAC live profile','claims live TFT runs on','Android16/API36 stock/high-end tablet runtime','PROJECT_DOCUMENTED','CONDITIONAL','ev_live_tft_native',NULL,'doc_tftmac_legacy','2026-08-27T01:46:35.222Z','2026-08-28T05:19:03.867Z',NULL,'Useful older-stack candidate claim, but current v2 preflight explicitly quarantines legacy claims until revalidated.'); INSERT OR REPLACE INTO deployment_target_candidates(target_version,candidate_state,xcode26_6_supported,satisfies_std_filesystem,matches_existing_product_minimum,compatibility_score,source_basis,rationale) VALUES ('10.14','REJECTED',0,0,0,0,'AEMU stale helper + Apple Xcode26.6 matrix + direct compile failure','Outside Xcode26.6 supported deployment range and directly fails current AEMU std::filesystem compilation.'), ('10.15','REJECTED',0,1,0,25,'std::filesystem availability + Apple Xcode26.6 matrix','Meets std::filesystem introduction point but is still below Xcode26.6 official minimum deployment target 11.'), ('11.0','VIABLE',1,1,0,75,'Apple Xcode26.6 support matrix','Technically supported by current Xcode and source APIs, but lower than the project’s already-proven macOS12 minimum and therefore adds compatibility surface without proven product value.'), -('12.0','RECOMMENDED',1,1,1,95,'Apple Xcode26.6 support matrix + Mactician build/Info.plist','Supported by current Xcode, satisfies source APIs, and matches a proven Apple-Silicon product deployment target already used throughout this repository.'), +('12.0','RECOMMENDED',1,1,1,95,'Apple Xcode26.6 support matrix + retired-donor build metadata','Supported by current Xcode, satisfies source APIs, and matches a proven Apple-Silicon product deployment target already used throughout this repository.'), ('15.0','VIABLE',1,1,0,70,'Apple Xcode26.6 support matrix','Modern and supported but unnecessarily narrows product compatibility relative to proven macOS12 target.'), ('26.5','CONDITIONAL',1,1,0,45,'Apple Xcode26.6 SDK/deployment matrix','Would minimize availability ambiguity but would restrict produced binaries to the newest OS family and discard useful Apple-Silicon compatibility for no current evidence-based benefit.'); INSERT OR REPLACE INTO stack_profiles(id,name,purpose,status,confidence,environment_id,workload,exact_result,limitations,next_use) VALUES ('stack_v2_current','TFTMAC v2 frozen API37 source stack','Current architecture authority','CURRENT_AUTHORITY','DIRECT','env_current_m4','Current live TFT','Phase0 PASS; locked AEMU fully configures and compiles to step 885/9854 before host deployment-target mismatch.','Phase1 build not complete; graphics/runtime probes not yet complete.','Test deployment target 12.0 through existing detached build harness; then resume smallest Phase1 proof.'), -('stack_mactician104','Mactician 1.0.4 Android36 / Emulator37.1.11','Legacy known-good donor','KNOWN_GOOD_DONOR','DIRECT',NULL,'TFT PBE 18.1-5212127','Native SwiftUI launcher, exact pinned SDK/emulator/system image, extensive game/runtime experiments.','Historical PBE and nonconformant ES32 workaround; not v2 conformance.','Harvest packaging, macOS12 target, runtime state machine, Emulator37.1.11 control behavior.'), +('stack_legacy_launcher104','Retired donor Android36 / Emulator37.1.11','Legacy known-good donor','KNOWN_GOOD_DONOR','DIRECT',NULL,'TFT PBE 18.1-5212127','Native SwiftUI launcher, exact pinned SDK/emulator/system image, extensive game/runtime experiments.','Historical PBE and nonconformant ES32 workaround; not v2 conformance.','Harvest packaging, macOS12 target, runtime state machine, Emulator37.1.11 control behavior.'), ('stack_m1max_benchmark','M1 Max Android36 userdebug performance stack','Historical performance donor','HISTORICAL','DIRECT','env_benchmark_m1max','TFT PBE','Extensive fixed-stage benchmark evidence on Emulator37.1.11 / Android36 / ANGLE-Vulkan-gfxstream-MoltenVK-Metal.','Different hardware and PBE workload; many results are scene-specific.','Use only for causal/relative graphics insights and older-version compatibility candidates.'), ('stack_stock37111_api37','Stock Emulator37.1.11 + current API37 Play image','Low-maintenance control candidate','CANDIDATE','STRONG','env_current_m4','Current live TFT','Official release explicitly adds Vulkan extensions required for API37; current guest is already frozen.','Genuine ES3.2/GuestAngle capability on current M4 not yet measured.','Run permanent host/guest Vulkan and GLES probes before source-patching AEMU graphics.'), ('stack_stock36611_api37','Stock Emulator36.6.11 + API37','Older stable control candidate','CANDIDATE','STRONG','env_current_m4','Capability probes first','Official API37 memory behavior; macOS26.3 Hypervisor fix indicates active macOS26 support work.','May lack Vulkan additions explicitly delivered in 37.1.11.','Only test if 37.1.11 behavior regresses or source build remains disproportionately costly.'), @@ -789,7 +789,7 @@ INSERT OR REPLACE INTO unknowns(id,question,owning_layer,blocking,next_probe,sta INSERT OR REPLACE INTO decisions(id,decided_at,decision,rationale,state,evidence_id,supersedes) VALUES ('dec_separate_host_sdk_target','2026-08-28T05:19:03.867Z','Model host macOS, Xcode, SDK, and deployment target as four independent compatibility dimensions.','The current host was known but stale AEMU deployment-target assumptions still caused a real compile failure.','ACTIVE','ev_phase1_target1014_fail',NULL), -('dec_target12_first','2026-08-28T05:20:00Z','Use macOS 12.0 as the first deployment-target candidate for Phase1 parity testing; do not set target to current host version by default.','12.0 is inside Xcode26.6 supported range, satisfies std::filesystem availability, and is already proven throughout the existing Apple-Silicon Mactician product build.','ACTIVE','ev_mactician_target12',NULL), +('dec_target12_first','2026-08-28T05:20:00Z','Use macOS 12.0 as the first deployment-target candidate for Phase1 parity testing; do not set target to current host version by default.','12.0 is inside Xcode26.6 supported range, satisfies std::filesystem availability, and is already proven throughout the historical Apple-Silicon donor build.','ACTIVE','ev_legacy_target12',NULL), ('dec_version_matrix','2026-08-28T05:20:00Z','Maintain older software versions as explicit candidates with provenance, limitations, and revalidation state.','Older stable combinations may be simpler and already compatible; newest-version bias is not an engineering requirement.','ACTIVE',NULL,NULL); INSERT OR REPLACE INTO constraints(id,category,statement,severity,mutable,rationale) VALUES @@ -885,7 +885,7 @@ UPDATE field_metadata SET unit='0-100 score', semantic_role='compatibility prior INSERT INTO update_log(observed_at,subject,change_summary,evidence_id) VALUES ('2026-08-28T05:19:03.867Z','Phase 1 truth correction','Reconciled detached build: no longer running; failed at Ninja step 885/9854 on macOS deployment target 10.14 versus std::filesystem availability.','ev_phase1_target1014_fail'), ('2026-08-28T05:20:00Z','Host compatibility model','Separated current host macOS 26.6.2, Xcode 26.6, SDK 26.5 and deployment target into independent compatibility dimensions.','ev_host_26_6_2'), -('2026-08-28T05:20:00Z','Version strategy','Added current/older Xcode, Emulator, Android guest, Mactician and historical source-build versions with explicit provenance and limitations.',NULL), +('2026-08-28T05:20:00Z','Version strategy','Added current/older Xcode, Emulator, Android guest, retired-donor and historical source-build versions with explicit provenance and limitations.',NULL), ('2026-08-28T05:20:00Z','Document truth model','Classified current authority, legacy donor, historical evidence and stale documents so obsolete claims cannot masquerade as current state.',NULL), ('2026-08-28T05:20:00Z','Deployment target','Promoted macOS 12.0 as first Phase1 parity candidate; rejected inherited 10.14 and unsupported 10.15 targets.','ev_mactician_target12'); @@ -960,8 +960,8 @@ ORDER BY CASE classification WHEN 'CONFIRMED' THEN 0 WHEN 'REJECTED' THEN 1 WHEN INSERT OR REPLACE INTO source_documents(id,path,sha256,role,authority_rank,temporal_status,scope,last_verified_at,conflicts_with_current_authority,notes) VALUES ('doc_launch_profiles','docs/launch-profiles.md','b3a53fff5c5e8ce37e5f7c0b1bf714e37d8ccead76e09981898934b8baa03524','historical runtime-profile index',55,'HISTORICAL','Explicit promoted/provisional/rejected launcher profiles','2026-08-28T05:31:00Z',0,'Primary source for not repeating rejected graphics profiles.'), -('doc_legacy_architecture','docs/architecture.md','7132bf652fc1d851cf5479f49d9258f9b6e789c6f299db3a868f657515994c2e','Mactician donor architecture',45,'DONOR','Legacy launcher/runtime state machine, host/guest boundary, graphics and rollback','2026-08-28T05:31:00Z',1,'Architecture is donor-only; lifecycle/rollback patterns remain useful.'), -('doc_building','docs/building.md','53252cc1b4b364d69e2f0d6f6061d3c90ef246353fa6e4f3e60048e38f977e73','Mactician donor build contract',45,'DONOR','macOS12 target, tools, signing, environment variables','2026-08-28T05:31:00Z',0,NULL), +('doc_legacy_architecture','docs/architecture.md','7132bf652fc1d851cf5479f49d9258f9b6e789c6f299db3a868f657515994c2e','Retired donor architecture',45,'DONOR','Legacy launcher/runtime state machine, host/guest boundary, graphics and rollback','2026-08-28T05:31:00Z',1,'Architecture is donor-only; lifecycle/rollback patterns remain useful.'), +('doc_building','docs/building.md','53252cc1b4b364d69e2f0d6f6061d3c90ef246353fa6e4f3e60048e38f977e73','Retired donor build contract',45,'DONOR','macOS12 target, tools, signing, environment variables','2026-08-28T05:31:00Z',0,NULL), ('doc_tftmac_app','tftmac/Sources/TFTMACApp.swift','b92fc0b8b525fca9e77e57633ab7c1939e87c113c7dbaf4aadfa00888ca15a33','pre-v2 TFTMAC app implementation',35,'CURRENT_WITH_LEGACY_CONTENT','Native UI and legacy live-runtime orchestration','2026-08-28T05:31:00Z',1,'Hardcodes old internal SDK/AVD roots and legacy ES3.2 property injection; must not be promoted unchanged.'), ('doc_tftmac_info','tftmac/Info.plist','e1a46f86f6aa748f884314e84ff40518e1ce3b4841708fb7083b62d6cc6b6005','current native-app metadata donor',50,'CURRENT_WITH_LEGACY_CONTENT','Bundle identity/minimum macOS version','2026-08-28T05:31:00Z',0,'LSMinimumSystemVersion 12.0 supports deployment-target candidate.'), ('doc_v2_tool','tools/tftmac-v2.mjs',NULL,'current v2 execution harness',85,'CURRENT','External storage, Phase0, source/build workers, host compatibility and map validation','2026-08-28T05:31:00Z',0,'Self-hash changes during active implementation.'); @@ -970,34 +970,34 @@ INSERT OR REPLACE INTO evidence(id,observed_at,kind,source_path,source_sha256,st ('ev_tftmac_shell_legacy_paths','2026-08-27T01:46:35.223Z','source_audit','tftmac/Sources/TFTMACApp.swift','b92fc0b8b525fca9e77e57633ab7c1939e87c113c7dbaf4aadfa00888ca15a33','Pre-v2 TFTMAC shell hardcodes ~/Library/Application Support/TFTMAC/sdk and avd, AVD TftHighEndTablet, and enhanced renderer property androidboot.opengles.version=196610.','DIRECT','This shell is a presentation/orchestration donor, not compatible unchanged with v2 external Runtime root or no-spoof acceptance.'), ('ev_reference_android36','2026-08-27T01:46:26.989Z','reference_config','reference/avd/config.ini','4432ae12207175e046e943ec60ffd97e1a427dd3c9142a7d1b9495f3ed623d92','Reference TftPBE AVD is Android36 ARM64 Google Play-class configuration with host GPU; generated hardware evidence shows 7 vCPU/6144MB and historical pipe transport.','DIRECT','Reference files capture donor state, not current production v2 state.'), ('ev_reference_rootable36','2026-08-27T01:46:26.989Z','reference_config','reference/rootable-avd/config.ini','095305826c0efe3c8bec12f9926e81672773ceb9deda3594894fb103fafb6977','Reference TftRootAffinity AVD is Android36 ARM64 Google APIs, rootable/no Play Store, 7 vCPU/6144MB, host GPU, 1600x900.','DIRECT','Useful proof of package-authority/execution-guest split patterns.'), -('ev_mactician_min12_plist','2026-08-27T01:46:26.983Z','bundle_metadata','launcher/Info.plist','33f27c2f2b1ee80e0b1d56035fb83002c862d4f6c003083b098303e2eec264ae','Mactician 1.0.4 bundle declares LSMinimumSystemVersion 12.0.','DIRECT',NULL), +('ev_legacy_min12_plist','2026-08-27T01:46:26.983Z','bundle_metadata','launcher/Info.plist','33f27c2f2b1ee80e0b1d56035fb83002c862d4f6c003083b098303e2eec264ae','Retired donor bundle declared LSMinimumSystemVersion 12.0.','DIRECT',NULL), ('ev_tftmac_min12_plist','2026-08-27T01:46:35.222Z','bundle_metadata','tftmac/Info.plist','e1a46f86f6aa748f884314e84ff40518e1ce3b4841708fb7083b62d6cc6b6005','TFTMAC 1.0.0 native shell also declares LSMinimumSystemVersion 12.0.','DIRECT','Independent second project-local signal supporting macOS12 floor.'); INSERT OR REPLACE INTO compatibility_claims(id,version_id,environment_id,subject,predicate,object,claim_kind,result,evidence_id,external_source_id,source_document_id,observed_at,last_revalidated_at,stale_after,notes) VALUES ('cc_tftmac_shell_paths',NULL,'env_current_m4','Pre-v2 TFTMAC shell','uses runtime storage','internal Application Support sdk/avd paths','OBSERVED','BLOCKS','ev_tftmac_shell_legacy_paths',NULL,'doc_tftmac_app','2026-08-27T01:46:35.223Z','2026-08-28T05:31:00Z',NULL,'Must be refactored to consume v2 external Runtime/SDK/AVD roots before native-shell promotion.'), ('cc_tftmac_shell_spoof',NULL,'env_current_m4','Pre-v2 TFTMAC enhanced renderer','injects','androidboot.opengles.version=196610','OBSERVED','BLOCKS','ev_tftmac_shell_legacy_paths',NULL,'doc_tftmac_app','2026-08-27T01:46:35.223Z','2026-08-28T05:31:00Z',NULL,'Forbidden as v2 capability proof; source remains useful for UI/runtime control structure only.'), -('cc_two_min12_signals','vc_mactician104','env_current_m4','Mactician and TFTMAC native bundles','share minimum macOS target','12.0','OBSERVED','SUPPORTS','ev_tftmac_min12_plist',NULL,'doc_tftmac_info','2026-08-27T01:46:35.222Z','2026-08-28T05:31:00Z',NULL,'Two independent project bundles plus build scripts use 12.0.'), +('cc_two_min12_signals','vc_legacy_launcher104','env_current_m4','Retired donor and TFTMAC native bundles','share minimum macOS target','12.0','OBSERVED','SUPPORTS','ev_tftmac_min12_plist',NULL,'doc_tftmac_info','2026-08-27T01:46:35.222Z','2026-08-28T05:31:00Z',NULL,'Two independent project bundles plus build scripts use 12.0.'), ('cc_rootable36_split','vc_android36_r07',NULL,'Android36 userdebug/rootable donor','supports architecture pattern','separate execution guest without Play Store','PROJECT_DOCUMENTED','SUPPORTS','ev_reference_rootable36',NULL,'doc_legacy_architecture','2026-08-27T01:46:26.989Z','2026-08-28T05:31:00Z',NULL,'Useful only if conditional custom-driver execution guest becomes necessary.'); INSERT OR REPLACE INTO runtime_variants(id,entrypoint,classification,runtime_family,graphics_path,display_profile,resource_profile,exact_result,promotion_state,source_document_id,current_relevance,notes) VALUES -('rv_best_verified','run-tft-best-verified.command','RECOMMENDED','Mactician/PBE Android36','ANGLE/OpenGL -> Vulkan -> gfxstream/MoltenVK -> Metal','1440p historical default',NULL,'Canonical audited legacy source launch; pins selected ASG, ANGLE/OpenGL and MoltenVK settings.','PROMOTED','doc_launch_profiles','Donor baseline only; v2 workload/guest differs.','Historical recommendation does not override v2 no-spoof policy.'), -('rv_fast_quality','run-tft-fast-quality.command','STABLE_FALLBACK','Mactician/PBE Android36','Same selected legacy graphics stack','configurable',NULL,'Stable fallback without canonical override reset.','RETAINED','doc_launch_profiles','Useful rollback/donor structure.',NULL), -('rv_performance_max','run-tft-performance-max.command','HISTORICAL','Mactician/PBE Android36','ANGLE/Vulkan/gfxstream/MoltenVK','2560x1440; 67% 3D scale','selected 16KiB ASG write step','Two full transport confirmations retained 34.1-35.1 FPS at stage1-8; app render-base.','PROMOTED','doc_launch_profiles','Performance donor only; not v2 acceptance.',NULL), -('rv_angle_opengl','run-tft-angle-opengl.command','DIAGNOSTIC','Mactician/PBE Android36','Verified ANGLE/OpenGL overlay',NULL,NULL,'Required lower-level renderer delegate; not complete safety wrapper.','RETAINED','doc_launch_profiles','Useful graphics-control donor.',NULL), +('rv_best_verified','run-tft-best-verified.command','RECOMMENDED','retired-donor/PBE Android36','ANGLE/OpenGL -> Vulkan -> gfxstream/MoltenVK -> Metal','1440p historical default',NULL,'Canonical audited legacy source launch; pins selected ASG, ANGLE/OpenGL and MoltenVK settings.','PROMOTED','doc_launch_profiles','Donor baseline only; v2 workload/guest differs.','Historical recommendation does not override v2 no-spoof policy.'), +('rv_fast_quality','run-tft-fast-quality.command','STABLE_FALLBACK','retired-donor/PBE Android36','Same selected legacy graphics stack','configurable',NULL,'Stable fallback without canonical override reset.','RETAINED','doc_launch_profiles','Useful rollback/donor structure.',NULL), +('rv_performance_max','run-tft-performance-max.command','HISTORICAL','retired-donor/PBE Android36','ANGLE/Vulkan/gfxstream/MoltenVK','2560x1440; 67% 3D scale','selected 16KiB ASG write step','Two full transport confirmations retained 34.1-35.1 FPS at stage1-8; app render-base.','PROMOTED','doc_launch_profiles','Performance donor only; not v2 acceptance.',NULL), +('rv_angle_opengl','run-tft-angle-opengl.command','DIAGNOSTIC','retired-donor/PBE Android36','Verified ANGLE/OpenGL overlay',NULL,NULL,'Required lower-level renderer delegate; not complete safety wrapper.','RETAINED','doc_launch_profiles','Useful graphics-control donor.',NULL), ('rv_root_affinity','run-tft-root-affinity.command','DIAGNOSTIC','Android36 rootable execution guest','ANGLE/gfxstream with root scheduling/overlays','1600x900 historical','7 vCPU / 6144MB donor','Owns rootable AVD, overlays, PSO scheduling, HWUI repair and cleanup.','RETAINED','doc_launch_profiles','Important conditional execution-guest donor.',NULL), ('rv_gles32_legacy','run-tft-gles32.command','HISTORICAL','older non-root Android36','legacy pipe-era GLES path','1600x900','6GB','Legacy stable fallback before selected ASG stack.','RETAINED','doc_launch_profiles','Do not infer genuine ES3.2 from name.',NULL), -('rv_mvk128','run-tft-mvk128-experimental.command','EXPERIMENTAL','Mactician/PBE Android36','MoltenVK 128-buffer candidate',NULL,NULL,'One strong run failed cold and sustained reproducibility.','NOT_PROMOTED','doc_launch_profiles','Do not repeat as default.',NULL), -('rv_no_fbo_submit','run-tft-fast-quality-angle-no-fbo-submit.command','PROVISIONAL','Mactician/PBE Android36','ANGLE preferSubmitAtFBOBoundary disabled',NULL,NULL,'Promising first run; lacked required cold confirmation.','NOT_PROMOTED','doc_launch_profiles','May be retested only under comparable modern stack evidence.',NULL), -('rv_shader_prewarm','run-tft-fast-quality-shader-prewarm.command','REJECTED','Mactician/PBE Android36','shader preload candidate',NULL,NULL,'Neutral/rejected by fixed-stage campaign.','REJECTED','doc_launch_profiles','Do not repeat without new causal evidence.',NULL), -('rv_submit_thread','run-tft-fast-quality-submit-thread.command','REJECTED','Mactician/PBE Android36','guest Vulkan submit/marshalling thread',NULL,NULL,'Regressed to 37.40/32.60/25.80 FPS at fixed stages.','REJECTED','doc_launch_profiles','Negative evidence.',NULL), -('rv_upstream_asg','run-tft-fast-quality-upstream-asg.command','REJECTED','Mactician/PBE Android36','upstream ASG feature candidate',NULL,NULL,'Failed campaign promotion gates.','REJECTED','doc_launch_profiles','Negative evidence.',NULL), -('rv_asg_active_consumer','run-tft-fast-quality-asg-active-consumer.command','REJECTED','Mactician/PBE Android36','isolated host active-consumer patch',NULL,NULL,'11.2 FPS / 334ms p95 versus 60 FPS / 18.44ms same-scene control.','REJECTED','doc_launch_profiles','Explicit forensic opt-in only.',NULL), -('rv_native_gles','run-tft-fast-quality-native-gles.command','DIAGNOSTIC','Mactician/PBE Android36','native gfxstream GLES without guest ANGLE',NULL,NULL,'High-risk diagnostic; no accepted production result.','NOT_PROMOTED','doc_launch_profiles','Protocol/API capability gap proven in native GLES research.',NULL), -('rv_native_gles30','run-tft-fast-quality-native-gles30.command','REJECTED','Mactician/PBE Android36','native GLES3.0',NULL,NULL,'TFT crashed before first frame because required GLES APIs absent.','REJECTED','doc_launch_profiles','Strong evidence against GLES3.0 shortcut.',NULL), -('rv_native_gles31','run-tft-fast-quality-native-gles31.command','REJECTED','Mactician/PBE Android36','native GLES3.1 attempt',NULL,NULL,'Host native path exposed only GLES3.0; strict gate failed.','REJECTED','doc_launch_profiles','Strong evidence against shallow native-GLES shortcut.',NULL), -('rv_ubo_direct','run-tft-fast-quality-ubo-direct-write.command','EXPERIMENTAL','Mactician/PBE Android36','direct UBO writes',NULL,NULL,'Isolated risky profile; no promotion evidence.','NOT_PROMOTED','doc_launch_profiles','Keep only for reproducibility.',NULL), -('rv_ubo_pool','run-tft-fast-quality-ubo-pool.command','EXPERIMENTAL','Mactician/PBE Android36','larger UBO pool',NULL,NULL,'Isolated risky profile; no promotion evidence.','NOT_PROMOTED','doc_launch_profiles','Keep only for reproducibility.',NULL), -('rv_direct_vulkan','run-tft-direct-vulkan.command','REJECTED','Mactician/PBE Android36','direct Unreal Vulkan RHI',NULL,NULL,'Selected Shipping device profile disabled direct Vulkan; Vulkan remained below ANGLE.','REJECTED','doc_launch_profiles','Current live client is not proven Unreal anyway.',NULL); +('rv_mvk128','run-tft-mvk128-experimental.command','EXPERIMENTAL','retired-donor/PBE Android36','MoltenVK 128-buffer candidate',NULL,NULL,'One strong run failed cold and sustained reproducibility.','NOT_PROMOTED','doc_launch_profiles','Do not repeat as default.',NULL), +('rv_no_fbo_submit','run-tft-fast-quality-angle-no-fbo-submit.command','PROVISIONAL','retired-donor/PBE Android36','ANGLE preferSubmitAtFBOBoundary disabled',NULL,NULL,'Promising first run; lacked required cold confirmation.','NOT_PROMOTED','doc_launch_profiles','May be retested only under comparable modern stack evidence.',NULL), +('rv_shader_prewarm','run-tft-fast-quality-shader-prewarm.command','REJECTED','retired-donor/PBE Android36','shader preload candidate',NULL,NULL,'Neutral/rejected by fixed-stage campaign.','REJECTED','doc_launch_profiles','Do not repeat without new causal evidence.',NULL), +('rv_submit_thread','run-tft-fast-quality-submit-thread.command','REJECTED','retired-donor/PBE Android36','guest Vulkan submit/marshalling thread',NULL,NULL,'Regressed to 37.40/32.60/25.80 FPS at fixed stages.','REJECTED','doc_launch_profiles','Negative evidence.',NULL), +('rv_upstream_asg','run-tft-fast-quality-upstream-asg.command','REJECTED','retired-donor/PBE Android36','upstream ASG feature candidate',NULL,NULL,'Failed campaign promotion gates.','REJECTED','doc_launch_profiles','Negative evidence.',NULL), +('rv_asg_active_consumer','run-tft-fast-quality-asg-active-consumer.command','REJECTED','retired-donor/PBE Android36','isolated host active-consumer patch',NULL,NULL,'11.2 FPS / 334ms p95 versus 60 FPS / 18.44ms same-scene control.','REJECTED','doc_launch_profiles','Explicit forensic opt-in only.',NULL), +('rv_native_gles','run-tft-fast-quality-native-gles.command','DIAGNOSTIC','retired-donor/PBE Android36','native gfxstream GLES without guest ANGLE',NULL,NULL,'High-risk diagnostic; no accepted production result.','NOT_PROMOTED','doc_launch_profiles','Protocol/API capability gap proven in native GLES research.',NULL), +('rv_native_gles30','run-tft-fast-quality-native-gles30.command','REJECTED','retired-donor/PBE Android36','native GLES3.0',NULL,NULL,'TFT crashed before first frame because required GLES APIs absent.','REJECTED','doc_launch_profiles','Strong evidence against GLES3.0 shortcut.',NULL), +('rv_native_gles31','run-tft-fast-quality-native-gles31.command','REJECTED','retired-donor/PBE Android36','native GLES3.1 attempt',NULL,NULL,'Host native path exposed only GLES3.0; strict gate failed.','REJECTED','doc_launch_profiles','Strong evidence against shallow native-GLES shortcut.',NULL), +('rv_ubo_direct','run-tft-fast-quality-ubo-direct-write.command','EXPERIMENTAL','retired-donor/PBE Android36','direct UBO writes',NULL,NULL,'Isolated risky profile; no promotion evidence.','NOT_PROMOTED','doc_launch_profiles','Keep only for reproducibility.',NULL), +('rv_ubo_pool','run-tft-fast-quality-ubo-pool.command','EXPERIMENTAL','retired-donor/PBE Android36','larger UBO pool',NULL,NULL,'Isolated risky profile; no promotion evidence.','NOT_PROMOTED','doc_launch_profiles','Keep only for reproducibility.',NULL), +('rv_direct_vulkan','run-tft-direct-vulkan.command','REJECTED','retired-donor/PBE Android36','direct Unreal Vulkan RHI',NULL,NULL,'Selected Shipping device profile disabled direct Vulkan; Vulkan remained below ANGLE.','REJECTED','doc_launch_profiles','Current live client is not proven Unreal anyway.',NULL); INSERT OR REPLACE INTO benchmark_findings(id,classification,environment_id,stack_id,workload,metric_summary,causal_interpretation,reproducibility,source_document_id,current_relevance,notes) VALUES ('bf_asg_vs_pipe','CONFIRMED','env_benchmark_m1max','stack_m1max_benchmark','Exact stage1-1 battle','ASG 40.1 FPS / 34.85ms p95 vs pipe 29.6 FPS / 49.75ms p95','ASG transport materially outperformed old pipe transport in controlled scene.','Accepted exact-scene A/B','doc_benchmarks','Transport-design donor; do not assume identical delta on API37.',NULL), From b5ff99fe47e7fbaf54e93065ae1c37fad912c9e7 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 22:52:06 -0500 Subject: [PATCH 06/19] Repair engineering-map relational ownership migration --- ssot/TFTMAC_ENGINEERING_MAP.sql | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/ssot/TFTMAC_ENGINEERING_MAP.sql b/ssot/TFTMAC_ENGINEERING_MAP.sql index 91e86eb..970c9f1 100644 --- a/ssot/TFTMAC_ENGINEERING_MAP.sql +++ b/ssot/TFTMAC_ENGINEERING_MAP.sql @@ -666,7 +666,7 @@ INSERT OR REPLACE INTO components(id,name,kind,layer,ownership,status,purpose,no INSERT OR REPLACE INTO evidence(id,observed_at,kind,source_path,source_sha256,statement,confidence,notes) VALUES ('ev_host_26_6_2','2026-08-28T04:07:47.479Z','host_preflight','ssot/host-preflight.json','c32ab07bdc18afa5ea261c4ab702f75a087319bce6f8cfe0efff9a3f898e5b97','Current host is Apple M4 Mac mini Mac16,10, arm64, 16 GB RAM, macOS 26.6.2 build 25G83; selected Xcode is 26.6 build 17F113 with macOS SDK 26.5.','DIRECT','This is current machine truth and must qualify every host-build compatibility claim.'), -('ev_legacy_target12','2026-08-27T01:46:26.991Z','source_build_contract','scripts/build-mactician.command','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','Retired donor production Swift and emulator-host binaries explicitly targeted arm64-apple-macosx12.0; historical launcher metadata also declared minimum macOS 12.0.','DIRECT','This is strong project-local evidence that 12.0 is a real compatibility target, not an invented number.'), +('ev_legacy_target12','2026-08-27T01:46:26.991Z','source_build_contract','historical:removed-build-script','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','Retired donor production Swift and emulator-host binaries explicitly targeted arm64-apple-macosx12.0; historical launcher metadata also declared minimum macOS 12.0.','DIRECT','This is strong project-local evidence that 12.0 is a real compatibility target, not an invented number.'), ('ev_phase1_target1014_fail','2026-08-28T05:10:20.931Z','compiler_failure','/Volumes/MAC MINI M4/TFTMAC/Build/logs/phase1-build.stderr.log',NULL,'Phase 1 advanced through Ninja step 885/9854 and failed because AEMU host tooling set macOS deployment target 10.14 while source uses std::filesystem APIs marked available from macOS 10.15.','DIRECT','The current build worker is FAILED, not RUNNING. The failure is host build-contract compatibility, not a graphics capability failure.'), ('ev_aemu_legacy_target1014','2026-08-28T05:19:00Z','source_audit','external/qemu/android/scripts/unix/gen-android-sdk-toolchain.sh',NULL,'Locked AEMU helper carries OSX_DEPLOYMENT_TARGET=10.14 / OSX_REQUIRED=10.14 despite current upstream macOS development guidance requiring SDK 10.15 or later.','DIRECT','Treat this helper value as stale upstream build plumbing.'), ('ev_legacy_stack','2026-08-27T01:46:26.986Z','release_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','Retired donor release evidence pins Platform Tools 36.0.2, Android Emulator 37.1.11 build 15917651, Android 36 Google APIs ARM64 system image r07, and TFT PBE 18.1-5212127.','DIRECT','Exact archived donor component set.'), @@ -695,7 +695,7 @@ INSERT OR REPLACE INTO source_documents(id,path,sha256,role,authority_rank,tempo ('doc_tftmac_legacy','TFTMAC.md','a93a4c96a37b89033b627520bdbe848cb39b68a12d257caec31ca77ea703e37c','legacy live-profile claim',35,'CURRENT_WITH_LEGACY_CONTENT','Pre-v2 live TFT architecture claims','2026-08-28T05:19:03.867Z',1,'Contains Android 16/API36 and ES3.2 property-era claims; candidate evidence only.'), ('doc_graphics_legacy','docs/TFTMAC_GRAPHICS_ARCHITECTURE.md','06b7f5bf6ed6a84e7be2f3f296563a0fa9b436ec462eca0700d5bd8483490c59','live engine evidence + legacy adapter design',45,'CURRENT_WITH_LEGACY_CONTENT','Live TFT engine identification and pre-v2 adapter architecture','2026-08-28T05:19:03.867Z',1,'Live package inspection remains useful; architecture is not v2 authority.'), ('doc_readme_legacy','README.md','810e1d7117f4e9f6253d680bef270958f18645d7e275dcf9384c7db1a8cd6a13','Retired donor overview',30,'DONOR','Legacy product requirements/version pins/performance summary','2026-08-28T05:19:03.867Z',1,'Do not treat nonconformant GLES3.2-era behavior as v2 acceptance.'), -('doc_mactician_build','scripts/build-mactician.command','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','legacy build implementation evidence',50,'DONOR','macOS 12 deployment, signing, packaging','2026-08-28T05:19:03.867Z',0,'Strong donor for native macOS compatibility target.'), +('doc_legacy_build','historical:removed-build-script','21932700a90aecf88a80e4d68fe0cdc748050aa39c0571bf2673a91228ff9c74','legacy build implementation evidence',50,'DONOR','macOS 12 deployment, signing, packaging','2026-08-28T05:19:03.867Z',0,'Strong donor for native macOS compatibility target.'), ('doc_legacy_manifest','launcher/Resources/release-manifest.json','ec5b31e1d0fc6c05de087ea6bcd6dc4c9acfebb575b2d4fdcfe45d8a98de892c','legacy exact version manifest',55,'DONOR','Retired donor Android/emulator/game component pins','2026-08-28T05:19:03.867Z',0,'Exact archived component versions.'), ('doc_benchmarks','docs/benchmarks.md','526507229e293e92155fc3ba588bc48d6a149cc7c164d24e5d10ac33755d7965','historical performance evidence',55,'HISTORICAL','M1 Max / Android36 / Emulator37.1.11 performance experiments','2026-08-28T05:19:03.867Z',0,'Scene-specific results; not current acceptance thresholds.'), ('doc_native_gles','docs/native-gles-transport-experiment.md','9b92313317a5eebd1900f5008c9db7018f467b20b6a6029dfc33523f240c650c','historical graphics capability research',65,'HISTORICAL','ANGLE/gfxstream/native GLES source and runtime experiments','2026-08-28T05:19:03.867Z',0,'Contains valuable negative evidence and emu-main-dev donor build results.'), @@ -758,11 +758,11 @@ INSERT OR REPLACE INTO stack_profile_members(stack_id,version_id,role,required) ('stack_v2_current','vc_android37_r6','guest',1), ('stack_v2_current','vc_aemu_locked','source runtime',1), ('stack_v2_current','vc_tft_live1616','workload',1), -('stack_mactician104','vc_mactician104','launcher/runtime product',1), -('stack_mactician104','vc_emulator37111','emulator',1), -('stack_mactician104','vc_platformtools3602','platform tools',1), -('stack_mactician104','vc_android36_r07','guest image',1), -('stack_mactician104','vc_pbe1815212127','workload',1), +('stack_legacy_launcher104','vc_legacy_launcher104','launcher/runtime product',1), +('stack_legacy_launcher104','vc_emulator37111','emulator',1), +('stack_legacy_launcher104','vc_platformtools3602','platform tools',1), +('stack_legacy_launcher104','vc_android36_r07','guest image',1), +('stack_legacy_launcher104','vc_pbe1815212127','workload',1), ('stack_m1max_benchmark','vc_emulator37111','emulator',1), ('stack_m1max_benchmark','vc_pbe1815212127','workload',1), ('stack_stock37111_api37','vc_emulator37111','stock emulator',1), @@ -887,7 +887,7 @@ INSERT INTO update_log(observed_at,subject,change_summary,evidence_id) VALUES ('2026-08-28T05:20:00Z','Host compatibility model','Separated current host macOS 26.6.2, Xcode 26.6, SDK 26.5 and deployment target into independent compatibility dimensions.','ev_host_26_6_2'), ('2026-08-28T05:20:00Z','Version strategy','Added current/older Xcode, Emulator, Android guest, retired-donor and historical source-build versions with explicit provenance and limitations.',NULL), ('2026-08-28T05:20:00Z','Document truth model','Classified current authority, legacy donor, historical evidence and stale documents so obsolete claims cannot masquerade as current state.',NULL), -('2026-08-28T05:20:00Z','Deployment target','Promoted macOS 12.0 as first Phase1 parity candidate; rejected inherited 10.14 and unsupported 10.15 targets.','ev_mactician_target12'); +('2026-08-28T05:20:00Z','Deployment target','Promoted macOS 12.0 as first Phase1 parity candidate; rejected inherited 10.14 and unsupported 10.15 targets.','ev_legacy_target12'); -- --------------------------------------------------------------------------- -- Historical runtime/profile/benchmark coverage @@ -1018,11 +1018,11 @@ INSERT OR REPLACE INTO artifact_registry(id,path,artifact_kind,layer,role,status ('ar_map','ssot/TFTMAC_ENGINEERING_MAP.sql','knowledge_graph','reasoning','Persistent dependency/version/evidence map','CURRENT_AUTHORITY','Update before architecture-changing action','doc_map',NULL), ('ar_v2tool','tools/tftmac-v2.mjs','orchestration_code','host_build','Phase0/Phase1/external storage/build compatibility/map validation','CURRENT_IMPLEMENTATION','Changes require validation and map evidence','doc_v2_tool',NULL), ('ar_tftmac_shell','tftmac/Sources/TFTMACApp.swift','native_app_source','presentation','Pre-v2 native TFTMAC UI/runtime controller','DONOR','Do not promote unchanged; remove old storage and spoof assumptions first','doc_tftmac_app',NULL), -('ar_mactician_build','scripts/build-mactician.command','build_script','donor','Proven macOS12 native build/sign/package path','DONOR','Harvest compatibility patterns only','doc_mactician_build',NULL), -('ar_mactician_runtime','launcher/Sources/RuntimeController.swift','runtime_controller','donor','Legacy process/runtime orchestration and environment injection','DONOR','Harvest state/lifecycle patterns; paths/profiles are legacy','doc_legacy_architecture',NULL), -('ar_mactician_paths','launcher/Sources/LauncherPaths.swift','path_model','donor','Legacy Application Support SDK/AVD layout','HISTORICAL','Do not use for v2 bulk runtime path','doc_legacy_architecture',NULL), -('ar_ref_play36','reference/avd/config.ini','avd_reference','guest','Android36 Play-class AVD donor','HISTORICAL','Read-only evidence','doc_readme_mactician',NULL), -('ar_ref_root36','reference/rootable-avd/config.ini','avd_reference','guest','Android36 rootable execution donor','HISTORICAL','Read-only evidence','doc_readme_mactician',NULL), +('ar_legacy_build','historical:removed-build-script','build_script','donor','Proven macOS12 native build/sign/package path','DONOR','Harvest compatibility patterns only','doc_legacy_build',NULL), +('ar_legacy_runtime','historical:removed-runtime-controller','runtime_controller','donor','Legacy process/runtime orchestration and environment injection','DONOR','Harvest state/lifecycle patterns; paths/profiles are legacy','doc_legacy_architecture',NULL), +('ar_legacy_paths','historical:removed-path-model','path_model','donor','Legacy Application Support SDK/AVD layout','HISTORICAL','Do not use for v2 bulk runtime path','doc_legacy_architecture',NULL), +('ar_ref_play36','reference/avd/config.ini','avd_reference','guest','Android36 Play-class AVD donor','HISTORICAL','Read-only evidence','doc_readme_legacy',NULL), +('ar_ref_root36','reference/rootable-avd/config.ini','avd_reference','guest','Android36 rootable execution donor','HISTORICAL','Read-only evidence','doc_readme_legacy',NULL), ('ar_native_gles_host_patch','artifacts/gfxstream-gles32-host-capability-prototype.patch','prototype_patch','graphics_transport','Historical GLES3.2 host capability prototype','EXPERIMENTAL','Do not apply to locked source without fresh causal evidence','doc_native_gles',NULL), ('ar_native_gles_alias_patch','artifacts/gfxstream-gles32-guest-proc-alias-prototype.patch','prototype_patch','guest_graphics','Historical proc-alias prototype','REJECTED','Retain for evidence only; runtime loader already resolved aliases','doc_native_gles',NULL), ('ar_performance_candidates','scripts/performance-candidates.json','experiment_manifest','performance','Historical reproducible performance candidates','HISTORICAL','Do not infer promotion from file presence','doc_benchmarks',NULL); @@ -1341,7 +1341,7 @@ INSERT OR REPLACE INTO map_meta(key,value) VALUES ('latest_5gb_trend','Latest closed 5 GiB run split into 10-minute windows: heavy-gameplay CPU ~245-277%, emulator RSS ~6.1-6.5 GiB, host available ~5.1-5.5 GiB, guest available ~1.64-1.75 GiB. Across the full ~106-minute run compressed memory rose ~2.72 GiB and host available fell ~2.62 GiB. Pressure accumulates over time, but disconnect did not coincide with guest-memory collapse.'), ('latest_5gb_vs_6gb','Directional whole-run comparison: pageout rate 6 GiB ~207.18/min vs 5 GiB ~133.54/min (-35.55%); compressed mean ~0.45 GiB lower and compressed p95 ~1.65 GiB lower on 5 GiB. Workload mixes differ, so 5 GiB is retained but not promoted as a final causal fact.'), ('current_ram_decision','KEEP 5 GiB for continued development; DO NOT cut to 4 GiB now. Heavy-gameplay guest available memory already reaches ~1.64 GiB, so another 1 GiB cut has insufficient safety margin without stronger evidence.'), -('current_presentation_candidate','Stage one-factor gfxstream/ASG candidate mactician_compatible_5gb_flush400_v1: drawFlushInterval 800 -> 400 only. Motivation: broad prior run added +524 HWC misses with +0 GPU misses, and AOSP defines this parameter as balancing host-GPU starvation against notification overhead. Do not combine with RAM, graphics preset, FPS, Performance Mode or other transport changes.'), +('current_presentation_candidate','Stage one-factor gfxstream/ASG candidate tftmac_5gb_flush400_exp_v1: drawFlushInterval 800 -> 400 only. Motivation: broad prior run added +524 HWC misses with +0 GPU misses, and AOSP defines this parameter as balancing host-GPU starvation against notification overhead. Do not combine with RAM, graphics preset, FPS, Performance Mode or other transport changes.'), ('current_preplay_pressure_thresholds','Between-game TFT app refresh threshold tightened to host compressed >=3.75 GiB or host available <=4.75 GiB based on the 5 GiB end-of-run trend; refresh preserves emulator and logger.'); INSERT OR REPLACE INTO evidence(id,observed_at,kind,source_path,source_sha256,statement,confidence,notes) VALUES @@ -1355,13 +1355,13 @@ INSERT INTO update_log(observed_at,subject,change_summary,evidence_id) VALUES ('2026-08-28T23:47:00Z','Logger reliability hardening','Decoupled raw capture sealing and cleanup from SQLite normalization so post-processing cannot strand or invalidate a long run.','ev_logger_raw_seal'); INSERT OR REPLACE INTO map_meta(key,value) VALUES -('latest_closed_run_session','2026-08-28T23-31-16-637Z-df54ebaa-561a-4567-ab20-d94baf0a3619; 3860.24s; mactician_compatible_5gb_v1; raw capture SEALED; SQLite COMPLETE; 18/18 required artifacts present; manifest f17014ce217742682898a4562aa873a58d8d3fed09b765603c6d4052ea49aa6b.'), +('latest_closed_run_session','2026-08-28T23-31-16-637Z-df54ebaa-561a-4567-ab20-d94baf0a3619; 3860.24s; tftmac_5gb_baseline_v1; raw capture SEALED; SQLite COMPLETE; 18/18 required artifacts present; manifest f17014ce217742682898a4562aa873a58d8d3fed09b765603c6d4052ea49aa6b.'), ('latest_closed_run_memory','Second sustained 5 GiB run reproduced the operating envelope. Full run weighted means: host available 5.425 GiB, host compressed 2.793 GiB, guest available 2.224 GiB, emulator RSS 5829 MiB. Heavy 10-minute windows reached CPU 229-288%, guest available about 1.70-1.90 GiB, host available about 5.01-5.26 GiB, compressed about 2.97-3.40 GiB. Keep 5120 MB; do not reduce to 4096 MB.'), ('latest_closed_run_pageouts','Current 5 GiB run: 10711 pageouts over 3860.24s = 166.48/min including cold boot. Excluding the first 10-minute cold-boot/startup window, sustained rate is about 127.94/min, close to the prior 5 GiB run about 133.54/min. Old 6 GiB baseline was about 207.18/min. Directional evidence continues to favor 5 GiB.'), ('latest_closed_run_audio','Explicit CoreAudio held through the full run: TFT OpenSL ES 44.1 kHz stereo playback active, ranchu pcm_write I/O failures=0, mixer underruns partial=0 empty=0.'), ('latest_closed_run_network','TFT stayed PID 5276 and Android network 101 remained assigned. End-of-game TFT connectivity callback requests at about 19:30 were immediately assigned to network 101; no Android LOST/UNAVAIL sequence or process restart was observed.'), ('latest_closed_run_presentation','Post-run SurfaceFlinger state: 60 Hz, 1280x720 TFT SurfaceView scaled 1.5x to 1920x1080, total missed=562 and HWC missed=562. The old parser converted an actual zero counter to NULL; parser has been corrected to preserve zero. Current evidence continues to prioritize presentation/HWC pacing over host GPU saturation.'), -('current_graphics_next_action','Proceed with one-factor mactician_compatible_5gb_flush400_v1 experiment: ASG drawFlushInterval 800 -> 400 only, after validating the corrected zero-counter parser and sealed-run comparison. Keep RAM=5120, Medium/60/Performance OFF, CoreAudio, ANGLE/Vulkan/gfxstream/MoltenVK, resolution and all other transport fields fixed.'); +('current_graphics_next_action','Proceed with one-factor tftmac_5gb_flush400_exp_v1 experiment: ASG drawFlushInterval 800 -> 400 only, after validating the corrected zero-counter parser and sealed-run comparison. Keep RAM=5120, Medium/60/Performance OFF, CoreAudio, ANGLE/Vulkan/gfxstream/MoltenVK, resolution and all other transport fields fixed.'); COMMIT; From 51ed938d53883cb78e72b301f3d3f261f5644d7a Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 23:04:27 -0500 Subject: [PATCH 07/19] Record stock runtime authority and retire source-build directives --- TFTMAC_FULL_IMPLEMENTATION_PLAN.md | 1479 +------------------------- TFTMAC_GPU_RUNTIME_SSOT.md | 1106 +------------------ Vendor/AndroidEmulator/SOURCE.json | 2 +- ssot/phase0-remediation-inventory.md | 80 +- ssot/phase0-source.json | 12 +- ssot/runtime-authority.json | 48 + 6 files changed, 117 insertions(+), 2610 deletions(-) create mode 100644 ssot/runtime-authority.json diff --git a/TFTMAC_FULL_IMPLEMENTATION_PLAN.md b/TFTMAC_FULL_IMPLEMENTATION_PLAN.md index 242b15b..4fed931 100644 --- a/TFTMAC_FULL_IMPLEMENTATION_PLAN.md +++ b/TFTMAC_FULL_IMPLEMENTATION_PLAN.md @@ -1,1474 +1,17 @@ -# TFTMAC GPU Runtime — Full Implementation Plan +# TFTMAC Historical Source-Build Plan — RETIRED -**Version:** 2.0 revised after ZenGate v2.3 remediation -**Date:** 2026-08-26 -**Governing SSOT:** `TFTMAC_GPU_RUNTIME_SSOT.md` v2.0 -**Status:** Execution plan; implementation must not begin until this plan passes ZenGate v2.3 -**Project:** One project only — `TFTMAC` +**Status:** SUPERSEDED — DO NOT EXECUTE +**Superseded by:** `TFTMAC_CLEAN_OWNERSHIP_PLAN.md` and `TFTMACAPP.md` ---- +The former GPU-runtime implementation plan required a source-built Android Emulator/AEMU laboratory. That path was experimentally exercised, consumed substantial external storage, and was later superseded by the proven released Google Android Emulator runtime. -# 0. Concrete win condition +Current execution authority is: -Build and release one Apple-Silicon Android 3D runtime that: +1. Complete `TFTMAC_CLEAN_OWNERSHIP_PLAN.md` through project/storage convergence. +2. Continue the native application from `TFTMACAPP.md`. +3. Preserve the released stock Android Emulator as the control/runtime authority. +4. Do not initialize, synchronize, build, or recreate a source-built AEMU checkout during normal TFTMAC work. -- uses the official Android 17 Google Play ARM64 guest; -- uses source-built AEMU from one frozen `emu-master-dev` manifest; -- transports required Vulkan capability through gfxstream; -- provides a genuine OpenGL ES 3.2 context through built-in Android ANGLE without nonconformant version exposure; -- renders through MoltenVK/Metal; -- runs the current official Google Play TFT client at 1920×1080; -- meets the frozen performance and latency contract; -- supports audio, microphone transport, input, diagnostics, update, and rollback; -- presents as one native macOS application with emulator chrome hidden; -- passes the frozen non-TFT generality corpus. +Historical technical conclusions from the retired work remain represented in compact SSOT/evidence records where they still protect a current decision. The large source/build laboratory itself is disposable after the approved independence, measurement, and quiescence gates pass. -No phase is complete merely because a command exits 0. Each phase has an evidence artifact and a behavioral exit gate. - ---- - -# 1. Fixed architecture - -```text -Official Android 17 Google Play ARM64 guest - | - +-------+-------+ - | | - GLES Native Vulkan - | | - Android built-in | - ANGLE/Vulkan | - +-------+-------+ - | - gfxstream - | - source-built AEMU - | - selected MoltenVK - | - Metal - | - Apple Silicon GPU - | - native TFTMAC shell -``` - -Normal production uses one Google Play AVD. - -A rootable execution guest and custom ANGLE are a **conditional repair adapter only**. They are not prebuilt or maintained unless Phase 5 proves built-in ANGLE itself is the remaining blocker. - ---- - -# 2. Phase map - -```text -PHASE 0 — Authority + preflight freeze -PHASE 1 — Build unmodified source AEMU -PHASE 2 — Build capability laboratory -PHASE 3 — Make host Vulkan capability real -PHASE 4 — Make gfxstream preserve required Vulkan capability -PHASE 5 — Prove genuine built-in-ANGLE GLES 3.2 -PHASE 6 — Current official TFT vertical slice -PHASE 7 — Performance, diagnostics, audio, mic, input -PHASE 8 — Native macOS presentation -PHASE 9 — Update, rollback, generality, release -``` - -Each phase changes only the layer that owns the current failure. - ---- - -# PHASE 0 — Authority and complete preflight freeze - -## Objective - -Resolve every drift-sensitive critical input before implementation code changes. - -At Phase 0 exit: - -```text -STACK.lock.yaml contains no unresolved critical-path field. -``` - -## 0.1 Host identity - -Require: - -```text -Apple Silicon arm64 -supported macOS for Xcode 26.6 -Xcode 26.6 / 17F113 -``` - -Record: - -```bash -uname -m -sw_vers -xcodebuild -version -xcrun --sdk macosx --show-sdk-path -system_profiler SPHardwareDataType -``` - -Write: - -```text -ssot/host-preflight.json -``` - -## 0.2 Canonical local roots - -Bulk build/runtime data is external and mandatory: - -```text -/Volumes/MAC MINI M4/TFTMAC/ -├── Build/ -└── Runtime/ - ├── SDK/ - ├── AVD/ - ├── Packages/ - ├── Probes/ - ├── Manifests/ - └── VulkanSDK/ -``` - -Small control/log state may remain internal: - -```text -~/Library/Application Support/TFTMAC/ -├── Logs/ -├── Diagnostics/ -└── Rollback/ -``` - -If `/Volumes/MAC MINI M4` is not mounted, TFTMAC fails closed and must not create Build or Runtime data on the internal disk. No source file hardcodes the current developer checkout path. - -## 0.3 Android command-line tools - -Download: - -```text -commandlinetools-mac_arm64-15859902_latest.zip -``` - -Verify: - -```text -SHA-256 -835b62a26162b229b441d1f6d4680383815a270809eb33522c0d480fa5002c4e -``` - -Install into TFTMAC-local SDK root. - -Do not use the user's global Android SDK as production authority. - -## 0.4 SDK packages - -Using the TFTMAC-local `sdkmanager`, install: - -```text -platform-tools -emulator -platforms;android-37.1 -build-tools;37.0.0 -system-images;android-37.0;google_apis_playstore_ps16k;arm64-v8a -``` - -Run: - -```bash -sdkmanager --list_installed -``` - -Freeze exact revisions. - -API 37 Google Play image must be revision >= 5. - -Write: - -```text -ssot/android-sdk-packages.txt -``` - -## 0.5 Production AVD - -Create: - -```bash -avdmanager create avd \ - --name TFTMAC_Live_API37 \ - --package "system-images;android-37.0;google_apis_playstore_ps16k;arm64-v8a" \ - --device pixel_tablet \ - --force -``` - -Normalize configuration: - -```text -AvdId=TFTMAC_Live_API37 -avd.ini.displayname=TFTMAC Live -hw.device.manufacturer=Google -hw.device.name=pixel_tablet -hw.initialOrientation=Landscape -hw.cpu.arch=arm64 -hw.cpu.ncore=8 -hw.ramSize=8192 -hw.vmHeapSize=768 -hw.lcd.width=1920 -hw.lcd.height=1080 -hw.lcd.density=280 -hw.gpu.enabled=yes -hw.gpu.mode=host -hw.audioInput=yes -hw.keyboard=yes -showDeviceFrame=no -skin.name=1920x1080 -disk.dataPartition.size=16G -runtime.network.speed=full -runtime.network.latency=none -PlayStore.enabled=true -fastboot.forceColdBoot=yes -fastboot.forceFastBoot=no -``` - -## 0.6 Vulkan developer SDK - -Install: - -```text -Vulkan SDK 1.4.357.0 -SHA-256: -539433589c83522e6f31b1c7b418a4167e21597a4a361ab119e1dc0760cf3865 -``` - -Require: - -```bash -vulkaninfo --summary -``` - -## 0.7 AEMU source authority - -The project uses only: - -```text -emu-master-dev -``` - -Initialize: - -```bash -mkdir -p "/Volumes/MAC MINI M4/TFTMAC/Build/aemu" -cd "/Volumes/MAC MINI M4/TFTMAC/Build/aemu" - -repo init \ - -u https://android.googlesource.com/platform/manifest \ - -b emu-master-dev - -repo sync -c -j8 -``` - -Freeze: - -```bash -repo manifest -r > "$TFTMAC_REPO/ssot/upstreams-aemu.lock.xml" -shasum -a 256 "$TFTMAC_REPO/ssot/upstreams-aemu.lock.xml" -``` - -Record exact commits: - -```bash -git -C external/qemu rev-parse HEAD -git -C hardware/google/aemu rev-parse HEAD -git -C hardware/google/gfxstream rev-parse HEAD -git -C external/angle rev-parse HEAD -git -C external/moltenvk rev-parse HEAD -``` - -Write them into `STACK.lock.yaml`. - -## 0.8 GuestAngle source-authority assertion - -Inspect the exact locked QEMU revision: - -```text -external/qemu/android/android-emu/android/userspace-boot-properties.cpp -``` - -The preflight script must prove the locked source implements materially equivalent GuestAngle behavior to: - -```text -hardware EGL -> angle -hardware Vulkan -> ranchu/guest Vulkan path -nonconformant ES version exposure not automatically enabled -``` - -Write: - -```text -ssot/guestangle-authority.json -``` - -The JSON contains: - -```text -qemu commit -source file hash -GuestAngle symbol/location -hardware EGL value -hardware Vulkan value -nonconformant exposure policy -PASS/FAIL -``` - -If FAIL, no code mutation begins. The source review updates both planning documents before execution. - -This is the only source-authority stop condition. - -## 0.9 MoltenVK reference lock - -Freeze: - -```text -MoltenVK v1.4.2 -``` - -Store reference checkout: - -```text -Build/references/MoltenVK-1.4.2 -``` - -Record exact commit. - -Do not yet replace the manifest-integrated MoltenVK. - -## 0.10 Freeze the generality corpus - -### OpenGL ES - -Pin: - -```text -Khronos VK-GL-CTS -opengl-es-cts-3.2.14.1 -Apache-2.0 -``` - -Resolve and lock full commit before implementation: - -```bash -git rev-list -n 1 opengl-es-cts-3.2.14.1 -``` - -### Vulkan CTS - -Pin: - -```text -vulkan-cts-1.4.6.1 -5c8aae22885448d70a2873e94a93b24b49505c32 -Apache-2.0 -``` - -Create `ssot/vulkan-required-cases.txt` before implementation. - -The case list must include only cases required by: - -- TFTMAC guest Vulkan probe; -- GLES 3.2 feature dependencies; -- draw; -- compute; -- image; -- synchronization; -- dynamic rendering; -- WSI/presentation used by the runtime. - -Hash and lock the case list. - -Do not remove cases later because they fail. - -### Vulkan Samples - -Pin: - -```text -Khronos Vulkan-Samples -89dd3af22d41f9244eeab6e0650460112285c0e1 -Apache-2.0 -``` - -Frozen sample names: - -```text -dynamic_rendering -compute_nbody -``` - -## 0.11 Freeze performance contract - -Copy the SSOT performance values into `STACK.lock.yaml`: - -```text -FPS minimum: 58.0 -P95 max: 20.0 ms -P99 max: 33.334 ms -jank threshold: >33.334 ms -jank max: 1.0% -severe stall: >100 ms -severe stalls max: 3 / 600 seconds - -native input median: - <= Qt control + 5 ms - <= 50 ms absolute - -native input P95: - <= Qt control + 8.334 ms - <= 83.334 ms absolute -``` - -These values cannot be changed during tuning to make a candidate pass. - -## 0.12 Generate complete Phase 0 artifacts - -Required: - -```text -ssot/STACK.lock.yaml -ssot/upstreams-aemu.lock.xml -ssot/host-preflight.json -ssot/android-sdk-packages.txt -ssot/tool-versions.txt -ssot/source-hashes.txt -ssot/guestangle-authority.json -ssot/vulkan-required-cases.txt -ssot/preflight-report.md -``` - -### Phase 0 exit gate - -PASS only if: - -```text -host = supported -all downloaded hashes = verified -Android image = exact and rev >=5 -AEMU = emu-master-dev -resolved manifest = frozen -GuestAngle locked-source semantics = PASS -MoltenVK reference = frozen -GLES CTS full commit = frozen -Vulkan CTS = frozen -Vulkan required cases = frozen and hashed -Vulkan Samples = frozen -performance contract = frozen -no critical-path null remains -``` - ---- - -# PHASE 1 — Build unmodified source AEMU - -## Objective - -Prove the locked integrated source family builds and boots before graphics modification. - -## 1.1 Build - -From locked source: - -```bash -cd "/Volumes/MAC MINI M4/TFTMAC/Build/aemu/external/qemu" -android/rebuild.sh \ - --out-dir="/Volumes/MAC MINI M4/TFTMAC/Build/aemu-out" -``` - -## 1.2 Unit tests - -```bash -cd "/Volumes/MAC MINI M4/TFTMAC/Build/aemu-out" -ctest -j8 --output-on-failure -``` - -Also: - -```bash -cd "/Volumes/MAC MINI M4/TFTMAC/Build/aemu/external/qemu" -python android/build/python/cmake.py --gfxstream -``` - -## 1.3 Boot production AVD - -Use source-built emulator: - -```bash -emulator @TFTMAC_Live_API37 \ - -port 5592 \ - -gpu host \ - -feature GuestAngle,Vulkan,GLESDynamicVersion \ - -no-snapshot \ - -no-boot-anim \ - -no-metrics -``` - -Environment: - -```text -ANDROID_ADB_SERVER_PORT=5040 -``` - -## 1.4 Verify runtime parity - -Capture: - -```text -getprop -SurfaceFlinger -display -logcat -emulator version -host renderer log -Google Play launch -``` - -### Phase 1 proof - -Artifacts: - -```text -Diagnostics/phase1-build.json -Diagnostics/phase1-boot.json -``` - -PASS: - -- source build succeeds; -- unit tests green; -- AVD boots; -- GuestAngle active; -- Google Play opens; -- no patch is yet required. - -If the source build fails, repair toolchain/build parity only. - ---- - -# PHASE 2 — Build the capability laboratory - -## Objective - -Make every graphics failure attributable without a game. - -## 2.1 Host Vulkan probe - -Native macOS executable. - -Required executable feature set: - -```text -API/device identity -geometry shader -tessellation -shader cull distance -indirect draw -descriptor indexing -timeline semaphore -synchronization2 -dynamic rendering -buffer device address -subgroups -sampler/filter behavior -``` - -Output: - -```text -Diagnostics/host-vulkan.json -``` - -## 2.2 Guest Vulkan probe - -Android ARM64 probe. - -Same schema. - -Output: - -```text -Diagnostics/guest-vulkan.json -Diagnostics/vulkan-transport-delta.json -``` - -## 2.3 Guest GLES 3.2 probe - -Package: - -```text -dev.tftmac.gpuprobe -``` - -Tests: - -```text -EGL initialization -ES3 renderable config -3.2 context creation -GL_VERSION -GL_RENDERER -GL_VENDOR -extension inventory -geometry compile/link/draw -tessellation compile/link/draw -compute -SSBO -texture buffer -cube-map array -multisample/sample shading -base vertex -fence/sync -known rendered output -``` - -Output: - -```text -Diagnostics/guest-gles32.json -Diagnostics/guest-gles32-frame.png -``` - -## 2.4 Frame/input probe - -Implements deterministic surface animation and visible state change on injected input. - -Outputs: - -```text -Diagnostics/frame-performance.json -Diagnostics/input-latency.json -``` - -## 2.5 Probe self-test - -The probe suite must intentionally detect: - -- a forced feature-disabled configuration; -- a wrong GL version; -- a corrupted expected render checksum. - -This proves the verifier can go red. - -### Phase 2 exit gate - -Every probe compiles, runs, returns structured evidence, and detects intentional negative cases. - ---- - -# PHASE 3 — Make host Vulkan capability real - -## Objective - -Provide the host Vulkan features actually required by the guest GLES 3.2 path. - -## 3.1 Baseline integrated MoltenVK - -Run host probe against the MoltenVK revision from the locked AEMU family. - -Store: - -```text -Diagnostics/moltenvk-integrated.json -``` - -## 3.2 Baseline upstream v1.4.2 - -Build: - -```bash -./fetchDependencies --macos -make macos -``` - -Run the same probe. - -Store: - -```text -Diagnostics/moltenvk-1.4.2.json -``` - -## 3.3 Select host driver base - -Algorithm: - -```text -required = host Vulkan features consumed by guest probe / GLES 3.2 dependency map - -if integrated satisfies required: - select integrated -elif v1.4.2 satisfies a strict superset and integrates cleanly: - select v1.4.2 -else: - select integrated - port only causal required improvements -``` - -Record selection in `STACK.lock.yaml`. - -## 3.4 Causal geometry/cull repair - -If a required feature such as geometry shader or shader cull distance is absent: - -1. reproduce failure in host probe; -2. inspect selected MoltenVK; -3. inspect UTM/CrossOver donor; -4. port smallest compatible implementation; -5. run direct feature test; -6. run indirect-draw interaction test; -7. reject any patch that only changes advertised feature bits. - -No other MoltenVK changes are permitted until the required host probe says they are causal. - -### Phase 3 exit gate - -All host Vulkan capabilities required by Phase 5 are executable and green. - ---- - -# PHASE 4 — Make gfxstream preserve required Vulkan capability - -## Objective - -Ensure the Android guest sees working features, not merely the host. - -## 4.1 Boot source AEMU with selected Phase 3 host Vulkan - -Features: - -```text -GuestAngle -Vulkan -GLESDynamicVersion -``` - -No nonconformant ANGLE exposure. - -## 4.2 Run guest Vulkan probe - -Generate transport delta. - -## 4.3 Repair only host-green / guest-red features - -If: - -```text -host feature = PASS -guest feature = FAIL -``` - -then gfxstream/AEMU owns the repair. - -Inspect: - -- feature filtering; -- `VkPhysicalDeviceFeatures*`; -- extension filtering; -- encoder/decoder support; -- host feature discovery; -- MoltenVK-specific host policy. - -Every patch records before/after probe state. - -Never expose a guest feature until its guest executable test passes. - -### Phase 4 exit gate - -No Vulkan capability required by the frozen GLES 3.2 dependency map is host-green / guest-red. - ---- - -# PHASE 5 — Prove genuine built-in-ANGLE GLES 3.2 - -## Objective - -Pass the exact graphics contract that current TFT requires without lying about capability. - -## 5.1 Clean production boot - -```bash -emulator @TFTMAC_Live_API37 \ - -port 5592 \ - -gpu host \ - -feature GuestAngle,Vulkan,GLESDynamicVersion \ - -no-snapshot \ - -no-metrics -``` - -Forbidden: - -```text -ANGLE_FEATURE_OVERRIDES_ENABLED=exposeNonConformantExtensionsAndVersions -``` - -## 5.2 Run guest GLES 3.2 probe - -Required: - -```text -context_requested = 3.2 -context_created = true -GL_VERSION = OpenGL ES 3.2... -ANGLE/Vulkan renderer path identified -all executable cases = PASS -known frame = PASS -``` - -## 5.3 Failure routing - -### Host Vulkan red - -Return Phase 3. - -### Host green, guest Vulkan red - -Return Phase 4. - -### Guest Vulkan required set green, built-in ANGLE still caps at 3.1 - -Now inspect the exact locked built-in ANGLE revision and requirement code. - -Only if ANGLE revision behavior itself is the blocker activate: - -```text -Custom ANGLE Adapter -``` - -## 5.4 Conditional Custom ANGLE Adapter - -This section does not execute unless 5.3 proves it necessary. - -Build host: - -```text -Ubuntu 24.04 LTS x86_64 -``` - -Build current pinned ANGLE Android arm64 artifact. - -Because TFT is non-debuggable and the Google Play guest is not a general root environment, if loose driver selection cannot be applied, create a rootable Android 17 userdebug execution image. - -Google Play AVD remains package/update authority. - -Exact Google-delivered APK splits are transferred only after package identity/signature/hash verification. - -The adapter must pass the same Phase 5 probe. - -### Phase 5 exit gate - -A real conformant GLES 3.2 context and all required executable tests pass. - ---- - -# PHASE 6 — Current official TFT vertical slice - -## Objective - -Use a real production workload after the general graphics contract is green. - -## 6.1 Official Google Play installation - -Inside `TFTMAC_Live_API37`: - -- sign into Google Play; -- install/update official TFT; -- record package metadata. - -Required manifest fields: - -```text -installer=com.android.vending -package=com.riotgames.league.teamfighttactics -versionName -versionCode -package paths -APK/split hashes -signing certificate hash -capture timestamp -``` - -## 6.2 Pre-launch gate - -TFTMAC refuses to call the workload green unless: - -```text -guest Vulkan required set PASS -guest GLES 3.2 PASS -nonconformant override absent -display 1920x1080 -runtime manifest identity current -``` - -## 6.3 Launch - -First success: - -The client no longer reports the ES 3.2 hardware-requirement error. - -## 6.4 Gameplay acceptance - -Required: - -```text -account/lobby flow reachable -current live content loads -queue succeeds -match starts -game renders -audio works -input works -20+ minute crash-free live session -``` - -### Phase 6 exit gate - -Current official TFT is genuinely playable on the final graphics architecture. - ---- - -# PHASE 7 — Performance, diagnostics, audio, microphone, input - -## Objective - -Turn functional success into measured production quality. - -## 7.1 Session diagnostics - -Every session produces: - -```text -Logs//session.json -Logs//events.jsonl -Logs//frame-times.jsonl -Logs//logcat.txt -Logs//emulator.log -Logs//summary.md -``` - -Include all locked component identities and capability hashes. - -## 7.2 Frozen TFT performance benchmark - -Measurement: - -```text -2-minute warm-up excluded -600 continuous measured seconds -60 Hz display -SurfaceFlinger timestamps primary -``` - -PASS: - -```text -Average FPS >= 58.0 -P95 <= 20.0 ms -P99 <= 33.334 ms -jank (>33.334 ms) <= 1.0% -stalls >100 ms <= 3 / 600 s -no crash -no device loss -no repeated validation-error storm -``` - -## 7.3 Candidate regression gate - -A new candidate must not regress: - -```text -Average FPS > 1 FPS -P99 > 3% -jank > 0.25 percentage points -median input-to-present > 5 ms -P95 input-to-present > 8.334 ms -``` - -and must still satisfy absolute thresholds. - -## 7.4 Resource-profile benchmark - -Run: - -```text -6 vCPU / 6 GB -8 vCPU / 8 GB -``` - -Selection: - -1. both must be measured identically; -2. any failing absolute threshold is rejected; -3. lower P99 wins; -4. if within 3%, lower host CPU wins. - -Persist winner. - -## 7.5 Renderer tuning - -Only benchmark-backed changes are allowed. - -Candidate areas: - -- MoltenVK synchronization/queue behavior; -- gfxstream batching; -- descriptor behavior; -- shader compilation; -- present pacing. - -Every change receives an A/B benchmark ID. - -## 7.6 Audio - -First use direct emulator CoreAudio. - -PASS: - -- continuous output during 20+ minute test; -- no blocking underrun condition; -- no audio crash. - -## 7.7 Microphone - -Implement: - -```text -CoreAudio input --> TFTMAC capture --> authenticated emulator controller injectAudio --> Android mic -``` - -Create a dedicated Android microphone test app. - -PASS: - -- macOS permission granted; -- selected input device identified; -- input meter responds; -- mute works; -- Android app receives audio; -- 5-minute capture/loopback has no fatal discontinuity. - -## 7.8 Input - -Use emulator controller APIs. - -The probe measures injection-to-visible-frame latency. - -This evidence becomes the baseline used by the native shell in Phase 8. - -### Phase 7 exit gate - -All frozen performance thresholds pass; audio, microphone transport, and input probes pass. - ---- - -# PHASE 8 — Native macOS presentation - -## Objective - -Hide emulator chrome without sacrificing responsiveness. - -## 8.1 Runtime control security - -Production discovers the running emulator's authenticated control endpoint from the local discovery file. - -No unauthenticated fixed gRPC port in production. - -## 8.2 Video transport - -Use emulator screenshot streaming with shared-memory/MMAP transport where available. - -Path: - -```text -emulator MMAP frame --> TFTMAC mapped memory --> Metal texture --> MTKView/native SwiftUI/AppKit container -``` - -Production does not use PNG/JPEG streaming for normal frame delivery. - -## 8.3 Native input - -Map: - -```text -mouse -> touch -drag -> touch gesture -scroll -> gesture -keyboard -> key event -Back/Home -> emulator control -``` - -## 8.4 Latency acceptance - -Compare native path to direct Qt emulator control path. - -Required: - -```text -native median <= Qt + 5 ms -native P95 <= Qt + 8.334 ms -native absolute median <= 50 ms -native absolute P95 <= 83.334 ms -``` - -If any bound fails, emulator chrome is not removed yet. - -## 8.5 Native controls - -One TFTMAC window exposes: - -```text -Play / Stop -Back -Home -Volume -Microphone -Fullscreen -Google Play / Update -Screenshot -Diagnostics -Rollback/Runtime Status -``` - -### Phase 8 exit gate - -One Dock icon; one native Mac window; Android runtime hidden; latency gate green. - ---- - -# PHASE 9 — Generality, updates, rollback, packaging, final release - -## Objective - -Prove the runtime is general and maintainable. - -## 9.1 Generality Corpus A — GLES CTS - -Source: - -```text -opengl-es-cts-3.2.14.1 -locked full commit from Phase 0 -Apache-2.0 -``` - -Run Android GLES32 official mustpass applicable cases. - -PASS: - -```text -zero Fail -zero Crash -zero Timeout -all required cases executed -NotSupported only where CTS/spec allows optional support -``` - -Archive `.qpa`. - -## 9.2 Generality Corpus B — Vulkan CTS - -Source: - -```text -vulkan-cts-1.4.6.1 -5c8aae22885448d70a2873e94a93b24b49505c32 -Apache-2.0 -``` - -Run: - -```text -ssot/vulkan-required-cases.txt -``` - -PASS: - -```text -zero Fail -zero Crash -zero Timeout -100% case-list execution -``` - -## 9.3 Generality Corpus C — Vulkan Samples - -Source: - -```text -89dd3af22d41f9244eeab6e0650460112285c0e1 -Apache-2.0 -``` - -Run: - -```text -dynamic_rendering -compute_nbody -``` - -Each: - -```text -1920x1080 -10,000 frames or 10 minutes -zero crash -zero device loss -zero validation ERROR -responsive input -startup/mid/end screenshots show non-uniform rendered content -``` - -## 9.4 Runtime identity - -Each runtime has: - -```text -build ID -AEMU resolved-manifest hash -qemu commit -gfxstream commit -MoltenVK commit -patch-series hash -Android image revision -probe-suite version -``` - -## 9.5 Two-slot rollback - -```text -Runtime/current -Runtime/previous -``` - -Promotion: - -```text -candidate --> capability probes --> generality smoke --> TFT smoke --> performance regression gate --> current -``` - -Failure leaves `current` unchanged. - -## 9.6 Game updates - -Google Play remains app authority. - -After a game update: - -1. capture new package identity; -2. rerun capability gate; -3. launch smoke; -4. if workload requirement fails, report compatibility red without corrupting runtime. - -## 9.7 macOS packaging - -Final bundle: - -```text -TFTMAC.app -``` - -Includes: - -```text -native shell -runtime launcher -probe binaries -gRPC client/protobuf -runtime manifest -licenses -``` - -Large Android image/userdata stays under `/Volumes/MAC MINI M4/TFTMAC/Runtime`; it must not fall back to the internal disk. - -## 9.8 Signing - -Development: - -```text -ad-hoc -``` - -Release: - -```text -Developer ID Application -hardened runtime -notarization -stapling -``` - -Do not re-sign Riot/Google app binaries. - -## 9.9 Reliability matrix - -PASS all: - -```text -cold boot -warm boot -clean shutdown -forced TFTMAC quit recovery -macOS reboot -runtime candidate rejection -runtime rollback -Google Play game update -30+ minute session -3 sequential sessions -``` - -### Phase 9 exit gate - -Every final requirement in the traceability matrix has a PASS artifact. - ---- - -# 3. Requirement-to-proof traceability matrix - -| Requirement | Owner | Evidence | PASS | -|---|---|---|---| -| Reproducible source/toolchain | Phase 0 | locks/hashes | No critical null; hashes match | -| Canonical AEMU source | Phase 0 | resolved manifest + GuestAngle audit | `emu-master-dev` locked; audit PASS | -| Source-built emulator | Phase 1 | build/ctest/boot logs | all green | -| Host Vulkan | Phase 3 | host probe | all required executable cases | -| gfxstream | Phase 4 | transport delta | no required host-green/guest-red | -| Real GLES 3.2 | Phase 5 | guest GLES probe | genuine 3.2 + cases + render | -| No spoof | Phase 5 | env/source audit | nonconformant override absent | -| TFT current | Phase 6 | Play manifest/gameplay | 20+ min live session | -| Performance | Phase 7 | 600s metrics | all absolute bounds | -| Regression protection | Phase 7/9 | A/B report | all regression bounds | -| Audio | Phase 7 | audio test | continuous, no blocking failure | -| Mic | Phase 7 | mic test | CoreAudio→Android verified | -| Input | Phase 7/8 | latency report | absolute + relative bounds | -| Native Mac UX | Phase 8 | UI/latency acceptance | one window, hidden emulator | -| Diagnostics | Phase 7 | session bundle | required fields present | -| Google Play updates | Phase 9 | update receipt | app authority retained | -| Rollback | Phase 9 | rollback test | current protected, previous works | -| GLES generality | Phase 9 | CTS `.qpa` | corpus A PASS | -| Vulkan generality | Phase 9 | CTS/sample logs | corpora B/C PASS | -| Release | Phase 9 | signing/notary | receipts + launch | -| Protected-data boundary | all | Git/package scan | no private binaries/data leaked | - -This matrix is authoritative. No new proof subsystem is added unless a material required behavior lacks falsifiable evidence. - ---- - -# 4. Causal failure routing - -| Failure | Owner | Route | -|---|---|---| -| source AEMU build fails | host/toolchain | repair parity; remain Phase 1 | -| host Vulkan feature red | MoltenVK | repair Phase 3 | -| host green / guest red | gfxstream/AEMU | repair Phase 4 | -| guest Vulkan green / GLES 3.1 | built-in ANGLE requirement | inspect Phase 5 | -| built-in ANGLE revision is causal blocker | conditional custom ANGLE | activate only then | -| real GLES 3.2 green / TFT red | Riot/Unreal workload | inspect exact new requirement | -| TFT works / performance red | runtime performance | Phase 7 measured tuning | -| mic red | audio bridge | Phase 7 | -| native latency red | presentation | Phase 8 | -| candidate update red | release system | reject/rollback Phase 9 | - -No layer is changed merely because another project once needed a similar fix. - ---- - -# 5. Forbidden shortcuts - -Do not: - -- use `ro.opengles.version` as acceptance; -- ship nonconformant ANGLE version exposure; -- mix `emu-main-dev` evidence into the locked `emu-master-dev` authority; -- change the performance thresholds after seeing benchmark results; -- shrink the generality corpus because cases fail; -- prebuild custom ANGLE/rootable execution infrastructure without Phase 5 evidence; -- replace MoltenVK wholesale with an older donor fork; -- modify Riot binaries; -- use third-party APK mirrors; -- commit APKs, credentials, AVD userdata, or tokens; -- hide causal errors with retries/fallbacks; -- remove the working current runtime before candidate acceptance; -- expose unauthenticated emulator control in production. - ---- - -# 6. Final Definition of Done - -Implementation is complete only when: - -```text -[PASS] Phase 0 authority/lock -[PASS] Phase 1 source AEMU -[PASS] Phase 2 capability laboratory -[PASS] Phase 3 host Vulkan -[PASS] Phase 4 gfxstream transport -[PASS] Phase 5 genuine GLES 3.2 -[PASS] Phase 6 current official TFT gameplay -[PASS] Phase 7 frozen performance contract -[PASS] Phase 7 audio/mic/input -[PASS] Phase 8 native single-window Mac UX -[PASS] Phase 9 generality corpus -[PASS] Phase 9 Google Play update -[PASS] Phase 9 rollback -[PASS] Phase 9 signed/notarized release path -[PASS] protected-data audit -``` - -No partial phase may be relabeled as completion. - ---- - -# 7. Source anchors - -Primary authority links: - -- Emulator development branch: https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/DEVELOPMENT.md -- Emulator macOS development: https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/DARWIN-DEV.md -- Manifest: https://android.googlesource.com/platform/manifest/+/refs/heads/emu-master-dev/default.xml -- gfxstream: https://android.googlesource.com/platform/hardware/google/gfxstream/ -- MoltenVK: https://github.com/KhronosGroup/MoltenVK -- UTM donor issue: https://github.com/utmapp/UTM/issues/7575 -- GLES CTS: https://github.com/KhronosGroup/VK-GL-CTS/releases -- Vulkan CTS 1.4.6.1: https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS/+/refs/tags/vulkan-cts-1.4.6.1 -- Vulkan Samples: https://github.com/KhronosGroup/Vulkan-Samples -- Android SDK: https://developer.android.com/studio -- Vulkan SDK: https://vulkan.lunarg.com/sdk/home - ---- - -# 8. Authority rule - -This plan and `TFTMAC_GPU_RUNTIME_SSOT.md` describe the **same architecture**. - -They must be revised together if architecture changes. - -After Phase 0: - -```text -STACK.lock.yaml -``` - -owns exact machine-resolved versions. - -Capability probes own graphics truth. - -The frozen performance contract owns optimization acceptance. - -The traceability matrix owns completion evidence. +A future source-runtime effort would require a new, separately approved measured blocker proving that the released emulator cannot satisfy a required product function. The existence of old source locks or historical experiments is not sufficient authorization. diff --git a/TFTMAC_GPU_RUNTIME_SSOT.md b/TFTMAC_GPU_RUNTIME_SSOT.md index 3b0840d..1c6a35a 100644 --- a/TFTMAC_GPU_RUNTIME_SSOT.md +++ b/TFTMAC_GPU_RUNTIME_SSOT.md @@ -1,1094 +1,72 @@ -# TFTMAC GPU Runtime — Single Source of Truth +# TFTMAC Runtime — Single Source of Truth -**Version:** 2.0 revised after ZenGate v2.3 remediation -**Freeze date:** 2026-08-26 -**Status:** Planning authority; implementation must not begin until the companion implementation plan passes ZenGate -**Project:** One project only — `TFTMAC` -**Primary production workload:** Current official Teamfight Tactics Android client -**Shipping render target:** 1920×1080 at 60 Hz -**North-star objective:** A general, high-performance Android 3D runtime for Apple Silicon that truthfully provides modern Vulkan capability and genuine OpenGL ES 3.2 through ANGLE, renders through Metal, and is surfaced as a native macOS application. +**Status:** CURRENT RUNTIME AUTHORITY +**Updated:** 2026-08-29 +**Project:** TFTMAC ---- +## Current production/control runtime -# 1. Product win condition - -TFTMAC is complete only when all of the following are true: - -1. A source-built Android Emulator/AEMU runtime executes on Apple Silicon. -2. The host Vulkan layer is backed by Metal through a locked MoltenVK implementation. -3. gfxstream transports the required Vulkan features into the Android guest. -4. Android's ANGLE path creates a **real GLES 3.2 EGL context** without nonconformant version spoofing. -5. The current official Google Play TFT client passes its graphics-hardware gate and is playable at 1920×1080. -6. The runtime satisfies the frozen performance acceptance contract in this SSOT. -7. Audio, microphone transport, keyboard/mouse/touch, local diagnostics, update, and rollback are operational. -8. The emulator chrome is hidden in normal use and TFTMAC provides one native macOS application window. -9. The frozen non-TFT generality corpus passes, proving the graphics runtime is not a TFT-only special case. - -The final product is not “TFT running in an emulator.” - -It is: - -> **A modern Apple-Silicon Android graphics runtime, surfaced as a native Mac application, with TFT as its first production workload.** - ---- - -# 2. Hard architecture invariants - -## 2.1 One project - -There is one repository and one product: - -```text -TFTMAC -``` - -AEMU, gfxstream, ANGLE, MoltenVK, Khronos tests, and reference implementations are upstream dependencies or donors, not separate product projects. - -## 2.2 No capability spoofing - -The following is never sufficient proof of GLES 3.2: - -```text -ro.opengles.version=196610 -``` - -TFTMAC must never ship ANGLE with: - -```text -exposeNonConformantExtensionsAndVersions -``` - -enabled as a way to make software believe unsupported functionality exists. - -A GLES 3.2 PASS requires: - -```text -EGL context request = 3.2 -context creation = success -GL_VERSION = OpenGL ES 3.2... -required executable probe cases = PASS -known render output = PASS -``` - -## 2.3 No Riot binary modification - -TFTMAC may: - -- install/update through Google Play; -- inspect package metadata; -- observe runtime graphics behavior; -- control the Android runtime around the app. - -TFTMAC may not: - -- patch Riot gameplay code; -- bypass Riot graphics checks by modifying Riot binaries; -- re-sign Riot binaries; -- use third-party APK mirrors as package authority; -- commit Riot APKs or private Android userdata to Git. - -## 2.4 Measurement owns unknowns - -A material unknown is resolved by a deterministic probe at its owning boundary. - -The normal failure path is: - -```text -host Vulkan - ↓ -gfxstream guest Vulkan - ↓ -Android ANGLE / GLES - ↓ -TFT workload -``` - -A failure is repaired at the first boundary where evidence changes from PASS to FAIL. - ---- - -# 3. Canonical source authority - -## 3.1 Android Emulator branch authority - -For this project the authoritative Android Emulator development branch is: - -```text -emu-master-dev -``` - -Reason: the official Android Emulator DEVELOPMENT and macOS development documentation identify `emu-master-dev` as the major emulator development branch and instruct developers to initialize the platform manifest from that branch. - -Official references: - -- https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/DEVELOPMENT.md -- https://android.googlesource.com/platform/external/qemu/+/emu-master-dev/android/docs/DARWIN-DEV.md -- https://android.googlesource.com/platform/manifest/+/refs/heads/emu-master-dev/default.xml - -`emu-main-dev` is not co-authoritative for TFTMAC. It may exist upstream, but this project does not mix behavior or assumptions between the two branches. - -## 3.2 Freeze rule - -Phase 0 initializes: - -```bash -repo init \ - -u https://android.googlesource.com/platform/manifest \ - -b emu-master-dev -repo sync -c -j8 -repo manifest -r > ssot/upstreams-aemu.lock.xml -``` - -From that point forward: - -```text -ssot/upstreams-aemu.lock.xml -``` - -is the source authority for the integrated AEMU family. - -Current branch names, remembered commits, or web research do not override the resolved manifest. - -## 3.3 GuestAngle authority check - -Before implementation code changes, the exact locked `external/qemu` revision must be inspected at: - -```text -android/android-emu/android/userspace-boot-properties.cpp -``` - -The preflight must prove that the locked revision: - -- supports `GuestAngle`; -- sets Android's hardware EGL implementation to ANGLE when GuestAngle is active; -- enables the Vulkan guest path required by GuestAngle; -- does not automatically enable ANGLE's nonconformant GLES-version exposure. - -The verification result is written to: - -```text -ssot/guestangle-authority.json -``` - -If the locked source no longer has materially equivalent semantics, implementation does not guess. The SSOT is revalidated against current source before coding begins. - ---- - -# 4. Frozen production architecture - -The primary production guest is **one official Google Play Android 17 ARM64 AVD**. - -```text -Official Android 17 Google Play ARM64 guest - | - +-------+-------+ - | | - GLES Native Vulkan - | | - Android built-in | - ANGLE/Vulkan | - +-------+-------+ - | - gfxstream - | - source-built AEMU - | - MoltenVK - | - Metal - | - Apple Silicon GPU - | - TFTMAC native shell -``` - -This is the normal architecture. - ---- - -# 5. Production Android guest - -## 5.1 System image - -Target packages: - -```text -platforms;android-37.1 -system-images;android-37.0;google_apis_playstore_ps16k;arm64-v8a -``` - -The exact installed package revisions are resolved by the current Android CLI during Phase 0 and frozen in `STACK.lock.yaml`. - -Requirement: - -```text -API 37 Google Play image revision >= 5 -``` - -## 5.2 AVD identity - -```text -TFTMAC_Live_API37 -``` - -Initial configuration: - -```text -Pixel Tablet profile -ARM64 -1920x1080 -280 DPI -8 vCPU -8192 MB RAM -768 MB VM heap -16 GB data partition minimum -host GPU -audio input enabled -landscape -Google Play enabled -``` - -No OEM device spoofing beyond the official Pixel Tablet AVD profile. - -## 5.3 Runtime ports +TFTMAC uses the released Google Android Emulator already proven on the target Apple Silicon host. Source-built AEMU is retired from the normal product path and is not required for build, launch, test, repair, or release. ```text +Runtime root: /Volumes/MAC MINI M4/TFTMAC/Runtime +Android Emulator: 37.1.11.0 (build 15917651) +ADB server: isolated port 5040 Emulator console: 5592 -ADB serial: emulator-5592 -Isolated ADB server: 5040 -``` - -Development-only gRPC may use: - -```text -8554 -``` - -Production control uses the authenticated emulator discovery endpoint and never exposes an unauthenticated fixed control service. - ---- - -# 6. Primary ANGLE strategy - -The production GLES path is: - -```text -Android built-in ANGLE -<- AEMU GuestAngle -<- guest Vulkan -<- gfxstream -<- MoltenVK -<- Metal -``` - -Normal launch features: - -```text -GuestAngle -Vulkan -GLESDynamicVersion -``` - -No custom ANGLE build is on the normal critical path. - ---- - -# 7. Conditional custom ANGLE adapter - -A custom ANGLE build is allowed only if all of the following are already proven: - -1. host Vulkan requirements are green; -2. gfxstream guest Vulkan requirements are green; -3. built-in Android 17 ANGLE still refuses or misimplements a genuine ES 3.2 context; -4. the failure is traced to the built-in ANGLE revision rather than Vulkan capability. - -Only then may the plan activate: - -```text -Custom ANGLE Adapter -``` - -Because a non-debuggable app cannot normally select a loose custom ANGLE package without root, this conditional adapter may introduce a **rootable Android 17 execution guest** while retaining the Google Play AVD as package/update authority. - -This is a conditional repair route, not a second normal architecture. - -It must not be built speculatively. - ---- - -# 8. Frozen toolchain and dependency family - -## 8.1 Apple - -```text -Xcode 26.6 -Build 17F113 -``` - -Official: -- https://developer.apple.com/download/all/ -- https://developer.apple.com/xcode/system-requirements/ - -## 8.2 Android command-line tools - -```text -commandlinetools-mac_arm64-15859902_latest.zip -SHA-256: -835b62a26162b229b441d1f6d4680383815a270809eb33522c0d480fa5002c4e -``` - -Official: -- https://developer.android.com/studio -- https://dl.google.com/android/repository/commandlinetools-mac_arm64-15859902_latest.zip - -## 8.3 Platform tools and control emulator - -Initial control references: - -```text -Platform-Tools 37.0.1 -Android Emulator 37.1.11 -``` - -The exact installed package revisions are frozen during preflight. - -## 8.4 Vulkan SDK - -```text -Vulkan SDK 1.4.357.0 -macOS SHA-256: -539433589c83522e6f31b1c7b418a4167e21597a4a361ab119e1dc0760cf3865 +AVD: TFT_Ultra_Tablet +Guest image: official Google Play ARM64 image +Target display: 1920x1080 / 60 Hz +Package: com.riotgames.league.teamfighttactics +Installer/update authority: com.android.vending ``` -Official: -- https://vulkan.lunarg.com/sdk/home +The current playable control profile is `tftmac_official_baseline_v1` at 6 vCPU / 6144 MB, Medium graphics, 60 FPS, Performance OFF. Ultra High is a measured rejected configuration on the target M4 host because of severe lag. -The SDK is the developer/validation toolchain, not the shipping driver once TFTMAC uses its selected MoltenVK build. +## EmulatorController authority -## 8.5 MoltenVK - -Reference baseline: - -```text -MoltenVK v1.4.2 -``` - -Official: -- https://github.com/KhronosGroup/MoltenVK -- https://github.com/KhronosGroup/MoltenVK/releases - -TFTMAC first tests the MoltenVK revision resolved by the locked AEMU manifest, then compares it with upstream v1.4.2. - -The better required feature set wins only if integration remains clean. - -## 8.6 UTM/CrossOver donor - -UTM/CrossOver MoltenVK geometry/cull work is a donor/reference only. - -Official/reference: -- https://github.com/utmapp/UTM/issues/7575 -- https://github.com/utmapp/UTM/releases -- https://github.com/utmapp/MoltenVK/tree/crossovers/v25.1.0 - -Never replace the selected MoltenVK base wholesale merely because UTM already contains a feature. - -Port only the smallest causal patch after probe evidence. - ---- - -# 9. Persistent filesystem authority - -Bulk storage authority is the external M4 volume: - -```text -/Volumes/MAC MINI M4/TFTMAC/ -├── Build/ -└── Runtime/ - ├── SDK/ - ├── AVD/ - ├── Packages/ - ├── Probes/ - ├── Manifests/ - └── VulkanSDK/ -``` - -Small control/log state may remain internal: - -```text -~/Library/Application Support/TFTMAC/ -├── Logs/ -├── Diagnostics/ -└── Rollback/ -``` - -The external volume is mandatory for default Build and Runtime roots. If `/Volumes/MAC MINI M4` is unavailable, TFTMAC fails closed and must not create bulk Build or Runtime data on the internal disk. - -Repository stores only code, lock files, patches, probes, manifests that contain no protected data, documentation, and tests. - -The repository must not contain: +The native application uses the exact controller protocol shipped with the installed stock emulator. ```text -Riot APKs -Google credentials -Riot credentials -AVD userdata -session tokens -OAuth tokens -private runtime disks +Installed: /Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto +Vendored: Vendor/AndroidEmulator/emulator_controller.proto +SHA-256: 1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f ``` ---- +The installed and vendored bytes were reverified equal during Clean Ownership Gate 4. Protocol drift fails closed until intentionally refreshed from the installed runtime. -# 10. Capability laboratory - -The capability laboratory is permanent product infrastructure. - -## 10.1 Host Vulkan probe - -Produces: +## Product architecture ```text -Diagnostics/host-vulkan.json +TFTMAC.app + -> AppKit window + -> Metal presentation + -> authenticated local EmulatorController + -> stock Google Android Emulator + -> official Google Play ARM64 guest + -> official Google Play TFT package + -> Riot official authentication/content lifecycle ``` -Checks and executes representative workloads for: +Google Play owns package installation and updates. Riot owns its own application authentication and content initialization. TFTMAC does not mirror, bundle, patch, re-sign, or privately update Riot binaries. -- API version; -- device/driver; -- geometry shaders; -- tessellation; -- shader cull distance; -- indirect draw; -- descriptor indexing; -- timeline semaphores; -- synchronization2; -- dynamic rendering; -- buffer device address; -- subgroups; -- sampler/filter features. +## Graphics/control evidence -Enumeration alone is not proof. +The known-good stock control currently uses host GPU acceleration through gfxstream, ANGLE/Vulkan and MoltenVK/Metal. The control profile exists to preserve the measured playable runtime while the native presentation/control path is completed. It is not a claim that every exposed graphics capability is independently conformant. -## 10.2 Guest Vulkan probe +Performance changes remain one-variable, reversible A/B experiments with explicit KEEP/REJECT evidence. Raw capture remains append-only during measurement and is normalized after capture. -Produces: +## Storage authority -```text -Diagnostics/guest-vulkan.json -Diagnostics/vulkan-transport-delta.json -``` +Protected runtime state remains under `/Volumes/MAC MINI M4/TFTMAC/Runtime` and must not be deleted by build/storage cleanup. AVD userdata, Google/Riot credentials, tokens, APK bytes and private runtime disks are not repository assets. -The delta report is the semantic owner for determining whether a missing capability belongs to MoltenVK or gfxstream/AEMU. +The abandoned source-build laboratory is not runtime authority. Historical source-build findings may remain only as compact evidence; no current command or document may recreate that laboratory as part of normal operation. -## 10.3 Guest GLES 3.2 probe +## Validation -Package: +Current source validation is: -```text -dev.tftmac.gpuprobe -``` - -Must execute: - -- EGL initialization; -- ES3 renderable config; -- 3.2 context creation; -- GL_VERSION / GL_VENDOR / GL_RENDERER; -- extension inventory; -- geometry shader; -- tessellation; -- compute; -- SSBO; -- texture buffer; -- cube-map array; -- multisample/sample shading; -- base-vertex path; -- synchronization; -- deterministic known-image output. - -## 10.4 Frame and input probe - -Produces: - -```text -Diagnostics/frame-performance.json -Diagnostics/input-latency.json +```sh +/bin/zsh scripts/verify-tftmac.command ``` -Sources: - -- SurfaceFlinger timestats; -- gfxinfo framestats where applicable; -- host monotonic timestamps; -- Android display refresh; -- native-shell input injection timestamps; -- first observable changed frame. - ---- - -# 11. Frozen performance acceptance contract - -This contract is fixed **before optimization** and must not be changed merely because a candidate misses it. - -## 11.1 Display budget - -Shipping refresh: - -```text -60 Hz -``` - -One frame budget: - -```text -16.667 ms -``` - -Two-frame budget: - -```text -33.334 ms -``` - -## 11.2 Gameplay measurement window - -For TFT performance acceptance: - -1. Enter a live rendered match. -2. Exclude the first **120 seconds** as shader/content warm-up. -3. Capture the next **600 continuous seconds**. -4. Use SurfaceFlinger-based presentation timestamps as the primary FPS/frame-time source. -5. If a metric is unavailable for a specific surface, record the fallback source explicitly rather than silently changing methodology. - -## 11.3 Absolute graphics thresholds - -Over the 600-second measurement window: - -```text -Average presented FPS >= 58.0 -P95 frame interval <= 20.0 ms -P99 frame interval <= 33.334 ms -Janky frame = interval > 33.334 ms -Janky frames <= 1.0% -Severe stall = interval > 100 ms -Severe stalls <= 3 in 600 seconds -No renderer crash -No Vulkan device loss -No repeated validation-error storm -``` - -58 FPS is the minimum 96.7% delivery rate for a 60 Hz target. - -P99 is capped at two frame budgets. - -## 11.4 Candidate regression thresholds - -A candidate runtime is not promoted if, compared with the currently accepted runtime under the same workload: - -```text -Average FPS decreases by > 1.0 FPS -or -P99 frame interval worsens by > 3% -or -jank percentage worsens by > 0.25 percentage points -or -median synthetic input-to-present latency worsens by > 5 ms -or -P95 synthetic input-to-present latency worsens by > 8.334 ms -``` - -A candidate must satisfy both absolute and regression thresholds. - -## 11.5 Native-wrapper input thresholds - -The native MMAP/Metal presentation path is compared against the direct emulator Qt control path using the deterministic input probe. - -Requirements: - -```text -Median native input-to-present <= Qt control + 5 ms -P95 native input-to-present <= Qt control + 8.334 ms -Absolute median input-to-present <= 50 ms -Absolute P95 input-to-present <= 83.334 ms -``` - -The native shell does not ship if it fails these bounds. - -## 11.6 Resource-profile selection - -Approved initial profiles: - -```text -A: 6 vCPU / 6144 MB -B: 8 vCPU / 8192 MB -``` - -Both run the same measurement workload. - -Selection: - -1. profile must satisfy all absolute thresholds; -2. lower P99 wins; -3. if P99 differs by <3%, lower host CPU usage wins; -4. selected profile is written to the runtime manifest. - -No third profile is added unless both A and B fail an explicit resource constraint. - ---- - -# 12. Frozen generality acceptance corpus - -The corpus is selected now, before graphics implementation. - -Implementation agents may not substitute easier tests. - -## Corpus A — Khronos OpenGL ES CTS 3.2 - -Source: - -```text -KhronosGroup/VK-GL-CTS -Tag: opengl-es-cts-3.2.14.1 -Release commit prefix published by Khronos: 067e883 -License: Apache-2.0 -API: OpenGL ES 3.2 / EGL -``` - -Official: -- https://github.com/KhronosGroup/VK-GL-CTS/releases -- https://github.com/KhronosGroup/VK-GL-CTS - -Before any implementation mutation, bootstrap resolves the full immutable tag commit with: - -```bash -git rev-list -n 1 opengl-es-cts-3.2.14.1 -``` - -and writes it into `STACK.lock.yaml`. - -Pass condition: - -- build the Android GLES32 CTS; -- run the official GLES 3.2 mustpass case list applicable to the declared context; -- zero `Fail`; -- zero `Crash`; -- zero `Timeout`; -- `NotSupported` is allowed only when the CTS itself treats the feature as optional for the declared API/extension set; -- produce the complete `.qpa` log and summary artifact. - -## Corpus B — Khronos Vulkan CTS 1.4.6.1 - -Source: - -```text -KhronosGroup/VK-GL-CTS -Tag: vulkan-cts-1.4.6.1 -Commit: -5c8aae22885448d70a2873e94a93b24b49505c32 -License: Apache-2.0 -API: Vulkan -``` - -Official: -- https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS/+/refs/tags/vulkan-cts-1.4.6.1 - -TFTMAC does not claim full Vulkan 1.4 conformance merely by running this corpus. - -The project freezes a **runtime-required Vulkan case list** before implementation, derived from: - -- features needed by the GLES 3.2 probe; -- core draw/compute/image/synchronization paths used by TFTMAC; -- dynamic rendering and WSI paths used by the host/guest stack. - -The exact case list is stored as: - -```text -ssot/vulkan-required-cases.txt -``` - -and hashed in `STACK.lock.yaml`. - -Pass condition: - -```text -zero Fail -zero Crash -zero Timeout -all cases in vulkan-required-cases.txt executed -``` - -Unsupported optional cases are not added to the required list after results are known. - -## Corpus C — Khronos Vulkan Samples - -Source: - -```text -KhronosGroup/Vulkan-Samples -Commit: -89dd3af22d41f9244eeab6e0650460112285c0e1 -License: Apache-2.0 -Android ARM64 -``` - -Pinned workloads: - -```text -dynamic_rendering -compute_nbody -``` - -Official: -- https://github.com/KhronosGroup/Vulkan-Samples - -Pass condition for each workload: - -1. build the pinned Android sample APK; -2. run at 1920×1080; -3. complete 10,000 rendered frames or 10 minutes, whichever occurs first; -4. zero process crash; -5. zero Vulkan device loss; -6. zero validation-layer errors classified as ERROR; -7. application remains responsive to injected Back/Home/input probe; -8. capture startup, mid-run, and final screenshots; each must contain non-uniform rendered content and the application surface must remain present. - -The corpus therefore contains both standardized conformance evidence and app-like Vulkan workloads. - ---- - -# 13. Patch policy - -The patch order is: - -```text -1. Existing supported configuration -2. Small local patch -3. Harvest a known donor implementation -4. New compatibility implementation -``` - -Every patch records: - -```text -component -upstream commit -reason -probe failing before -probe passing after -performance delta -upstreamability -``` - -## 13.1 MoltenVK geometry rule - -If the host Vulkan probe reports a required geometry/cull capability missing: - -1. reproduce the failure; -2. inspect current MoltenVK; -3. inspect UTM/CrossOver donor work; -4. port the smallest compatible patch; -5. add direct geometry regression coverage; -6. explicitly test indirect-draw interaction; -7. reject the patch if it only changes feature reporting without executing the workload. - ---- - -# 14. Package authority and update chain - -Google Play is the semantic owner of production app acquisition. - -For each TFT version, TFTMAC records: - -```json -{ - "packageName": "com.riotgames.league.teamfighttactics", - "installer": "com.android.vending", - "versionName": "...", - "versionCode": 0, - "capturedAt": "...", - "apks": [ - { - "path": "...", - "size": 0, - "sha256": "..." - } - ], - "signingCertificateSHA256": "..." -} -``` - -The manifest stays outside Git if it contains private local paths. - -Normal production updates happen through Google Play in the production AVD. - -A runtime update and a game update are separate operations. - ---- - -# 15. Native macOS shell - -Final normal-use architecture: - -```text -Android runtime hidden - | -emulator controller - | -shared/MMAP frame transport - | -Metal texture - | -native macOS view -``` - -The shell owns: - -- Play/Stop; -- Back/Home; -- fullscreen/window; -- volume; -- microphone; -- keyboard/mouse/touch; -- screenshot; -- diagnostics; -- Google Play/update navigation; -- rollback/runtime status. - -Production gRPC control uses authenticated local discovery. - -An unauthenticated fixed gRPC port is development-only. - ---- - -# 16. Audio and microphone - -## Audio - -Start with the emulator's direct CoreAudio path. - -Only replace it with gRPC `streamAudio` if measured latency/underrun evidence demonstrates an improvement. - -## Microphone - -Final path: - -```text -macOS CoreAudio input --> macOS microphone permission --> TFTMAC capture --> emulator controller injectAudio --> Android virtual microphone --> Android app -``` - -Mic acceptance uses a dedicated Android test app before relying on a game feature. - -TFTMAC can guarantee microphone transport; it cannot guarantee that every Android application exposes in-app voice chat. - ---- - -# 17. Diagnostics - -Default local root: - -```text -~/Library/Application Support/TFTMAC/Logs/ -``` - -Each session records: - -- runtime build ID; -- AEMU manifest hash; -- qemu/AEMU/gfxstream commits; -- MoltenVK commit and patches; -- Android image revision; -- ANGLE identity; -- app identity/version; -- display/resource profile; -- host model/macOS; -- renderer strings; -- Vulkan/GLES capability hashes; -- boot/launch times; -- frame statistics; -- CPU/memory; -- audio/mic state; -- input latency; -- errors/crashes; -- clean shutdown. - -No remote telemetry is required. - ---- - -# 18. Update and rollback - -Persistent runtime slots: - -```text -Runtime/current -Runtime/previous -``` - -Promotion: - -```text -candidate build --> source/lock verification --> capability probes --> generality corpus smoke subset --> TFT launch smoke --> performance regression gate --> promote current --> old current becomes previous -``` - -Failure: - -```text -candidate rejected -current remains active -``` - -AVD userdata is not destroyed by a runtime binary promotion. - ---- - -# 19. Machine SSOT - -`STACK.lock.yaml` contains exact resolved values. - -Required fields include: - -```yaml -schema: 2 -frozen_at: "2026-08-26" - -aemu: - authority_branch: "emu-master-dev" - resolved_manifest_sha256: null - qemu_commit: null - aemu_commit: null - gfxstream_commit: null - integrated_angle_commit: null - integrated_moltenvk_commit: null - -android: - api: 37 - play_image_package: "system-images;android-37.0;google_apis_playstore_ps16k;arm64-v8a" - play_image_revision: null - -moltenvk: - reference_tag: "v1.4.2" - selected_commit: null - patch_series_sha256: null - -generality: - gles_cts_tag: "opengl-es-cts-3.2.14.1" - gles_cts_commit: null - vulkan_cts_tag: "vulkan-cts-1.4.6.1" - vulkan_cts_commit: "5c8aae22885448d70a2873e94a93b24b49505c32" - vulkan_required_cases_sha256: null - vulkan_samples_commit: "89dd3af22d41f9244eeab6e0650460112285c0e1" - -performance: - fps_min: 58.0 - p95_ms_max: 20.0 - p99_ms_max: 33.334 - jank_threshold_ms: 33.334 - jank_pct_max: 1.0 - severe_stall_ms: 100.0 - severe_stalls_per_600s_max: 3 -``` - -Every `null` critical-path field must be resolved during Phase 0 **before implementation mutation begins**. - -After Phase 0: - -```text -STACK.lock.yaml contains no unresolved critical-path null. -``` - ---- - -# 20. Requirement-to-proof traceability - -| Requirement | Semantic owner / phase | Proof artifact | Pass condition | -|---|---|---|---| -| Reproducible toolchain/source | Phase 0 | `STACK.lock.yaml`, resolved manifest, hashes | No unresolved critical-path fields; hashes match | -| One authoritative AEMU branch | Phase 0 | `guestangle-authority.json` | Locked `emu-master-dev` source proves required GuestAngle semantics | -| Source-built AEMU | Phase 1 | build/test logs | Build succeeds; unit tests pass; production AVD boots | -| Real host Vulkan capability | Phase 2–3 | `host-vulkan.json` | Required executable feature probes pass | -| Correct gfxstream transport | Phase 4 | `vulkan-transport-delta.json` | No required host-green capability is guest-red | -| Genuine GLES 3.2 | Phase 5 | `guest-gles32.json`, render image | Real 3.2 context + every required executable case passes | -| No capability spoof | Phase 5 | runtime env/source audit | Nonconformant exposure absent in shipping config | -| Current official TFT works | Phase 6 | Google Play manifest + gameplay acceptance | Current client launches, queues, renders, 20+ min live session | -| 1920×1080 performance | Phase 7 | `frame-performance.json` | Meets every frozen absolute threshold | -| No performance regression | Phase 7 | benchmark comparison | Meets every frozen regression threshold | -| Audio | Phase 7 | audio diagnostic | Continuous output; no blocking underrun/error | -| Microphone transport | Phase 7 | mic loopback/test artifact | CoreAudio→Android input path verified | -| Input | Phase 7/8 | `input-latency.json` | Meets absolute and relative latency bounds | -| Native Mac single window | Phase 8 | UI acceptance + latency comparison | One native window; hidden emulator chrome; latency gate passes | -| Diagnostics | Phase 7–8 | session bundle | Required fields emitted; crash/error evidence retained | -| Google Play update path | Phase 9 | update acceptance | Update through Play retains runtime and package authority | -| Rollback | Phase 9 | rollback acceptance | Failed candidate leaves current active; previous restorable | -| General GLES compatibility | Phase 9 | GLES CTS `.qpa` | Corpus A pass criteria | -| General Vulkan compatibility | Phase 9 | Vulkan CTS + samples logs | Corpora B/C pass criteria | -| Release packaging | Phase 9 | codesign/notary receipts | Signed/notarized app passes local launch | -| No protected binary/data leakage | All phases | Git scan / package audit | No Riot APKs, credentials, userdata, tokens committed or bundled | - -This matrix is the canonical requirement-to-proof map. - ---- - -# 21. Known measured unknowns - -These are not architecture decisions left open. - -They are deterministic measurements: - -1. exact resolved commits on `emu-master-dev`; -2. exact selected API 37 Play image revision; -3. exact Vulkan feature delta; -4. whether selected MoltenVK already provides every host requirement; -5. whether gfxstream loses any required feature; -6. whether Android built-in ANGLE creates genuine ES 3.2 after Vulkan is correct; -7. whether the conditional custom ANGLE adapter is needed; -8. current TFT requirements beyond GLES 3.2, if any; -9. which of the two frozen guest resource profiles wins; -10. whether native MMAP/Metal presentation satisfies the frozen latency gate. - -Each item has one evidence-producing phase in the companion plan. - ---- - -# 22. Final authority rule - -There is no architecture-precedence workaround between documents. - -This SSOT and `TFTMAC_FULL_IMPLEMENTATION_PLAN.md` must describe the same production architecture. - -For machine-resolved values: - -```text -STACK.lock.yaml -``` - -wins over remembered prose after Phase 0. - -For capability decisions: - -```text -probe output -``` - -wins over hypotheses. - -For performance: - -```text -frozen acceptance contract + benchmark evidence -``` - -wins over subjective judgment. - -Any future architecture change updates the SSOT and implementation plan together before implementation proceeds. +Runtime acceptance additionally verifies the stock SDK/AVD, controller-protocol equality, official TFT package/installer authority, clean start/stop, and absence of dependency on the retired source-build tree. diff --git a/Vendor/AndroidEmulator/SOURCE.json b/Vendor/AndroidEmulator/SOURCE.json index d06248e..67eaad8 100644 --- a/Vendor/AndroidEmulator/SOURCE.json +++ b/Vendor/AndroidEmulator/SOURCE.json @@ -1,6 +1,6 @@ { "schema": 1, - "observedAt": "2026-08-29T22:19:36.947Z", + "observedAt": "2026-08-30T03:58:38.083Z", "authority": "INSTALLED_ANDROID_EMULATOR", "emulatorVersion": "Android emulator version 37.1.11.0 (build_id 15917651) (CL:N/A)", "emulatorBinary": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/emulator", diff --git a/ssot/phase0-remediation-inventory.md b/ssot/phase0-remediation-inventory.md index 7fc90e9..b7d4a64 100644 --- a/ssot/phase0-remediation-inventory.md +++ b/ssot/phase0-remediation-inventory.md @@ -1,75 +1,17 @@ -# TFTMAC GPU Runtime v2.0 — Phase 0 Remediation Inventory +# Historical Phase 0 Source-Build Evidence -This file is evidence and execution guidance only. It does not supersede `TFTMAC_GPU_RUNTIME_SSOT.md`, `TFTMAC_FULL_IMPLEMENTATION_PLAN.md`, or `STACK.lock.yaml`. +**Status:** RETIRED EVIDENCE — NOT EXECUTION GUIDANCE -## Authority state +The former GPU-runtime program attempted a source-built Android Emulator path. It established useful historical facts, including an `emu-master-dev` source freeze, host/toolchain compatibility findings, and a real multi-thousand-step AEMU compile before that architecture was retired. -- Revised SSOT and implementation plan were reviewed together as one coupled authority set. -- ZenGate v2.3 hard gates are clear; calculated result: Q=98, R=5, Z=93 => PASS. -- Exact approved input hashes are frozen in `ssot/AUTHORITY_INPUTS.sha256`. -- Canonical authority files must be present in the repository under the names in that hash file before Phase 0 can PASS. +Current TFTMAC does not require that source checkout or its build outputs. The released Google Android Emulator 37.1.11 is the verified runtime authority, and native TFTMAC freezes the installed EmulatorController protocol directly from that runtime. -## Current base +Preserved historical conclusions: -- GitHub authority base: `1d8f681336a5d4f2f5b93fddacb8ce822cc099c5`. -- Managed implementation change was rebased onto that exact `origin/master` before Phase 0 repository writes. +- the source family was `emu-master-dev`; +- the source experiment reached a real AEMU/gfxstream compile; +- one observed failure involved an obsolete macOS deployment-target/toolchain mismatch; +- large source/build artifacts were moved to external storage because they were inappropriate for normal internal-disk operation; +- later measured work proved the released stock emulator is the correct product control/runtime path. -## Confirmed Phase 0 observations - -### Host - -- Architecture: arm64 — PASS. -- Hardware: Apple M4 Mac mini — PASS. -- macOS: 26.6.2 (25G83) — observed. -- Active Xcode: 26.4 / 17E192 — FAIL against frozen Xcode 26.6 / 17F113 requirement. -- `/Applications` discovery found no Xcode 26.6 installation at observation time. - -### Android command-line tools - -- `commandlinetools-mac_arm64-15859902_latest.zip` downloaded to the canonical TFTMAC Application Support root. -- SHA-256 verified: `835b62a26162b229b441d1f6d4680383815a270809eb33522c0d480fa5002c4e` — PASS. -- Android SDK package installation is blocked pending explicit Android SDK license acceptance evidence; bootstrap intentionally refuses to auto-accept terms. - -### Vulkan SDK - -- `vulkaninfo` not found in active SDK or standard paths. -- Frozen required SDK remains Vulkan SDK 1.4.357.0 with SHA-256 `539433589c83522e6f31b1c7b418a4167e21597a4a361ab119e1dc0760cf3865`. - -### AEMU source freeze - -- `emu-master-dev` repo initialization began successfully. -- First `repo sync -c -j8` failed because the internal user volume ran out of free space while packing AEMU prebuilts. -- Failure was storage-only; no source-authority contradiction was observed. -- The v2 tooling now uses `/Volumes/MAC MINI M4/TFTMAC/Build` as the default build/source root instead of the internal Application Support `Build` directory. -- `TFTMAC_BUILD_ROOT` may override that path explicitly for portability. -- When the default external volume is unavailable, the tooling fails closed instead of silently recreating the large build tree on the internal disk. -- Migrate the existing partial internal `Build` tree to the external build root intact, verify it, then resume the same frozen sync. Do not use an Xcode/Developer-directory symlink, do not discard the partial AEMU checkout, do not switch branches, and do not substitute `emu-main-dev`. - -## Legacy implementation quarantine - -Current `master` predates the v2.0 authority and is donor/legacy evidence, not acceptance proof. - -Observed conflicts that must be removed or replaced only after Phase 0 PASS: - -- production path is Android 16 / API 36; -- AVD names include `TftLiveStore` and `TftHighEndTablet` instead of `TFTMAC_Live_API37`; -- Swift launcher "Enhanced" mode injects `androidboot.opengles.version=196610`; -- documentation labels `196610` as OpenGL ES 3.2 capability; -- legacy architecture centers `LiveNativeAdapter` / future `UnrealEnhancedAdapter`, while v2.0 freezes one Android 17 built-in-ANGLE/gfxstream/AEMU/MoltenVK architecture with custom ANGLE only as a conditional Phase 5 repair adapter. - -None of those legacy claims may satisfy a v2.0 gate. - -## Phase 0 open loops - -1. Install/select Xcode 26.6 / 17F113 and rerun host preflight. -2. Migrate the existing internal TFTMAC `Build` tree to `/Volumes/MAC MINI M4/TFTMAC/Build`, verify it, remove the verified internal duplicate, and resume the same `emu-master-dev` resolved-manifest sync from the external build root. -3. Complete Android SDK license acceptance, then install/freeze exact API 37 package revisions and create `TFTMAC_Live_API37`. -4. Install/verify Vulkan SDK 1.4.357.0 and capture `vulkaninfo --summary`. -5. Complete resolved AEMU manifest; freeze qemu/aemu/gfxstream/ANGLE/MoltenVK commits and GuestAngle source audit. -6. Freeze MoltenVK v1.4.2 reference commit. -7. Resolve full `opengl-es-cts-3.2.14.1` commit. -8. Generate exact `ssot/vulkan-required-cases.txt` from the pinned CTS tree and dependency map; hash it. Do not remove failing cases later. -9. Materialize the two approved authority documents under canonical repository names and verify their SHA-256 values. -10. Generate `ssot/preflight-report.md`; Phase 0 can pass only when every critical null is resolved. - -No Phase 1+ graphics mutation is authorized while any item above remains unresolved. +Do not restart repository synchronization, source compilation, CTS/reference downloads, or the former source-build workflow from this record. Any future source-runtime effort requires a separately approved measured blocker. diff --git a/ssot/phase0-source.json b/ssot/phase0-source.json index c94715f..9b6d671 100644 --- a/ssot/phase0-source.json +++ b/ssot/phase0-source.json @@ -1,5 +1,6 @@ { - "schema": 1, + "schema": 2, + "status": "RETIRED_SOURCE_BUILD_EVIDENCE", "observedAt": "2026-08-28T04:03:27.389Z", "aemuBranch": "emu-master-dev", "manifestSHA256": "28865cd8a162178ba462b296f5714b6b7b6916e0cafcddfc0c5e44aa03f8e8d3", @@ -13,8 +14,7 @@ "guestAnglePass": true, "moltenVKIntegration": { "authority": "prebuilts/android-emulator", - "commit": "fb26612eb84576adb974fe7f18a49d263072116f", - "discovery": "ssot/moltenvk-integration-discovery.json" + "commit": "fb26612eb84576adb974fe7f18a49d263072116f" }, "moltenVKReference": { "tag": "v1.4.2", @@ -27,9 +27,5 @@ "vulkanCTSCommit": "5c8aae22885448d70a2873e94a93b24b49505c32", "vulkanSamplesCommit": "89dd3af22d41f9244eeab6e0650460112285c0e1" }, - "repoTool": { - "path": "/Volumes/MAC MINI M4/TFTMAC/Build/bin/repo", - "sha256": "1211b57b57e4122a9c546295a59b37d24068f1164d0e87bef096d5323c413e4f", - "version": "repo version v2.66.1\n (from https://gerrit.googlesource.com/git-repo)\n (tracking refs/heads/stable)\n (Mon, 10 Aug 2026 13:37:04 -0700)\nrepo launcher version 2.65\n (from /Volumes/MAC MINI M4/TFTMAC/Build/bin/repo)\n (currently at 2.66.1)\nrepo User-Agent git-repo/2.66.1 (Darwin) git/2.50.1 (Apple Git-155) Python/3.14.6\ngit 2.50.1 (Apple Git-155)\ngit User-Agent git/2.50.1 (Apple Git-155) (Darwin) git-repo/2.66.1\nPython 3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]\nOS Darwin 25.6.0 (Darwin Kernel Version 25.6.0: Fri Jul 31 19:11:03 PDT 2026; root:xnu-12377.161.14~5/RELEASE_ARM64_T8132)\nCPU arm64 (arm)\nBug reports: https://issues.gerritcodereview.com/issues/new?component=1370071" - } + "executionPolicy": "Historical source authority only. Normal TFTMAC operation must not recreate or execute the retired source-build laboratory." } diff --git a/ssot/runtime-authority.json b/ssot/runtime-authority.json new file mode 100644 index 0000000..33e9401 --- /dev/null +++ b/ssot/runtime-authority.json @@ -0,0 +1,48 @@ +{ + "schema": 1, + "observedAt": "2026-08-30T03:59:46Z", + "gate": "Gate 4 stock-runtime independence", + "result": "PASS", + "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", + "sdkRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk", + "emulator": { + "version": "Android emulator version 37.1.11.0", + "buildId": "15917651", + "avd": "TFT_Ultra_Tablet", + "adbSerial": "emulator-5592", + "adbServerPort": 5040, + "consolePort": 5592 + }, + "package": { + "name": "com.riotgames.league.teamfighttactics", + "versionName": "18.1-5402721", + "versionCode": "8402721", + "installer": "com.android.vending" + }, + "emulatorController": { + "installedPath": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto", + "vendoredPath": "Vendor/AndroidEmulator/emulator_controller.proto", + "sha256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "byteEquality": true + }, + "buildTreeRequiredByLiveRuntime": false, + "retiredApplicationRequired": false, + "processAudit": { + "operation": "tftmac-gate4-process-audit-20260829", + "duplicateRisk": { + "tftmacApps": 1, + "emulators": 1, + "samplers": 1, + "adbServers": 1 + }, + "buildTreeProcessReferences": 0 + }, + "evidenceOperations": [ + "tftmac-gate4-runtime-inventory-20260829", + "tftmac-gate4-start-baseline-20260829", + "tftmac-gate4-package-state-20260829", + "tftmac-gate4-proto-equality-20260829", + "tftmac-gate4-process-audit-20260829", + "tftmac-gate4-clean-stop-20260829" + ] +} From 6330e72d5626d2563974ed10acbc3af8573b8dac Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 23:18:35 -0500 Subject: [PATCH 08/19] Reclaim abandoned build storage and harden runtime startup --- ssot/storage-reclamation.json | 28 +++++++ tools/tftmac-clean-source-layers.mjs | 105 +++++++++++++++++++++++++++ tools/tftmac-direct-control.mjs | 41 +++++++++-- 3 files changed, 166 insertions(+), 8 deletions(-) create mode 100644 ssot/storage-reclamation.json create mode 100644 tools/tftmac-clean-source-layers.mjs diff --git a/ssot/storage-reclamation.json b/ssot/storage-reclamation.json new file mode 100644 index 0000000..e4299a0 --- /dev/null +++ b/ssot/storage-reclamation.json @@ -0,0 +1,28 @@ +{ + "schema": 1, + "observedAt": "2026-08-30T04:06:34.933Z", + "buildRoot": "/Volumes/MAC MINI M4/TFTMAC/Build", + "reclaimRoot": "/Volumes/MAC MINI M4/TFTMAC/Build.reclaiming", + "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", + "quiescence": { + "liveBuildUsers": [] + }, + "buildBytesBefore": 141198893056, + "runtimeBytesBefore": 31927107584, + "dfBefore": "Filesystem 1024-blocks Used Available Capacity Mounted on\n/dev/disk7s1 999678976 796053660 203420880 80% /Volumes/MAC MINI M4", + "state": "COMPLETE", + "completedAt": "2026-08-30T04:08:07.738Z", + "buildBytesAfter": 0, + "reclaimedBytes": 141198893056, + "runtimeBytesAfter": 31926767616, + "runtimeAllocatedByteDelta": -339968, + "runtimeIntegrity": { + "emulatorPresent": true, + "adbPresent": true, + "avdPresent": true, + "installedProtoSHA256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "frozenProtoMatch": true + }, + "dfAfter": "Filesystem 1024-blocks Used Available Capacity Mounted on\n/dev/disk7s1 999678976 658048080 341426460 66% /Volumes/MAC MINI M4", + "result": "PASS" +} diff --git a/tools/tftmac-clean-source-layers.mjs b/tools/tftmac-clean-source-layers.mjs new file mode 100644 index 0000000..cf3bf5a --- /dev/null +++ b/tools/tftmac-clean-source-layers.mjs @@ -0,0 +1,105 @@ +#!/usr/bin/env node +import crypto from 'node:crypto'; +import fs from 'node:fs'; +import path from 'node:path'; +import { spawnSync } from 'node:child_process'; + +const buildRoot = '/Volumes/MAC MINI M4/TFTMAC/Build'; +const reclaimRoot = '/Volumes/MAC MINI M4/TFTMAC/Build.reclaiming'; +const runtimeRoot = '/Volumes/MAC MINI M4/TFTMAC/Runtime'; +const receipt = path.resolve('ssot/storage-reclamation.json'); +const sourceAuthority = path.resolve('Vendor/AndroidEmulator/SOURCE.json'); + +function run(exe, args, options = {}) { + return spawnSync(exe, args, { encoding: 'utf8', maxBuffer: 32 * 1024 * 1024, ...options }); +} +function allocatedBytes(root) { + if (!fs.existsSync(root)) return 0; + const result = run('/usr/bin/du', ['-sk', root]); + if (result.status !== 0) throw new Error(`du failed for ${root}: ${result.stderr || result.stdout}`); + const kib = Number(String(result.stdout).trim().split(/\s+/)[0]); + if (!Number.isFinite(kib)) throw new Error(`Could not parse du output for ${root}`); + return kib * 1024; +} +function sha256(file) { + const h = crypto.createHash('sha256'); + h.update(fs.readFileSync(file)); + return h.digest('hex'); +} +function fail(message) { throw new Error(message); } +function df() { + const result = run('/bin/df', ['-kP', '/Volumes/MAC MINI M4']); + if (result.status !== 0) fail(`df failed: ${result.stderr || result.stdout}`); + return result.stdout.trim(); +} + +if (!fs.existsSync('/Volumes/MAC MINI M4')) fail('External volume is not mounted.'); +if (!fs.existsSync(runtimeRoot)) fail('Authoritative TFTMAC Runtime root is missing.'); +if (!path.resolve(buildRoot).startsWith('/Volumes/MAC MINI M4/TFTMAC/')) fail('Unsafe Build path.'); +if (path.resolve(buildRoot) === path.resolve(runtimeRoot)) fail('Build and Runtime roots collide.'); + +const ps = run('/bin/ps', ['-axo', 'pid=,command=']); +if (ps.status !== 0) fail('Could not inspect process table.'); +const liveBuildUsers = ps.stdout.split(/\r?\n/).filter(line => line.includes(buildRoot) || line.includes(reclaimRoot)); +if (liveBuildUsers.length) fail(`Build tree is not quiescent: ${liveBuildUsers.join(' | ')}`); + +const existingReceipt = fs.existsSync(receipt) ? JSON.parse(fs.readFileSync(receipt, 'utf8')) : null; +const dfBefore = existingReceipt?.dfBefore ?? df(); +const runtimeBytesBefore = existingReceipt?.runtimeBytesBefore ?? allocatedBytes(runtimeRoot); +const buildBytesBefore = existingReceipt?.buildBytesBefore ?? allocatedBytes(fs.existsSync(buildRoot) ? buildRoot : reclaimRoot); + +if (fs.existsSync(buildRoot) && fs.existsSync(reclaimRoot)) fail('Both Build and Build.reclaiming exist; refusing ambiguous deletion.'); +if (fs.existsSync(buildRoot)) fs.renameSync(buildRoot, reclaimRoot); + +const staged = { + schema: 1, + observedAt: existingReceipt?.observedAt ?? new Date().toISOString(), + buildRoot, + reclaimRoot, + runtimeRoot, + quiescence: { liveBuildUsers: [] }, + buildBytesBefore, + runtimeBytesBefore, + dfBefore, + state: fs.existsSync(reclaimRoot) ? 'RECLAIMING' : 'ALREADY_ABSENT' +}; +fs.writeFileSync(receipt, `${JSON.stringify(staged, null, 2)}\n`); + +if (fs.existsSync(reclaimRoot)) fs.rmSync(reclaimRoot, { recursive: true, force: false, maxRetries: 3, retryDelay: 250 }); +if (fs.existsSync(buildRoot) || fs.existsSync(reclaimRoot)) fail('Build reclamation is incomplete.'); + +const authority = JSON.parse(fs.readFileSync(sourceAuthority, 'utf8')); +const sdkRoot = path.join(runtimeRoot, 'sdk'); +const emulator = path.join(sdkRoot, 'emulator', 'emulator'); +const adb = path.join(sdkRoot, 'platform-tools', 'adb'); +const installedProto = path.join(sdkRoot, 'emulator', 'lib', 'emulator_controller.proto'); +const avdIni = path.join(runtimeRoot, 'avd', 'TFT_Ultra_Tablet.ini'); +for (const required of [emulator, adb, installedProto, avdIni]) { + if (!fs.existsSync(required)) fail(`Authoritative Runtime component missing after reclamation: ${required}`); +} +const installedProtoSHA256 = sha256(installedProto); +if (installedProtoSHA256 !== authority.installedProtoSHA256 || installedProtoSHA256 !== authority.vendoredProtoSHA256) { + fail(`Runtime protocol authority changed: ${installedProtoSHA256}`); +} + +const runtimeBytesAfter = allocatedBytes(runtimeRoot); +const output = { + ...staged, + completedAt: new Date().toISOString(), + buildBytesAfter: 0, + reclaimedBytes: buildBytesBefore, + runtimeBytesAfter, + runtimeAllocatedByteDelta: runtimeBytesAfter - runtimeBytesBefore, + runtimeIntegrity: { + emulatorPresent: true, + adbPresent: true, + avdPresent: true, + installedProtoSHA256, + frozenProtoMatch: true + }, + dfAfter: df(), + state: 'COMPLETE', + result: 'PASS' +}; +fs.writeFileSync(receipt, `${JSON.stringify(output, null, 2)}\n`); +process.stdout.write(`${JSON.stringify(output, null, 2)}\n`); diff --git a/tools/tftmac-direct-control.mjs b/tools/tftmac-direct-control.mjs index 38b35f2..1eb967e 100644 --- a/tools/tftmac-direct-control.mjs +++ b/tools/tftmac-direct-control.mjs @@ -880,8 +880,21 @@ function baselineRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval) { const preAudit = runtimeProcessAudit(); - const hasActiveRuntime = preAudit.processes.some(item => ['ANDROID_EMULATOR', 'TFTMAC_SAMPLER'].includes(item.kind)); - if (!hasActiveRuntime && preAudit.adb5040 === 'LISTENER_PRESENT') cleanupTftmacAdbResidue(); + const hasEmulator = preAudit.processes.some(item => item.kind === 'ANDROID_EMULATOR'); + if (!hasEmulator) { + const staleSamplers = preAudit.processes.filter(item => item.kind === 'TFTMAC_SAMPLER'); + for (const sampler of staleSamplers) { + try { process.kill(sampler.pid, 'SIGTERM'); } catch {} + } + if (staleSamplers.length) await sleep(250); + for (const sampler of staleSamplers) { + if (processAlive(sampler.pid)) { + try { process.kill(sampler.pid, 'SIGKILL'); } catch {} + } + } + cleanupTftmacAdbResidue(); + if (staleSamplers.length) await sleep(100); + } singleRuntimePreflight(); const runtime = discover(); if (!isUnder(runtime.sdkRoot, EXTERNAL_ROOT)) throw new Error('Selected SDK is not on the required external runtime volume.'); @@ -907,9 +920,10 @@ async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfi appendJSONL(path.join(captureDir, 'host-events.jsonl'), { utc: nowISO(), event: 'SAMPLER_STARTED', pid: samplerPid }); await sleep(350); if (!processAlive(samplerPid)) throw new Error(`LOGGER_START_FAILED: sampler PID ${samplerPid} did not remain alive.`); - adbServer(runtime); - const emulatorPid = startBaselineEmulator(runtime, captureDir, ramMB, controlProfileId); + let emulatorPid = null; try { + adbServer(runtime); + emulatorPid = startBaselineEmulator(runtime, captureDir, ramMB, controlProfileId); await waitForBoot(runtime); const guestUnlock = wakeGuestScreen(runtime, captureDir); const fullscreenPolicy = prepareGuestFullscreenPolicy(runtime); @@ -4579,13 +4593,24 @@ function cleanupTftmacAdbResidue() { const auditBefore = runtimeProcessAudit(); const tftmacAdb = auditBefore.processes.filter(item => item.kind === 'ADB_SERVER' && /tcp:5040\b/.test(item.command)); if (!tftmacAdb.length) return { action: 'TFTMAC_ADB_RESIDUE_ABSENT', auditBefore, auditAfter: auditBefore }; - const runtime = discover(); - const killed = command(runtime.adb, ['-P', ADB_PORT, 'kill-server'], { env: runtime.env, allowFailure: true, timeout: 10000 }); + for (const item of tftmacAdb) { + try { process.kill(item.pid, 'SIGTERM'); } catch {} + } + const deadline = Date.now() + 1000; + while (Date.now() < deadline && tftmacAdb.some(item => processAlive(item.pid))) { + const until = Date.now() + 50; + while (Date.now() < until) {} + } + for (const item of tftmacAdb) { + if (processAlive(item.pid)) { + try { process.kill(item.pid, 'SIGKILL'); } catch {} + } + } const auditAfter = runtimeProcessAudit(); if (auditAfter.processes.some(item => item.kind === 'ADB_SERVER' && /tcp:5040\b/.test(item.command))) { - throw new Error(`TFTMAC_ADB_RESIDUE_CLEANUP_FAILED: ${(killed.stderr || killed.stdout || '').trim()}`); + throw new Error('TFTMAC_ADB_RESIDUE_CLEANUP_FAILED: private ADB listener remains on port 5040'); } - return { action: 'TFTMAC_ADB_RESIDUE_CLEANED', killedPids: tftmacAdb.map(item => item.pid), killStatus: killed.status, auditBefore, auditAfter }; + return { action: 'TFTMAC_ADB_RESIDUE_CLEANED', killedPids: tftmacAdb.map(item => item.pid), auditBefore, auditAfter }; } function singleRuntimePreflight() { From 229163279be01170112eb32d3857edc907acac61 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 23:19:08 -0500 Subject: [PATCH 09/19] Record retained evidence and retirement gates --- ssot/project-retirement.json | 8 ++++++++ ssot/retained-evidence-index.json | 13 +++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 ssot/project-retirement.json create mode 100644 ssot/retained-evidence-index.json diff --git a/ssot/project-retirement.json b/ssot/project-retirement.json new file mode 100644 index 0000000..85d2941 --- /dev/null +++ b/ssot/project-retirement.json @@ -0,0 +1,8 @@ +{ + "schema": 1, + "authoritativeProject": "tftmac", + "projects": { + "tftmac2": { "state": "PENDING_UNIQUE_CONTENT_CHECK" }, + "tftmac-runtime": { "state": "PENDING_PUBLISHED_HEAD_REVIEW", "publishedHead": "994cf8d8524b87cc03c7decb4b253fc7be2253c7" } + } +} diff --git a/ssot/retained-evidence-index.json b/ssot/retained-evidence-index.json new file mode 100644 index 0000000..6d2cfaf --- /dev/null +++ b/ssot/retained-evidence-index.json @@ -0,0 +1,13 @@ +{ + "schema": 1, + "policy": "Decision relevance, not age. Preserve current playable baseline, package/runtime authority, promoted configuration evidence, current unresolved-failure evidence, and final native acceptance evidence. Superseded raw runs may be compacted only after their decision is represented durably.", + "protectedEvidence": [ + "ssot/runtime-authority.json", + "ssot/storage-reclamation.json", + "Vendor/AndroidEmulator/SOURCE.json", + "ssot/TFTMAC_PERFORMANCE_LAB.sql", + "ssot/TFTMAC_ENGINEERING_MAP.sql" + ], + "rawPruningThisGate": "NONE_REQUIRED", + "reason": "The approved first cleanup does not require age-based deletion. The dominant abandoned storage target has been reclaimed; raw telemetry remains bounded by decision relevance and may be pruned later only when superseded evidence is compacted." +} From 45441ca7136fae9697b0cd7c7a2aa6660099a41d Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 23:26:00 -0500 Subject: [PATCH 10/19] Retire redundant TFT project identities --- ssot/project-retirement.json | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/ssot/project-retirement.json b/ssot/project-retirement.json index 85d2941..b094965 100644 --- a/ssot/project-retirement.json +++ b/ssot/project-retirement.json @@ -1,8 +1,24 @@ { "schema": 1, "authoritativeProject": "tftmac", + "completedAt": "2026-08-30T04:22:00Z", "projects": { - "tftmac2": { "state": "PENDING_UNIQUE_CONTENT_CHECK" }, - "tftmac-runtime": { "state": "PENDING_PUBLISHED_HEAD_REVIEW", "publishedHead": "994cf8d8524b87cc03c7decb4b253fc7be2253c7" } - } + "tftmac2": { + "state": "RETIRED", + "catalogName": "RETIRED - TFTMAC2", + "uniqueContentCheck": "PASS", + "classification": "ALREADY_SUPERSEDED", + "evidence": "Only Clara foundation files existed; no active changes, operations, release, or unique implementation." + }, + "tftmac-runtime": { + "state": "RETIRED", + "catalogName": "RETIRED - TFTMAC Runtime", + "publishedHeadReviewed": "994cf8d8524b87cc03c7decb4b253fc7be2253c7", + "publishedChange": "7c24d6df-bb78-4a4d-9c8f-1b4028871f60", + "publishedChangeClosed": true, + "classification": "REJECTED_OBSOLETE", + "evidence": "Unique Phase-2 work belonged to the retired source-built AEMU/Android-17 compatibility route (MoltenVK provoking-vertex investigation). Current TFTMAC independently proves the stock Android Emulator 37.1.11 runtime and official Google Play TFT path without that source-build dependency, so no old compatibility code is migrated." + } + }, + "claraCatalogResult": "TFTMAC is the only non-retired TFT project identity." } From f439b241c1fa0a215ac0270bb49380eff8f6d084 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sat, 29 Aug 2026 23:47:35 -0500 Subject: [PATCH 11/19] Complete native Gate 1 protocol client --- .../emulator_controller.grpc.swift | 13758 ++++++++++++++++ .../emulator_controller.pb.swift | 6218 +++++++ TFTMAC.xcodeproj/project.pbxproj | 9 +- Vendor/AndroidEmulator/SOURCE.json | 12 +- scripts/generate-emulator-proto.command | 57 + scripts/verify-tftmac.command | 10 +- 6 files changed, 20061 insertions(+), 3 deletions(-) create mode 100644 Generated/EmulatorController/emulator_controller.grpc.swift create mode 100644 Generated/EmulatorController/emulator_controller.pb.swift create mode 100644 scripts/generate-emulator-proto.command diff --git a/Generated/EmulatorController/emulator_controller.grpc.swift b/Generated/EmulatorController/emulator_controller.grpc.swift new file mode 100644 index 0000000..f1c4f80 --- /dev/null +++ b/Generated/EmulatorController/emulator_controller.grpc.swift @@ -0,0 +1,13758 @@ +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/// Note that if you add/remove methods in this file you must update +/// the metrics sql as well ./android/scripts/gen-grpc-sql.py +/// +/// Please group deleted methods in a block including the date (MM/DD/YY) +/// it was removed. This enables us to easily keep metrics around after removal +/// +/// List of deleted methods +/// rpc iWasDeleted (03/12/12) +/// ... + +// DO NOT EDIT. +// swift-format-ignore-file +// swiftlint:disable all +// +// Generated by the gRPC Swift generator plugin for the protocol buffer compiler. +// Source: emulator_controller.proto +// +// For information on using the generated types, please see the documentation: +// https://github.com/grpc/grpc-swift + +import GRPCCore +import GRPCProtobuf +import SwiftProtobuf + +// MARK: - android.emulation.control.EmulatorController + +/// Namespace containing generated types for the "android.emulation.control.EmulatorController" service. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +internal enum Android_Emulation_Control_EmulatorController: Sendable { + /// Service descriptor for the "android.emulation.control.EmulatorController" service. + internal static let descriptor = GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController") + /// Namespace for method metadata. + internal enum Method: Sendable { + /// Namespace for "streamSensor" metadata. + internal enum streamSensor: Sendable { + /// Request type for "streamSensor". + internal typealias Input = Android_Emulation_Control_SensorValue + /// Response type for "streamSensor". + internal typealias Output = Android_Emulation_Control_SensorValue + /// Descriptor for "streamSensor". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamSensor", + type: .serverStreaming + ) + } + /// Namespace for "getSensor" metadata. + internal enum getSensor: Sendable { + /// Request type for "getSensor". + internal typealias Input = Android_Emulation_Control_SensorValue + /// Response type for "getSensor". + internal typealias Output = Android_Emulation_Control_SensorValue + /// Descriptor for "getSensor". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getSensor", + type: .unary + ) + } + /// Namespace for "setSensor" metadata. + internal enum setSensor: Sendable { + /// Request type for "setSensor". + internal typealias Input = Android_Emulation_Control_SensorValue + /// Response type for "setSensor". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setSensor". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setSensor", + type: .unary + ) + } + /// Namespace for "setPhysicalModel" metadata. + internal enum setPhysicalModel: Sendable { + /// Request type for "setPhysicalModel". + internal typealias Input = Android_Emulation_Control_PhysicalModelValue + /// Response type for "setPhysicalModel". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setPhysicalModel". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setPhysicalModel", + type: .unary + ) + } + /// Namespace for "getPhysicalModel" metadata. + internal enum getPhysicalModel: Sendable { + /// Request type for "getPhysicalModel". + internal typealias Input = Android_Emulation_Control_PhysicalModelValue + /// Response type for "getPhysicalModel". + internal typealias Output = Android_Emulation_Control_PhysicalModelValue + /// Descriptor for "getPhysicalModel". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getPhysicalModel", + type: .unary + ) + } + /// Namespace for "streamPhysicalModel" metadata. + internal enum streamPhysicalModel: Sendable { + /// Request type for "streamPhysicalModel". + internal typealias Input = Android_Emulation_Control_PhysicalModelValue + /// Response type for "streamPhysicalModel". + internal typealias Output = Android_Emulation_Control_PhysicalModelValue + /// Descriptor for "streamPhysicalModel". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamPhysicalModel", + type: .serverStreaming + ) + } + /// Namespace for "setClipboard" metadata. + internal enum setClipboard: Sendable { + /// Request type for "setClipboard". + internal typealias Input = Android_Emulation_Control_ClipData + /// Response type for "setClipboard". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setClipboard". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setClipboard", + type: .unary + ) + } + /// Namespace for "getClipboard" metadata. + internal enum getClipboard: Sendable { + /// Request type for "getClipboard". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getClipboard". + internal typealias Output = Android_Emulation_Control_ClipData + /// Descriptor for "getClipboard". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getClipboard", + type: .unary + ) + } + /// Namespace for "streamClipboard" metadata. + internal enum streamClipboard: Sendable { + /// Request type for "streamClipboard". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "streamClipboard". + internal typealias Output = Android_Emulation_Control_ClipData + /// Descriptor for "streamClipboard". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamClipboard", + type: .serverStreaming + ) + } + /// Namespace for "setBattery" metadata. + internal enum setBattery: Sendable { + /// Request type for "setBattery". + internal typealias Input = Android_Emulation_Control_BatteryState + /// Response type for "setBattery". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setBattery". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setBattery", + type: .unary + ) + } + /// Namespace for "getBattery" metadata. + internal enum getBattery: Sendable { + /// Request type for "getBattery". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getBattery". + internal typealias Output = Android_Emulation_Control_BatteryState + /// Descriptor for "getBattery". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getBattery", + type: .unary + ) + } + /// Namespace for "setGps" metadata. + internal enum setGps: Sendable { + /// Request type for "setGps". + internal typealias Input = Android_Emulation_Control_GpsState + /// Response type for "setGps". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setGps". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setGps", + type: .unary + ) + } + /// Namespace for "getGps" metadata. + internal enum getGps: Sendable { + /// Request type for "getGps". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getGps". + internal typealias Output = Android_Emulation_Control_GpsState + /// Descriptor for "getGps". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getGps", + type: .unary + ) + } + /// Namespace for "sendFingerprint" metadata. + internal enum sendFingerprint: Sendable { + /// Request type for "sendFingerprint". + internal typealias Input = Android_Emulation_Control_Fingerprint + /// Response type for "sendFingerprint". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "sendFingerprint". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendFingerprint", + type: .unary + ) + } + /// Namespace for "sendKey" metadata. + internal enum sendKey: Sendable { + /// Request type for "sendKey". + internal typealias Input = Android_Emulation_Control_KeyboardEvent + /// Response type for "sendKey". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "sendKey". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendKey", + type: .unary + ) + } + /// Namespace for "sendTouch" metadata. + internal enum sendTouch: Sendable { + /// Request type for "sendTouch". + internal typealias Input = Android_Emulation_Control_TouchEvent + /// Response type for "sendTouch". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "sendTouch". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendTouch", + type: .unary + ) + } + /// Namespace for "sendMouse" metadata. + internal enum sendMouse: Sendable { + /// Request type for "sendMouse". + internal typealias Input = Android_Emulation_Control_MouseEvent + /// Response type for "sendMouse". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "sendMouse". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendMouse", + type: .unary + ) + } + /// Namespace for "injectWheel" metadata. + internal enum injectWheel: Sendable { + /// Request type for "injectWheel". + internal typealias Input = Android_Emulation_Control_WheelEvent + /// Response type for "injectWheel". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "injectWheel". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "injectWheel", + type: .clientStreaming + ) + } + /// Namespace for "streamInputEvent" metadata. + internal enum streamInputEvent: Sendable { + /// Request type for "streamInputEvent". + internal typealias Input = Android_Emulation_Control_InputEvent + /// Response type for "streamInputEvent". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "streamInputEvent". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamInputEvent", + type: .clientStreaming + ) + } + /// Namespace for "sendPhone" metadata. + internal enum sendPhone: Sendable { + /// Request type for "sendPhone". + internal typealias Input = Android_Emulation_Control_PhoneCall + /// Response type for "sendPhone". + internal typealias Output = Android_Emulation_Control_PhoneResponse + /// Descriptor for "sendPhone". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendPhone", + type: .unary + ) + } + /// Namespace for "sendSms" metadata. + internal enum sendSms: Sendable { + /// Request type for "sendSms". + internal typealias Input = Android_Emulation_Control_SmsMessage + /// Response type for "sendSms". + internal typealias Output = Android_Emulation_Control_PhoneResponse + /// Descriptor for "sendSms". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "sendSms", + type: .unary + ) + } + /// Namespace for "setPhoneNumber" metadata. + internal enum setPhoneNumber: Sendable { + /// Request type for "setPhoneNumber". + internal typealias Input = Android_Emulation_Control_PhoneNumber + /// Response type for "setPhoneNumber". + internal typealias Output = Android_Emulation_Control_PhoneResponse + /// Descriptor for "setPhoneNumber". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setPhoneNumber", + type: .unary + ) + } + /// Namespace for "getStatus" metadata. + internal enum getStatus: Sendable { + /// Request type for "getStatus". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getStatus". + internal typealias Output = Android_Emulation_Control_EmulatorStatus + /// Descriptor for "getStatus". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getStatus", + type: .unary + ) + } + /// Namespace for "getScreenshot" metadata. + internal enum getScreenshot: Sendable { + /// Request type for "getScreenshot". + internal typealias Input = Android_Emulation_Control_ImageFormat + /// Response type for "getScreenshot". + internal typealias Output = Android_Emulation_Control_Image + /// Descriptor for "getScreenshot". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getScreenshot", + type: .unary + ) + } + /// Namespace for "streamScreenshot" metadata. + internal enum streamScreenshot: Sendable { + /// Request type for "streamScreenshot". + internal typealias Input = Android_Emulation_Control_ImageFormat + /// Response type for "streamScreenshot". + internal typealias Output = Android_Emulation_Control_Image + /// Descriptor for "streamScreenshot". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamScreenshot", + type: .serverStreaming + ) + } + /// Namespace for "streamAudio" metadata. + internal enum streamAudio: Sendable { + /// Request type for "streamAudio". + internal typealias Input = Android_Emulation_Control_AudioFormat + /// Response type for "streamAudio". + internal typealias Output = Android_Emulation_Control_AudioPacket + /// Descriptor for "streamAudio". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamAudio", + type: .serverStreaming + ) + } + /// Namespace for "injectAudio" metadata. + internal enum injectAudio: Sendable { + /// Request type for "injectAudio". + internal typealias Input = Android_Emulation_Control_AudioPacket + /// Response type for "injectAudio". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "injectAudio". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "injectAudio", + type: .clientStreaming + ) + } + /// Namespace for "getMicrophoneState" metadata. + internal enum getMicrophoneState: Sendable { + /// Request type for "getMicrophoneState". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getMicrophoneState". + internal typealias Output = Android_Emulation_Control_MicrophoneState + /// Descriptor for "getMicrophoneState". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getMicrophoneState", + type: .unary + ) + } + /// Namespace for "setMicrophoneState" metadata. + internal enum setMicrophoneState: Sendable { + /// Request type for "setMicrophoneState". + internal typealias Input = Android_Emulation_Control_MicrophoneState + /// Response type for "setMicrophoneState". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setMicrophoneState". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setMicrophoneState", + type: .unary + ) + } + /// Namespace for "getLogcat" metadata. + internal enum getLogcat: Sendable { + /// Request type for "getLogcat". + internal typealias Input = Android_Emulation_Control_LogMessage + /// Response type for "getLogcat". + internal typealias Output = Android_Emulation_Control_LogMessage + /// Descriptor for "getLogcat". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getLogcat", + type: .unary + ) + } + /// Namespace for "streamLogcat" metadata. + internal enum streamLogcat: Sendable { + /// Request type for "streamLogcat". + internal typealias Input = Android_Emulation_Control_LogMessage + /// Response type for "streamLogcat". + internal typealias Output = Android_Emulation_Control_LogMessage + /// Descriptor for "streamLogcat". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamLogcat", + type: .serverStreaming + ) + } + /// Namespace for "setVmState" metadata. + internal enum setVmState: Sendable { + /// Request type for "setVmState". + internal typealias Input = Android_Emulation_Control_VmRunState + /// Response type for "setVmState". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setVmState". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setVmState", + type: .unary + ) + } + /// Namespace for "getVmState" metadata. + internal enum getVmState: Sendable { + /// Request type for "getVmState". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getVmState". + internal typealias Output = Android_Emulation_Control_VmRunState + /// Descriptor for "getVmState". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getVmState", + type: .unary + ) + } + /// Namespace for "setDisplayConfigurations" metadata. + internal enum setDisplayConfigurations: Sendable { + /// Request type for "setDisplayConfigurations". + internal typealias Input = Android_Emulation_Control_DisplayConfigurations + /// Response type for "setDisplayConfigurations". + internal typealias Output = Android_Emulation_Control_DisplayConfigurations + /// Descriptor for "setDisplayConfigurations". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setDisplayConfigurations", + type: .unary + ) + } + /// Namespace for "getDisplayConfigurations" metadata. + internal enum getDisplayConfigurations: Sendable { + /// Request type for "getDisplayConfigurations". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getDisplayConfigurations". + internal typealias Output = Android_Emulation_Control_DisplayConfigurations + /// Descriptor for "getDisplayConfigurations". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getDisplayConfigurations", + type: .unary + ) + } + /// Namespace for "streamNotification" metadata. + internal enum streamNotification: Sendable { + /// Request type for "streamNotification". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "streamNotification". + internal typealias Output = Android_Emulation_Control_Notification + /// Descriptor for "streamNotification". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "streamNotification", + type: .serverStreaming + ) + } + /// Namespace for "rotateVirtualSceneCamera" metadata. + internal enum rotateVirtualSceneCamera: Sendable { + /// Request type for "rotateVirtualSceneCamera". + internal typealias Input = Android_Emulation_Control_RotationRadian + /// Response type for "rotateVirtualSceneCamera". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "rotateVirtualSceneCamera". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "rotateVirtualSceneCamera", + type: .unary + ) + } + /// Namespace for "setVirtualSceneCameraVelocity" metadata. + internal enum setVirtualSceneCameraVelocity: Sendable { + /// Request type for "setVirtualSceneCameraVelocity". + internal typealias Input = Android_Emulation_Control_Velocity + /// Response type for "setVirtualSceneCameraVelocity". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setVirtualSceneCameraVelocity". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setVirtualSceneCameraVelocity", + type: .unary + ) + } + /// Namespace for "setPosture" metadata. + internal enum setPosture: Sendable { + /// Request type for "setPosture". + internal typealias Input = Android_Emulation_Control_Posture + /// Response type for "setPosture". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setPosture". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setPosture", + type: .unary + ) + } + /// Namespace for "getBrightness" metadata. + internal enum getBrightness: Sendable { + /// Request type for "getBrightness". + internal typealias Input = Android_Emulation_Control_BrightnessValue + /// Response type for "getBrightness". + internal typealias Output = Android_Emulation_Control_BrightnessValue + /// Descriptor for "getBrightness". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getBrightness", + type: .unary + ) + } + /// Namespace for "setBrightness" metadata. + internal enum setBrightness: Sendable { + /// Request type for "setBrightness". + internal typealias Input = Android_Emulation_Control_BrightnessValue + /// Response type for "setBrightness". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setBrightness". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setBrightness", + type: .unary + ) + } + /// Namespace for "getDisplayMode" metadata. + internal enum getDisplayMode: Sendable { + /// Request type for "getDisplayMode". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getDisplayMode". + internal typealias Output = Android_Emulation_Control_DisplayMode + /// Descriptor for "getDisplayMode". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getDisplayMode", + type: .unary + ) + } + /// Namespace for "setDisplayMode" metadata. + internal enum setDisplayMode: Sendable { + /// Request type for "setDisplayMode". + internal typealias Input = Android_Emulation_Control_DisplayMode + /// Response type for "setDisplayMode". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setDisplayMode". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setDisplayMode", + type: .unary + ) + } + /// Namespace for "setXrOptions" metadata. + internal enum setXrOptions: Sendable { + /// Request type for "setXrOptions". + internal typealias Input = Android_Emulation_Control_XrOptions + /// Response type for "setXrOptions". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setXrOptions". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setXrOptions", + type: .unary + ) + } + /// Namespace for "getXrOptions" metadata. + internal enum getXrOptions: Sendable { + /// Request type for "getXrOptions". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getXrOptions". + internal typealias Output = Android_Emulation_Control_XrOptions + /// Descriptor for "getXrOptions". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getXrOptions", + type: .unary + ) + } + /// Namespace for "setEnvironment" metadata. + internal enum setEnvironment: Sendable { + /// Request type for "setEnvironment". + internal typealias Input = Android_Emulation_Control_Environment + /// Response type for "setEnvironment". + internal typealias Output = SwiftProtobuf.Google_Protobuf_Empty + /// Descriptor for "setEnvironment". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "setEnvironment", + type: .unary + ) + } + /// Namespace for "getEnvironment" metadata. + internal enum getEnvironment: Sendable { + /// Request type for "getEnvironment". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getEnvironment". + internal typealias Output = Android_Emulation_Control_Environment + /// Descriptor for "getEnvironment". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getEnvironment", + type: .unary + ) + } + /// Namespace for "getHostCameras" metadata. + internal enum getHostCameras: Sendable { + /// Request type for "getHostCameras". + internal typealias Input = SwiftProtobuf.Google_Protobuf_Empty + /// Response type for "getHostCameras". + internal typealias Output = Android_Emulation_Control_CameraList + /// Descriptor for "getHostCameras". + internal static let descriptor = GRPCCore.MethodDescriptor( + service: GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController"), + method: "getHostCameras", + type: .unary + ) + } + /// Descriptors for all methods in the "android.emulation.control.EmulatorController" service. + internal static let descriptors: [GRPCCore.MethodDescriptor] = [ + streamSensor.descriptor, + getSensor.descriptor, + setSensor.descriptor, + setPhysicalModel.descriptor, + getPhysicalModel.descriptor, + streamPhysicalModel.descriptor, + setClipboard.descriptor, + getClipboard.descriptor, + streamClipboard.descriptor, + setBattery.descriptor, + getBattery.descriptor, + setGps.descriptor, + getGps.descriptor, + sendFingerprint.descriptor, + sendKey.descriptor, + sendTouch.descriptor, + sendMouse.descriptor, + injectWheel.descriptor, + streamInputEvent.descriptor, + sendPhone.descriptor, + sendSms.descriptor, + setPhoneNumber.descriptor, + getStatus.descriptor, + getScreenshot.descriptor, + streamScreenshot.descriptor, + streamAudio.descriptor, + injectAudio.descriptor, + getMicrophoneState.descriptor, + setMicrophoneState.descriptor, + getLogcat.descriptor, + streamLogcat.descriptor, + setVmState.descriptor, + getVmState.descriptor, + setDisplayConfigurations.descriptor, + getDisplayConfigurations.descriptor, + streamNotification.descriptor, + rotateVirtualSceneCamera.descriptor, + setVirtualSceneCameraVelocity.descriptor, + setPosture.descriptor, + getBrightness.descriptor, + setBrightness.descriptor, + getDisplayMode.descriptor, + setDisplayMode.descriptor, + setXrOptions.descriptor, + getXrOptions.descriptor, + setEnvironment.descriptor, + getEnvironment.descriptor, + getHostCameras.descriptor + ] + } +} + +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension GRPCCore.ServiceDescriptor { + /// Service descriptor for the "android.emulation.control.EmulatorController" service. + internal static let android_emulation_control_EmulatorController = GRPCCore.ServiceDescriptor(fullyQualifiedService: "android.emulation.control.EmulatorController") +} + +// MARK: android.emulation.control.EmulatorController (server) + +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController { + /// Streaming variant of the service protocol for the "android.emulation.control.EmulatorController" service. + /// + /// This protocol is the lowest-level of the service protocols generated for this service + /// giving you the most flexibility over the implementation of your service. This comes at + /// the cost of more verbose and less strict APIs. Each RPC requires you to implement it in + /// terms of a request stream and response stream. Where only a single request or response + /// message is expected, you are responsible for enforcing this invariant is maintained. + /// + /// Where possible, prefer using the stricter, less-verbose ``ServiceProtocol`` + /// or ``SimpleServiceProtocol`` instead. + /// + /// > Source IDL Documentation: + /// > + /// > An EmulatorController service lets you control the emulator. + /// > Note that this is currently an experimental feature, and that the + /// > service definition might change without notice. Use at your own risk! + /// > + /// > We use the following rough conventions: + /// > + /// > streamXXX --> streams values XXX (usually for emulator lifetime). Values + /// > are updated as soon as they become available. + /// > getXXX --> gets a single value XXX + /// > setXXX --> sets a single value XXX, does not returning state, these + /// > usually have an observable lasting side effect. + /// > sendXXX --> send a single event XXX, possibly returning state information. + /// > android usually responds to these events. + internal protocol StreamingServiceProtocol: GRPCCore.RegistrableRPCService { + /// Handle the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_SensorValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_SensorValue` messages. + func streamSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_SensorValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_SensorValue` messages. + func getSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_SensorValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_PhysicalModelValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_PhysicalModelValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhysicalModelValue` messages. + func getPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_PhysicalModelValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhysicalModelValue` messages. + func streamPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_ClipData` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_ClipData` messages. + func getClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_ClipData` messages. + func streamClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_BatteryState` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setBattery( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_BatteryState` messages. + func getBattery( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_GpsState` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setGps( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_GpsState` messages. + func getGps( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_Fingerprint` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func sendFingerprint( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_KeyboardEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func sendKey( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_TouchEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func sendTouch( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_MouseEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func sendMouse( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_WheelEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func injectWheel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_InputEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func streamInputEvent( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_PhoneCall` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhoneResponse` messages. + func sendPhone( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_SmsMessage` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhoneResponse` messages. + func sendSms( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_PhoneNumber` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhoneResponse` messages. + func setPhoneNumber( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_EmulatorStatus` messages. + func getStatus( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_ImageFormat` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Image` messages. + func getScreenshot( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_ImageFormat` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Image` messages. + func streamScreenshot( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_AudioFormat` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_AudioPacket` messages. + func streamAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_AudioPacket` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func injectAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_MicrophoneState` messages. + func getMicrophoneState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_MicrophoneState` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setMicrophoneState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_LogMessage` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_LogMessage` messages. + func getLogcat( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_LogMessage` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_LogMessage` messages. + func streamLogcat( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_VmRunState` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setVmState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_VmRunState` messages. + func getVmState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_DisplayConfigurations` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_DisplayConfigurations` messages. + func setDisplayConfigurations( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_DisplayConfigurations` messages. + func getDisplayConfigurations( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Notification` messages. + func streamNotification( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_RotationRadian` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func rotateVirtualSceneCamera( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_Velocity` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setVirtualSceneCameraVelocity( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_Posture` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setPosture( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_BrightnessValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_BrightnessValue` messages. + func getBrightness( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_BrightnessValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setBrightness( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_DisplayMode` messages. + func getDisplayMode( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_DisplayMode` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setDisplayMode( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_XrOptions` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setXrOptions( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_XrOptions` messages. + func getXrOptions( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_Environment` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `SwiftProtobuf.Google_Protobuf_Empty` messages. + func setEnvironment( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Environment` messages. + func getEnvironment( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A streaming request of `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_CameraList` messages. + func getHostCameras( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + } + + /// Service protocol for the "android.emulation.control.EmulatorController" service. + /// + /// This protocol is higher level than ``StreamingServiceProtocol`` but lower level than + /// the ``SimpleServiceProtocol``, it provides access to request and response metadata and + /// trailing response metadata. If you don't need these then consider using + /// the ``SimpleServiceProtocol``. If you need fine grained control over your RPCs then + /// use ``StreamingServiceProtocol``. + /// + /// > Source IDL Documentation: + /// > + /// > An EmulatorController service lets you control the emulator. + /// > Note that this is currently an experimental feature, and that the + /// > service definition might change without notice. Use at your own risk! + /// > + /// > We use the following rough conventions: + /// > + /// > streamXXX --> streams values XXX (usually for emulator lifetime). Values + /// > are updated as soon as they become available. + /// > getXXX --> gets a single value XXX + /// > setXXX --> sets a single value XXX, does not returning state, these + /// > usually have an observable lasting side effect. + /// > sendXXX --> send a single event XXX, possibly returning state information. + /// > android usually responds to these events. + internal protocol ServiceProtocol: Android_Emulation_Control_EmulatorController.StreamingServiceProtocol { + /// Handle the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_SensorValue` messages. + func streamSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_SensorValue` message. + func getSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_PhysicalModelValue` message. + func getPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_PhysicalModelValue` messages. + func streamPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ClipData` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_ClipData` message. + func getClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_ClipData` messages. + func streamClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BatteryState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setBattery( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_BatteryState` message. + func getBattery( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_GpsState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setGps( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_GpsState` message. + func getGps( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Fingerprint` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func sendFingerprint( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_KeyboardEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func sendKey( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_TouchEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func sendTouch( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MouseEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func sendMouse( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_WheelEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func injectWheel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_InputEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func streamInputEvent( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneCall` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_PhoneResponse` message. + func sendPhone( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SmsMessage` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_PhoneResponse` message. + func sendSms( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneNumber` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_PhoneResponse` message. + func setPhoneNumber( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_EmulatorStatus` message. + func getStatus( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_Image` message. + func getScreenshot( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Image` messages. + func streamScreenshot( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_AudioFormat` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_AudioPacket` messages. + func streamAudio( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A streaming request of `Android_Emulation_Control_AudioPacket` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func injectAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_MicrophoneState` message. + func getMicrophoneState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MicrophoneState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setMicrophoneState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_LogMessage` message. + func getLogcat( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_LogMessage` messages. + func streamLogcat( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_VmRunState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setVmState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_VmRunState` message. + func getVmState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayConfigurations` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_DisplayConfigurations` message. + func setDisplayConfigurations( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_DisplayConfigurations` message. + func getDisplayConfigurations( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A streaming response of `Android_Emulation_Control_Notification` messages. + func streamNotification( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse + + /// Handle the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_RotationRadian` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func rotateVirtualSceneCamera( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Velocity` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setVirtualSceneCameraVelocity( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Posture` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setPosture( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_BrightnessValue` message. + func getBrightness( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setBrightness( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_DisplayMode` message. + func getDisplayMode( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayMode` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setDisplayMode( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_XrOptions` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setXrOptions( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_XrOptions` message. + func getXrOptions( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Environment` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + func setEnvironment( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_Environment` message. + func getEnvironment( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + + /// Handle the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A response containing a single `Android_Emulation_Control_CameraList` message. + func getHostCameras( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse + } + + /// Simple service protocol for the "android.emulation.control.EmulatorController" service. + /// + /// This is the highest level protocol for the service. The API is the easiest to use but + /// doesn't provide access to request or response metadata. If you need access to these + /// then use ``ServiceProtocol`` instead. + /// + /// > Source IDL Documentation: + /// > + /// > An EmulatorController service lets you control the emulator. + /// > Note that this is currently an experimental feature, and that the + /// > service definition might change without notice. Use at your own risk! + /// > + /// > We use the following rough conventions: + /// > + /// > streamXXX --> streams values XXX (usually for emulator lifetime). Values + /// > are updated as soon as they become available. + /// > getXXX --> gets a single value XXX + /// > setXXX --> sets a single value XXX, does not returning state, these + /// > usually have an observable lasting side effect. + /// > sendXXX --> send a single event XXX, possibly returning state information. + /// > android usually responds to these events. + internal protocol SimpleServiceProtocol: Android_Emulation_Control_EmulatorController.ServiceProtocol { + /// Handle the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_SensorValue` message. + /// - response: A response stream of `Android_Emulation_Control_SensorValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamSensor( + request: Android_Emulation_Control_SensorValue, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_SensorValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_SensorValue` to respond with. + func getSensor( + request: Android_Emulation_Control_SensorValue, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_SensorValue + + /// Handle the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_SensorValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setSensor( + request: Android_Emulation_Control_SensorValue, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_PhysicalModelValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setPhysicalModel( + request: Android_Emulation_Control_PhysicalModelValue, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_PhysicalModelValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_PhysicalModelValue` to respond with. + func getPhysicalModel( + request: Android_Emulation_Control_PhysicalModelValue, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_PhysicalModelValue + + /// Handle the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_PhysicalModelValue` message. + /// - response: A response stream of `Android_Emulation_Control_PhysicalModelValue` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamPhysicalModel( + request: Android_Emulation_Control_PhysicalModelValue, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_ClipData` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setClipboard( + request: Android_Emulation_Control_ClipData, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_ClipData` to respond with. + func getClipboard( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_ClipData + + /// Handle the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - response: A response stream of `Android_Emulation_Control_ClipData` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamClipboard( + request: SwiftProtobuf.Google_Protobuf_Empty, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_BatteryState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setBattery( + request: Android_Emulation_Control_BatteryState, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_BatteryState` to respond with. + func getBattery( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_BatteryState + + /// Handle the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_GpsState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setGps( + request: Android_Emulation_Control_GpsState, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_GpsState` to respond with. + func getGps( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_GpsState + + /// Handle the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_Fingerprint` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func sendFingerprint( + request: Android_Emulation_Control_Fingerprint, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_KeyboardEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func sendKey( + request: Android_Emulation_Control_KeyboardEvent, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_TouchEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func sendTouch( + request: Android_Emulation_Control_TouchEvent, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_MouseEvent` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func sendMouse( + request: Android_Emulation_Control_MouseEvent, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A stream of `Android_Emulation_Control_WheelEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func injectWheel( + request: GRPCCore.RPCAsyncSequence, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A stream of `Android_Emulation_Control_InputEvent` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func streamInputEvent( + request: GRPCCore.RPCAsyncSequence, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_PhoneCall` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_PhoneResponse` to respond with. + func sendPhone( + request: Android_Emulation_Control_PhoneCall, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_PhoneResponse + + /// Handle the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_SmsMessage` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_PhoneResponse` to respond with. + func sendSms( + request: Android_Emulation_Control_SmsMessage, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_PhoneResponse + + /// Handle the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_PhoneNumber` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_PhoneResponse` to respond with. + func setPhoneNumber( + request: Android_Emulation_Control_PhoneNumber, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_PhoneResponse + + /// Handle the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_EmulatorStatus` to respond with. + func getStatus( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_EmulatorStatus + + /// Handle the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_ImageFormat` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_Image` to respond with. + func getScreenshot( + request: Android_Emulation_Control_ImageFormat, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_Image + + /// Handle the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_ImageFormat` message. + /// - response: A response stream of `Android_Emulation_Control_Image` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamScreenshot( + request: Android_Emulation_Control_ImageFormat, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_AudioFormat` message. + /// - response: A response stream of `Android_Emulation_Control_AudioPacket` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamAudio( + request: Android_Emulation_Control_AudioFormat, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A stream of `Android_Emulation_Control_AudioPacket` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func injectAudio( + request: GRPCCore.RPCAsyncSequence, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_MicrophoneState` to respond with. + func getMicrophoneState( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_MicrophoneState + + /// Handle the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_MicrophoneState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setMicrophoneState( + request: Android_Emulation_Control_MicrophoneState, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_LogMessage` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_LogMessage` to respond with. + func getLogcat( + request: Android_Emulation_Control_LogMessage, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_LogMessage + + /// Handle the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_LogMessage` message. + /// - response: A response stream of `Android_Emulation_Control_LogMessage` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamLogcat( + request: Android_Emulation_Control_LogMessage, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_VmRunState` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setVmState( + request: Android_Emulation_Control_VmRunState, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_VmRunState` to respond with. + func getVmState( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_VmRunState + + /// Handle the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_DisplayConfigurations` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_DisplayConfigurations` to respond with. + func setDisplayConfigurations( + request: Android_Emulation_Control_DisplayConfigurations, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_DisplayConfigurations + + /// Handle the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_DisplayConfigurations` to respond with. + func getDisplayConfigurations( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_DisplayConfigurations + + /// Handle the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - response: A response stream of `Android_Emulation_Control_Notification` messages. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + func streamNotification( + request: SwiftProtobuf.Google_Protobuf_Empty, + response: GRPCCore.RPCWriter, + context: GRPCCore.ServerContext + ) async throws + + /// Handle the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_RotationRadian` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func rotateVirtualSceneCamera( + request: Android_Emulation_Control_RotationRadian, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_Velocity` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setVirtualSceneCameraVelocity( + request: Android_Emulation_Control_Velocity, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_Posture` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setPosture( + request: Android_Emulation_Control_Posture, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_BrightnessValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_BrightnessValue` to respond with. + func getBrightness( + request: Android_Emulation_Control_BrightnessValue, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_BrightnessValue + + /// Handle the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_BrightnessValue` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setBrightness( + request: Android_Emulation_Control_BrightnessValue, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_DisplayMode` to respond with. + func getDisplayMode( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_DisplayMode + + /// Handle the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_DisplayMode` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setDisplayMode( + request: Android_Emulation_Control_DisplayMode, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_XrOptions` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setXrOptions( + request: Android_Emulation_Control_XrOptions, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_XrOptions` to respond with. + func getXrOptions( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_XrOptions + + /// Handle the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A `Android_Emulation_Control_Environment` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `SwiftProtobuf.Google_Protobuf_Empty` to respond with. + func setEnvironment( + request: Android_Emulation_Control_Environment, + context: GRPCCore.ServerContext + ) async throws -> SwiftProtobuf.Google_Protobuf_Empty + + /// Handle the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_Environment` to respond with. + func getEnvironment( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_Environment + + /// Handle the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - context: Context providing information about the RPC. + /// - Throws: Any error which occurred during the processing of the request. Thrown errors + /// of type `RPCError` are mapped to appropriate statuses. All other errors are converted + /// to an internal error. + /// - Returns: A `Android_Emulation_Control_CameraList` to respond with. + func getHostCameras( + request: SwiftProtobuf.Google_Protobuf_Empty, + context: GRPCCore.ServerContext + ) async throws -> Android_Emulation_Control_CameraList + } +} + +// Default implementation of 'registerMethods(with:)'. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController.StreamingServiceProtocol { + internal func registerMethods(with router: inout GRPCCore.RPCRouter) where Transport: GRPCCore.ServerTransport { + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamSensor.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamSensor( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getSensor.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getSensor( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setSensor.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setSensor( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setPhysicalModel.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setPhysicalModel( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getPhysicalModel.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getPhysicalModel( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamPhysicalModel.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamPhysicalModel( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setClipboard.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setClipboard( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getClipboard.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getClipboard( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamClipboard.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamClipboard( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setBattery.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setBattery( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getBattery.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getBattery( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setGps.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setGps( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getGps.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getGps( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendFingerprint.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendFingerprint( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendKey.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendKey( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendTouch.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendTouch( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendMouse.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendMouse( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.injectWheel.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.injectWheel( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamInputEvent.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamInputEvent( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendPhone.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendPhone( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.sendSms.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.sendSms( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setPhoneNumber.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setPhoneNumber( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getStatus.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getStatus( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getScreenshot.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getScreenshot( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamScreenshot.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamScreenshot( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamAudio.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamAudio( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.injectAudio.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.injectAudio( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getMicrophoneState.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getMicrophoneState( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setMicrophoneState.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setMicrophoneState( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getLogcat.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getLogcat( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamLogcat.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamLogcat( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setVmState.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setVmState( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getVmState.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getVmState( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setDisplayConfigurations.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setDisplayConfigurations( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getDisplayConfigurations.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getDisplayConfigurations( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.streamNotification.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.streamNotification( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.rotateVirtualSceneCamera.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.rotateVirtualSceneCamera( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setVirtualSceneCameraVelocity.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setVirtualSceneCameraVelocity( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setPosture.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setPosture( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getBrightness.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getBrightness( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setBrightness.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setBrightness( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getDisplayMode.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getDisplayMode( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setDisplayMode.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setDisplayMode( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setXrOptions.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setXrOptions( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getXrOptions.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getXrOptions( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.setEnvironment.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.setEnvironment( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getEnvironment.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getEnvironment( + request: request, + context: context + ) + } + ) + router.registerHandler( + forMethod: Android_Emulation_Control_EmulatorController.Method.getHostCameras.descriptor, + deserializer: GRPCProtobuf.ProtobufDeserializer(), + serializer: GRPCProtobuf.ProtobufSerializer(), + handler: { request, context in + try await self.getHostCameras( + request: request, + context: context + ) + } + ) + } +} + +// Default implementation of streaming methods from 'StreamingServiceProtocol'. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController.ServiceProtocol { + internal func streamSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamSensor( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func getSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getSensor( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setSensor( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setSensor( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setPhysicalModel( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getPhysicalModel( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamPhysicalModel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamPhysicalModel( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func setClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setClipboard( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getClipboard( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamClipboard( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamClipboard( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func setBattery( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setBattery( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getBattery( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getBattery( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setGps( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setGps( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getGps( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getGps( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendFingerprint( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendFingerprint( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendKey( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendKey( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendTouch( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendTouch( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendMouse( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendMouse( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func injectWheel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.injectWheel( + request: request, + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamInputEvent( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamInputEvent( + request: request, + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendPhone( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendPhone( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func sendSms( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.sendSms( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setPhoneNumber( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setPhoneNumber( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getStatus( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getStatus( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getScreenshot( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getScreenshot( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamScreenshot( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamScreenshot( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func streamAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamAudio( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func injectAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.injectAudio( + request: request, + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getMicrophoneState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getMicrophoneState( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setMicrophoneState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setMicrophoneState( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getLogcat( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getLogcat( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamLogcat( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamLogcat( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func setVmState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setVmState( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getVmState( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getVmState( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setDisplayConfigurations( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setDisplayConfigurations( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getDisplayConfigurations( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getDisplayConfigurations( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func streamNotification( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.streamNotification( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return response + } + + internal func rotateVirtualSceneCamera( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.rotateVirtualSceneCamera( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setVirtualSceneCameraVelocity( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setVirtualSceneCameraVelocity( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setPosture( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setPosture( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getBrightness( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getBrightness( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setBrightness( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setBrightness( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getDisplayMode( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getDisplayMode( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setDisplayMode( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setDisplayMode( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setXrOptions( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setXrOptions( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getXrOptions( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getXrOptions( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func setEnvironment( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.setEnvironment( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getEnvironment( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getEnvironment( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } + + internal func getHostCameras( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + let response = try await self.getHostCameras( + request: GRPCCore.ServerRequest(stream: request), + context: context + ) + return GRPCCore.StreamingServerResponse(single: response) + } +} + +// Default implementation of methods from 'ServiceProtocol'. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController.SimpleServiceProtocol { + internal func streamSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamSensor( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func getSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getSensor( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setSensor( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setSensor( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setPhysicalModel( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getPhysicalModel( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func streamPhysicalModel( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamPhysicalModel( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func setClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setClipboard( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getClipboard( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func streamClipboard( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamClipboard( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func setBattery( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setBattery( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getBattery( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getBattery( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setGps( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setGps( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getGps( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getGps( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func sendFingerprint( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendFingerprint( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func sendKey( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendKey( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func sendTouch( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendTouch( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func sendMouse( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendMouse( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func injectWheel( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.injectWheel( + request: request.messages, + context: context + ), + metadata: [:] + ) + } + + internal func streamInputEvent( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.streamInputEvent( + request: request.messages, + context: context + ), + metadata: [:] + ) + } + + internal func sendPhone( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendPhone( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func sendSms( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.sendSms( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setPhoneNumber( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setPhoneNumber( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getStatus( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getStatus( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getScreenshot( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getScreenshot( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func streamScreenshot( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamScreenshot( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func streamAudio( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamAudio( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func injectAudio( + request: GRPCCore.StreamingServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.injectAudio( + request: request.messages, + context: context + ), + metadata: [:] + ) + } + + internal func getMicrophoneState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getMicrophoneState( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setMicrophoneState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setMicrophoneState( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getLogcat( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getLogcat( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func streamLogcat( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamLogcat( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func setVmState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setVmState( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getVmState( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getVmState( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setDisplayConfigurations( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setDisplayConfigurations( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getDisplayConfigurations( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getDisplayConfigurations( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func streamNotification( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.StreamingServerResponse { + return GRPCCore.StreamingServerResponse( + metadata: [:], + producer: { writer in + try await self.streamNotification( + request: request.message, + response: writer, + context: context + ) + return [:] + } + ) + } + + internal func rotateVirtualSceneCamera( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.rotateVirtualSceneCamera( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setVirtualSceneCameraVelocity( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setVirtualSceneCameraVelocity( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setPosture( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setPosture( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getBrightness( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getBrightness( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setBrightness( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setBrightness( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getDisplayMode( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getDisplayMode( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setDisplayMode( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setDisplayMode( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setXrOptions( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setXrOptions( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getXrOptions( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getXrOptions( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func setEnvironment( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.setEnvironment( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getEnvironment( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getEnvironment( + request: request.message, + context: context + ), + metadata: [:] + ) + } + + internal func getHostCameras( + request: GRPCCore.ServerRequest, + context: GRPCCore.ServerContext + ) async throws -> GRPCCore.ServerResponse { + return GRPCCore.ServerResponse( + message: try await self.getHostCameras( + request: request.message, + context: context + ), + metadata: [:] + ) + } +} + +// MARK: android.emulation.control.EmulatorController (client) + +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController { + /// Generated client protocol for the "android.emulation.control.EmulatorController" service. + /// + /// You don't need to implement this protocol directly, use the generated + /// implementation, ``Client``. + /// + /// > Source IDL Documentation: + /// > + /// > An EmulatorController service lets you control the emulator. + /// > Note that this is currently an experimental feature, and that the + /// > service definition might change without notice. Use at your own risk! + /// > + /// > We use the following rough conventions: + /// > + /// > streamXXX --> streams values XXX (usually for emulator lifetime). Values + /// > are updated as soon as they become available. + /// > getXXX --> gets a single value XXX + /// > setXXX --> sets a single value XXX, does not returning state, these + /// > usually have an observable lasting side effect. + /// > sendXXX --> send a single event XXX, possibly returning state information. + /// > android usually responds to these events. + internal protocol ClientProtocol: Sendable { + /// Call the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_SensorValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_SensorValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ClipData` message. + /// - serializer: A serializer for `Android_Emulation_Control_ClipData` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_ClipData` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_ClipData` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BatteryState` message. + /// - serializer: A serializer for `Android_Emulation_Control_BatteryState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setBattery( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_BatteryState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getBattery( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_GpsState` message. + /// - serializer: A serializer for `Android_Emulation_Control_GpsState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setGps( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_GpsState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getGps( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Fingerprint` message. + /// - serializer: A serializer for `Android_Emulation_Control_Fingerprint` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendFingerprint( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_KeyboardEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_KeyboardEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendKey( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_TouchEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_TouchEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendTouch( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MouseEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_MouseEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendMouse( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_WheelEvent` messages. + /// - serializer: A serializer for `Android_Emulation_Control_WheelEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func injectWheel( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_InputEvent` messages. + /// - serializer: A serializer for `Android_Emulation_Control_InputEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamInputEvent( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneCall` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhoneCall` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendPhone( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SmsMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_SmsMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func sendSms( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneNumber` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhoneNumber` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setPhoneNumber( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_EmulatorStatus` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getStatus( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_ImageFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Image` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getScreenshot( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_ImageFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Image` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamScreenshot( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_AudioFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_AudioFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_AudioPacket` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamAudio( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_AudioPacket` messages. + /// - serializer: A serializer for `Android_Emulation_Control_AudioPacket` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func injectAudio( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_MicrophoneState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getMicrophoneState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MicrophoneState` message. + /// - serializer: A serializer for `Android_Emulation_Control_MicrophoneState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setMicrophoneState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_LogMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_LogMessage` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getLogcat( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_LogMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_LogMessage` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamLogcat( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_VmRunState` message. + /// - serializer: A serializer for `Android_Emulation_Control_VmRunState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setVmState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_VmRunState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getVmState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayConfigurations` message. + /// - serializer: A serializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setDisplayConfigurations( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getDisplayConfigurations( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Notification` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func streamNotification( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_RotationRadian` message. + /// - serializer: A serializer for `Android_Emulation_Control_RotationRadian` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func rotateVirtualSceneCamera( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Velocity` message. + /// - serializer: A serializer for `Android_Emulation_Control_Velocity` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setVirtualSceneCameraVelocity( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Posture` message. + /// - serializer: A serializer for `Android_Emulation_Control_Posture` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setPosture( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getBrightness( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setBrightness( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayMode` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getDisplayMode( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayMode` message. + /// - serializer: A serializer for `Android_Emulation_Control_DisplayMode` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setDisplayMode( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_XrOptions` message. + /// - serializer: A serializer for `Android_Emulation_Control_XrOptions` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setXrOptions( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_XrOptions` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getXrOptions( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Environment` message. + /// - serializer: A serializer for `Android_Emulation_Control_Environment` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func setEnvironment( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Environment` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getEnvironment( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + + /// Call the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_CameraList` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + func getHostCameras( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable + } + + /// Generated client for the "android.emulation.control.EmulatorController" service. + /// + /// The ``Client`` provides an implementation of ``ClientProtocol`` which wraps + /// a `GRPCCore.GRPCCClient`. The underlying `GRPCClient` provides the long-lived + /// means of communication with the remote peer. + /// + /// > Source IDL Documentation: + /// > + /// > An EmulatorController service lets you control the emulator. + /// > Note that this is currently an experimental feature, and that the + /// > service definition might change without notice. Use at your own risk! + /// > + /// > We use the following rough conventions: + /// > + /// > streamXXX --> streams values XXX (usually for emulator lifetime). Values + /// > are updated as soon as they become available. + /// > getXXX --> gets a single value XXX + /// > setXXX --> sets a single value XXX, does not returning state, these + /// > usually have an observable lasting side effect. + /// > sendXXX --> send a single event XXX, possibly returning state information. + /// > android usually responds to these events. + internal struct Client: ClientProtocol where Transport: GRPCCore.ClientTransport { + private let client: GRPCCore.GRPCClient + + /// Creates a new client wrapping the provided `GRPCCore.GRPCClient`. + /// + /// - Parameters: + /// - client: A `GRPCCore.GRPCClient` providing a communication channel to the service. + internal init(wrapping client: GRPCCore.GRPCClient) { + self.client = client + } + + /// Call the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_SensorValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamSensor.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_SensorValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getSensor.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_SensorValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setSensor( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setSensor.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setPhysicalModel.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getPhysicalModel.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhysicalModelValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamPhysicalModel( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamPhysicalModel.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ClipData` message. + /// - serializer: A serializer for `Android_Emulation_Control_ClipData` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setClipboard.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_ClipData` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getClipboard.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_ClipData` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamClipboard( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamClipboard.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BatteryState` message. + /// - serializer: A serializer for `Android_Emulation_Control_BatteryState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBattery( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setBattery.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_BatteryState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBattery( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getBattery.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_GpsState` message. + /// - serializer: A serializer for `Android_Emulation_Control_GpsState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setGps( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setGps.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_GpsState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getGps( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getGps.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Fingerprint` message. + /// - serializer: A serializer for `Android_Emulation_Control_Fingerprint` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendFingerprint( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendFingerprint.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_KeyboardEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_KeyboardEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendKey( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendKey.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_TouchEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_TouchEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendTouch( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendTouch.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MouseEvent` message. + /// - serializer: A serializer for `Android_Emulation_Control_MouseEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendMouse( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendMouse.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_WheelEvent` messages. + /// - serializer: A serializer for `Android_Emulation_Control_WheelEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectWheel( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.clientStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.injectWheel.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_InputEvent` messages. + /// - serializer: A serializer for `Android_Emulation_Control_InputEvent` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamInputEvent( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.clientStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamInputEvent.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneCall` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhoneCall` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendPhone( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendPhone.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SmsMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_SmsMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendSms( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.sendSms.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneNumber` message. + /// - serializer: A serializer for `Android_Emulation_Control_PhoneNumber` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_PhoneResponse` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhoneNumber( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setPhoneNumber.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_EmulatorStatus` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getStatus( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getStatus.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_ImageFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Image` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getScreenshot( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getScreenshot.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_ImageFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Image` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamScreenshot( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamScreenshot.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_AudioFormat` message. + /// - serializer: A serializer for `Android_Emulation_Control_AudioFormat` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_AudioPacket` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamAudio( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamAudio.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_AudioPacket` messages. + /// - serializer: A serializer for `Android_Emulation_Control_AudioPacket` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectAudio( + request: GRPCCore.StreamingClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.clientStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.injectAudio.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_MicrophoneState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getMicrophoneState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getMicrophoneState.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MicrophoneState` message. + /// - serializer: A serializer for `Android_Emulation_Control_MicrophoneState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setMicrophoneState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setMicrophoneState.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_LogMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_LogMessage` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getLogcat( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getLogcat.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - serializer: A serializer for `Android_Emulation_Control_LogMessage` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_LogMessage` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamLogcat( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamLogcat.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_VmRunState` message. + /// - serializer: A serializer for `Android_Emulation_Control_VmRunState` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVmState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setVmState.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_VmRunState` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getVmState( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getVmState.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayConfigurations` message. + /// - serializer: A serializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayConfigurations( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setDisplayConfigurations.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayConfigurations` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayConfigurations( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getDisplayConfigurations.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Notification` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamNotification( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.client.serverStreaming( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.streamNotification.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_RotationRadian` message. + /// - serializer: A serializer for `Android_Emulation_Control_RotationRadian` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func rotateVirtualSceneCamera( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.rotateVirtualSceneCamera.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Velocity` message. + /// - serializer: A serializer for `Android_Emulation_Control_Velocity` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVirtualSceneCameraVelocity( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setVirtualSceneCameraVelocity.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Posture` message. + /// - serializer: A serializer for `Android_Emulation_Control_Posture` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPosture( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setPosture.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBrightness( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getBrightness.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - serializer: A serializer for `Android_Emulation_Control_BrightnessValue` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBrightness( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setBrightness.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_DisplayMode` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayMode( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getDisplayMode.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayMode` message. + /// - serializer: A serializer for `Android_Emulation_Control_DisplayMode` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayMode( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setDisplayMode.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_XrOptions` message. + /// - serializer: A serializer for `Android_Emulation_Control_XrOptions` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setXrOptions( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setXrOptions.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_XrOptions` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getXrOptions( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getXrOptions.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Environment` message. + /// - serializer: A serializer for `Android_Emulation_Control_Environment` messages. + /// - deserializer: A deserializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setEnvironment( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.setEnvironment.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_Environment` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getEnvironment( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getEnvironment.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - serializer: A serializer for `SwiftProtobuf.Google_Protobuf_Empty` messages. + /// - deserializer: A deserializer for `Android_Emulation_Control_CameraList` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getHostCameras( + request: GRPCCore.ClientRequest, + serializer: some GRPCCore.MessageSerializer, + deserializer: some GRPCCore.MessageDeserializer, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.client.unary( + request: request, + descriptor: Android_Emulation_Control_EmulatorController.Method.getHostCameras.descriptor, + serializer: serializer, + deserializer: deserializer, + options: options, + onResponse: handleResponse + ) + } + } +} + +// Helpers providing default arguments to 'ClientProtocol' methods. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController.ClientProtocol { + /// Call the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamSensor( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamSensor( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getSensor( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getSensor( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SensorValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setSensor( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setSensor( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhysicalModel( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setPhysicalModel( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getPhysicalModel( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getPhysicalModel( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhysicalModelValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamPhysicalModel( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamPhysicalModel( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ClipData` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setClipboard( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setClipboard( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getClipboard( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getClipboard( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamClipboard( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamClipboard( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BatteryState` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBattery( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setBattery( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBattery( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getBattery( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_GpsState` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setGps( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setGps( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getGps( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getGps( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Fingerprint` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendFingerprint( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendFingerprint( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_KeyboardEvent` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendKey( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendKey( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_TouchEvent` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendTouch( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendTouch( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MouseEvent` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendMouse( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendMouse( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_WheelEvent` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectWheel( + request: GRPCCore.StreamingClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.injectWheel( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_InputEvent` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamInputEvent( + request: GRPCCore.StreamingClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.streamInputEvent( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneCall` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendPhone( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendPhone( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_SmsMessage` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendSms( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.sendSms( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_PhoneNumber` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhoneNumber( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setPhoneNumber( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getStatus( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getStatus( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getScreenshot( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getScreenshot( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_ImageFormat` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamScreenshot( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamScreenshot( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_AudioFormat` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamAudio( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamAudio( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - request: A streaming request producing `Android_Emulation_Control_AudioPacket` messages. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectAudio( + request: GRPCCore.StreamingClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.injectAudio( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getMicrophoneState( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getMicrophoneState( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_MicrophoneState` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setMicrophoneState( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setMicrophoneState( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getLogcat( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getLogcat( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_LogMessage` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamLogcat( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamLogcat( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_VmRunState` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVmState( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setVmState( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getVmState( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getVmState( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayConfigurations` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayConfigurations( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setDisplayConfigurations( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayConfigurations( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getDisplayConfigurations( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamNotification( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + try await self.streamNotification( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_RotationRadian` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func rotateVirtualSceneCamera( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.rotateVirtualSceneCamera( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Velocity` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVirtualSceneCameraVelocity( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setVirtualSceneCameraVelocity( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Posture` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPosture( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setPosture( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBrightness( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getBrightness( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_BrightnessValue` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBrightness( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setBrightness( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayMode( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getDisplayMode( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_DisplayMode` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayMode( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setDisplayMode( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_XrOptions` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setXrOptions( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setXrOptions( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getXrOptions( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getXrOptions( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - request: A request containing a single `Android_Emulation_Control_Environment` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setEnvironment( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.setEnvironment( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getEnvironment( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getEnvironment( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - request: A request containing a single `SwiftProtobuf.Google_Protobuf_Empty` message. + /// - options: Options to apply to this RPC. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getHostCameras( + request: GRPCCore.ClientRequest, + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + try await self.getHostCameras( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: options, + onResponse: handleResponse + ) + } +} + +// Helpers providing sugared APIs for 'ClientProtocol' methods. +@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) +extension Android_Emulation_Control_EmulatorController.ClientProtocol { + /// Call the "streamSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the sensor data + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamSensor( + _ message: Android_Emulation_Control_SensorValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamSensor( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified sensor. + /// > + /// > The following gRPC error codes can be returned: + /// > - INTERNAL (code 13) if `getSensorSize` fails to retrieve sensor dimensions. + /// > + /// > The `status` field in the `SensorValue` reply indicates the operational state: + /// > - `OK` (0): Sensor data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown sensor type (should not happen if using valid `SensorType`). + /// > - `DISABLED` (3): The sensor is disabled. + /// > - `NO_SERVICE` (4): The `qemud` service responsible for sensors is not available or initiated. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getSensor( + _ message: Android_Emulation_Control_SensorValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getSensor( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setSensor" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the override value for a specified sensor. This operation is asynchronous + /// > and executed on the emulator's main looper. An immediate subsequent `getSensor` + /// > call might not reflect the newly set value. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// > No specific gRPC error codes are returned by this method itself, but underlying + /// > operations might log warnings if the sensor agent is unavailable. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setSensor( + _ message: Android_Emulation_Control_SensorValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setSensor( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > set/get/stream the physical model, this is likely the one you are + /// > looking for when you wish to modify the device state. + /// > + /// > This operation is asynchronous and executed on the emulator's main looper. An immediate subsequent `getPhysicalModel` + /// > call might not reflect the newly set value. The `interpolation` field from the request is used to determine the + /// > physical interpolation method, mapped using `abs((static_cast(physicalValue.interpolation())) - 1)`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhysicalModel( + _ message: Android_Emulation_Control_PhysicalModelValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setPhysicalModel( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current value of a specified physical model parameter. + /// > + /// > The `status` field in the `PhysicalModelValue` reply indicates the operational state: + /// > - `OK` (0): Physical model data retrieved successfully. + /// > - `UNKNOWN` (2): Unknown physical type (should not happen if using valid `PhysicalType`). + /// > - `NO_SERVICE` (3): The `qemud` service responsible for physical parameters is not available or initiated. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getPhysicalModel( + _ message: Android_Emulation_Control_PhysicalModelValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getPhysicalModel( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamPhysicalModel" method. + /// + /// > Source IDL Documentation: + /// > + /// > This RPC is not implemented in EmulatorController and will return an unimplemented error. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamPhysicalModel( + _ message: Android_Emulation_Control_PhysicalModelValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamPhysicalModel( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically sets the current primary clipboard data. This operation is asynchronous + /// > and executed on the emulator's main looper. It triggers a `ClipboardEvent` + /// > to all listeners (except the originating channel) indicating the new content. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setClipboard( + _ message: Android_Emulation_Control_ClipData, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setClipboard( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current primary clipboard data. This is a synchronous operation. + /// > + /// > This method returns `OK` (code 0) and the current `ClipData` upon success. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getClipboard( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getClipboard( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamClipboard" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams real-time updates of the clipboard content. Upon subscription, + /// > it immediately sends the current clipboard state. Subsequent updates are + /// > streamed as new content becomes available from the guest or is set via `setClipboard` + /// > from a different client. Events originating from the same client that initiated + /// > the stream are filtered out to prevent echoing. + /// > + /// > It is possible to miss very rapid clipboard updates. The stream will block + /// > awaiting new events after the initial state is sent. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamClipboard( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamClipboard( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's battery state to the provided values. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBattery( + _ message: Android_Emulation_Control_BatteryState, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setBattery( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBattery" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current battery state from the emulator. This is a + /// > synchronous operation that waits for completion. + /// > + /// > This method returns `OK` (code 0) and populates the `BatteryState` reply + /// > with the current information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBattery( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getBattery( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state of the GPS in the emulator. This operation is asynchronous + /// > and executed on the main looper. It updates the emulator's GPS location + /// > (latitude, longitude, altitude, speed, bearing, and satellites) and sets + /// > the timestamp. + /// > + /// > Note: Setting the GPS position will not be immediately reflected in the user + /// > interface. Android typically samples GPS at 1 Hz. + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setGps( + _ message: Android_Emulation_Control_GpsState, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setGps( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getGps" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the latest GPS state as reported by the emulator. This includes data + /// > delivered by previous `setGps` calls or from the location UI if active. + /// > This is a synchronous operation that waits for completion. + /// > + /// > Note: The returned GPS state is not necessarily the exact coordinate + /// > visible at the time due to Android's typical 1 Hz GPS sample frequency. + /// > + /// > This method returns `OK` (code 0) and populates the `GpsState` reply + /// > with the retrieved information upon success. No explicit gRPC error codes + /// > are returned by this method. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getGps( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getGps( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendFingerprint" method. + /// + /// > Source IDL Documentation: + /// > + /// > Simulates a touch event on the fingerprint sensor. This operation is + /// > executed asynchronously on the main looper. + /// > + /// > The `isTouching` field indicates whether the fingerprint sensor is being + /// > touched, and `touchId` specifies the identifier of the registered + /// > fingerprint. The `setTouch` agent function is used to apply these values. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling + /// > of the operation. No explicit gRPC error codes are returned by this method. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendFingerprint( + _ message: Android_Emulation_Control_Fingerprint, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendFingerprint( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendKey" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends a keyboard event to the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `KeyboardEvent` message allows specifying input using `keyCode`, `key` (W3C standard string), or `text` (UTF-8 string). + /// > The `KeyEventSender` prioritizes `key`, then `keyCode`, then `text`. + /// > - If `key` is a non-printable W3C key string (e.g., "Backspace", "ArrowUp"), it's translated to an evdev keycode and sent. + /// > - If `key` is a printable Unicode character, it's converted to a sequence of evdev keydown/keyup events, handling modifiers. + /// > - If `keyCode` is provided, it's translated from its `codeType` (Usb, Evdev, XKB, Win, Mac) to an evdev keycode and sent as keydown/keyup pairs. + /// > - If `text` is provided, each UTF-8 character is converted to evdev keypress (keydown then keyup) events. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendKey( + _ message: Android_Emulation_Control_KeyboardEvent, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendKey( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendTouch" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends touch events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `TouchEvent` contains a list of `Touch` objects, each with `x`, `y` coordinates, `identifier`, `pressure`, `touch_major`, `touch_minor`, `expiration`, and `orientation`. + /// > Coordinates are scaled to the emulator's display resolution. Each `Touch` `identifier` is mapped to an internal Linux multitouch slot. + /// > Expiration handling ensures that inactive touch events are properly "lifted" after 120 seconds. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. Warnings are logged if no touch slots are available. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendTouch( + _ message: Android_Emulation_Control_TouchEvent, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendTouch( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendMouse" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends mouse events to the emulator. This operation is asynchronous and executed on the main looper. + /// > + /// > The `MouseEvent` specifies `x`, `y` coordinates, `buttons` state (bitmask: 1 for left, 2 for right), and `display` ID. + /// > In certain virtual input configurations (VirtioInput enabled, but VirtioMouse and VirtioTablet disabled), `buttons` may be masked to only consider the primary button. + /// > The event is sent to the emulator's `user_event_agent`. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendMouse( + _ message: Android_Emulation_Control_MouseEvent, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendMouse( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectWheel" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a stream of wheel events into the emulator. This is a server-side streaming RPC. + /// > + /// > Each `WheelEvent` contains `dx`, `dy` (delta values, `dy` is pre-multiplied by 120 for scroll clicks), and `display` ID. + /// > If the emulator's input device has rotary capabilities (e.g., AVD_WEAR flavor), `dy` is scaled and sent as a rotary event. + /// > Otherwise, it's sent as a standard mouse wheel event. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - producer: A closure producing request messages to send to the server. The request + /// stream is closed when the closure returns. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectWheel( + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + requestProducer producer: @Sendable @escaping (GRPCCore.RPCWriter) async throws -> Void, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.StreamingClientRequest( + metadata: metadata, + producer: producer + ) + return try await self.injectWheel( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamInputEvent" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of generic input events to the emulator. The events are processed in the order they arrive. + /// > This is a server-side streaming RPC that supports various input types encapsulated within `InputEvent`'s `oneof type` field. + /// > + /// > Supported input types: + /// > - `key_event` (KeyboardEvent): Processed by `KeyEventSender` as described in `sendKey`. + /// > - `touch_event` (TouchEvent): Processed by `TouchEventSender` as described in `sendTouch`. + /// > - `mouse_event` (MouseEvent): Processed by `MouseEventSender` as described in `sendMouse`. + /// > - `android_event` (AndroidEvent): Raw Linux input events (`type`, `code`, `value`) sent directly to the kernel. + /// > - `pen_event` (PenEvent): Processed by `PenEventSender` for pen input, including pressure, orientation, and button state. + /// > - `wheel_event` (WheelEvent): Processed by `WheelEventSender` as described in `injectWheel`. + /// > - `xr_command` (XrCommand): Executes XR-specific commands (e.g., `RECENTER` to recenter the viewport). Unknown actions are logged as warnings. + /// > - `xr_head_rotation_event` (RotationRadian): Sends head rotation data in radians. Logs an error if the agent call fails. + /// > - `xr_head_movement_event` (Translation): Sends head movement data in meters. Logs an error if the agent call fails. + /// > - `xr_head_angular_velocity_event` (AngularVelocity): Sends head angular velocity data in radians per second. Logs an error if the agent call fails. + /// > - `xr_head_velocity_event` (Velocity): Sends head velocity data in meters per second. Logs an error if the agent call fails. + /// > - `touchpad_event` (TouchpadEvent): Processed by `TouchpadEventSender` for touchpad input, similar to touch events but for a touchpad device. + /// > + /// > All underlying input sending operations for XR events are executed asynchronously on the main looper. + /// > + /// > Returns `INVALID_ARGUMENT` (code 3) if an unrecognized input event type is received, indicating a potential out-of-date emulator. + /// > The stream reactor automatically deletes itself upon completion. + /// + /// - Parameters: + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - producer: A closure producing request messages to send to the server. The request + /// stream is closed when the closure returns. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamInputEvent( + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + requestProducer producer: @Sendable @escaping (GRPCCore.RPCWriter) async throws -> Void, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.StreamingClientRequest( + metadata: metadata, + producer: producer + ) + return try await self.streamInputEvent( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendPhone" method. + /// + /// > Source IDL Documentation: + /// > + /// > Initiates or manipulates a phone call in the emulator. This is a synchronous + /// > operation executed on the main looper. + /// > + /// > The `PhoneCall` message specifies the `operation` (e.g., InitCall, AcceptCall) + /// > and the target phone `number`. The `telephonyCmd` agent function handles the + /// > actual call action. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The operation was successful. + /// > - `BadOperation` (1): The provided `operation` enum is out of range. + /// > - `BadNumber` (2): The provided `number` is malformed. + /// > - `InvalidAction` (3): The requested `operation` is invalid given the current call state (e.g., disconnecting when no call is active). + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// > - `RadioOff` (5): The emulator's radio is turned off. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendPhone( + _ message: Android_Emulation_Control_PhoneCall, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendPhone( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "sendSms" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sends an SMS message to the emulator. This is a synchronous operation. + /// > + /// > The `SmsMessage` contains the `srcAddress` (source phone number) and the `text` of the message. + /// > The `srcAddress` is validated for GSM formatting. The message `text` is converted into SMS PDUs + /// > (Protocol Data Units) and delivered via the modem agent. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The SMS message was successfully delivered. + /// > - `BadNumber` (2): The `srcAddress` is malformed. + /// > - `ActionFailed` (4): An internal error occurred, e.g., if the modem agent is unavailable or PDU creation fails. + /// > + /// > Other error cases from PDU creation (e.g., invalid characters in text) also result in `ActionFailed`. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func sendSms( + _ message: Android_Emulation_Control_SmsMessage, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.sendSms( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPhoneNumber" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the emulator's phone number. This is a synchronous operation. + /// > + /// > The `PhoneNumber` message contains the new `number` to be set. The modem agent's + /// > `amodem_update_phone_number` function is used for this update. + /// > + /// > Returns a `PhoneResponse` indicating the outcome: + /// > - `OK` (0): The phone number was successfully updated. + /// > - `BadNumber` (2): The provided `number` is invalid for the modem. + /// > - `ActionFailed` (4): An internal error occurred, typically if the modem agent is unavailable. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPhoneNumber( + _ message: Android_Emulation_Control_PhoneNumber, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setPhoneNumber( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getStatus" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current status of the emulator. This includes comprehensive + /// > information about the virtual machine's configuration and the guest operating system's state. + /// > + /// > The `EmulatorStatus` reply contains: + /// > - `version`: The emulator version string. + /// > - `uptime`: The time the emulator has been active in milliseconds. + /// > - `booted`: A boolean indicating if the device has completed booting. + /// > - `vmConfig`: Detailed `VmConfiguration` (hypervisor type, CPU cores, RAM size). + /// > - `hardwareConfig`: Key-value pairs describing the emulator's hardware configuration. + /// > - `heartbeat`: A monotonically increasing number indicating guest activity (incremented approximately once per second). + /// > - `guestConfig`: A map of key-value pairs with guest-specific configurations, including: + /// > - "multidisplay": "available" or "unavailable" based on display pipe readiness. + /// > - "androidVersion": The Android version of the guest OS. + /// > - "hypervisorVersion": The hypervisor version used by the guest. + /// > + /// > This method returns `OK` (code 0) upon successful retrieval of the emulator status. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getStatus( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getStatus( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves a single screenshot in the desired format. + /// > + /// > The image will be scaled to the `desiredWidth` and `desiredHeight` specified in `ImageFormat`, while maintaining + /// > the aspect ratio. If `width` or `height` are 0, the device's current display dimensions are used. + /// > The returned image will never exceed the device's actual display resolution, but can be smaller. + /// > + /// > The `display` field in `ImageFormat` specifies the target display; 0 (or omitted) indicates the main display. + /// > For folded Pixel Fold devices, the display ID might be internally remapped, and `foldedDisplay` information will be populated. + /// > The resulting image is properly oriented based on the device's coarse-grained orientation, derived from sensor state. + /// > + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery, but if the shared memory region + /// > is too small, a `FAILED_PRECONDITION` error will be returned. + /// > + /// > This method returns: + /// > - `OK` (code 0) and an `Image` object upon success. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation (an expensive operation). + /// > - `FAILED_PRECONDITION` (code 9) if the guest has not posted a new frame yet (for non-PNG formats when fast path is used). + /// > + /// > This method will return an image with width 0 and height 0 if the display is not visible. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getScreenshot( + _ message: Android_Emulation_Control_ImageFormat, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getScreenshot( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamScreenshot" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of screenshots in the desired format. This is a server-side streaming RPC. + /// > + /// > A new frame is delivered whenever the device produces a new frame or when sensor changes occur. + /// > Initial state: The first frame delivered might be an empty image (width 0, height 0) if the display is inactive. + /// > Subsequent frames are delivered when new content is available or a sensor event triggers an update. + /// > If the display becomes inactive, an empty image will be delivered again. Images resume when the display becomes active. + /// > + /// > `ImageFormat` parameters (format, width, height, display) behave as described in `getScreenshot`. + /// > The `transport` field in `ImageFormat` can specify `MMAP` for shared memory delivery. If `MMAP` is used and the + /// > provided shared memory handle is valid and mapped, pixel data will be written directly to it. + /// > The `image` field in the `Image` reply will be empty if `MMAP` transport is used. + /// > + /// > Performance considerations: + /// > - Streaming can produce a significant amount of data. + /// > - `PNG` format is CPU-intensive due to encoding overhead. + /// > - Using `MMAP` transport can significantly reduce gRPC overhead for pixel data. + /// > + /// > This method returns: + /// > - A server-side streaming reactor. + /// > - `INVALID_ARGUMENT` (code 3) if the specified `display` ID is invalid or disabled. + /// > - `CANCELLED` (code 1) if the gRPC context is cancelled during the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamScreenshot( + _ message: Android_Emulation_Control_ImageFormat, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamScreenshot( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams a series of audio packets in the desired format. This is a server-side streaming RPC. + /// > A new frame is delivered approximately every 20-30ms when the emulated device produces audio. + /// > If `samplingRate` is 0, it defaults to 44100 Hz. + /// > The stream may block indefinitely if the emulator ceases to produce audio. + /// > Packets are allocated with a buffer size calculated based on the audio format and a 30ms frame time. + /// > + /// > This method returns `OK` (code 0) upon successful streaming initiation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamAudio( + _ message: Android_Emulation_Control_AudioFormat, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamAudio( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "injectAudio" method. + /// + /// > Source IDL Documentation: + /// > + /// > Injects a series of audio packets into the Android microphone. This is a client-side streaming RPC. + /// > Audio packets are processed at a rate determined by the emulator's request for frames. + /// > An internal buffer can hold approximately 300ms of audio. + /// > + /// > Notes: + /// > - Only the `AudioFormat` from the first received packet is honored. Subsequent `AudioFormat` changes are ignored. + /// > - `MODE_REAL_TIME` is experimental: incoming data may overwrite existing data if the client does not control timing properly. + /// > - The circular buffer attempts to deliver all queued samples upon stream closure by writing silence for up to 300ms. + /// > + /// > Returns the following gRPC error codes: + /// > - `FAILED_PRECONDITION` (code 9): If another microphone is already active, or if unable to register the microphone. + /// > - `INVALID_ARGUMENT` (code 3): If the desired `samplingRate` exceeds 48kHz, or if an `AudioPacket` is too large for the internal buffer. + /// > + /// > This method returns `OK` (code 0) upon successful completion of the stream. + /// + /// - Parameters: + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - producer: A closure producing request messages to send to the server. The request + /// stream is closed when the closure returns. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func injectAudio( + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + requestProducer producer: @Sendable @escaping (GRPCCore.RPCWriter) async throws -> Void, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.StreamingClientRequest( + metadata: metadata, + producer: producer + ) + return try await self.injectAudio( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current settings for the microphone + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getMicrophoneState( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getMicrophoneState( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setMicrophoneState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the state for the microphone + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setMicrophoneState( + _ message: Android_Emulation_Control_MicrophoneState, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setMicrophoneState( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Deprecated, please use the streamLogcat method instead. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getLogcat( + _ message: Android_Emulation_Control_LogMessage, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getLogcat( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamLogcat" method. + /// + /// > Source IDL Documentation: + /// > + /// > Streams the logcat output from the emulator in real-time. This is a server-side streaming RPC. + /// > The stream sources its data from the `logcat` command executed via `AdbShellStream` in the Android guest. + /// > Log lines are processed individually as they arrive. + /// > + /// > The `LogMessage.sort` field determines the output format: + /// > - If `LogMessage.sort` is `Parsed`, each incoming log line is parsed into a structured `LogcatEntry` object, + /// > and these entries are returned in the `LogMessage.entries` field. Structured parsing is typically + /// > available for Android API Level 23 (Marshmallow) and later. + /// > - If `LogMessage.sort` is `Text` (or unspecified), the raw log line is returned in the `LogMessage.contents` field. + /// > + /// > The stream continues as long as the underlying `logcat` process is running and the client is connected. + /// > The stream will naturally terminate if the `logcat` process stops or the connection is lost. + /// > No explicit gRPC error codes are returned by this method during active streaming. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamLogcat( + _ message: Android_Emulation_Control_LogMessage, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamLogcat( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Transitions the virtual machine to the desired state. This operation is scheduled + /// > asynchronously. + /// > + /// > Transition commands: + /// > - `RUNNING` or `START`: Starts or resumes execution of the virtual machine. + /// > - `PAUSED` or `STOP`: Pauses execution of the virtual machine, halting CPU cycles. + /// > - `RESET` or `RESTART`: Performs a warm reset of the virtual machine. + /// > - `SHUTDOWN`: Initiates a graceful shutdown of the emulator. + /// > - `TERMINATE`: Forcefully terminates the emulator process immediately without cleanup. + /// > This can cause data corruption and must be used with caution. + /// > + /// > Note that write-only actions (`START`, `STOP`, `RESET`, `RESTART`) perform the + /// > transition but are not observed as states in `getVmState`. Purely observable states + /// > (`UNKNOWN`, `RESTORE_VM`, `SAVE_VM`, `INTERNAL_ERROR`) cannot be set directly. + /// > + /// > Returns once the operation has been scheduled. + /// > Note: The call may not return when the state is set to `TERMINATE` or `SHUTDOWN`. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVmState( + _ message: Android_Emulation_Control_VmRunState, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setVmState( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getVmState" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current execution state of the virtual machine. + /// > + /// > The returned `VmRunState` represents the current condition of the VM: + /// > - `RUNNING`: The virtual machine is actively executing. + /// > - `PAUSED`: Execution is suspended (CPUs are halted). + /// > - `SHUTDOWN`: The guest operating system has initiated a shutdown. + /// > - `RESTORE_VM`: The virtual machine is paused while restoring its state (e.g., loading a snapshot). + /// > - `SAVE_VM`: The virtual machine is paused while saving its state (e.g., taking a snapshot). + /// > - `INTERNAL_ERROR`: Execution has stopped due to a guest panic, I/O error, or hypervisor failure. + /// > - `UNKNOWN`: The virtual machine is in an unmapped or transient state. + /// > + /// > This is a synchronous query operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getVmState( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getVmState( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Atomically changes the current multi-display configuration. This operation applies + /// > the provided `DisplayConfigurations`, with special handling for secondary displays. + /// > Display ID 0 (the primary display) cannot be modified via this RPC. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > Input Validation: + /// > - `INVALID_ARGUMENT` (code 3): If duplicate `display` IDs are found in the request. + /// > - `INVALID_ARGUMENT` (code 3): If any `DisplayConfiguration` (width, height, dpi, flags) + /// > is outside valid ranges as determined by `multiDisplayParamValidate`. + /// > - `INVALID_ARGUMENT` (code 3): If any `display` ID is outside the configurable range + /// > `[1, userConfigurable]`. + /// > + /// > Atomic Update and Rollback: + /// > The system attempts to apply each display configuration. If any update fails + /// > (e.g., after multiple retries for transient pipe errors), a rollback mechanism + /// > is initiated: successfully updated displays are reverted to their previous state, + /// > and newly added displays are deleted. In such cases, an `INTERNAL` error is returned. + /// > + /// > Deletion of Unrequested Displays: + /// > Any displays that were active before this call but are not present in the new + /// > `request.displays` (and are not display ID 0) will be deleted. + /// > + /// > Notifications: + /// > Upon successful completion, `notifyDisplayChanges()` is called to inform + /// > third-party subscribers. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful application of all configurations, returning the final active `DisplayConfigurations`. + /// > - `FAILED_PRECONDITION` (code 9): If the multi-display feature is not available. + /// > - `INTERNAL` (code 13): If an internal emulator failure occurs during display modification or rollback. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayConfigurations( + _ message: Android_Emulation_Control_DisplayConfigurations, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setDisplayConfigurations( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayConfigurations" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns all currently valid logical displays configured in the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The `android::featurecontrol::MultiDisplay` feature must be enabled. + /// > + /// > The `DisplayConfigurations` reply contains: + /// > - `displays`: A repeated field of `DisplayConfiguration` objects, each detailing + /// > the width, height, DPI, flags, and ID of an active display. + /// > For Pixel Fold devices, only the main display configuration might be relevant. + /// > - `userConfigurable`: The maximum number of user-configurable displays (IDs from 1 up to this value). + /// > - `maxDisplays`: The total maximum number of displays the emulator supports. + /// > + /// > This method returns: + /// > - `OK` (code 0) and the current `DisplayConfigurations` upon success. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the multi-display feature. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayConfigurations( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getDisplayConfigurations( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "streamNotification" method. + /// + /// > Source IDL Documentation: + /// > + /// > Notifies the client of various emulator state changes in real-time. This is a server-side streaming RPC. + /// > Upon subscription, the current states of virtual scene camera, foldable posture, boot completion, + /// > and XR options are immediately sent. The stream then continuously delivers new notifications + /// > when relevant events occur. `UniqueEventStreamWriter` ensures that only distinct state changes are streamed. + /// > + /// > Notifications include: + /// > - `CameraNotification`: Reports virtual scene camera activation/deactivation and associated display. + /// > - `DisplayConfigurationsChangedNotification`: Triggered when display configurations are modified via the extended UI. Does not fire for changes made through console or gRPC. + /// > - `Posture`: Reports changes in the device's foldable posture. + /// > - `BootCompletedNotification`: Indicates when the emulator has finished booting. + /// > - `BrightnessValue`: Reports changes in backlight brightness (LCD, keyboard, or button). + /// > - `TextViewFocus`: Sent when a text view gains or loses focus, or immediately on subscription. + /// > - `XrOptions`: Reports changes in XR-related settings (environment, passthrough coefficient), or immediately on subscription. + /// > - `MicrophoneState` : Reports changes in the microphone state (currently whether host microphone access is allowed) + /// > - `LedIndicator`: Reports changes in AI Glasses XR LED light state on subscription. + /// > + /// > This method returns a server-side streaming reactor. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func streamNotification( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.StreamingClientResponse) async throws -> Result + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.streamNotification( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "rotateVirtualSceneCamera" method. + /// + /// > Source IDL Documentation: + /// > + /// > Rotates the virtual scene camera relative to its current orientation. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `RotationRadian` message specifies angles in radians around the x, y, and z axes. The z component of rotation is currently unused. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func rotateVirtualSceneCamera( + _ message: Android_Emulation_Control_RotationRadian, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.rotateVirtualSceneCamera( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setVirtualSceneCameraVelocity" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the absolute velocity of the virtual scene camera. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Velocity` message specifies components in meters per second along the x, y, and z axes. + /// > The coordinate system is right-handed: x-axis points right, y-axis points up, and z-axis points towards the viewer. + /// > The transition to these target velocity values may be smoothed over time by the implementation. + /// > This operation only succeeds if the virtual scene camera is actively connected. + /// > + /// > This method returns `OK` (code 0) upon successful asynchronous scheduling of the operation. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setVirtualSceneCameraVelocity( + _ message: Android_Emulation_Control_Velocity, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setVirtualSceneCameraVelocity( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setPosture" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the foldable posture of the device. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `Posture` message contains a `PostureValue` enum, defining the desired + /// > physical configuration of the foldable device. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the emulator is unable to set the specified posture. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setPosture( + _ message: Android_Emulation_Control_Posture, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setPosture( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current backlight brightness for a specified light type. This is a synchronous operation. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is queried. + /// > Internal mapping converts these to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval, populating the `BrightnessValue` reply with the `target` and current `value`. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `getBrightness` function is unavailable. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getBrightness( + _ message: Android_Emulation_Control_BrightnessValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getBrightness( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setBrightness" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the backlight brightness for a specified light type. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `BrightnessValue.target` field (e.g., `LCD`, `KEYBOARD`, `BUTTON`) determines which light's brightness is set. + /// > The `BrightnessValue.value` specifies the desired intensity, ranging from 0 to 255. + /// > Internal mapping converts `LightType` to string names like "lcd_backlight". + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD does not support the `hw-control` agent or its `setBrightness` function is unavailable. + /// > - `INVALID_ARGUMENT` (code 3): If the `brightness` value exceeds the valid range (0-255). + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setBrightness( + _ message: Android_Emulation_Control_BrightnessValue, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setBrightness( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the current mode of the primary display of a resizable AVD. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > + /// > The `DisplayMode.value` field will be populated with the current `DisplayModeValue`, + /// > derived from the `getResizableActiveConfigId()`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the display mode. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getDisplayMode( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getDisplayMode( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setDisplayMode" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the size of the primary display of a resizable AVD to the specified `DisplayModeValue`. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > Preconditions: + /// > - The AVD must be configured to support resizable displays (`resizableEnabled()` must be true). + /// > - The emulator's `changeResizableDisplay` agent function must be available. + /// > + /// > The `DisplayMode.value` field specifies the desired display configuration (e.g., `PHONE`, `FOLDABLE`, `TABLET`, `DESKTOP`). + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the AVD is not resizable. + /// > - `INTERNAL` (code 13): If the internal window agent function `changeResizableDisplay` is not available. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setDisplayMode( + _ message: Android_Emulation_Control_DisplayMode, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setDisplayMode( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Changes the XR-related settings of the emulator. This operation is asynchronous + /// > and executed on the main looper. + /// > + /// > The `XrOptions` message specifies the `environment` (e.g., `LIVING_ROOM_DAY`, `LIVING_ROOM_NIGHT`) + /// > and `passthrough_coefficient` (a float between 0.0 and 1.0 for real/artificial environment visibility). + /// > Values for `passthrough_coefficient` outside [0.0, 1.0] are ignored. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful asynchronous scheduling of the operation. + /// > - `FAILED_PRECONDITION` (code 9): If the `setXrOptions` agent function fails (e.g., if XR is not supported). + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setXrOptions( + _ message: Android_Emulation_Control_XrOptions, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setXrOptions( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getXrOptions" method. + /// + /// > Source IDL Documentation: + /// > + /// > Retrieves the current state of XR-related settings from the emulator. This is a synchronous operation. + /// > + /// > Preconditions: + /// > - XR mode must be supported in the current AVD (`isXrGuestOs()` must be true). + /// > (Note: Current implementation of `isXrGuestOs()` always returns true). + /// > + /// > The `XrOptions` reply contains the current `environment` and `passthrough_coefficient`. + /// > + /// > Returns the following gRPC error codes: + /// > - `OK` (code 0): Upon successful retrieval of the XR options. + /// > - `FAILED_PRECONDITION` (code 9): If XR mode is not supported in the current AVD or if the `getXrOptions` agent function fails. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getXrOptions( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getXrOptions( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "setEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Sets the environment background for AI glasses. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func setEnvironment( + _ message: Android_Emulation_Control_Environment, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.setEnvironment( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getEnvironment" method. + /// + /// > Source IDL Documentation: + /// > + /// > Gets the current environment configuration for AI glasses. Values that are not set in environment.ini + /// > will be set to default values. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getEnvironment( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getEnvironment( + request: request, + options: options, + onResponse: handleResponse + ) + } + + /// Call the "getHostCameras" method. + /// + /// > Source IDL Documentation: + /// > + /// > Returns the list of video cameras connected to the host machine. + /// + /// - Parameters: + /// - message: request message to send. + /// - metadata: Additional metadata to send, defaults to empty. + /// - options: Options to apply to this RPC, defaults to `.defaults`. + /// - handleResponse: A closure which handles the response, the result of which is + /// returned to the caller. Returning from the closure will cancel the RPC if it + /// hasn't already finished. + /// - Returns: The result of `handleResponse`. + internal func getHostCameras( + _ message: SwiftProtobuf.Google_Protobuf_Empty, + metadata: GRPCCore.Metadata = [:], + options: GRPCCore.CallOptions = .defaults, + onResponse handleResponse: @Sendable @escaping (GRPCCore.ClientResponse) async throws -> Result = { response in + try response.message + } + ) async throws -> Result where Result: Sendable { + let request = GRPCCore.ClientRequest( + message: message, + metadata: metadata + ) + return try await self.getHostCameras( + request: request, + options: options, + onResponse: handleResponse + ) + } +} \ No newline at end of file diff --git a/Generated/EmulatorController/emulator_controller.pb.swift b/Generated/EmulatorController/emulator_controller.pb.swift new file mode 100644 index 0000000..f9f928b --- /dev/null +++ b/Generated/EmulatorController/emulator_controller.pb.swift @@ -0,0 +1,6218 @@ +// DO NOT EDIT. +// swift-format-ignore-file +// swiftlint:disable all +// +// Generated by the Swift generator plugin for the protocol buffer compiler. +// Source: emulator_controller.proto +// +// For information on using the generated types, please see the documentation: +// https://github.com/apple/swift-protobuf/ + +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/// Note that if you add/remove methods in this file you must update +/// the metrics sql as well ./android/scripts/gen-grpc-sql.py +/// +/// Please group deleted methods in a block including the date (MM/DD/YY) +/// it was removed. This enables us to easily keep metrics around after removal +/// +/// List of deleted methods +/// rpc iWasDeleted (03/12/12) +/// ... + +#if canImport(FoundationEssentials) +import FoundationEssentials +#else +import Foundation +#endif +import SwiftProtobuf + +// If the compiler emits an error on this type, it is because this file +// was generated by a version of the `protoc` Swift plug-in that is +// incompatible with the version of SwiftProtobuf to which you are linking. +// Please ensure that you are building against the same version of the API +// that was used to generate this file. +fileprivate nonisolated struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck { + struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {} + typealias Version = _2 +} + +/// in line with android/emulation/resizable_display_config.h +nonisolated enum Android_Emulation_Control_DisplayModeValue: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case phone // = 0 + case foldable // = 1 + case tablet // = 2 + case desktop // = 3 + case UNRECOGNIZED(Int) + + init() { + self = .phone + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .phone + case 1: self = .foldable + case 2: self = .tablet + case 3: self = .desktop + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .phone: return 0 + case .foldable: return 1 + case .tablet: return 2 + case .desktop: return 3 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_DisplayModeValue] = [ + .phone, + .foldable, + .tablet, + .desktop, + ] + +} + +/// Represents the execution state of the virtual machine, used for both querying the +/// current status and requesting state transitions. +nonisolated struct Android_Emulation_Control_VmRunState: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var state: Android_Emulation_Control_VmRunState.RunState = .unknown + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum RunState: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Purely observable state. The virtual machine is in an unmapped or transient state. + /// Cannot be set directly. + case unknown // = 0 + + /// Active execution state. Setting this state resumes the virtual machine. + case running // = 1 + + /// Purely observable state. The virtual machine is paused while restoring its state + /// (e.g., loading a snapshot). Cannot be set directly. + case restoreVm // = 2 + + /// Suspended execution state. Setting this state pauses the virtual machine and halts + /// CPU cycles. + case paused // = 3 + + /// Purely observable state. The virtual machine is paused while saving its state + /// (e.g., taking a snapshot). Cannot be set directly. + case saveVm // = 4 + + /// Graceful shutdown state. Setting this state initiates a clean shutdown of the + /// virtual machine. + case shutdown // = 5 + + /// Write-only command. Immediately terminates the emulator process without cleanup. + /// Can cause data corruption and must be used with caution. + case terminate // = 7 + + /// Write-only command. Triggers a warm reset of the virtual machine. + case reset // = 9 + + /// Purely observable state. The virtual machine has stopped execution due to a guest + /// panic, internal error, or I/O failure. Cannot be set directly. + case internalError // = 10 + + /// Write-only command. Triggers a warm reset of the virtual machine (equivalent to `RESET`). + case restart // = 11 + + /// Write-only command. Starts or resumes execution of the virtual machine (equivalent + /// to `RUNNING`). + case start // = 12 + + /// Write-only command. Stops execution of the virtual machine (equivalent to `PAUSED`). + case stop // = 13 + case UNRECOGNIZED(Int) + + init() { + self = .unknown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unknown + case 1: self = .running + case 2: self = .restoreVm + case 3: self = .paused + case 4: self = .saveVm + case 5: self = .shutdown + case 7: self = .terminate + case 9: self = .reset + case 10: self = .internalError + case 11: self = .restart + case 12: self = .start + case 13: self = .stop + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unknown: return 0 + case .running: return 1 + case .restoreVm: return 2 + case .paused: return 3 + case .saveVm: return 4 + case .shutdown: return 5 + case .terminate: return 7 + case .reset: return 9 + case .internalError: return 10 + case .restart: return 11 + case .start: return 12 + case .stop: return 13 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_VmRunState.RunState] = [ + .unknown, + .running, + .restoreVm, + .paused, + .saveVm, + .shutdown, + .terminate, + .reset, + .internalError, + .restart, + .start, + .stop, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_ParameterValue: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var data: [Float] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_PhysicalModelValue: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var target: Android_Emulation_Control_PhysicalModelValue.PhysicalType = .position + + /// [Output Only] + var status: Android_Emulation_Control_PhysicalModelValue.State = .ok + + /// Value interpretation depends on sensor. + var value: Android_Emulation_Control_ParameterValue { + get {_value ?? Android_Emulation_Control_ParameterValue()} + set {_value = newValue} + } + /// Returns true if `value` has been explicitly set. + var hasValue: Bool {self._value != nil} + /// Clears the value of `value`. Subsequent reads from it will return its default value. + mutating func clearValue() {self._value = nil} + + /// [Input Only] How to transition to the target value. + var interpolation: Android_Emulation_Control_PhysicalModelValue.Interpolation = .smooth + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum State: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case ok // = 0 + + /// qemud service is not available/initiated. + case noService // = -3 + + /// Sensor is disabled. + case disabled // = -2 + + /// Unknown sensor (should not happen) + case unknown // = -1 + case UNRECOGNIZED(Int) + + init() { + self = .ok + } + + init?(rawValue: Int) { + switch rawValue { + case -3: self = .noService + case -2: self = .disabled + case -1: self = .unknown + case 0: self = .ok + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .noService: return -3 + case .disabled: return -2 + case .unknown: return -1 + case .ok: return 0 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_PhysicalModelValue.State] = [ + .ok, + .noService, + .disabled, + .unknown, + ] + + } + + /// Details on the sensors documentation can be found here: + /// https://developer.android.com/reference/android/hardware/Sensor.html#TYPE_ + /// The types must follow the order defined in + /// "external/qemu/android/hw-sensors.h" + nonisolated enum PhysicalType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case position // = 0 + + /// All values are angles in degrees. + /// values = [x,y,z] + case rotation // = 1 + case magneticField // = 2 + + /// Temperature in °C + case temperature // = 3 + + /// Proximity sensor distance measured in centimeters + case proximity // = 4 + + /// Ambient light level in SI lux units + case light // = 5 + + /// Atmospheric pressure in hPa (millibar) + case pressure // = 6 + + /// Relative ambient air humidity in percent + case humidity // = 7 + case velocity // = 8 + case ambientMotion // = 9 + + /// Describing a hinge angle sensor in degrees. + case hingeAngle0 // = 10 + case hingeAngle1 // = 11 + case hingeAngle2 // = 12 + case rollable0 // = 13 + case rollable1 // = 14 + case rollable2 // = 15 + + /// Describing the device posture; the value should be an enum defined + /// in Posture::PostureValue. + case posture // = 16 + + /// Heart rate in bpm + case heartRate // = 17 + + /// Ambient RGBC light intensity. Values are in order (Red, Green, Blue, + /// Clear). + case rgbcLight // = 18 + + /// Wrist tilt gesture (1 = gaze, 0 = ungaze) + case wristTilt // = 19 + case UNRECOGNIZED(Int) + + init() { + self = .position + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .position + case 1: self = .rotation + case 2: self = .magneticField + case 3: self = .temperature + case 4: self = .proximity + case 5: self = .light + case 6: self = .pressure + case 7: self = .humidity + case 8: self = .velocity + case 9: self = .ambientMotion + case 10: self = .hingeAngle0 + case 11: self = .hingeAngle1 + case 12: self = .hingeAngle2 + case 13: self = .rollable0 + case 14: self = .rollable1 + case 15: self = .rollable2 + case 16: self = .posture + case 17: self = .heartRate + case 18: self = .rgbcLight + case 19: self = .wristTilt + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .position: return 0 + case .rotation: return 1 + case .magneticField: return 2 + case .temperature: return 3 + case .proximity: return 4 + case .light: return 5 + case .pressure: return 6 + case .humidity: return 7 + case .velocity: return 8 + case .ambientMotion: return 9 + case .hingeAngle0: return 10 + case .hingeAngle1: return 11 + case .hingeAngle2: return 12 + case .rollable0: return 13 + case .rollable1: return 14 + case .rollable2: return 15 + case .posture: return 16 + case .heartRate: return 17 + case .rgbcLight: return 18 + case .wristTilt: return 19 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_PhysicalModelValue.PhysicalType] = [ + .position, + .rotation, + .magneticField, + .temperature, + .proximity, + .light, + .pressure, + .humidity, + .velocity, + .ambientMotion, + .hingeAngle0, + .hingeAngle1, + .hingeAngle2, + .rollable0, + .rollable1, + .rollable2, + .posture, + .heartRate, + .rgbcLight, + .wristTilt, + ] + + } + + nonisolated enum Interpolation: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case smooth // = 0 + case step // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .smooth + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .smooth + case 1: self = .step + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .smooth: return 0 + case .step: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_PhysicalModelValue.Interpolation] = [ + .smooth, + .step, + ] + + } + + init() {} + + fileprivate var _value: Android_Emulation_Control_ParameterValue? = nil +} + +/// A single sensor value. +nonisolated struct Android_Emulation_Control_SensorValue: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Type of sensor + var target: Android_Emulation_Control_SensorValue.SensorType = .acceleration + + /// [Output Only] + var status: Android_Emulation_Control_SensorValue.State = .ok + + /// Value interpretation depends on sensor enum. + var value: Android_Emulation_Control_ParameterValue { + get {_value ?? Android_Emulation_Control_ParameterValue()} + set {_value = newValue} + } + /// Returns true if `value` has been explicitly set. + var hasValue: Bool {self._value != nil} + /// Clears the value of `value`. Subsequent reads from it will return its default value. + mutating func clearValue() {self._value = nil} + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum State: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case ok // = 0 + + /// qemud service is not available/initiated. + case noService // = -3 + + /// Sensor is disabled. + case disabled // = -2 + + /// Unknown sensor (should not happen) + case unknown // = -1 + case UNRECOGNIZED(Int) + + init() { + self = .ok + } + + init?(rawValue: Int) { + switch rawValue { + case -3: self = .noService + case -2: self = .disabled + case -1: self = .unknown + case 0: self = .ok + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .noService: return -3 + case .disabled: return -2 + case .unknown: return -1 + case .ok: return 0 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_SensorValue.State] = [ + .ok, + .noService, + .disabled, + .unknown, + ] + + } + + /// These are the various sensors that can be available in an emulated + /// devices. + nonisolated enum SensorType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Measures the acceleration force in m/s2 that is applied to a device + /// on all three physical axes (x, y, and z), including the force of + /// gravity. + case acceleration // = 0 + + /// Measures a device's rate of rotation in rad/s around each of the + /// three physical axes (x, y, and z). + case gyroscope // = 1 + + /// Measures the ambient geomagnetic field for all three physical axes + /// (x, y, z) in μT. + case magneticField // = 2 + + /// Measures degrees of rotation that a device makes around all three + /// physical axes (x, y, z) + case orientation // = 3 + + /// Measures the temperature of the device in degrees Celsius (°C). + case temperature // = 4 + + /// Measures the proximity of an object in cm relative to the view screen + /// of a device. This sensor is typically used to determine whether a + /// handset is being held up to a person's ear. + case proximity // = 5 + + /// Measures the ambient light level (illumination) in lx. + case light // = 6 + + /// Measures the ambient air pressure in hPa or mbar. + case pressure // = 7 + + /// Measures the relative ambient humidity in percent (%). + case humidity // = 8 + case magneticFieldUncalibrated // = 9 + case gyroscopeUncalibrated // = 10 + + /// Measures the heart rate in bpm. + case heartRate // = 14 + + /// Measures the ambient RGBC light intensity. + /// Values are in order (Red, Green, Blue, Clear). + case rgbcLight // = 15 + + /// WIRST_TILT (16) is skipped; clients should use get/setPhysicalModel() + /// instead. + /// Measures acceleration force and provides bias data. + case accelerationUncalibrated // = 17 + + /// A sensor of this type measures the direction in which the device is + /// pointing relative to true north in degrees. + case heading // = 18 + case UNRECOGNIZED(Int) + + init() { + self = .acceleration + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .acceleration + case 1: self = .gyroscope + case 2: self = .magneticField + case 3: self = .orientation + case 4: self = .temperature + case 5: self = .proximity + case 6: self = .light + case 7: self = .pressure + case 8: self = .humidity + case 9: self = .magneticFieldUncalibrated + case 10: self = .gyroscopeUncalibrated + case 14: self = .heartRate + case 15: self = .rgbcLight + case 17: self = .accelerationUncalibrated + case 18: self = .heading + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .acceleration: return 0 + case .gyroscope: return 1 + case .magneticField: return 2 + case .orientation: return 3 + case .temperature: return 4 + case .proximity: return 5 + case .light: return 6 + case .pressure: return 7 + case .humidity: return 8 + case .magneticFieldUncalibrated: return 9 + case .gyroscopeUncalibrated: return 10 + case .heartRate: return 14 + case .rgbcLight: return 15 + case .accelerationUncalibrated: return 17 + case .heading: return 18 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_SensorValue.SensorType] = [ + .acceleration, + .gyroscope, + .magneticField, + .orientation, + .temperature, + .proximity, + .light, + .pressure, + .humidity, + .magneticFieldUncalibrated, + .gyroscopeUncalibrated, + .heartRate, + .rgbcLight, + .accelerationUncalibrated, + .heading, + ] + + } + + init() {} + + fileprivate var _value: Android_Emulation_Control_ParameterValue? = nil +} + +/// A single backlight brightness value. +nonisolated struct Android_Emulation_Control_BrightnessValue: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Type of light + var target: Android_Emulation_Control_BrightnessValue.LightType = .lcd + + /// Light intensity, ranges from 0-255. + var value: UInt32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum LightType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Display backlight. This will affect all displays. + case lcd // = 0 + case keyboard // = 1 + case button // = 2 + case UNRECOGNIZED(Int) + + init() { + self = .lcd + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .lcd + case 1: self = .keyboard + case 2: self = .button + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .lcd: return 0 + case .keyboard: return 1 + case .button: return 2 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_BrightnessValue.LightType] = [ + .lcd, + .keyboard, + .button, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_DisplayMode: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var value: Android_Emulation_Control_DisplayModeValue = .phone + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_XrOptions: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The currently active artificial surrounding environment (a.k.a. + /// passthrough environment). + var environment: Android_Emulation_Control_XrOptions.Environment = .livingRoomDay + + /// A value of 0.0 means that the real or artificial surrounding environment + /// (a.k.a. passthrough environment) is not visible. A value of 1.0 means + /// that the passthrough environment is fully visible. Any value outside of + /// the range [0.0-1.0] is ignored and leaves the state of passthrough + /// unchanged. For simplicity of the implementation, this number may be + /// rounded to an integer before applying. + var passthroughCoefficient: Float = 0 + + var dimmingValue: Float = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum Environment: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case livingRoomDay // = 0 + + /// More environments may be added later. + case livingRoomNight // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .livingRoomDay + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .livingRoomDay + case 1: self = .livingRoomNight + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .livingRoomDay: return 0 + case .livingRoomNight: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_XrOptions.Environment] = [ + .livingRoomDay, + .livingRoomNight, + ] + + } + + init() {} +} + +/// The state of one LED indicator of AI glasses. +nonisolated struct Android_Emulation_Control_LedIndicator: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The indicator's identifier. + var id: UInt32 { + get {_id ?? 0} + set {_id = newValue} + } + /// Returns true if `id` has been explicitly set. + var hasID: Bool {self._id != nil} + /// Clears the value of `id`. Subsequent reads from it will return its default value. + mutating func clearID() {self._id = nil} + + /// Determines whether the indicator is inside or outside of the glasses frames. + var facing: Android_Emulation_Control_LedIndicator.Facing { + get {_facing ?? .inside} + set {_facing = newValue} + } + /// Returns true if `facing` has been explicitly set. + var hasFacing: Bool {self._facing != nil} + /// Clears the value of `facing`. Subsequent reads from it will return its default value. + mutating func clearFacing() {self._facing = nil} + + /// Determines whether the indicator is on or off. + var state: Android_Emulation_Control_LedIndicator.State { + get {_state ?? .off} + set {_state = newValue} + } + /// Returns true if `state` has been explicitly set. + var hasState: Bool {self._state != nil} + /// Clears the value of `state`. Subsequent reads from it will return its default value. + mutating func clearState() {self._state = nil} + + /// Color in RGB format. + var color: UInt32 { + get {_color ?? 0} + set {_color = newValue} + } + /// Returns true if `color` has been explicitly set. + var hasColor: Bool {self._color != nil} + /// Clears the value of `color`. Subsequent reads from it will return its default value. + mutating func clearColor() {self._color = nil} + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum Facing: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case inside // = 0 + case outside // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .inside + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .inside + case 1: self = .outside + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .inside: return 0 + case .outside: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_LedIndicator.Facing] = [ + .inside, + .outside, + ] + + } + + nonisolated enum State: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case off // = 0 + case on // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .off + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .off + case 1: self = .on + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .off: return 0 + case .on: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_LedIndicator.State] = [ + .off, + .on, + ] + + } + + init() {} + + fileprivate var _id: UInt32? = nil + fileprivate var _facing: Android_Emulation_Control_LedIndicator.Facing? = nil + fileprivate var _state: Android_Emulation_Control_LedIndicator.State? = nil + fileprivate var _color: UInt32? = nil +} + +nonisolated struct Android_Emulation_Control_LogMessage: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// [Output Only] The contents of the log output. + var contents: String = String() + + /// The starting byte position of the output that was returned. This + /// should match the start parameter sent with the request. If the serial + /// console output exceeds the size of the buffer, older output will be + /// overwritten by newer content and the start values will be mismatched. + /// + /// NOTE: This field was marked as deprecated in the .proto file. + var start: Int64 = 0 + + ///[Output Only] The position of the next byte of content from the serial + /// console output. Use this value in the next request as the start + /// parameter. + /// + /// NOTE: This field was marked as deprecated in the .proto file. + var next: Int64 = 0 + + /// Set the sort of response you are interested it in. + /// It the type is "Parsed" the entries field will contain the parsed + /// results. otherwise the contents field will be set. + var sort: Android_Emulation_Control_LogMessage.LogType = .text + + /// [Output Only] The parsed logcat entries so far. Only set if sort is + /// set to Parsed + var entries: [Android_Emulation_Control_LogcatEntry] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum LogType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case text // = 0 + case parsed // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .text + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .text + case 1: self = .parsed + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .text: return 0 + case .parsed: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_LogMessage.LogType] = [ + .text, + .parsed, + ] + + } + + init() {} +} + +/// A parsed logcat entry. +nonisolated struct Android_Emulation_Control_LogcatEntry: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// A Unix timestamps in milliseconds (The number of milliseconds that + /// have elapsed since January 1, 1970 (midnight UTC/GMT), not counting + /// leap seconds) + var timestamp: UInt64 = 0 + + /// Process id. + var pid: UInt32 = 0 + + /// Thread id. + var tid: UInt32 = 0 + + var level: Android_Emulation_Control_LogcatEntry.LogLevel = .unknown + + var tag: String = String() + + var msg: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + /// The possible log levels. + nonisolated enum LogLevel: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case unknown // = 0 + case `default` // = 1 + case verbose // = 2 + case debug // = 3 + case info // = 4 + case warn // = 5 + case err // = 6 + case fatal // = 7 + case silent // = 8 + case UNRECOGNIZED(Int) + + init() { + self = .unknown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unknown + case 1: self = .default + case 2: self = .verbose + case 3: self = .debug + case 4: self = .info + case 5: self = .warn + case 6: self = .err + case 7: self = .fatal + case 8: self = .silent + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unknown: return 0 + case .default: return 1 + case .verbose: return 2 + case .debug: return 3 + case .info: return 4 + case .warn: return 5 + case .err: return 6 + case .fatal: return 7 + case .silent: return 8 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_LogcatEntry.LogLevel] = [ + .unknown, + .default, + .verbose, + .debug, + .info, + .warn, + .err, + .fatal, + .silent, + ] + + } + + init() {} +} + +/// Information about the hypervisor that is currently in use. +nonisolated struct Android_Emulation_Control_VmConfiguration: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var hypervisorType: Android_Emulation_Control_VmConfiguration.VmHypervisorType = .unknown + + var numberOfCpuCores: Int32 = 0 + + var ramSizeBytes: Int64 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum VmHypervisorType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// An unknown hypervisor + case unknown // = 0 + + /// No hypervisor is in use. This usually means that the guest is + /// running on a different CPU than the host, or you are using a + /// platform where no hypervisor is available. + case none // = 1 + + /// The Kernel based Virtual Machine + /// (https://www.linux-kvm.org/page/Main_Page) + case kvm // = 2 + + /// Intel® Hardware Accelerated Execution Manager (Intel® HAXM) + /// + /// NOTE: This enum value was marked as deprecated in the .proto file + case haxm // = 3 + + /// Hypervisor Framework. + /// https://developer.apple.com/documentation/hypervisor + case hvf // = 4 + + /// Window Hypervisor Platform + /// https://docs.microsoft.com/en-us/virtualization/api/ + case whpx // = 5 + case aehd // = 6 + case UNRECOGNIZED(Int) + + init() { + self = .unknown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unknown + case 1: self = .none + case 2: self = .kvm + case 3: self = .haxm + case 4: self = .hvf + case 5: self = .whpx + case 6: self = .aehd + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unknown: return 0 + case .none: return 1 + case .kvm: return 2 + case .haxm: return 3 + case .hvf: return 4 + case .whpx: return 5 + case .aehd: return 6 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_VmConfiguration.VmHypervisorType] = [ + .unknown, + .none, + .kvm, + .haxm, + .hvf, + .whpx, + .aehd, + ] + + } + + init() {} +} + +/// Representation of a clipped data object on the clipboard. +nonisolated struct Android_Emulation_Control_ClipData: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// UTF-8 Encoded text. + var text: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// The Touch interface represents a single contact point on a +/// touch-sensitive device. The contact point is commonly a finger or stylus +/// and the device may be a touchscreen or trackpad. +nonisolated struct Android_Emulation_Control_Touch: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The horizontal coordinate. This is the physical location on the + /// screen For example 0 indicates the leftmost coordinate. + var x: Int32 = 0 + + /// The vertical coordinate. This is the physical location on the screen + /// For example 0 indicates the top left coordinate. + var y: Int32 = 0 + + /// The identifier is an arbitrary non-negative integer that is used to + /// identify and track each tool independently when multiple tools are + /// active. For example, when multiple fingers are touching the device, + /// each finger should be assigned a distinct tracking id that is used as + /// long as the finger remains in contact. Tracking ids may be reused + /// when their associated tools move out of range. + /// + /// The emulator currently supports up to 10 concurrent touch events. The + /// identifier can be any uninque value and will be mapped to the next + /// available internal identifier. + var identifier: Int32 = 0 + + /// Reports the physical pressure applied to the tip of the tool or the + /// signal strength of the touch contact. + /// + /// The values reported must be non-zero when the tool is touching the + /// device and zero otherwise to indicate that the touch event is + /// completed. + /// + /// Make sure to deliver a pressure of 0 for the given identifier when + /// the touch event is completed, otherwise the touch identifier will not + /// be unregistered! + var pressure: Int32 = 0 + + /// Optionally reports the cross-sectional area of the touch contact, or + /// the length of the longer dimension of the touch contact. + var touchMajor: Int32 = 0 + + /// Optionally reports the length of the shorter dimension of the touch + /// contact. This axis will be ignored if touch_major is reporting an + /// area measurement greater than 0. + var touchMinor: Int32 = 0 + + var expiration: Android_Emulation_Control_Touch.EventExpiration = .unspecified + + /// The orientation of the contact, if any. + var orientation: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum EventExpiration: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// The system will use the default time of 120s to track + /// the touch event with the given identifier. If no update happens + /// within this timeframe the identifier is considered expired + /// and can be made available for re-use. This means that a touch event + /// with pressure 0 for this identifier will be send to the emulator. + case unspecified // = 0 + + /// Never expire the given slot. You must *ALWAYS* close the identifier + /// by sending a touch event with 0 pressure. + case neverExpire // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .unspecified + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unspecified + case 1: self = .neverExpire + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unspecified: return 0 + case .neverExpire: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_Touch.EventExpiration] = [ + .unspecified, + .neverExpire, + ] + + } + + init() {} +} + +/// A Pen is similar to a touch, with the addition +/// of button and rubber information. +nonisolated struct Android_Emulation_Control_Pen: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var location: Android_Emulation_Control_Touch { + get {_location ?? Android_Emulation_Control_Touch()} + set {_location = newValue} + } + /// Returns true if `location` has been explicitly set. + var hasLocation: Bool {self._location != nil} + /// Clears the value of `location`. Subsequent reads from it will return its default value. + mutating func clearLocation() {self._location = nil} + + /// True if the button is pressed or not + var buttonPressed: Bool = false + + /// True if it is a rubber pointer. + var rubberPointer: Bool = false + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _location: Android_Emulation_Control_Touch? = nil +} + +/// A TouchEvent contains a list of Touch objects that are in contact with +/// the touch surface. +/// +/// Touch events are delivered in sequence as specified in the touchList. +/// +/// TouchEvents are delivered to the emulated devices using ["Protocol +/// B"](https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt) +nonisolated struct Android_Emulation_Control_TouchEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The list of Touch objects, note that these do not need to be unique + var touches: [Android_Emulation_Control_Touch] = [] + + /// The display device where the touch event occurred. + /// Omitting or using the value 0 indicates the main display. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// A TouchpadEvent contains a list of Touch objects that are in contact with +/// the touchpad surface. +/// +/// Touchpad events are delivered in sequence as specified in the touchList. +/// +/// TouchpadEvents are delivered to the emulated devices using ["Protocol +/// B"](https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt) +nonisolated struct Android_Emulation_Control_TouchpadEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The list of Touch objects, note that these do not need to be unique + var touches: [Android_Emulation_Control_Touch] = [] + + /// The touchpad device where the touch event occurred. + /// Omitting or using the value 0 indicates the main touchpad. + var touchpad: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_PenEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The list of Pen objects, note that these do not need to be unique + var events: [Android_Emulation_Control_Pen] = [] + + /// The display device where the pen event occurred. + /// Omitting or using the value 0 indicates the main display. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// The MouseEvent interface represents events that occur due to the user +/// interacting with a pointing device (such as a mouse). +nonisolated struct Android_Emulation_Control_MouseEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The horizontal coordinate. This is the physical location on the + /// screen, where 0 indicates the leftmost coordinate. + var x: Int32 = 0 + + /// The vertical coordinate. This is the physical location on the screen, + /// where 0 indicates the topmost coordinate. + var y: Int32 = 0 + + /// Indicates which buttons are pressed. + /// 0: No button was pressed + /// 1: Primary button (left) + /// 2: Secondary button (right) + var buttons: Int32 = 0 + + /// The display device where the mouse event occurred. + /// Omitting or using the value 0 indicates the main display. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_WheelEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The value indicating how much the mouse wheel is rotated. Scaled so that + /// 120 equals to 1 wheel click. (120 is chosen as a multiplier often used to + /// represent wheel movements less than 1 wheel click. e.g. + /// https://doc.qt.io/qt-5/qwheelevent.html#angleDelta) Positive delta value + /// is assigned to dx when the top of wheel is moved to left. Similarly + /// positive delta value is assigned to dy when the top of wheel is moved + /// away from the user. + var dx: Int32 = 0 + + var dy: Int32 = 0 + + /// The display device where the mouse event occurred. + /// Omitting or using the value 0 indicates the main display. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// KeyboardEvent objects describe a user interaction with the keyboard; each +/// event describes a single interaction between the user and a key (or +/// combination of a key with modifier keys) on the keyboard. +/// This follows the pattern as set by +/// (javascript)[https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent] +/// +/// Note: that only keyCode, key, or text can be set and that the semantics +/// will slightly vary. +nonisolated struct Android_Emulation_Control_KeyboardEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Type of keycode contained in the keyCode field. + var codeType: Android_Emulation_Control_KeyboardEvent.KeyCodeType = .usb + + /// The type of keyboard event that should be sent to the emulator + var eventType: Android_Emulation_Control_KeyboardEvent.KeyEventType = .keydown + + /// This property represents a physical key on the keyboard (as opposed + /// to the character generated by pressing the key). In other words, this + /// property is a value which isn't altered by keyboard layout or the + /// state of the modifier keys. This value will be interpreted by the + /// emulator depending on the KeyCodeType. The incoming key code will be + /// translated to an evdev code type and send to the emulator. + /// The values in key and text will be ignored. + var keyCode: Int32 = 0 + + /// The value of the key pressed by the user, taking into consideration + /// the state of modifier keys such as Shift as well as the keyboard + /// locale and layout. This follows the w3c standard used in browsers. + /// You can find an accurate description of valid values + /// [here](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values) + /// + /// Note that some keys can result in multiple evdev events that are + /// delivered to the emulator. for example the Key "A" will result in a + /// sequence: + /// ["Shift", "a"] -> [0x2a, 0x1e] whereas "a" results in ["a"] -> [0x1e]. + /// + /// Not all documented keys are understood by android, and only printable + /// ASCII [32-127) characters are properly translated. + /// + /// Keep in mind that there are a set of key values that result in android + /// specific behavior + /// [see](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values#Phone_keys): + /// + /// - "AppSwitch": Behaves as the "Overview" button in android. + /// - "GoBack": The Back button. + /// - "GoHome": The Home button, which takes the user to the phone's main + /// screen (usually an application launcher). + /// - "Power": The Power button. + var key: String = String() + + /// Series of utf8 encoded characters to send to the emulator. An attempt + /// will be made to translate every character will an EvDev event type and + /// send to the emulator as a keypress event. The values in keyCode, + /// eventType, codeType and key will be ignored. + /// + /// Note that most printable ASCII characters (range [32-127) can be send + /// individually with the "key" param. Do not expect arbitrary UTF symbols to + /// arrive in the emulator (most will be ignored). + /// + /// Note that it is possible to overrun the keyboard buffer by slamming this + /// endpoint with large quantities of text (>1kb). The clipboard api is + /// better suited for transferring large quantities of text. + var text: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + /// Code types that the emulator can receive. Note that the emulator + /// will do its best to translate the code to an evdev value that + /// will be send to the emulator. This translation is based on + /// the chromium translation tables. See + /// (this)[https://android.googlesource.com/platform/external/qemu/+/refs/heads/emu-master-dev/android/android-grpc/android/emulation/control/keyboard/keycode_converter_data.inc] + /// for details on the translation. + nonisolated enum KeyCodeType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case usb // = 0 + case evdev // = 1 + case xkb // = 2 + case win // = 3 + case mac // = 4 + case UNRECOGNIZED(Int) + + init() { + self = .usb + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .usb + case 1: self = .evdev + case 2: self = .xkb + case 3: self = .win + case 4: self = .mac + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .usb: return 0 + case .evdev: return 1 + case .xkb: return 2 + case .win: return 3 + case .mac: return 4 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_KeyboardEvent.KeyCodeType] = [ + .usb, + .evdev, + .xkb, + .win, + .mac, + ] + + } + + nonisolated enum KeyEventType: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Indicates that this keyevent should be send to the emulator + /// as a key down event. Meaning that the key event will be + /// translated to an EvDev event type and bit 11 (0x400) will be + /// set before it is sent to the emulator. + case keydown // = 0 + + /// Indicates that the keyevent should be send to the emulator + /// as a key up event. Meaning that the key event will be + /// translated to an EvDev event type and + /// sent to the emulator. + case keyup // = 1 + + /// Indicates that the keyevent will be send to the emulator + /// as e key down event and immediately followed by a keyup event. + case keypress // = 2 + case UNRECOGNIZED(Int) + + init() { + self = .keydown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .keydown + case 1: self = .keyup + case 2: self = .keypress + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .keydown: return 0 + case .keyup: return 1 + case .keypress: return 2 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_KeyboardEvent.KeyEventType] = [ + .keydown, + .keyup, + .keypress, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_XrCommand: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var action: Android_Emulation_Control_XrCommand.Action = .recenter + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum Action: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Recenter the viewport position and rotation. + case recenter // = 0 + case UNRECOGNIZED(Int) + + init() { + self = .recenter + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .recenter + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .recenter: return 0 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_XrCommand.Action] = [ + .recenter, + ] + + } + + init() {} +} + +/// An input event that can be delivered to the emulator. +nonisolated struct Android_Emulation_Control_InputEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var type: Android_Emulation_Control_InputEvent.OneOf_Type? = nil + + var keyEvent: Android_Emulation_Control_KeyboardEvent { + get { + if case .keyEvent(let v)? = type {return v} + return Android_Emulation_Control_KeyboardEvent() + } + set {type = .keyEvent(newValue)} + } + + var touchEvent: Android_Emulation_Control_TouchEvent { + get { + if case .touchEvent(let v)? = type {return v} + return Android_Emulation_Control_TouchEvent() + } + set {type = .touchEvent(newValue)} + } + + var mouseEvent: Android_Emulation_Control_MouseEvent { + get { + if case .mouseEvent(let v)? = type {return v} + return Android_Emulation_Control_MouseEvent() + } + set {type = .mouseEvent(newValue)} + } + + var androidEvent: Android_Emulation_Control_AndroidEvent { + get { + if case .androidEvent(let v)? = type {return v} + return Android_Emulation_Control_AndroidEvent() + } + set {type = .androidEvent(newValue)} + } + + var penEvent: Android_Emulation_Control_PenEvent { + get { + if case .penEvent(let v)? = type {return v} + return Android_Emulation_Control_PenEvent() + } + set {type = .penEvent(newValue)} + } + + var wheelEvent: Android_Emulation_Control_WheelEvent { + get { + if case .wheelEvent(let v)? = type {return v} + return Android_Emulation_Control_WheelEvent() + } + set {type = .wheelEvent(newValue)} + } + + var xrHandEvent: Android_Emulation_Control_MouseEvent { + get { + if case .xrHandEvent(let v)? = type {return v} + return Android_Emulation_Control_MouseEvent() + } + set {type = .xrHandEvent(newValue)} + } + + var xrEyeEvent: Android_Emulation_Control_MouseEvent { + get { + if case .xrEyeEvent(let v)? = type {return v} + return Android_Emulation_Control_MouseEvent() + } + set {type = .xrEyeEvent(newValue)} + } + + var xrCommand: Android_Emulation_Control_XrCommand { + get { + if case .xrCommand(let v)? = type {return v} + return Android_Emulation_Control_XrCommand() + } + set {type = .xrCommand(newValue)} + } + + var xrHeadRotationEvent: Android_Emulation_Control_RotationRadian { + get { + if case .xrHeadRotationEvent(let v)? = type {return v} + return Android_Emulation_Control_RotationRadian() + } + set {type = .xrHeadRotationEvent(newValue)} + } + + var xrHeadMovementEvent: Android_Emulation_Control_Translation { + get { + if case .xrHeadMovementEvent(let v)? = type {return v} + return Android_Emulation_Control_Translation() + } + set {type = .xrHeadMovementEvent(newValue)} + } + + var xrHeadAngularVelocityEvent: Android_Emulation_Control_AngularVelocity { + get { + if case .xrHeadAngularVelocityEvent(let v)? = type {return v} + return Android_Emulation_Control_AngularVelocity() + } + set {type = .xrHeadAngularVelocityEvent(newValue)} + } + + var xrHeadVelocityEvent: Android_Emulation_Control_Velocity { + get { + if case .xrHeadVelocityEvent(let v)? = type {return v} + return Android_Emulation_Control_Velocity() + } + set {type = .xrHeadVelocityEvent(newValue)} + } + + var touchpadEvent: Android_Emulation_Control_TouchpadEvent { + get { + if case .touchpadEvent(let v)? = type {return v} + return Android_Emulation_Control_TouchpadEvent() + } + set {type = .touchpadEvent(newValue)} + } + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum OneOf_Type: Equatable, Sendable { + case keyEvent(Android_Emulation_Control_KeyboardEvent) + case touchEvent(Android_Emulation_Control_TouchEvent) + case mouseEvent(Android_Emulation_Control_MouseEvent) + case androidEvent(Android_Emulation_Control_AndroidEvent) + case penEvent(Android_Emulation_Control_PenEvent) + case wheelEvent(Android_Emulation_Control_WheelEvent) + case xrHandEvent(Android_Emulation_Control_MouseEvent) + case xrEyeEvent(Android_Emulation_Control_MouseEvent) + case xrCommand(Android_Emulation_Control_XrCommand) + case xrHeadRotationEvent(Android_Emulation_Control_RotationRadian) + case xrHeadMovementEvent(Android_Emulation_Control_Translation) + case xrHeadAngularVelocityEvent(Android_Emulation_Control_AngularVelocity) + case xrHeadVelocityEvent(Android_Emulation_Control_Velocity) + case touchpadEvent(Android_Emulation_Control_TouchpadEvent) + + } + + init() {} +} + +/// The android input event system is a framework for handling input from a +/// variety of devices by generating events that describe changes in the +/// state of the devices and forwarding them to user space applications. +/// +/// An AndroidEvents will be delivered directly to the kernel as is. +nonisolated struct Android_Emulation_Control_AndroidEvent: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The type of the event. The types of the event are specified + /// by the android kernel. Some examples are: + /// EV_SYN, EV_KEY, EV_SW, etc.. + /// The exact definitions can be found in the input.h header file. + var type: Int32 = 0 + + /// The actual code to be send to the kernel. The actual meaning + /// of the code depends on the type definition. + var code: Int32 = 0 + + /// The actual value of the event. + var value: Int32 = 0 + + /// The display id associated with this input event. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_Fingerprint: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// True when the fingprint is touched. + var isTouching: Bool = false + + /// The identifier of the registered fingerprint. + var touchID: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_GpsState: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Setting this to false will disable auto updating from the LocationUI, + /// otherwise the location UI will override the location at a frequency of + /// 1hz. + /// + /// - This is unused if the emulator is launched with -no-window, or when he + /// location ui is disabled. + /// - This will BREAK the location ui experience if it is set to false. For + /// example routing will no longer function. + var passiveUpdate: Bool = false + + /// The latitude, in degrees. + var latitude: Double = 0 + + /// The longitude, in degrees. + var longitude: Double = 0 + + /// The speed if it is available, in meters/second over ground + var speed: Double = 0 + + /// gets the horizontal direction of travel of this device, and is not + /// related to the device orientation. It is guaranteed to be in the + /// range [0.0, 360.0] if the device has a bearing. 0=North, 90=East, + /// 180=South, etc.. + var bearing: Double = 0 + + /// The altitude if available, in meters above the WGS 84 reference + /// ellipsoid. + var altitude: Double = 0 + + /// The number of satellites used to derive the fix + var satellites: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_BatteryState: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var hasBattery_p: Bool = false + + var isPresent: Bool = false + + var charger: Android_Emulation_Control_BatteryState.BatteryCharger = .none + + var chargeLevel: Int32 = 0 + + var health: Android_Emulation_Control_BatteryState.BatteryHealth = .good + + var status: Android_Emulation_Control_BatteryState.BatteryStatus = .unknown + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum BatteryStatus: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case unknown // = 0 + case charging // = 1 + case discharging // = 2 + case notCharging // = 3 + case full // = 4 + case UNRECOGNIZED(Int) + + init() { + self = .unknown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unknown + case 1: self = .charging + case 2: self = .discharging + case 3: self = .notCharging + case 4: self = .full + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unknown: return 0 + case .charging: return 1 + case .discharging: return 2 + case .notCharging: return 3 + case .full: return 4 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_BatteryState.BatteryStatus] = [ + .unknown, + .charging, + .discharging, + .notCharging, + .full, + ] + + } + + nonisolated enum BatteryCharger: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case none // = 0 + case ac // = 1 + case usb // = 2 + case wireless // = 3 + case UNRECOGNIZED(Int) + + init() { + self = .none + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .none + case 1: self = .ac + case 2: self = .usb + case 3: self = .wireless + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .none: return 0 + case .ac: return 1 + case .usb: return 2 + case .wireless: return 3 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_BatteryState.BatteryCharger] = [ + .none, + .ac, + .usb, + .wireless, + ] + + } + + nonisolated enum BatteryHealth: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case good // = 0 + case failed // = 1 + case dead // = 2 + case overvoltage // = 3 + case overheated // = 4 + case UNRECOGNIZED(Int) + + init() { + self = .good + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .good + case 1: self = .failed + case 2: self = .dead + case 3: self = .overvoltage + case 4: self = .overheated + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .good: return 0 + case .failed: return 1 + case .dead: return 2 + case .overvoltage: return 3 + case .overheated: return 4 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_BatteryState.BatteryHealth] = [ + .good, + .failed, + .dead, + .overvoltage, + .overheated, + ] + + } + + init() {} +} + +/// An ImageTransport allows for specifying a side channel for +/// delivering image frames versus using the standard bytes array that is +/// returned with the gRPC request. +nonisolated struct Android_Emulation_Control_ImageTransport: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The desired transport channel used for delivering image frames. Only + /// relevant when streaming screenshots. + var channel: Android_Emulation_Control_ImageTransport.TransportChannel = .unspecified + + /// Handle used for writing image frames if transport is mmap. The client + /// sets and owns this handle. It can be either a shm region, or a mmap. A + /// mmap should be a url that starts with `file:///` Note: the mmap can + /// result in tearing. + var handle: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum TransportChannel: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Return full frames over the gRPC transport + case unspecified // = 0 + + /// Write images to the a file/shared memory handle. + case mmap // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .unspecified + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unspecified + case 1: self = .mmap + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unspecified: return 0 + case .mmap: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_ImageTransport.TransportChannel] = [ + .unspecified, + .mmap, + ] + + } + + init() {} +} + +/// The aspect ratio (width/height) will be different from the one +/// where the device is unfolded. +nonisolated struct Android_Emulation_Control_FoldedDisplay: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var width: UInt32 = 0 + + var height: UInt32 = 0 + + /// It is possible for the screen to be folded in different ways depending + /// on which surface is shown to the user. So xOffset and yOffset indicate + /// the top left corner of the folded screen within the original unfolded + /// screen. + var xOffset: UInt32 = 0 + + var yOffset: UInt32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_ImageFormat: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The (desired) format of the resulting bytes. + var format: Android_Emulation_Control_ImageFormat.ImgFormat = .png + + /// [Output Only] The rotation of the image. The image will be rotated + /// based upon the coarse grained orientation of the device. + var rotation: Android_Emulation_Control_Rotation { + get {_rotation ?? Android_Emulation_Control_Rotation()} + set {_rotation = newValue} + } + /// Returns true if `rotation` has been explicitly set. + var hasRotation: Bool {self._rotation != nil} + /// Clears the value of `rotation`. Subsequent reads from it will return its default value. + mutating func clearRotation() {self._rotation = nil} + + /// The (desired) width of the image. When passed as input + /// the image will be scaled to match the given + /// width, while maintaining the aspect ratio of the device. + /// The returned image will never exceed the given width, but can be less. + /// Omitting this value (or passing in 0) will result in no scaling, + /// and the width of the actual device will be used. + var width: UInt32 = 0 + + /// The (desired) height of the image. When passed as input + /// the image will be scaled to match the given + /// height, while maintaining the aspect ratio of the device. + /// The returned image will never exceed the given height, but can be less. + /// Omitting this value (or passing in 0) will result in no scaling, + /// and the height of the actual device will be used. + var height: UInt32 = 0 + + /// The (desired) display id of the device. Setting this to 0 (or omitting) + /// indicates the main display. + var display: UInt32 = 0 + + /// Set this if you wish to use a different transport channel to deliver + /// image frames. + var transport: Android_Emulation_Control_ImageTransport { + get {_transport ?? Android_Emulation_Control_ImageTransport()} + set {_transport = newValue} + } + /// Returns true if `transport` has been explicitly set. + var hasTransport: Bool {self._transport != nil} + /// Clears the value of `transport`. Subsequent reads from it will return its default value. + mutating func clearTransport() {self._transport = nil} + + /// [Output Only] Display configuration when screen is folded. The value is + /// the original configuration before scaling. + var foldedDisplay: Android_Emulation_Control_FoldedDisplay { + get {_foldedDisplay ?? Android_Emulation_Control_FoldedDisplay()} + set {_foldedDisplay = newValue} + } + /// Returns true if `foldedDisplay` has been explicitly set. + var hasFoldedDisplay: Bool {self._foldedDisplay != nil} + /// Clears the value of `foldedDisplay`. Subsequent reads from it will return its default value. + mutating func clearFoldedDisplay() {self._foldedDisplay = nil} + + /// [Output Only] Display mode when AVD is resizable. + var displayMode: Android_Emulation_Control_DisplayModeValue = .phone + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum ImgFormat: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Portable Network Graphics format + /// (https://en.wikipedia.org/wiki/Portable_Network_Graphics) + case png // = 0 + + /// Three-channel RGB color model supplemented with a fourth alpha + /// channel. https://en.wikipedia.org/wiki/RGBA_color_model + /// Each pixel consists of 4 bytes. + case rgba8888 // = 1 + + /// Three-channel RGB color model, each pixel consists of 3 bytes + case rgb888 // = 2 + case UNRECOGNIZED(Int) + + init() { + self = .png + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .png + case 1: self = .rgba8888 + case 2: self = .rgb888 + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .png: return 0 + case .rgba8888: return 1 + case .rgb888: return 2 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_ImageFormat.ImgFormat] = [ + .png, + .rgba8888, + .rgb888, + ] + + } + + init() {} + + fileprivate var _rotation: Android_Emulation_Control_Rotation? = nil + fileprivate var _transport: Android_Emulation_Control_ImageTransport? = nil + fileprivate var _foldedDisplay: Android_Emulation_Control_FoldedDisplay? = nil +} + +nonisolated struct Android_Emulation_Control_Image: @unchecked Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var format: Android_Emulation_Control_ImageFormat { + get {_storage._format ?? Android_Emulation_Control_ImageFormat()} + set {_uniqueStorage()._format = newValue} + } + /// Returns true if `format` has been explicitly set. + var hasFormat: Bool {_storage._format != nil} + /// Clears the value of `format`. Subsequent reads from it will return its default value. + mutating func clearFormat() {_uniqueStorage()._format = nil} + + /// width is contained in format. + /// + /// NOTE: This field was marked as deprecated in the .proto file. + var width: UInt32 { + get {_storage._width} + set {_uniqueStorage()._width = newValue} + } + + /// height is contained in format. + /// + /// NOTE: This field was marked as deprecated in the .proto file. + var height: UInt32 { + get {_storage._height} + set {_uniqueStorage()._height = newValue} + } + + /// The organization of the pixels in the image buffer is from left to + /// right and bottom up. This will be empty if an alternative image transport + /// is requested in the image format. In that case the side channel should + /// be used to obtain the image data. + var image: Data { + get {_storage._image} + set {_uniqueStorage()._image = newValue} + } + + /// [Output Only] Monotonically increasing sequence number in a stream of + /// screenshots. The first screenshot will have a sequence of 0. A single + /// screenshot will always have a sequence number of 0. The sequence is not + /// necessarily contiguous, and can be used to detect how many frames were + /// dropped. An example sequence could be: [0, 3, 5, 7, 9, 11]. + var seq: UInt32 { + get {_storage._seq} + set {_uniqueStorage()._seq = newValue} + } + + /// [Output Only] Unix timestamp in microseconds when the emulator estimates + /// the frame was generated. The timestamp is before the actual frame is + /// copied and transformed. This can be used to calculate variance between + /// frame production time, and frame depiction time. + var timestampUs: UInt64 { + get {_storage._timestampUs} + set {_uniqueStorage()._timestampUs = newValue} + } + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _storage = _StorageClass.defaultInstance +} + +nonisolated struct Android_Emulation_Control_Rotation: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The rotation of the device, derived from the sensor state + /// of the emulator. The derivation reflects how android observes + /// the rotation state. + var rotation: Android_Emulation_Control_Rotation.SkinRotation = .portrait + + /// Specifies the angle of rotation, in degrees [-180, 180] + var xAxis: Double = 0 + + var yAxis: Double = 0 + + var zAxis: Double = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum SkinRotation: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// 0 degrees + case portrait // = 0 + + /// 90 degrees + case landscape // = 1 + + /// -180 degrees + case reversePortrait // = 2 + + /// -90 degrees + case reverseLandscape // = 3 + case UNRECOGNIZED(Int) + + init() { + self = .portrait + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .portrait + case 1: self = .landscape + case 2: self = .reversePortrait + case 3: self = .reverseLandscape + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .portrait: return 0 + case .landscape: return 1 + case .reversePortrait: return 2 + case .reverseLandscape: return 3 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_Rotation.SkinRotation] = [ + .portrait, + .landscape, + .reversePortrait, + .reverseLandscape, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_PhoneCall: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var operation: Android_Emulation_Control_PhoneCall.Operation = .initCall + + var number: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum Operation: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case initCall // = 0 + case acceptCall // = 1 + case rejectCallExplicit // = 2 + case rejectCallBusy // = 3 + case disconnectCall // = 4 + case placeCallOnHold // = 5 + case takeCallOffHold // = 6 + case UNRECOGNIZED(Int) + + init() { + self = .initCall + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .initCall + case 1: self = .acceptCall + case 2: self = .rejectCallExplicit + case 3: self = .rejectCallBusy + case 4: self = .disconnectCall + case 5: self = .placeCallOnHold + case 6: self = .takeCallOffHold + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .initCall: return 0 + case .acceptCall: return 1 + case .rejectCallExplicit: return 2 + case .rejectCallBusy: return 3 + case .disconnectCall: return 4 + case .placeCallOnHold: return 5 + case .takeCallOffHold: return 6 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_PhoneCall.Operation] = [ + .initCall, + .acceptCall, + .rejectCallExplicit, + .rejectCallBusy, + .disconnectCall, + .placeCallOnHold, + .takeCallOffHold, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_PhoneResponse: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var response: Android_Emulation_Control_PhoneResponse.Response = .ok + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum Response: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case ok // = 0 + + /// Enum out of range + case badOperation // = 1 + + /// Mal-formed telephone number + case badNumber // = 2 + + /// E.g., disconnect when no call is in progress + case invalidAction // = 3 + + /// Internal error + case actionFailed // = 4 + + /// Radio power off + case radioOff // = 5 + case UNRECOGNIZED(Int) + + init() { + self = .ok + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .ok + case 1: self = .badOperation + case 2: self = .badNumber + case 3: self = .invalidAction + case 4: self = .actionFailed + case 5: self = .radioOff + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .ok: return 0 + case .badOperation: return 1 + case .badNumber: return 2 + case .invalidAction: return 3 + case .actionFailed: return 4 + case .radioOff: return 5 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_PhoneResponse.Response] = [ + .ok, + .badOperation, + .badNumber, + .invalidAction, + .actionFailed, + .radioOff, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_Entry: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var key: String = String() + + var value: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_EntryList: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var entry: [Android_Emulation_Control_Entry] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_EmulatorStatus: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The emulator version string. + var version: String = String() + + /// The time the emulator has been active in .ms + var uptime: UInt64 = 0 + + /// True if the device has completed booting. + /// For P and later this information will accurate, + /// for older images we rely on adb. + var booted: Bool = false + + /// The current vm configuration + var vmConfig: Android_Emulation_Control_VmConfiguration { + get {_vmConfig ?? Android_Emulation_Control_VmConfiguration()} + set {_vmConfig = newValue} + } + /// Returns true if `vmConfig` has been explicitly set. + var hasVmConfig: Bool {self._vmConfig != nil} + /// Clears the value of `vmConfig`. Subsequent reads from it will return its default value. + mutating func clearVmConfig() {self._vmConfig = nil} + + /// Use platformConfig instead + /// + /// NOTE: This field was marked as deprecated in the .proto file. + var hardwareConfig: Android_Emulation_Control_EntryList { + get {_hardwareConfig ?? Android_Emulation_Control_EntryList()} + set {_hardwareConfig = newValue} + } + /// Returns true if `hardwareConfig` has been explicitly set. + var hasHardwareConfig: Bool {self._hardwareConfig != nil} + /// Clears the value of `hardwareConfig`. Subsequent reads from it will return its default value. + mutating func clearHardwareConfig() {self._hardwareConfig = nil} + + /// Some guests will produce a heart beat, that can be used to + /// detect if the guest is active. + /// This is a monotonically increasing number that gets incremented + /// around once a second. + var heartbeat: UInt64 = 0 + + /// The configuration of services in the guest, this map + /// contains key value pairs that are specific to the image + /// used by the guest. + var guestConfig: Dictionary = [:] + + /// Configuration of the emulator hardware + var platformConfig: Dictionary = [:] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _vmConfig: Android_Emulation_Control_VmConfiguration? = nil + fileprivate var _hardwareConfig: Android_Emulation_Control_EntryList? = nil +} + +nonisolated struct Android_Emulation_Control_AudioFormat: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Sampling rate to use, defaulting to 44100 if this is not set. + /// Note, that android devices typically will not use a sampling + /// rate higher than 48kHz. See + /// https://developer.android.com/ndk/guides/audio. + var samplingRate: UInt64 = 0 + + var channels: Android_Emulation_Control_AudioFormat.Channels = .mono + + var format: Android_Emulation_Control_AudioFormat.SampleFormat = .audFmtU8 + + /// [Input Only] + /// The mode used when delivering audio packets. + var mode: Android_Emulation_Control_AudioFormat.DeliveryMode = .modeUnspecified + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum SampleFormat: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// Unsigned 8 bit + case audFmtU8 // = 0 + + /// Signed 16 bit (little endian) + case audFmtS16 // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .audFmtU8 + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .audFmtU8 + case 1: self = .audFmtS16 + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .audFmtU8: return 0 + case .audFmtS16: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_AudioFormat.SampleFormat] = [ + .audFmtU8, + .audFmtS16, + ] + + } + + nonisolated enum Channels: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case mono // = 0 + case stereo // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .mono + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .mono + case 1: self = .stereo + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .mono: return 0 + case .stereo: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_AudioFormat.Channels] = [ + .mono, + .stereo, + ] + + } + + nonisolated enum DeliveryMode: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + + /// The audio queue will block and wait until the emulator requests + /// packets. The client does not have to throttle and can push packets at + /// will. This can result in the client falling behind. + case modeUnspecified // = 0 + + /// Audio packets will be delivered in real time (when possible). The + /// audio queue will be overwritten with incoming data if data is made + /// available. This means the client needs to control timing properly, or + /// packets will get overwritten. + case modeRealTime // = 1 + case UNRECOGNIZED(Int) + + init() { + self = .modeUnspecified + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .modeUnspecified + case 1: self = .modeRealTime + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .modeUnspecified: return 0 + case .modeRealTime: return 1 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_AudioFormat.DeliveryMode] = [ + .modeUnspecified, + .modeRealTime, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_AudioPacket: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var format: Android_Emulation_Control_AudioFormat { + get {_format ?? Android_Emulation_Control_AudioFormat()} + set {_format = newValue} + } + /// Returns true if `format` has been explicitly set. + var hasFormat: Bool {self._format != nil} + /// Clears the value of `format`. Subsequent reads from it will return its default value. + mutating func clearFormat() {self._format = nil} + + /// Unix epoch in us when this frame was captured. + var timestamp: UInt64 = 0 + + /// Contains a sample in the given audio format. + var audio: Data = Data() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _format: Android_Emulation_Control_AudioFormat? = nil +} + +nonisolated struct Android_Emulation_Control_MicrophoneState: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Whether or not host microphone access is enabled + var realAudioEnabled: Bool = false + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_SmsMessage: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The source address where this message came from. + /// + /// The address should be a valid GSM-formatted address as specified by + /// 3GPP 23.040 Sec 9.1.2.5. + /// + /// For example: +3106225412 or (650) 555-1221 + var srcAddress: String = String() + + /// A utf8 encoded text message that should be delivered. + var text: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// A DisplayConfiguration describes a primary or secondary +/// display available to the emulator. The screen aspect ratio +/// cannot be longer (or wider) than 21:9 (or 9:21). Screen sizes +/// larger than 4k will be rejected. +/// +/// Common configurations (w x h) are: +/// - 480p (480x720) 142 dpi +/// - 720p (720x1280) 213 dpi +/// - 1080p (1080x1920) 320 dpi +/// - 4K (2160x3840) 320 dpi +/// - 4K (2160x3840) 640 dpi (upscaled) +/// +/// The behavior of the virtual display depends on the flags that are provided to +/// this method. By default, virtual displays are created to be private, +/// non-presentation and unsecure. +nonisolated struct Android_Emulation_Control_DisplayConfiguration: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The width of the display, restricted to: + /// 320 * (dpi / 160) <= width + var width: UInt32 = 0 + + /// The heigh of the display, restricted to: + /// * 320 * (dpi / 160) <= height + var height: UInt32 = 0 + + /// The pixel density (dpi). + /// See https://developer.android.com/training/multiscreen/screendensities + /// for details. This value should be in the range [120, ..., 640] + var dpi: UInt32 = 0 + + /// A combination of virtual display flags. These flags can be constructed + /// by combining the DisplayFlags enum described above. + /// + /// The behavior of the virtual display depends on the flags. By default + /// virtual displays are created to be private, non-presentation and + /// unsecure. + var flags: UInt32 = 0 + + /// The id of the display. + /// The primary (default) display has the display ID of 0. + /// A secondary display has a display ID not 0. + /// + /// A display with the id in the range [1, userConfigurable] + /// can be modified. See DisplayConfigurations below for details. + /// + /// The id can be used to get or stream a screenshot. + var display: UInt32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + /// These are the set of known android flags and their respective values. + /// you can combine the int values to (de)construct the flags field below. + nonisolated enum DisplayFlags: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case unspecified // = 0 + + /// When this flag is set, the virtual display is public. + /// A public virtual display behaves just like most any other display + /// that is connected to the system such as an external or wireless + /// display. Applications can open windows on the display and the system + /// may mirror the contents of other displays onto it. see: + /// https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_PUBLIC + case virtualDisplayFlagPublic // = 1 + + /// When this flag is set, the virtual display is registered as a + /// presentation display in the presentation display category. + /// Applications may automatically project their content to presentation + /// displays to provide richer second screen experiences. + /// https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_PRESENTATION + case virtualDisplayFlagPresentation // = 2 + + /// When this flag is set, the virtual display is considered secure as + /// defined by the Display#FLAG_SECURE display flag. The caller promises + /// to take reasonable measures, such as over-the-air encryption, to + /// prevent the contents of the display from being intercepted or + /// recorded on a persistent medium. + /// see: + /// https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_SECURE + case virtualDisplayFlagSecure // = 4 + + /// This flag is used in conjunction with VIRTUAL_DISPLAY_FLAG_PUBLIC. + /// Ordinarily public virtual displays will automatically mirror the + /// content of the default display if they have no windows of their own. + /// When this flag is specified, the virtual display will only ever show + /// its own content and will be blanked instead if it has no windows. See + /// https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY + case virtualDisplayFlagOwnContentOnly // = 8 + + /// Allows content to be mirrored on private displays when no content is + /// being shown. + /// This flag is mutually exclusive with + /// VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY. If both flags are specified + /// then the own-content only behavior will be applied. + /// see: + /// https://developer.android.com/reference/android/hardware/display/DisplayManager#VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR) + case virtualDisplayFlagAutoMirror // = 16 + case UNRECOGNIZED(Int) + + init() { + self = .unspecified + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .unspecified + case 1: self = .virtualDisplayFlagPublic + case 2: self = .virtualDisplayFlagPresentation + case 4: self = .virtualDisplayFlagSecure + case 8: self = .virtualDisplayFlagOwnContentOnly + case 16: self = .virtualDisplayFlagAutoMirror + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .unspecified: return 0 + case .virtualDisplayFlagPublic: return 1 + case .virtualDisplayFlagPresentation: return 2 + case .virtualDisplayFlagSecure: return 4 + case .virtualDisplayFlagOwnContentOnly: return 8 + case .virtualDisplayFlagAutoMirror: return 16 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_DisplayConfiguration.DisplayFlags] = [ + .unspecified, + .virtualDisplayFlagPublic, + .virtualDisplayFlagPresentation, + .virtualDisplayFlagSecure, + .virtualDisplayFlagOwnContentOnly, + .virtualDisplayFlagAutoMirror, + ] + + } + + init() {} +} + +/// Provides information about all the displays that can be attached +/// to the emulator. The emulator will always have at least one display. +/// +/// The emulator usually has the following display configurations: +/// 0: The default display. +/// 1 - 3: User configurable displays. These can be added/removed. +/// For example the standalone emulator allows you to modify these +/// in the extended controls. +/// 6 - 11: Fixed external displays. For example Android Auto uses fixed +/// displays in this range. +nonisolated struct Android_Emulation_Control_DisplayConfigurations: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var displays: [Android_Emulation_Control_DisplayConfiguration] = [] + + /// Display configurations with id [1, userConfigurable] are + /// user configurable, that is they can be added, removed or + /// updated. + var userConfigurable: UInt32 = 0 + + /// The maximum number of attached displays this emulator supports. + /// This is the total number of displays that can be attached to + /// the emulator. + /// + /// Note: A display with an id that is larger than userConfigurable cannot + /// be modified. + var maxDisplays: UInt32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_Notification: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Detailed notification information. + var type: Android_Emulation_Control_Notification.OneOf_Type? = nil + + var cameraNotification: Android_Emulation_Control_CameraNotification { + get { + if case .cameraNotification(let v)? = type {return v} + return Android_Emulation_Control_CameraNotification() + } + set {type = .cameraNotification(newValue)} + } + + var displayConfigurationsChangedNotification: Android_Emulation_Control_DisplayConfigurationsChangedNotification { + get { + if case .displayConfigurationsChangedNotification(let v)? = type {return v} + return Android_Emulation_Control_DisplayConfigurationsChangedNotification() + } + set {type = .displayConfigurationsChangedNotification(newValue)} + } + + var posture: Android_Emulation_Control_Posture { + get { + if case .posture(let v)? = type {return v} + return Android_Emulation_Control_Posture() + } + set {type = .posture(newValue)} + } + + var booted: Android_Emulation_Control_BootCompletedNotification { + get { + if case .booted(let v)? = type {return v} + return Android_Emulation_Control_BootCompletedNotification() + } + set {type = .booted(newValue)} + } + + var brightness: Android_Emulation_Control_BrightnessValue { + get { + if case .brightness(let v)? = type {return v} + return Android_Emulation_Control_BrightnessValue() + } + set {type = .brightness(newValue)} + } + + /// This notification is sent when a TextView receives or loses focus. + /// It is also sent immediately in response to the streamNotification + /// call. + var textViewFocus: Android_Emulation_Control_TextViewFocus { + get { + if case .textViewFocus(let v)? = type {return v} + return Android_Emulation_Control_TextViewFocus() + } + set {type = .textViewFocus(newValue)} + } + + /// This notification is sent when XrOptions change. + /// It is also sent immediately in response to the streamNotification + /// call. + var xrOptions: Android_Emulation_Control_XrOptions { + get { + if case .xrOptions(let v)? = type {return v} + return Android_Emulation_Control_XrOptions() + } + set {type = .xrOptions(newValue)} + } + + var microphoneState: Android_Emulation_Control_MicrophoneState { + get { + if case .microphoneState(let v)? = type {return v} + return Android_Emulation_Control_MicrophoneState() + } + set {type = .microphoneState(newValue)} + } + + /// This notification is sent when AI glasses LED light status change. + var ledIndicator: Android_Emulation_Control_LedIndicator { + get { + if case .ledIndicator(let v)? = type {return v} + return Android_Emulation_Control_LedIndicator() + } + set {type = .ledIndicator(newValue)} + } + + var unknownFields = SwiftProtobuf.UnknownStorage() + + /// Detailed notification information. + nonisolated enum OneOf_Type: Equatable, Sendable { + case cameraNotification(Android_Emulation_Control_CameraNotification) + case displayConfigurationsChangedNotification(Android_Emulation_Control_DisplayConfigurationsChangedNotification) + case posture(Android_Emulation_Control_Posture) + case booted(Android_Emulation_Control_BootCompletedNotification) + case brightness(Android_Emulation_Control_BrightnessValue) + /// This notification is sent when a TextView receives or loses focus. + /// It is also sent immediately in response to the streamNotification + /// call. + case textViewFocus(Android_Emulation_Control_TextViewFocus) + /// This notification is sent when XrOptions change. + /// It is also sent immediately in response to the streamNotification + /// call. + case xrOptions(Android_Emulation_Control_XrOptions) + case microphoneState(Android_Emulation_Control_MicrophoneState) + /// This notification is sent when AI glasses LED light status change. + case ledIndicator(Android_Emulation_Control_LedIndicator) + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_BootCompletedNotification: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// The time in milliseconds it took for the boot to complete. + /// Note that this value can be 0 when you are loading from a snapshot. + var time: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// Fired when the virtual scene camera is activated or deactivated and also in +/// response to the streamNotification call. +nonisolated struct Android_Emulation_Control_CameraNotification: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Indicates whether the camera app was activated or deactivated. + var active: Bool = false + + /// The display the camera app is associated with. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_TextViewFocus: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Indicates whether a text view currently has focus. + var textViewHasFocus: Bool = false + + /// If a text view has focus, the display where the text view is located. + /// Otherwise, unset. + var display: Int32 = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// Fired when an update to a display event has been fired through the extended +/// ui. This does not fire events when the display is changed through the console +/// or the gRPC endpoint. +nonisolated struct Android_Emulation_Control_DisplayConfigurationsChangedNotification: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var displayConfigurations: Android_Emulation_Control_DisplayConfigurations { + get {_displayConfigurations ?? Android_Emulation_Control_DisplayConfigurations()} + set {_displayConfigurations = newValue} + } + /// Returns true if `displayConfigurations` has been explicitly set. + var hasDisplayConfigurations: Bool {self._displayConfigurations != nil} + /// Clears the value of `displayConfigurations`. Subsequent reads from it will return its default value. + mutating func clearDisplayConfigurations() {self._displayConfigurations = nil} + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} + + fileprivate var _displayConfigurations: Android_Emulation_Control_DisplayConfigurations? = nil +} + +nonisolated struct Android_Emulation_Control_RotationRadian: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Components of the rotation vector in radians. + /// Rotation angles are relative to the current orientation. + var x: Float = 0 + + /// Angle of rotation around the y axis in right-handed direction. + var y: Float = 0 + + /// Angle of rotation around the z axis in right-handed direction. + var z: Float = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_Translation: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Components of the translation vector in meters. + var deltaX: Float = 0 + + var deltaY: Float = 0 + + var deltaZ: Float = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_AngularVelocity: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Components of the target angular velocity vector in radians per second. + /// Transition to these values is implementation dependent, and may be + /// smoothed over time. + var omegaX: Float = 0 + + var omegaY: Float = 0 + + var omegaZ: Float = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_Velocity: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Components of the target velocity vector in meters per second. + /// Transition to these values is implementation dependent, and may be + /// smoothed over time. + var x: Float = 0 + + var y: Float = 0 + + var z: Float = 0 + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// Must follow the definition in "external/qemu/android/hw-sensors.h" +nonisolated struct Android_Emulation_Control_Posture: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var value: Android_Emulation_Control_Posture.PostureValue = .postureUnknown + + var unknownFields = SwiftProtobuf.UnknownStorage() + + nonisolated enum PostureValue: SwiftProtobuf.Enum, Swift.CaseIterable { + typealias RawValue = Int + case postureUnknown // = 0 + case postureClosed // = 1 + case postureHalfOpened // = 2 + case postureOpened // = 3 + case postureFlipped // = 4 + case postureTent // = 5 + case postureMax // = 6 + case UNRECOGNIZED(Int) + + init() { + self = .postureUnknown + } + + init?(rawValue: Int) { + switch rawValue { + case 0: self = .postureUnknown + case 1: self = .postureClosed + case 2: self = .postureHalfOpened + case 3: self = .postureOpened + case 4: self = .postureFlipped + case 5: self = .postureTent + case 6: self = .postureMax + default: self = .UNRECOGNIZED(rawValue) + } + } + + var rawValue: Int { + switch self { + case .postureUnknown: return 0 + case .postureClosed: return 1 + case .postureHalfOpened: return 2 + case .postureOpened: return 3 + case .postureFlipped: return 4 + case .postureTent: return 5 + case .postureMax: return 6 + case .UNRECOGNIZED(let i): return i + } + } + + // The compiler won't synthesize support with the UNRECOGNIZED case. + static let allCases: [Android_Emulation_Control_Posture.PostureValue] = [ + .postureUnknown, + .postureClosed, + .postureHalfOpened, + .postureOpened, + .postureFlipped, + .postureTent, + .postureMax, + ] + + } + + init() {} +} + +nonisolated struct Android_Emulation_Control_PhoneNumber: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// + /// The phone number should be a valid GSM-formatted number as specified by + /// 3GPP 23.040 Sec 9.1.2.5. + /// + /// For example: +3106225412 or (650) 555-1221 + var number: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +/// Specifies environment background for AI glasses. +nonisolated struct Android_Emulation_Control_Environment: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Key/value pairs corresponing to the contents of the environment.ini file. + /// An empty map means no environment. + var environment: Dictionary = [:] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_Camera: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + /// Human-readable name for use with UI + var displayName: String = String() + + /// Os Specific identifier + var id: String = String() + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +nonisolated struct Android_Emulation_Control_CameraList: Sendable { + // SwiftProtobuf.Message conformance is added in an extension below. See the + // `Message` and `Message+*Additions` files in the SwiftProtobuf library for + // methods supported on all messages. + + var cameras: [Android_Emulation_Control_Camera] = [] + + var unknownFields = SwiftProtobuf.UnknownStorage() + + init() {} +} + +// MARK: - Code below here is support for the SwiftProtobuf runtime. + +fileprivate nonisolated let _protobuf_package = "android.emulation.control" + +nonisolated extension Android_Emulation_Control_DisplayModeValue: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0PHONE\0\u{1}FOLDABLE\0\u{1}TABLET\0\u{1}DESKTOP\0") +} + +nonisolated extension Android_Emulation_Control_VmRunState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".VmRunState" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}state\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.state) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.state != .unknown { + try visitor.visitSingularEnumField(value: self.state, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_VmRunState, rhs: Android_Emulation_Control_VmRunState) -> Bool { + if lhs.state != rhs.state {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_VmRunState.RunState: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0UNKNOWN\0\u{1}RUNNING\0\u{1}RESTORE_VM\0\u{1}PAUSED\0\u{1}SAVE_VM\0\u{1}SHUTDOWN\0\u{2}\u{2}TERMINATE\0\u{2}\u{2}RESET\0\u{1}INTERNAL_ERROR\0\u{1}RESTART\0\u{1}START\0\u{1}STOP\0") +} + +nonisolated extension Android_Emulation_Control_ParameterValue: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".ParameterValue" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}data\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedFloatField(value: &self.data) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.data.isEmpty { + try visitor.visitPackedFloatField(value: self.data, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_ParameterValue, rhs: Android_Emulation_Control_ParameterValue) -> Bool { + if lhs.data != rhs.data {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_PhysicalModelValue: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".PhysicalModelValue" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}target\0\u{1}status\0\u{1}value\0\u{1}interpolation\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.target) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self.status) }() + case 3: try { try decoder.decodeSingularMessageField(value: &self._value) }() + case 4: try { try decoder.decodeSingularEnumField(value: &self.interpolation) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + if self.target != .position { + try visitor.visitSingularEnumField(value: self.target, fieldNumber: 1) + } + if self.status != .ok { + try visitor.visitSingularEnumField(value: self.status, fieldNumber: 2) + } + try { if let v = self._value { + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + } }() + if self.interpolation != .smooth { + try visitor.visitSingularEnumField(value: self.interpolation, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_PhysicalModelValue, rhs: Android_Emulation_Control_PhysicalModelValue) -> Bool { + if lhs.target != rhs.target {return false} + if lhs.status != rhs.status {return false} + if lhs._value != rhs._value {return false} + if lhs.interpolation != rhs.interpolation {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_PhysicalModelValue.State: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}}\u{7f}\u{7f}\u{7f}\u{7f}\u{3}NO_SERVICE\0\u{1}DISABLED\0\u{1}UNKNOWN\0\u{1}OK\0") +} + +nonisolated extension Android_Emulation_Control_PhysicalModelValue.PhysicalType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0POSITION\0\u{1}ROTATION\0\u{1}MAGNETIC_FIELD\0\u{1}TEMPERATURE\0\u{1}PROXIMITY\0\u{1}LIGHT\0\u{1}PRESSURE\0\u{1}HUMIDITY\0\u{1}VELOCITY\0\u{1}AMBIENT_MOTION\0\u{1}HINGE_ANGLE0\0\u{1}HINGE_ANGLE1\0\u{1}HINGE_ANGLE2\0\u{1}ROLLABLE0\0\u{1}ROLLABLE1\0\u{1}ROLLABLE2\0\u{1}POSTURE\0\u{1}HEART_RATE\0\u{1}RGBC_LIGHT\0\u{1}WRIST_TILT\0") +} + +nonisolated extension Android_Emulation_Control_PhysicalModelValue.Interpolation: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0SMOOTH\0\u{1}STEP\0") +} + +nonisolated extension Android_Emulation_Control_SensorValue: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".SensorValue" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}target\0\u{1}status\0\u{1}value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.target) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self.status) }() + case 3: try { try decoder.decodeSingularMessageField(value: &self._value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + if self.target != .acceleration { + try visitor.visitSingularEnumField(value: self.target, fieldNumber: 1) + } + if self.status != .ok { + try visitor.visitSingularEnumField(value: self.status, fieldNumber: 2) + } + try { if let v = self._value { + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + } }() + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_SensorValue, rhs: Android_Emulation_Control_SensorValue) -> Bool { + if lhs.target != rhs.target {return false} + if lhs.status != rhs.status {return false} + if lhs._value != rhs._value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_SensorValue.State: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}}\u{7f}\u{7f}\u{7f}\u{7f}\u{3}NO_SERVICE\0\u{1}DISABLED\0\u{1}UNKNOWN\0\u{1}OK\0") +} + +nonisolated extension Android_Emulation_Control_SensorValue.SensorType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0ACCELERATION\0\u{1}GYROSCOPE\0\u{1}MAGNETIC_FIELD\0\u{1}ORIENTATION\0\u{1}TEMPERATURE\0\u{1}PROXIMITY\0\u{1}LIGHT\0\u{1}PRESSURE\0\u{1}HUMIDITY\0\u{1}MAGNETIC_FIELD_UNCALIBRATED\0\u{1}GYROSCOPE_UNCALIBRATED\0\u{2}\u{4}HEART_RATE\0\u{1}RGBC_LIGHT\0\u{2}\u{2}ACCELERATION_UNCALIBRATED\0\u{1}HEADING\0") +} + +nonisolated extension Android_Emulation_Control_BrightnessValue: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".BrightnessValue" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}target\0\u{1}value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.target) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.target != .lcd { + try visitor.visitSingularEnumField(value: self.target, fieldNumber: 1) + } + if self.value != 0 { + try visitor.visitSingularUInt32Field(value: self.value, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_BrightnessValue, rhs: Android_Emulation_Control_BrightnessValue) -> Bool { + if lhs.target != rhs.target {return false} + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_BrightnessValue.LightType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0LCD\0\u{1}KEYBOARD\0\u{1}BUTTON\0") +} + +nonisolated extension Android_Emulation_Control_DisplayMode: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".DisplayMode" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.value != .phone { + try visitor.visitSingularEnumField(value: self.value, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_DisplayMode, rhs: Android_Emulation_Control_DisplayMode) -> Bool { + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_XrOptions: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".XrOptions" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}environment\0\u{3}passthrough_coefficient\0\u{4}\u{2}dimming_value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.environment) }() + case 2: try { try decoder.decodeSingularFloatField(value: &self.passthroughCoefficient) }() + case 4: try { try decoder.decodeSingularFloatField(value: &self.dimmingValue) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.environment != .livingRoomDay { + try visitor.visitSingularEnumField(value: self.environment, fieldNumber: 1) + } + if self.passthroughCoefficient.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.passthroughCoefficient, fieldNumber: 2) + } + if self.dimmingValue.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.dimmingValue, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_XrOptions, rhs: Android_Emulation_Control_XrOptions) -> Bool { + if lhs.environment != rhs.environment {return false} + if lhs.passthroughCoefficient != rhs.passthroughCoefficient {return false} + if lhs.dimmingValue != rhs.dimmingValue {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_XrOptions.Environment: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0LIVING_ROOM_DAY\0\u{1}LIVING_ROOM_NIGHT\0") +} + +nonisolated extension Android_Emulation_Control_LedIndicator: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".LedIndicator" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}id\0\u{1}facing\0\u{1}state\0\u{1}color\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularUInt32Field(value: &self._id) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self._facing) }() + case 3: try { try decoder.decodeSingularEnumField(value: &self._state) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self._color) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = self._id { + try visitor.visitSingularUInt32Field(value: v, fieldNumber: 1) + } }() + try { if let v = self._facing { + try visitor.visitSingularEnumField(value: v, fieldNumber: 2) + } }() + try { if let v = self._state { + try visitor.visitSingularEnumField(value: v, fieldNumber: 3) + } }() + try { if let v = self._color { + try visitor.visitSingularUInt32Field(value: v, fieldNumber: 4) + } }() + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_LedIndicator, rhs: Android_Emulation_Control_LedIndicator) -> Bool { + if lhs._id != rhs._id {return false} + if lhs._facing != rhs._facing {return false} + if lhs._state != rhs._state {return false} + if lhs._color != rhs._color {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_LedIndicator.Facing: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0INSIDE\0\u{1}OUTSIDE\0") +} + +nonisolated extension Android_Emulation_Control_LedIndicator.State: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0OFF\0\u{1}ON\0") +} + +nonisolated extension Android_Emulation_Control_LogMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".LogMessage" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}contents\0\u{1}start\0\u{1}next\0\u{1}sort\0\u{1}entries\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.contents) }() + case 2: try { try decoder.decodeSingularInt64Field(value: &self.start) }() + case 3: try { try decoder.decodeSingularInt64Field(value: &self.next) }() + case 4: try { try decoder.decodeSingularEnumField(value: &self.sort) }() + case 5: try { try decoder.decodeRepeatedMessageField(value: &self.entries) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.contents.isEmpty { + try visitor.visitSingularStringField(value: self.contents, fieldNumber: 1) + } + if self.start != 0 { + try visitor.visitSingularInt64Field(value: self.start, fieldNumber: 2) + } + if self.next != 0 { + try visitor.visitSingularInt64Field(value: self.next, fieldNumber: 3) + } + if self.sort != .text { + try visitor.visitSingularEnumField(value: self.sort, fieldNumber: 4) + } + if !self.entries.isEmpty { + try visitor.visitRepeatedMessageField(value: self.entries, fieldNumber: 5) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_LogMessage, rhs: Android_Emulation_Control_LogMessage) -> Bool { + if lhs.contents != rhs.contents {return false} + if lhs.start != rhs.start {return false} + if lhs.next != rhs.next {return false} + if lhs.sort != rhs.sort {return false} + if lhs.entries != rhs.entries {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_LogMessage.LogType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0Text\0\u{1}Parsed\0") +} + +nonisolated extension Android_Emulation_Control_LogcatEntry: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".LogcatEntry" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}timestamp\0\u{1}pid\0\u{1}tid\0\u{1}level\0\u{1}tag\0\u{1}msg\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularUInt64Field(value: &self.timestamp) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.pid) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.tid) }() + case 4: try { try decoder.decodeSingularEnumField(value: &self.level) }() + case 5: try { try decoder.decodeSingularStringField(value: &self.tag) }() + case 6: try { try decoder.decodeSingularStringField(value: &self.msg) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.timestamp != 0 { + try visitor.visitSingularUInt64Field(value: self.timestamp, fieldNumber: 1) + } + if self.pid != 0 { + try visitor.visitSingularUInt32Field(value: self.pid, fieldNumber: 2) + } + if self.tid != 0 { + try visitor.visitSingularUInt32Field(value: self.tid, fieldNumber: 3) + } + if self.level != .unknown { + try visitor.visitSingularEnumField(value: self.level, fieldNumber: 4) + } + if !self.tag.isEmpty { + try visitor.visitSingularStringField(value: self.tag, fieldNumber: 5) + } + if !self.msg.isEmpty { + try visitor.visitSingularStringField(value: self.msg, fieldNumber: 6) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_LogcatEntry, rhs: Android_Emulation_Control_LogcatEntry) -> Bool { + if lhs.timestamp != rhs.timestamp {return false} + if lhs.pid != rhs.pid {return false} + if lhs.tid != rhs.tid {return false} + if lhs.level != rhs.level {return false} + if lhs.tag != rhs.tag {return false} + if lhs.msg != rhs.msg {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_LogcatEntry.LogLevel: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0UNKNOWN\0\u{1}DEFAULT\0\u{1}VERBOSE\0\u{1}DEBUG\0\u{1}INFO\0\u{1}WARN\0\u{1}ERR\0\u{1}FATAL\0\u{1}SILENT\0") +} + +nonisolated extension Android_Emulation_Control_VmConfiguration: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".VmConfiguration" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}hypervisorType\0\u{1}numberOfCpuCores\0\u{1}ramSizeBytes\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.hypervisorType) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.numberOfCpuCores) }() + case 3: try { try decoder.decodeSingularInt64Field(value: &self.ramSizeBytes) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.hypervisorType != .unknown { + try visitor.visitSingularEnumField(value: self.hypervisorType, fieldNumber: 1) + } + if self.numberOfCpuCores != 0 { + try visitor.visitSingularInt32Field(value: self.numberOfCpuCores, fieldNumber: 2) + } + if self.ramSizeBytes != 0 { + try visitor.visitSingularInt64Field(value: self.ramSizeBytes, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_VmConfiguration, rhs: Android_Emulation_Control_VmConfiguration) -> Bool { + if lhs.hypervisorType != rhs.hypervisorType {return false} + if lhs.numberOfCpuCores != rhs.numberOfCpuCores {return false} + if lhs.ramSizeBytes != rhs.ramSizeBytes {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_VmConfiguration.VmHypervisorType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0UNKNOWN\0\u{1}NONE\0\u{1}KVM\0\u{1}HAXM\0\u{1}HVF\0\u{1}WHPX\0\u{1}AEHD\0") +} + +nonisolated extension Android_Emulation_Control_ClipData: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".ClipData" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}text\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.text) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.text.isEmpty { + try visitor.visitSingularStringField(value: self.text, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_ClipData, rhs: Android_Emulation_Control_ClipData) -> Bool { + if lhs.text != rhs.text {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Touch: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Touch" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}x\0\u{1}y\0\u{1}identifier\0\u{1}pressure\0\u{3}touch_major\0\u{3}touch_minor\0\u{1}expiration\0\u{1}orientation\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularInt32Field(value: &self.x) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.y) }() + case 3: try { try decoder.decodeSingularInt32Field(value: &self.identifier) }() + case 4: try { try decoder.decodeSingularInt32Field(value: &self.pressure) }() + case 5: try { try decoder.decodeSingularInt32Field(value: &self.touchMajor) }() + case 6: try { try decoder.decodeSingularInt32Field(value: &self.touchMinor) }() + case 7: try { try decoder.decodeSingularEnumField(value: &self.expiration) }() + case 8: try { try decoder.decodeSingularInt32Field(value: &self.orientation) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.x != 0 { + try visitor.visitSingularInt32Field(value: self.x, fieldNumber: 1) + } + if self.y != 0 { + try visitor.visitSingularInt32Field(value: self.y, fieldNumber: 2) + } + if self.identifier != 0 { + try visitor.visitSingularInt32Field(value: self.identifier, fieldNumber: 3) + } + if self.pressure != 0 { + try visitor.visitSingularInt32Field(value: self.pressure, fieldNumber: 4) + } + if self.touchMajor != 0 { + try visitor.visitSingularInt32Field(value: self.touchMajor, fieldNumber: 5) + } + if self.touchMinor != 0 { + try visitor.visitSingularInt32Field(value: self.touchMinor, fieldNumber: 6) + } + if self.expiration != .unspecified { + try visitor.visitSingularEnumField(value: self.expiration, fieldNumber: 7) + } + if self.orientation != 0 { + try visitor.visitSingularInt32Field(value: self.orientation, fieldNumber: 8) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Touch, rhs: Android_Emulation_Control_Touch) -> Bool { + if lhs.x != rhs.x {return false} + if lhs.y != rhs.y {return false} + if lhs.identifier != rhs.identifier {return false} + if lhs.pressure != rhs.pressure {return false} + if lhs.touchMajor != rhs.touchMajor {return false} + if lhs.touchMinor != rhs.touchMinor {return false} + if lhs.expiration != rhs.expiration {return false} + if lhs.orientation != rhs.orientation {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Touch.EventExpiration: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0EVENT_EXPIRATION_UNSPECIFIED\0\u{1}NEVER_EXPIRE\0") +} + +nonisolated extension Android_Emulation_Control_Pen: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Pen" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}location\0\u{3}button_pressed\0\u{3}rubber_pointer\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularMessageField(value: &self._location) }() + case 2: try { try decoder.decodeSingularBoolField(value: &self.buttonPressed) }() + case 3: try { try decoder.decodeSingularBoolField(value: &self.rubberPointer) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = self._location { + try visitor.visitSingularMessageField(value: v, fieldNumber: 1) + } }() + if self.buttonPressed != false { + try visitor.visitSingularBoolField(value: self.buttonPressed, fieldNumber: 2) + } + if self.rubberPointer != false { + try visitor.visitSingularBoolField(value: self.rubberPointer, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Pen, rhs: Android_Emulation_Control_Pen) -> Bool { + if lhs._location != rhs._location {return false} + if lhs.buttonPressed != rhs.buttonPressed {return false} + if lhs.rubberPointer != rhs.rubberPointer {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_TouchEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".TouchEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}touches\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.touches) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.touches.isEmpty { + try visitor.visitRepeatedMessageField(value: self.touches, fieldNumber: 1) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_TouchEvent, rhs: Android_Emulation_Control_TouchEvent) -> Bool { + if lhs.touches != rhs.touches {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_TouchpadEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".TouchpadEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}touches\0\u{1}touchpad\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.touches) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.touchpad) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.touches.isEmpty { + try visitor.visitRepeatedMessageField(value: self.touches, fieldNumber: 1) + } + if self.touchpad != 0 { + try visitor.visitSingularInt32Field(value: self.touchpad, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_TouchpadEvent, rhs: Android_Emulation_Control_TouchpadEvent) -> Bool { + if lhs.touches != rhs.touches {return false} + if lhs.touchpad != rhs.touchpad {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_PenEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".PenEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}events\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.events) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.events.isEmpty { + try visitor.visitRepeatedMessageField(value: self.events, fieldNumber: 1) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_PenEvent, rhs: Android_Emulation_Control_PenEvent) -> Bool { + if lhs.events != rhs.events {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_MouseEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".MouseEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}x\0\u{1}y\0\u{1}buttons\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularInt32Field(value: &self.x) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.y) }() + case 3: try { try decoder.decodeSingularInt32Field(value: &self.buttons) }() + case 4: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.x != 0 { + try visitor.visitSingularInt32Field(value: self.x, fieldNumber: 1) + } + if self.y != 0 { + try visitor.visitSingularInt32Field(value: self.y, fieldNumber: 2) + } + if self.buttons != 0 { + try visitor.visitSingularInt32Field(value: self.buttons, fieldNumber: 3) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_MouseEvent, rhs: Android_Emulation_Control_MouseEvent) -> Bool { + if lhs.x != rhs.x {return false} + if lhs.y != rhs.y {return false} + if lhs.buttons != rhs.buttons {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_WheelEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".WheelEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}dx\0\u{1}dy\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularInt32Field(value: &self.dx) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.dy) }() + case 3: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.dx != 0 { + try visitor.visitSingularInt32Field(value: self.dx, fieldNumber: 1) + } + if self.dy != 0 { + try visitor.visitSingularInt32Field(value: self.dy, fieldNumber: 2) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_WheelEvent, rhs: Android_Emulation_Control_WheelEvent) -> Bool { + if lhs.dx != rhs.dx {return false} + if lhs.dy != rhs.dy {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_KeyboardEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".KeyboardEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}codeType\0\u{1}eventType\0\u{1}keyCode\0\u{1}key\0\u{1}text\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.codeType) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self.eventType) }() + case 3: try { try decoder.decodeSingularInt32Field(value: &self.keyCode) }() + case 4: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 5: try { try decoder.decodeSingularStringField(value: &self.text) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.codeType != .usb { + try visitor.visitSingularEnumField(value: self.codeType, fieldNumber: 1) + } + if self.eventType != .keydown { + try visitor.visitSingularEnumField(value: self.eventType, fieldNumber: 2) + } + if self.keyCode != 0 { + try visitor.visitSingularInt32Field(value: self.keyCode, fieldNumber: 3) + } + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 4) + } + if !self.text.isEmpty { + try visitor.visitSingularStringField(value: self.text, fieldNumber: 5) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_KeyboardEvent, rhs: Android_Emulation_Control_KeyboardEvent) -> Bool { + if lhs.codeType != rhs.codeType {return false} + if lhs.eventType != rhs.eventType {return false} + if lhs.keyCode != rhs.keyCode {return false} + if lhs.key != rhs.key {return false} + if lhs.text != rhs.text {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_KeyboardEvent.KeyCodeType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0Usb\0\u{1}Evdev\0\u{1}XKB\0\u{1}Win\0\u{1}Mac\0") +} + +nonisolated extension Android_Emulation_Control_KeyboardEvent.KeyEventType: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0keydown\0\u{1}keyup\0\u{1}keypress\0") +} + +nonisolated extension Android_Emulation_Control_XrCommand: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".XrCommand" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}action\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.action) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.action != .recenter { + try visitor.visitSingularEnumField(value: self.action, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_XrCommand, rhs: Android_Emulation_Control_XrCommand) -> Bool { + if lhs.action != rhs.action {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_XrCommand.Action: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0RECENTER\0") +} + +nonisolated extension Android_Emulation_Control_InputEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".InputEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}key_event\0\u{3}touch_event\0\u{3}mouse_event\0\u{3}android_event\0\u{3}pen_event\0\u{3}wheel_event\0\u{3}xr_hand_event\0\u{3}xr_eye_event\0\u{3}xr_command\0\u{3}xr_head_rotation_event\0\u{3}xr_head_movement_event\0\u{3}xr_head_angular_velocity_event\0\u{3}xr_head_velocity_event\0\u{3}touchpad_event\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { + var v: Android_Emulation_Control_KeyboardEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .keyEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .keyEvent(v) + } + }() + case 2: try { + var v: Android_Emulation_Control_TouchEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .touchEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .touchEvent(v) + } + }() + case 3: try { + var v: Android_Emulation_Control_MouseEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .mouseEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .mouseEvent(v) + } + }() + case 4: try { + var v: Android_Emulation_Control_AndroidEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .androidEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .androidEvent(v) + } + }() + case 5: try { + var v: Android_Emulation_Control_PenEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .penEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .penEvent(v) + } + }() + case 6: try { + var v: Android_Emulation_Control_WheelEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .wheelEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .wheelEvent(v) + } + }() + case 7: try { + var v: Android_Emulation_Control_MouseEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrHandEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrHandEvent(v) + } + }() + case 8: try { + var v: Android_Emulation_Control_MouseEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrEyeEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrEyeEvent(v) + } + }() + case 9: try { + var v: Android_Emulation_Control_XrCommand? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrCommand(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrCommand(v) + } + }() + case 10: try { + var v: Android_Emulation_Control_RotationRadian? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrHeadRotationEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrHeadRotationEvent(v) + } + }() + case 11: try { + var v: Android_Emulation_Control_Translation? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrHeadMovementEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrHeadMovementEvent(v) + } + }() + case 12: try { + var v: Android_Emulation_Control_AngularVelocity? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrHeadAngularVelocityEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrHeadAngularVelocityEvent(v) + } + }() + case 13: try { + var v: Android_Emulation_Control_Velocity? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrHeadVelocityEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrHeadVelocityEvent(v) + } + }() + case 14: try { + var v: Android_Emulation_Control_TouchpadEvent? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .touchpadEvent(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .touchpadEvent(v) + } + }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + switch self.type { + case .keyEvent?: try { + guard case .keyEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 1) + }() + case .touchEvent?: try { + guard case .touchEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 2) + }() + case .mouseEvent?: try { + guard case .mouseEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + }() + case .androidEvent?: try { + guard case .androidEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 4) + }() + case .penEvent?: try { + guard case .penEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 5) + }() + case .wheelEvent?: try { + guard case .wheelEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 6) + }() + case .xrHandEvent?: try { + guard case .xrHandEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 7) + }() + case .xrEyeEvent?: try { + guard case .xrEyeEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 8) + }() + case .xrCommand?: try { + guard case .xrCommand(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 9) + }() + case .xrHeadRotationEvent?: try { + guard case .xrHeadRotationEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 10) + }() + case .xrHeadMovementEvent?: try { + guard case .xrHeadMovementEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 11) + }() + case .xrHeadAngularVelocityEvent?: try { + guard case .xrHeadAngularVelocityEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 12) + }() + case .xrHeadVelocityEvent?: try { + guard case .xrHeadVelocityEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 13) + }() + case .touchpadEvent?: try { + guard case .touchpadEvent(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 14) + }() + case nil: break + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_InputEvent, rhs: Android_Emulation_Control_InputEvent) -> Bool { + if lhs.type != rhs.type {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_AndroidEvent: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".AndroidEvent" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}type\0\u{1}code\0\u{1}value\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularInt32Field(value: &self.type) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.code) }() + case 3: try { try decoder.decodeSingularInt32Field(value: &self.value) }() + case 4: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.type != 0 { + try visitor.visitSingularInt32Field(value: self.type, fieldNumber: 1) + } + if self.code != 0 { + try visitor.visitSingularInt32Field(value: self.code, fieldNumber: 2) + } + if self.value != 0 { + try visitor.visitSingularInt32Field(value: self.value, fieldNumber: 3) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_AndroidEvent, rhs: Android_Emulation_Control_AndroidEvent) -> Bool { + if lhs.type != rhs.type {return false} + if lhs.code != rhs.code {return false} + if lhs.value != rhs.value {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Fingerprint: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Fingerprint" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}isTouching\0\u{1}touchId\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.isTouching) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.touchID) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.isTouching != false { + try visitor.visitSingularBoolField(value: self.isTouching, fieldNumber: 1) + } + if self.touchID != 0 { + try visitor.visitSingularInt32Field(value: self.touchID, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Fingerprint, rhs: Android_Emulation_Control_Fingerprint) -> Bool { + if lhs.isTouching != rhs.isTouching {return false} + if lhs.touchID != rhs.touchID {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_GpsState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".GpsState" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}passiveUpdate\0\u{1}latitude\0\u{1}longitude\0\u{1}speed\0\u{1}bearing\0\u{1}altitude\0\u{1}satellites\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.passiveUpdate) }() + case 2: try { try decoder.decodeSingularDoubleField(value: &self.latitude) }() + case 3: try { try decoder.decodeSingularDoubleField(value: &self.longitude) }() + case 4: try { try decoder.decodeSingularDoubleField(value: &self.speed) }() + case 5: try { try decoder.decodeSingularDoubleField(value: &self.bearing) }() + case 6: try { try decoder.decodeSingularDoubleField(value: &self.altitude) }() + case 7: try { try decoder.decodeSingularInt32Field(value: &self.satellites) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.passiveUpdate != false { + try visitor.visitSingularBoolField(value: self.passiveUpdate, fieldNumber: 1) + } + if self.latitude.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.latitude, fieldNumber: 2) + } + if self.longitude.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.longitude, fieldNumber: 3) + } + if self.speed.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.speed, fieldNumber: 4) + } + if self.bearing.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.bearing, fieldNumber: 5) + } + if self.altitude.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.altitude, fieldNumber: 6) + } + if self.satellites != 0 { + try visitor.visitSingularInt32Field(value: self.satellites, fieldNumber: 7) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_GpsState, rhs: Android_Emulation_Control_GpsState) -> Bool { + if lhs.passiveUpdate != rhs.passiveUpdate {return false} + if lhs.latitude != rhs.latitude {return false} + if lhs.longitude != rhs.longitude {return false} + if lhs.speed != rhs.speed {return false} + if lhs.bearing != rhs.bearing {return false} + if lhs.altitude != rhs.altitude {return false} + if lhs.satellites != rhs.satellites {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_BatteryState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".BatteryState" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}hasBattery\0\u{1}isPresent\0\u{1}charger\0\u{1}chargeLevel\0\u{1}health\0\u{1}status\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.hasBattery_p) }() + case 2: try { try decoder.decodeSingularBoolField(value: &self.isPresent) }() + case 3: try { try decoder.decodeSingularEnumField(value: &self.charger) }() + case 4: try { try decoder.decodeSingularInt32Field(value: &self.chargeLevel) }() + case 5: try { try decoder.decodeSingularEnumField(value: &self.health) }() + case 6: try { try decoder.decodeSingularEnumField(value: &self.status) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.hasBattery_p != false { + try visitor.visitSingularBoolField(value: self.hasBattery_p, fieldNumber: 1) + } + if self.isPresent != false { + try visitor.visitSingularBoolField(value: self.isPresent, fieldNumber: 2) + } + if self.charger != .none { + try visitor.visitSingularEnumField(value: self.charger, fieldNumber: 3) + } + if self.chargeLevel != 0 { + try visitor.visitSingularInt32Field(value: self.chargeLevel, fieldNumber: 4) + } + if self.health != .good { + try visitor.visitSingularEnumField(value: self.health, fieldNumber: 5) + } + if self.status != .unknown { + try visitor.visitSingularEnumField(value: self.status, fieldNumber: 6) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_BatteryState, rhs: Android_Emulation_Control_BatteryState) -> Bool { + if lhs.hasBattery_p != rhs.hasBattery_p {return false} + if lhs.isPresent != rhs.isPresent {return false} + if lhs.charger != rhs.charger {return false} + if lhs.chargeLevel != rhs.chargeLevel {return false} + if lhs.health != rhs.health {return false} + if lhs.status != rhs.status {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_BatteryState.BatteryStatus: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0UNKNOWN\0\u{1}CHARGING\0\u{1}DISCHARGING\0\u{1}NOT_CHARGING\0\u{1}FULL\0") +} + +nonisolated extension Android_Emulation_Control_BatteryState.BatteryCharger: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0NONE\0\u{1}AC\0\u{1}USB\0\u{1}WIRELESS\0") +} + +nonisolated extension Android_Emulation_Control_BatteryState.BatteryHealth: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0GOOD\0\u{1}FAILED\0\u{1}DEAD\0\u{1}OVERVOLTAGE\0\u{1}OVERHEATED\0") +} + +nonisolated extension Android_Emulation_Control_ImageTransport: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".ImageTransport" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}channel\0\u{1}handle\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.channel) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.handle) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.channel != .unspecified { + try visitor.visitSingularEnumField(value: self.channel, fieldNumber: 1) + } + if !self.handle.isEmpty { + try visitor.visitSingularStringField(value: self.handle, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_ImageTransport, rhs: Android_Emulation_Control_ImageTransport) -> Bool { + if lhs.channel != rhs.channel {return false} + if lhs.handle != rhs.handle {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_ImageTransport.TransportChannel: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0TRANSPORT_CHANNEL_UNSPECIFIED\0\u{1}MMAP\0") +} + +nonisolated extension Android_Emulation_Control_FoldedDisplay: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".FoldedDisplay" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}width\0\u{1}height\0\u{1}xOffset\0\u{1}yOffset\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.width) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.height) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.xOffset) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self.yOffset) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.width != 0 { + try visitor.visitSingularUInt32Field(value: self.width, fieldNumber: 1) + } + if self.height != 0 { + try visitor.visitSingularUInt32Field(value: self.height, fieldNumber: 2) + } + if self.xOffset != 0 { + try visitor.visitSingularUInt32Field(value: self.xOffset, fieldNumber: 3) + } + if self.yOffset != 0 { + try visitor.visitSingularUInt32Field(value: self.yOffset, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_FoldedDisplay, rhs: Android_Emulation_Control_FoldedDisplay) -> Bool { + if lhs.width != rhs.width {return false} + if lhs.height != rhs.height {return false} + if lhs.xOffset != rhs.xOffset {return false} + if lhs.yOffset != rhs.yOffset {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_ImageFormat: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".ImageFormat" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}format\0\u{1}rotation\0\u{1}width\0\u{1}height\0\u{1}display\0\u{1}transport\0\u{1}foldedDisplay\0\u{1}displayMode\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.format) }() + case 2: try { try decoder.decodeSingularMessageField(value: &self._rotation) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.width) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self.height) }() + case 5: try { try decoder.decodeSingularUInt32Field(value: &self.display) }() + case 6: try { try decoder.decodeSingularMessageField(value: &self._transport) }() + case 7: try { try decoder.decodeSingularMessageField(value: &self._foldedDisplay) }() + case 8: try { try decoder.decodeSingularEnumField(value: &self.displayMode) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + if self.format != .png { + try visitor.visitSingularEnumField(value: self.format, fieldNumber: 1) + } + try { if let v = self._rotation { + try visitor.visitSingularMessageField(value: v, fieldNumber: 2) + } }() + if self.width != 0 { + try visitor.visitSingularUInt32Field(value: self.width, fieldNumber: 3) + } + if self.height != 0 { + try visitor.visitSingularUInt32Field(value: self.height, fieldNumber: 4) + } + if self.display != 0 { + try visitor.visitSingularUInt32Field(value: self.display, fieldNumber: 5) + } + try { if let v = self._transport { + try visitor.visitSingularMessageField(value: v, fieldNumber: 6) + } }() + try { if let v = self._foldedDisplay { + try visitor.visitSingularMessageField(value: v, fieldNumber: 7) + } }() + if self.displayMode != .phone { + try visitor.visitSingularEnumField(value: self.displayMode, fieldNumber: 8) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_ImageFormat, rhs: Android_Emulation_Control_ImageFormat) -> Bool { + if lhs.format != rhs.format {return false} + if lhs._rotation != rhs._rotation {return false} + if lhs.width != rhs.width {return false} + if lhs.height != rhs.height {return false} + if lhs.display != rhs.display {return false} + if lhs._transport != rhs._transport {return false} + if lhs._foldedDisplay != rhs._foldedDisplay {return false} + if lhs.displayMode != rhs.displayMode {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_ImageFormat.ImgFormat: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0PNG\0\u{1}RGBA8888\0\u{1}RGB888\0") +} + +nonisolated extension Android_Emulation_Control_Image: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Image" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}format\0\u{1}width\0\u{1}height\0\u{1}image\0\u{1}seq\0\u{1}timestampUs\0") + + fileprivate class _StorageClass { + var _format: Android_Emulation_Control_ImageFormat? = nil + var _width: UInt32 = 0 + var _height: UInt32 = 0 + var _image: Data = Data() + var _seq: UInt32 = 0 + var _timestampUs: UInt64 = 0 + + // This property is used as the initial default value for new instances of the type. + // The type itself is protecting the reference to its storage via CoW semantics. + // This will force a copy to be made of this reference when the first mutation occurs; + // hence, it is safe to mark this as `nonisolated(unsafe)`. + static nonisolated(unsafe) let defaultInstance = _StorageClass() + + private init() {} + + init(copying source: _StorageClass) { + _format = source._format + _width = source._width + _height = source._height + _image = source._image + _seq = source._seq + _timestampUs = source._timestampUs + } + } + + fileprivate mutating func _uniqueStorage() -> _StorageClass { + if !isKnownUniquelyReferenced(&_storage) { + _storage = _StorageClass(copying: _storage) + } + return _storage + } + + mutating func decodeMessage(decoder: inout D) throws { + _ = _uniqueStorage() + try withExtendedLifetime(_storage) { (_storage: _StorageClass) in + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularMessageField(value: &_storage._format) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &_storage._width) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &_storage._height) }() + case 4: try { try decoder.decodeSingularBytesField(value: &_storage._image) }() + case 5: try { try decoder.decodeSingularUInt32Field(value: &_storage._seq) }() + case 6: try { try decoder.decodeSingularUInt64Field(value: &_storage._timestampUs) }() + default: break + } + } + } + } + + func traverse(visitor: inout V) throws { + try withExtendedLifetime(_storage) { (_storage: _StorageClass) in + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = _storage._format { + try visitor.visitSingularMessageField(value: v, fieldNumber: 1) + } }() + if _storage._width != 0 { + try visitor.visitSingularUInt32Field(value: _storage._width, fieldNumber: 2) + } + if _storage._height != 0 { + try visitor.visitSingularUInt32Field(value: _storage._height, fieldNumber: 3) + } + if !_storage._image.isEmpty { + try visitor.visitSingularBytesField(value: _storage._image, fieldNumber: 4) + } + if _storage._seq != 0 { + try visitor.visitSingularUInt32Field(value: _storage._seq, fieldNumber: 5) + } + if _storage._timestampUs != 0 { + try visitor.visitSingularUInt64Field(value: _storage._timestampUs, fieldNumber: 6) + } + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Image, rhs: Android_Emulation_Control_Image) -> Bool { + if lhs._storage !== rhs._storage { + let storagesAreEqual: Bool = withExtendedLifetime((lhs._storage, rhs._storage)) { (_args: (_StorageClass, _StorageClass)) in + let _storage = _args.0 + let rhs_storage = _args.1 + if _storage._format != rhs_storage._format {return false} + if _storage._width != rhs_storage._width {return false} + if _storage._height != rhs_storage._height {return false} + if _storage._image != rhs_storage._image {return false} + if _storage._seq != rhs_storage._seq {return false} + if _storage._timestampUs != rhs_storage._timestampUs {return false} + return true + } + if !storagesAreEqual {return false} + } + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Rotation: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Rotation" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}rotation\0\u{1}xAxis\0\u{1}yAxis\0\u{1}zAxis\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.rotation) }() + case 2: try { try decoder.decodeSingularDoubleField(value: &self.xAxis) }() + case 3: try { try decoder.decodeSingularDoubleField(value: &self.yAxis) }() + case 4: try { try decoder.decodeSingularDoubleField(value: &self.zAxis) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.rotation != .portrait { + try visitor.visitSingularEnumField(value: self.rotation, fieldNumber: 1) + } + if self.xAxis.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.xAxis, fieldNumber: 2) + } + if self.yAxis.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.yAxis, fieldNumber: 3) + } + if self.zAxis.bitPattern != 0 { + try visitor.visitSingularDoubleField(value: self.zAxis, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Rotation, rhs: Android_Emulation_Control_Rotation) -> Bool { + if lhs.rotation != rhs.rotation {return false} + if lhs.xAxis != rhs.xAxis {return false} + if lhs.yAxis != rhs.yAxis {return false} + if lhs.zAxis != rhs.zAxis {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Rotation.SkinRotation: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0PORTRAIT\0\u{1}LANDSCAPE\0\u{1}REVERSE_PORTRAIT\0\u{1}REVERSE_LANDSCAPE\0") +} + +nonisolated extension Android_Emulation_Control_PhoneCall: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".PhoneCall" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}operation\0\u{1}number\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.operation) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.number) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.operation != .initCall { + try visitor.visitSingularEnumField(value: self.operation, fieldNumber: 1) + } + if !self.number.isEmpty { + try visitor.visitSingularStringField(value: self.number, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_PhoneCall, rhs: Android_Emulation_Control_PhoneCall) -> Bool { + if lhs.operation != rhs.operation {return false} + if lhs.number != rhs.number {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_PhoneCall.Operation: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0InitCall\0\u{1}AcceptCall\0\u{1}RejectCallExplicit\0\u{1}RejectCallBusy\0\u{1}DisconnectCall\0\u{1}PlaceCallOnHold\0\u{1}TakeCallOffHold\0") +} + +nonisolated extension Android_Emulation_Control_PhoneResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".PhoneResponse" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}response\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularEnumField(value: &self.response) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.response != .ok { + try visitor.visitSingularEnumField(value: self.response, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_PhoneResponse, rhs: Android_Emulation_Control_PhoneResponse) -> Bool { + if lhs.response != rhs.response {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_PhoneResponse.Response: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0OK\0\u{1}BadOperation\0\u{1}BadNumber\0\u{1}InvalidAction\0\u{1}ActionFailed\0\u{1}RadioOff\0") +} + +nonisolated extension Android_Emulation_Control_Entry: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Entry" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}key\0\u{1}value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.key) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.key.isEmpty { + try visitor.visitSingularStringField(value: self.key, fieldNumber: 1) + } + if !self.value.isEmpty { + try visitor.visitSingularStringField(value: self.value, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Entry, rhs: Android_Emulation_Control_Entry) -> Bool { + if lhs.key != rhs.key {return false} + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_EntryList: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".EntryList" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}entry\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.entry) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.entry.isEmpty { + try visitor.visitRepeatedMessageField(value: self.entry, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_EntryList, rhs: Android_Emulation_Control_EntryList) -> Bool { + if lhs.entry != rhs.entry {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_EmulatorStatus: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".EmulatorStatus" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}version\0\u{1}uptime\0\u{1}booted\0\u{1}vmConfig\0\u{1}hardwareConfig\0\u{1}heartbeat\0\u{1}guestConfig\0\u{1}platformConfig\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.version) }() + case 2: try { try decoder.decodeSingularUInt64Field(value: &self.uptime) }() + case 3: try { try decoder.decodeSingularBoolField(value: &self.booted) }() + case 4: try { try decoder.decodeSingularMessageField(value: &self._vmConfig) }() + case 5: try { try decoder.decodeSingularMessageField(value: &self._hardwareConfig) }() + case 6: try { try decoder.decodeSingularUInt64Field(value: &self.heartbeat) }() + case 7: try { try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: &self.guestConfig) }() + case 8: try { try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: &self.platformConfig) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + if !self.version.isEmpty { + try visitor.visitSingularStringField(value: self.version, fieldNumber: 1) + } + if self.uptime != 0 { + try visitor.visitSingularUInt64Field(value: self.uptime, fieldNumber: 2) + } + if self.booted != false { + try visitor.visitSingularBoolField(value: self.booted, fieldNumber: 3) + } + try { if let v = self._vmConfig { + try visitor.visitSingularMessageField(value: v, fieldNumber: 4) + } }() + try { if let v = self._hardwareConfig { + try visitor.visitSingularMessageField(value: v, fieldNumber: 5) + } }() + if self.heartbeat != 0 { + try visitor.visitSingularUInt64Field(value: self.heartbeat, fieldNumber: 6) + } + if !self.guestConfig.isEmpty { + try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: self.guestConfig, fieldNumber: 7) + } + if !self.platformConfig.isEmpty { + try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: self.platformConfig, fieldNumber: 8) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_EmulatorStatus, rhs: Android_Emulation_Control_EmulatorStatus) -> Bool { + if lhs.version != rhs.version {return false} + if lhs.uptime != rhs.uptime {return false} + if lhs.booted != rhs.booted {return false} + if lhs._vmConfig != rhs._vmConfig {return false} + if lhs._hardwareConfig != rhs._hardwareConfig {return false} + if lhs.heartbeat != rhs.heartbeat {return false} + if lhs.guestConfig != rhs.guestConfig {return false} + if lhs.platformConfig != rhs.platformConfig {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_AudioFormat: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".AudioFormat" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}samplingRate\0\u{1}channels\0\u{1}format\0\u{1}mode\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularUInt64Field(value: &self.samplingRate) }() + case 2: try { try decoder.decodeSingularEnumField(value: &self.channels) }() + case 3: try { try decoder.decodeSingularEnumField(value: &self.format) }() + case 4: try { try decoder.decodeSingularEnumField(value: &self.mode) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.samplingRate != 0 { + try visitor.visitSingularUInt64Field(value: self.samplingRate, fieldNumber: 1) + } + if self.channels != .mono { + try visitor.visitSingularEnumField(value: self.channels, fieldNumber: 2) + } + if self.format != .audFmtU8 { + try visitor.visitSingularEnumField(value: self.format, fieldNumber: 3) + } + if self.mode != .modeUnspecified { + try visitor.visitSingularEnumField(value: self.mode, fieldNumber: 4) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_AudioFormat, rhs: Android_Emulation_Control_AudioFormat) -> Bool { + if lhs.samplingRate != rhs.samplingRate {return false} + if lhs.channels != rhs.channels {return false} + if lhs.format != rhs.format {return false} + if lhs.mode != rhs.mode {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_AudioFormat.SampleFormat: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0AUD_FMT_U8\0\u{1}AUD_FMT_S16\0") +} + +nonisolated extension Android_Emulation_Control_AudioFormat.Channels: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0Mono\0\u{1}Stereo\0") +} + +nonisolated extension Android_Emulation_Control_AudioFormat.DeliveryMode: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0MODE_UNSPECIFIED\0\u{1}MODE_REAL_TIME\0") +} + +nonisolated extension Android_Emulation_Control_AudioPacket: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".AudioPacket" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}format\0\u{1}timestamp\0\u{1}audio\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularMessageField(value: &self._format) }() + case 2: try { try decoder.decodeSingularUInt64Field(value: &self.timestamp) }() + case 3: try { try decoder.decodeSingularBytesField(value: &self.audio) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = self._format { + try visitor.visitSingularMessageField(value: v, fieldNumber: 1) + } }() + if self.timestamp != 0 { + try visitor.visitSingularUInt64Field(value: self.timestamp, fieldNumber: 2) + } + if !self.audio.isEmpty { + try visitor.visitSingularBytesField(value: self.audio, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_AudioPacket, rhs: Android_Emulation_Control_AudioPacket) -> Bool { + if lhs._format != rhs._format {return false} + if lhs.timestamp != rhs.timestamp {return false} + if lhs.audio != rhs.audio {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_MicrophoneState: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".MicrophoneState" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}realAudioEnabled\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.realAudioEnabled) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.realAudioEnabled != false { + try visitor.visitSingularBoolField(value: self.realAudioEnabled, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_MicrophoneState, rhs: Android_Emulation_Control_MicrophoneState) -> Bool { + if lhs.realAudioEnabled != rhs.realAudioEnabled {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_SmsMessage: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".SmsMessage" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}srcAddress\0\u{1}text\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.srcAddress) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.text) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.srcAddress.isEmpty { + try visitor.visitSingularStringField(value: self.srcAddress, fieldNumber: 1) + } + if !self.text.isEmpty { + try visitor.visitSingularStringField(value: self.text, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_SmsMessage, rhs: Android_Emulation_Control_SmsMessage) -> Bool { + if lhs.srcAddress != rhs.srcAddress {return false} + if lhs.text != rhs.text {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_DisplayConfiguration: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".DisplayConfiguration" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}width\0\u{1}height\0\u{1}dpi\0\u{1}flags\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.width) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.height) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.dpi) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self.flags) }() + case 5: try { try decoder.decodeSingularUInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.width != 0 { + try visitor.visitSingularUInt32Field(value: self.width, fieldNumber: 1) + } + if self.height != 0 { + try visitor.visitSingularUInt32Field(value: self.height, fieldNumber: 2) + } + if self.dpi != 0 { + try visitor.visitSingularUInt32Field(value: self.dpi, fieldNumber: 3) + } + if self.flags != 0 { + try visitor.visitSingularUInt32Field(value: self.flags, fieldNumber: 4) + } + if self.display != 0 { + try visitor.visitSingularUInt32Field(value: self.display, fieldNumber: 5) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_DisplayConfiguration, rhs: Android_Emulation_Control_DisplayConfiguration) -> Bool { + if lhs.width != rhs.width {return false} + if lhs.height != rhs.height {return false} + if lhs.dpi != rhs.dpi {return false} + if lhs.flags != rhs.flags {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_DisplayConfiguration.DisplayFlags: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0DISPLAYFLAGS_UNSPECIFIED\0\u{1}VIRTUAL_DISPLAY_FLAG_PUBLIC\0\u{1}VIRTUAL_DISPLAY_FLAG_PRESENTATION\0\u{2}\u{2}VIRTUAL_DISPLAY_FLAG_SECURE\0\u{2}\u{4}VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY\0\u{2}\u{8}VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR\0") +} + +nonisolated extension Android_Emulation_Control_DisplayConfigurations: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".DisplayConfigurations" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}displays\0\u{1}userConfigurable\0\u{1}maxDisplays\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.displays) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.userConfigurable) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.maxDisplays) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.displays.isEmpty { + try visitor.visitRepeatedMessageField(value: self.displays, fieldNumber: 1) + } + if self.userConfigurable != 0 { + try visitor.visitSingularUInt32Field(value: self.userConfigurable, fieldNumber: 2) + } + if self.maxDisplays != 0 { + try visitor.visitSingularUInt32Field(value: self.maxDisplays, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_DisplayConfigurations, rhs: Android_Emulation_Control_DisplayConfigurations) -> Bool { + if lhs.displays != rhs.displays {return false} + if lhs.userConfigurable != rhs.userConfigurable {return false} + if lhs.maxDisplays != rhs.maxDisplays {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Notification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Notification" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\u{2}cameraNotification\0\u{1}displayConfigurationsChangedNotification\0\u{1}posture\0\u{1}booted\0\u{1}brightness\0\u{1}textViewFocus\0\u{1}xrOptions\0\u{1}microphoneState\0\u{1}ledIndicator\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 2: try { + var v: Android_Emulation_Control_CameraNotification? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .cameraNotification(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .cameraNotification(v) + } + }() + case 3: try { + var v: Android_Emulation_Control_DisplayConfigurationsChangedNotification? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .displayConfigurationsChangedNotification(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .displayConfigurationsChangedNotification(v) + } + }() + case 4: try { + var v: Android_Emulation_Control_Posture? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .posture(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .posture(v) + } + }() + case 5: try { + var v: Android_Emulation_Control_BootCompletedNotification? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .booted(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .booted(v) + } + }() + case 6: try { + var v: Android_Emulation_Control_BrightnessValue? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .brightness(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .brightness(v) + } + }() + case 7: try { + var v: Android_Emulation_Control_TextViewFocus? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .textViewFocus(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .textViewFocus(v) + } + }() + case 8: try { + var v: Android_Emulation_Control_XrOptions? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .xrOptions(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .xrOptions(v) + } + }() + case 9: try { + var v: Android_Emulation_Control_MicrophoneState? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .microphoneState(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .microphoneState(v) + } + }() + case 10: try { + var v: Android_Emulation_Control_LedIndicator? + var hadOneofValue = false + if let current = self.type { + hadOneofValue = true + if case .ledIndicator(let m) = current {v = m} + } + try decoder.decodeSingularMessageField(value: &v) + if let v = v { + if hadOneofValue {try decoder.handleConflictingOneOf()} + self.type = .ledIndicator(v) + } + }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + switch self.type { + case .cameraNotification?: try { + guard case .cameraNotification(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 2) + }() + case .displayConfigurationsChangedNotification?: try { + guard case .displayConfigurationsChangedNotification(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + }() + case .posture?: try { + guard case .posture(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 4) + }() + case .booted?: try { + guard case .booted(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 5) + }() + case .brightness?: try { + guard case .brightness(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 6) + }() + case .textViewFocus?: try { + guard case .textViewFocus(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 7) + }() + case .xrOptions?: try { + guard case .xrOptions(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 8) + }() + case .microphoneState?: try { + guard case .microphoneState(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 9) + }() + case .ledIndicator?: try { + guard case .ledIndicator(let v)? = self.type else { preconditionFailure() } + try visitor.visitSingularMessageField(value: v, fieldNumber: 10) + }() + case nil: break + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Notification, rhs: Android_Emulation_Control_Notification) -> Bool { + if lhs.type != rhs.type {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_BootCompletedNotification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".BootCompletedNotification" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}time\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularInt32Field(value: &self.time) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.time != 0 { + try visitor.visitSingularInt32Field(value: self.time, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_BootCompletedNotification, rhs: Android_Emulation_Control_BootCompletedNotification) -> Bool { + if lhs.time != rhs.time {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_CameraNotification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".CameraNotification" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}active\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.active) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.active != false { + try visitor.visitSingularBoolField(value: self.active, fieldNumber: 1) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_CameraNotification, rhs: Android_Emulation_Control_CameraNotification) -> Bool { + if lhs.active != rhs.active {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_TextViewFocus: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".TextViewFocus" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}textViewHasFocus\0\u{1}display\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularBoolField(value: &self.textViewHasFocus) }() + case 2: try { try decoder.decodeSingularInt32Field(value: &self.display) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.textViewHasFocus != false { + try visitor.visitSingularBoolField(value: self.textViewHasFocus, fieldNumber: 1) + } + if self.display != 0 { + try visitor.visitSingularInt32Field(value: self.display, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_TextViewFocus, rhs: Android_Emulation_Control_TextViewFocus) -> Bool { + if lhs.textViewHasFocus != rhs.textViewHasFocus {return false} + if lhs.display != rhs.display {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_DisplayConfigurationsChangedNotification: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".DisplayConfigurationsChangedNotification" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}displayConfigurations\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularMessageField(value: &self._displayConfigurations) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every if/case branch local when no optimizations + // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and + // https://github.com/apple/swift-protobuf/issues/1182 + try { if let v = self._displayConfigurations { + try visitor.visitSingularMessageField(value: v, fieldNumber: 1) + } }() + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_DisplayConfigurationsChangedNotification, rhs: Android_Emulation_Control_DisplayConfigurationsChangedNotification) -> Bool { + if lhs._displayConfigurations != rhs._displayConfigurations {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_RotationRadian: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".RotationRadian" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}x\0\u{1}y\0\u{1}z\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularFloatField(value: &self.x) }() + case 2: try { try decoder.decodeSingularFloatField(value: &self.y) }() + case 3: try { try decoder.decodeSingularFloatField(value: &self.z) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.x.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.x, fieldNumber: 1) + } + if self.y.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.y, fieldNumber: 2) + } + if self.z.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.z, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_RotationRadian, rhs: Android_Emulation_Control_RotationRadian) -> Bool { + if lhs.x != rhs.x {return false} + if lhs.y != rhs.y {return false} + if lhs.z != rhs.z {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Translation: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Translation" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}delta_x\0\u{3}delta_y\0\u{3}delta_z\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularFloatField(value: &self.deltaX) }() + case 2: try { try decoder.decodeSingularFloatField(value: &self.deltaY) }() + case 3: try { try decoder.decodeSingularFloatField(value: &self.deltaZ) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.deltaX.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.deltaX, fieldNumber: 1) + } + if self.deltaY.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.deltaY, fieldNumber: 2) + } + if self.deltaZ.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.deltaZ, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Translation, rhs: Android_Emulation_Control_Translation) -> Bool { + if lhs.deltaX != rhs.deltaX {return false} + if lhs.deltaY != rhs.deltaY {return false} + if lhs.deltaZ != rhs.deltaZ {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_AngularVelocity: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".AngularVelocity" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}omega_x\0\u{3}omega_y\0\u{3}omega_z\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularFloatField(value: &self.omegaX) }() + case 2: try { try decoder.decodeSingularFloatField(value: &self.omegaY) }() + case 3: try { try decoder.decodeSingularFloatField(value: &self.omegaZ) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.omegaX.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.omegaX, fieldNumber: 1) + } + if self.omegaY.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.omegaY, fieldNumber: 2) + } + if self.omegaZ.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.omegaZ, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_AngularVelocity, rhs: Android_Emulation_Control_AngularVelocity) -> Bool { + if lhs.omegaX != rhs.omegaX {return false} + if lhs.omegaY != rhs.omegaY {return false} + if lhs.omegaZ != rhs.omegaZ {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Velocity: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Velocity" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}x\0\u{1}y\0\u{1}z\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularFloatField(value: &self.x) }() + case 2: try { try decoder.decodeSingularFloatField(value: &self.y) }() + case 3: try { try decoder.decodeSingularFloatField(value: &self.z) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.x.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.x, fieldNumber: 1) + } + if self.y.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.y, fieldNumber: 2) + } + if self.z.bitPattern != 0 { + try visitor.visitSingularFloatField(value: self.z, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Velocity, rhs: Android_Emulation_Control_Velocity) -> Bool { + if lhs.x != rhs.x {return false} + if lhs.y != rhs.y {return false} + if lhs.z != rhs.z {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Posture: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Posture" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\u{3}value\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 3: try { try decoder.decodeSingularEnumField(value: &self.value) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if self.value != .postureUnknown { + try visitor.visitSingularEnumField(value: self.value, fieldNumber: 3) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Posture, rhs: Android_Emulation_Control_Posture) -> Bool { + if lhs.value != rhs.value {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Posture.PostureValue: SwiftProtobuf._ProtoNameProviding { + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{2}\0POSTURE_UNKNOWN\0\u{1}POSTURE_CLOSED\0\u{1}POSTURE_HALF_OPENED\0\u{1}POSTURE_OPENED\0\u{1}POSTURE_FLIPPED\0\u{1}POSTURE_TENT\0\u{1}POSTURE_MAX\0") +} + +nonisolated extension Android_Emulation_Control_PhoneNumber: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".PhoneNumber" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}number\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.number) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.number.isEmpty { + try visitor.visitSingularStringField(value: self.number, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_PhoneNumber, rhs: Android_Emulation_Control_PhoneNumber) -> Bool { + if lhs.number != rhs.number {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Environment: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Environment" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}environment\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: &self.environment) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.environment.isEmpty { + try visitor.visitMapField(fieldType: SwiftProtobuf._ProtobufMap.self, value: self.environment, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Environment, rhs: Android_Emulation_Control_Environment) -> Bool { + if lhs.environment != rhs.environment {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_Camera: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".Camera" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{3}display_name\0\u{1}id\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeSingularStringField(value: &self.displayName) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.id) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.displayName.isEmpty { + try visitor.visitSingularStringField(value: self.displayName, fieldNumber: 1) + } + if !self.id.isEmpty { + try visitor.visitSingularStringField(value: self.id, fieldNumber: 2) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_Camera, rhs: Android_Emulation_Control_Camera) -> Bool { + if lhs.displayName != rhs.displayName {return false} + if lhs.id != rhs.id {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} + +nonisolated extension Android_Emulation_Control_CameraList: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { + static let protoMessageName: String = _protobuf_package + ".CameraList" + static let _protobuf_nameMap = SwiftProtobuf._NameMap(bytecode: "\0\u{1}cameras\0") + + mutating func decodeMessage(decoder: inout D) throws { + while let fieldNumber = try decoder.nextFieldNumber() { + // The use of inline closures is to circumvent an issue where the compiler + // allocates stack space for every case branch when no optimizations are + // enabled. https://github.com/apple/swift-protobuf/issues/1034 + switch fieldNumber { + case 1: try { try decoder.decodeRepeatedMessageField(value: &self.cameras) }() + default: break + } + } + } + + func traverse(visitor: inout V) throws { + if !self.cameras.isEmpty { + try visitor.visitRepeatedMessageField(value: self.cameras, fieldNumber: 1) + } + try unknownFields.traverse(visitor: &visitor) + } + + static func ==(lhs: Android_Emulation_Control_CameraList, rhs: Android_Emulation_Control_CameraList) -> Bool { + if lhs.cameras != rhs.cameras {return false} + if lhs.unknownFields != rhs.unknownFields {return false} + return true + } +} diff --git a/TFTMAC.xcodeproj/project.pbxproj b/TFTMAC.xcodeproj/project.pbxproj index 3d2ac29..0320254 100644 --- a/TFTMAC.xcodeproj/project.pbxproj +++ b/TFTMAC.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ 100000000000000000000012 /* GRPCNIOTransportHTTP2 in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000002 /* GRPCNIOTransportHTTP2 */; }; 100000000000000000000013 /* GRPCProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000003 /* GRPCProtobuf */; }; 100000000000000000000014 /* SwiftProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000004 /* SwiftProtobuf */; }; + 100000000000000000000015 /* emulator_controller.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000009 /* emulator_controller.pb.swift */; }; + 100000000000000000000016 /* emulator_controller.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000010 /* emulator_controller.grpc.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -29,6 +31,8 @@ 200000000000000000000006 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; 200000000000000000000007 /* TFTMACGate1Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TFTMACGate1Tests.swift; sourceTree = ""; }; 200000000000000000000008 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 200000000000000000000009 /* emulator_controller.pb.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = emulator_controller.pb.swift; sourceTree = ""; }; + 200000000000000000000010 /* emulator_controller.grpc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = emulator_controller.grpc.swift; sourceTree = ""; }; 200000000000000000000011 /* TFTMAC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TFTMAC.app; sourceTree = BUILT_PRODUCTS_DIR; }; 200000000000000000000012 /* EmbeddedControlProbe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = EmbeddedControlProbe; sourceTree = BUILT_PRODUCTS_DIR; }; 200000000000000000000013 /* TFTMACTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TFTMACTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -55,6 +59,7 @@ isa = PBXGroup; children = ( 400000000000000000000002 /* TFTMAC */, + 40000000000000000000000A /* Generated */, 400000000000000000000005 /* Probes */, 400000000000000000000007 /* Tests */, 400000000000000000000009 /* Products */, @@ -90,6 +95,8 @@ path = Presentation; sourceTree = ""; }; + 40000000000000000000000A /* Generated */ = {isa = PBXGroup; children = (40000000000000000000000B /* EmulatorController */,); path = Generated; sourceTree = ""; }; + 40000000000000000000000B /* EmulatorController */ = {isa = PBXGroup; children = (200000000000000000000009 /* emulator_controller.pb.swift */, 200000000000000000000010 /* emulator_controller.grpc.swift */,); path = EmulatorController; sourceTree = ""; }; 400000000000000000000005 /* Probes */ = {isa = PBXGroup; children = (400000000000000000000006 /* EmbeddedControlProbe */,); path = Probes; sourceTree = ""; }; 400000000000000000000006 /* EmbeddedControlProbe */ = {isa = PBXGroup; children = (200000000000000000000006 /* main.swift */,); path = EmbeddedControlProbe; sourceTree = ""; }; 400000000000000000000007 /* Tests */ = {isa = PBXGroup; children = (400000000000000000000008 /* TFTMACTests */,); path = Tests; sourceTree = ""; }; @@ -157,7 +164,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000004, 100000000000000000000005,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000004, 100000000000000000000005, 100000000000000000000015, 100000000000000000000016,); runOnlyForDeploymentPostprocessing = 0; }; 700000000000000000000002 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000006,); runOnlyForDeploymentPostprocessing = 0; }; 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 100000000000000000000008,); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ diff --git a/Vendor/AndroidEmulator/SOURCE.json b/Vendor/AndroidEmulator/SOURCE.json index 67eaad8..e75e3e5 100644 --- a/Vendor/AndroidEmulator/SOURCE.json +++ b/Vendor/AndroidEmulator/SOURCE.json @@ -8,11 +8,21 @@ "installedProtoSHA256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", "vendoredProtoPath": "Vendor/AndroidEmulator/emulator_controller.proto", "vendoredProtoSHA256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "generator": { + "protocVersion": "36.0", + "swiftProtobufVersion": "1.38.1", + "grpcSwiftProtobufVersion": "2.4.1", + "script": "scripts/generate-emulator-proto.command" + }, + "generatedSources": { + "Generated/EmulatorController/emulator_controller.pb.swift": "55641fbefbf3baae5ab309dc722dcad5c7e9ea90644a8c027c78fbbadf3d8204", + "Generated/EmulatorController/emulator_controller.grpc.swift": "653febae34de04ce4ebdc2a38f46b9a0e015b2f5bb55b66a24c785f24b46e02f" + }, "aemuAuthority": { "branch": "emu-master-dev", "qemuCommit": "ae9d18d2b6261179fbd57fffec720a04f7bfb053", "aemuCommit": "3c1ced8a369417db591eb7cd083af5bb2c317975", "manifestSHA256": "28865cd8a162178ba462b296f5714b6b7b6916e0cafcddfc0c5e44aa03f8e8d3" }, - "contract": "The vendored protocol bytes come directly from the installed stock Android Emulator runtime used by TFTMAC. Build/generation must fail on byte drift until the authority is intentionally refreshed." + "contract": "The vendored protocol bytes come directly from the installed stock Android Emulator runtime used by TFTMAC. Generated Swift sources are reproducible from that frozen protocol with the recorded pinned generator toolchain. Build/generation must fail on byte drift until the authority is intentionally refreshed." } diff --git a/scripts/generate-emulator-proto.command b/scripts/generate-emulator-proto.command new file mode 100644 index 0000000..bb0add9 --- /dev/null +++ b/scripts/generate-emulator-proto.command @@ -0,0 +1,57 @@ +#!/bin/zsh +set -euo pipefail + +ROOT="${0:A:h:h}" +if [[ -z "${DEVELOPER_DIR:-}" ]]; then + if [[ -d /Applications/Xcode-26.6.0.app/Contents/Developer ]]; then + export DEVELOPER_DIR=/Applications/Xcode-26.6.0.app/Contents/Developer + else + export DEVELOPER_DIR="$(xcode-select -p)" + fi +fi +[[ -d "$DEVELOPER_DIR" ]] || { echo "Authoritative Xcode is missing: $DEVELOPER_DIR" >&2; exit 20; } + +PROTO="$ROOT/Vendor/AndroidEmulator/emulator_controller.proto" +[[ -f "$PROTO" ]] || { echo "Vendored EmulatorController proto is missing" >&2; exit 21; } + +PROTOC="" +for candidate in /opt/homebrew/bin/protoc /usr/local/bin/protoc; do + if [[ -x "$candidate" ]]; then PROTOC="$candidate"; break; fi +done +[[ -n "$PROTOC" ]] || { echo "Pinned build cannot generate EmulatorController Swift: protoc is not installed at the standard existing toolchain paths." >&2; exit 22; } + +SWIFT_PROTOBUF="$ROOT/.build/native-release/SourcePackages/checkouts/swift-protobuf" +GRPC_PROTOBUF="$ROOT/.build/native-release/SourcePackages/checkouts/grpc-swift-protobuf" +[[ -d "$SWIFT_PROTOBUF" && -d "$GRPC_PROTOBUF" ]] || { echo "Pinned Swift package checkouts from Gate 1 are missing." >&2; exit 23; } + +/usr/bin/xcrun swift build --package-path "$SWIFT_PROTOBUF" -c release --product protoc-gen-swift >/dev/null +/usr/bin/xcrun swift build --package-path "$GRPC_PROTOBUF" -c release --product protoc-gen-grpc-swift-2 >/dev/null + +SWIFT_PLUGIN="$SWIFT_PROTOBUF/.build/release/protoc-gen-swift" +GRPC_PLUGIN="$GRPC_PROTOBUF/.build/release/protoc-gen-grpc-swift-2" +[[ -x "$SWIFT_PLUGIN" ]] || { echo "Pinned protoc-gen-swift build did not produce an executable." >&2; exit 24; } +[[ -x "$GRPC_PLUGIN" ]] || { echo "Pinned protoc-gen-grpc-swift-2 build did not produce an executable." >&2; exit 25; } + +PROTO_INCLUDE="" +for candidate in /opt/homebrew/include /usr/local/include; do + if [[ -f "$candidate/google/protobuf/empty.proto" ]]; then PROTO_INCLUDE="$candidate"; break; fi +done +[[ -n "$PROTO_INCLUDE" ]] || { echo "google/protobuf/empty.proto is missing from the existing protoc installation." >&2; exit 26; } + +OUT="$ROOT/Generated/EmulatorController" +/bin/rm -rf "$OUT" +/bin/mkdir -p "$OUT" + +"$PROTOC" \ + -I "$ROOT/Vendor/AndroidEmulator" \ + -I "$PROTO_INCLUDE" \ + --plugin="protoc-gen-swift=$SWIFT_PLUGIN" \ + --plugin="protoc-gen-grpc-swift-2=$GRPC_PLUGIN" \ + --swift_out="$OUT" \ + --grpc-swift-2_out="$OUT" \ + "$PROTO" + +[[ -f "$OUT/emulator_controller.pb.swift" ]] || { echo "Swift protobuf output missing" >&2; exit 27; } +[[ -f "$OUT/emulator_controller.grpc.swift" ]] || { echo "Swift gRPC output missing" >&2; exit 28; } + +echo "Generated EmulatorController Swift client from vendored Emulator 37.1.11 protocol." diff --git a/scripts/verify-tftmac.command b/scripts/verify-tftmac.command index 2d06f1b..391d620 100644 --- a/scripts/verify-tftmac.command +++ b/scripts/verify-tftmac.command @@ -30,6 +30,9 @@ for required in \ "$PACKAGE_RESOLVED" \ "$PROTO" \ "$PROTO_SOURCE" \ + Generated/EmulatorController/emulator_controller.pb.swift \ + Generated/EmulatorController/emulator_controller.grpc.swift \ + scripts/generate-emulator-proto.command \ scripts/build-native-app.command \ scripts/test-native-app.command; do [[ -f "$required" ]] || fail "required file is missing: $required" @@ -45,9 +48,14 @@ readonly RECORDED_PROTO_SHA="$(jq -r '.vendoredProtoSHA256' "$PROTO_SOURCE")" readonly RECORDED_INSTALLED_SHA="$(jq -r '.installedProtoSHA256' "$PROTO_SOURCE")" [[ "$PROTO_SHA" == "$RECORDED_PROTO_SHA" ]] || fail "vendored EmulatorController proto hash drift" [[ "$PROTO_SHA" == "$RECORDED_INSTALLED_SHA" ]] || fail "vendored proto no longer matches frozen installed-runtime authority" -jq -e '.schema == 1 and .authority == "INSTALLED_ANDROID_EMULATOR" and .vendoredProtoPath == "Vendor/AndroidEmulator/emulator_controller.proto"' "$PROTO_SOURCE" >/dev/null \ +jq -e '.schema == 1 and .authority == "INSTALLED_ANDROID_EMULATOR" and .vendoredProtoPath == "Vendor/AndroidEmulator/emulator_controller.proto" and .generator.protocVersion == "36.0" and .generator.swiftProtobufVersion == "1.38.1" and .generator.grpcSwiftProtobufVersion == "2.4.1"' "$PROTO_SOURCE" >/dev/null \ || fail "EmulatorController provenance is invalid" +readonly GENERATED_PB_SHA="$(shasum -a 256 Generated/EmulatorController/emulator_controller.pb.swift | awk '{print $1}')" +readonly GENERATED_GRPC_SHA="$(shasum -a 256 Generated/EmulatorController/emulator_controller.grpc.swift | awk '{print $1}')" +[[ "$GENERATED_PB_SHA" == "$(jq -r '.generatedSources["Generated/EmulatorController/emulator_controller.pb.swift"]' "$PROTO_SOURCE")" ]] || fail "generated Swift protobuf source drift" +[[ "$GENERATED_GRPC_SHA" == "$(jq -r '.generatedSources["Generated/EmulatorController/emulator_controller.grpc.swift"]' "$PROTO_SOURCE")" ]] || fail "generated Swift gRPC source drift" + jq -e ' .version == 3 and any(.pins[]; .identity == "grpc-swift-2" and .state.version == "2.4.2") and From 8d9ce1730f0844f2680a04327d82b3c57f5eff72 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sun, 30 Aug 2026 04:34:33 -0500 Subject: [PATCH 12/19] Build native full-screen TFTMAC runtime --- .../EmbeddedControlProbe.swift | 178 ++ Probes/EmbeddedControlProbe/main.swift | 12 - RuntimeHost/Info.plist | 32 + RuntimeHost/main.c | 27 + TFTMAC.xcodeproj/project.pbxproj | 48 +- TFTMACAPP.md | 2 +- TFTMAC_GPU_RUNTIME_SSOT.md | 10 +- Tests/TFTMACTests/TFTMACGate1Tests.swift | 134 + docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md | 307 +++ docs/telemetry.md | 20 +- scripts/build-native-app.command | 44 + scripts/build-tftmac-app.command | 121 +- scripts/test-native-app.command | 8 +- scripts/verify-tftmac.command | 43 +- ssot/STACK.lock.yaml | 44 +- ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md | 4 +- ssot/TFTMAC_ENGINEERING_MAP.sql | 21 + ssot/TFTMAC_NATIVE_APP_PREFLIGHT.md | 4 +- ssot/TFTMAC_PERFORMANCE_LAB.sql | 33 + .../runtime-authority-gate4-2026-08-30.json | 49 + ssot/runtime-authority.json | 81 +- tftmac/App/AppCoordinator.swift | 64 +- tftmac/App/MainWindowController.swift | 18 +- .../App/RuntimeSettingsWindowController.swift | 154 ++ tftmac/App/TFTMACApplication.swift | 69 + tftmac/Info.plist | 4 +- .../Presentation/EmbeddedEmulatorView.swift | 290 ++- tftmac/Presentation/FrameContract.swift | 95 + tftmac/Runtime/AVDTransactionGuard.swift | 52 + tftmac/Runtime/RuntimeLease.swift | 105 + tftmac/Runtime/RuntimeProfile.swift | 106 + tftmac/Runtime/TFTMACRuntime.swift | 2169 +++++++++++++++++ .../Runtime/TelemetrySignalClassifier.swift | 23 + tftmac/Sources/README.md | 6 + tools/tftmac-direct-control.mjs | 79 +- 35 files changed, 4231 insertions(+), 225 deletions(-) create mode 100644 Probes/EmbeddedControlProbe/EmbeddedControlProbe.swift delete mode 100644 Probes/EmbeddedControlProbe/main.swift create mode 100644 RuntimeHost/Info.plist create mode 100644 RuntimeHost/main.c create mode 100644 docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md create mode 100644 ssot/history/runtime-authority-gate4-2026-08-30.json create mode 100644 tftmac/App/RuntimeSettingsWindowController.swift create mode 100644 tftmac/Presentation/FrameContract.swift create mode 100644 tftmac/Runtime/AVDTransactionGuard.swift create mode 100644 tftmac/Runtime/RuntimeLease.swift create mode 100644 tftmac/Runtime/RuntimeProfile.swift create mode 100644 tftmac/Runtime/TFTMACRuntime.swift create mode 100644 tftmac/Runtime/TelemetrySignalClassifier.swift create mode 100644 tftmac/Sources/README.md diff --git a/Probes/EmbeddedControlProbe/EmbeddedControlProbe.swift b/Probes/EmbeddedControlProbe/EmbeddedControlProbe.swift new file mode 100644 index 0000000..d4f72c5 --- /dev/null +++ b/Probes/EmbeddedControlProbe/EmbeddedControlProbe.swift @@ -0,0 +1,178 @@ +import Foundation +import GRPCCore +import GRPCNIOTransportHTTP2 +import GRPCProtobuf +import SwiftProtobuf + +// HISTORICAL DIAGNOSTIC ONLY. +// This probe starts the retired direct-control runtime and is intentionally not +// part of release verification. Native live acceptance is owned by TFTMAC.app. + +struct ProbeError: LocalizedError { + let message: String + init(_ message: String) { self.message = message } + var errorDescription: String? { message } +} + +struct ControlStart: Decodable { + let sessionId: String + let captureDir: String + let samplerPid: Int32 + let emulatorPid: Int32 + let sdkRoot: String + let avdHome: String? + let embeddedControl: Bool? +} + +struct DiscoveryRecord { + let path: String + let port: Int + let token: String +} + +@main +enum EmbeddedControlProbe { + static func main() async { + do { + let root = URL(fileURLWithPath: FileManager.default.currentDirectoryPath) + let node = URL(fileURLWithPath: "/opt/homebrew/bin/node") + let controlTool = root.appendingPathComponent("tools/tftmac-direct-control.mjs") + guard FileManager.default.isExecutableFile(atPath: node.path) else { throw ProbeError("Node.js is unavailable") } + guard FileManager.default.fileExists(atPath: controlTool.path) else { throw ProbeError("TFTMAC control tool is missing") } + + let startText = try run(node, [controlTool.path, "start-native-controller-probe"]) + let start = try JSONDecoder().decode(ControlStart.self, from: Data(startText.utf8)) + defer { _ = try? run(node, [controlTool.path, "stop"]) } + + guard start.embeddedControl == true else { throw ProbeError("Hidden embedded-control launch was not selected") } + let discovery = try await waitForDiscovery(pid: start.emulatorPid, avdHome: start.avdHome, captureDir: start.captureDir) + + let transport = try HTTP2ClientTransport.Posix( + target: .ipv4(address: "127.0.0.1", port: discovery.port), + transportSecurity: .plaintext + ) + let status: Android_Emulation_Control_EmulatorStatus = try await withGRPCClient(transport: transport) { grpc in + let client = Android_Emulation_Control_EmulatorController.Client(wrapping: grpc) + let request = GRPCCore.ClientRequest( + message: SwiftProtobuf.Google_Protobuf_Empty(), + metadata: ["authorization": "Bearer \(discovery.token)"] + ) + return try await client.getStatus( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer() + ) + } + + guard status.booted else { throw ProbeError("Authenticated getStatus reports Android not booted") } + guard status.vmConfig.numberOfCpuCores == 6 else { throw ProbeError("Unexpected CPU count: \(status.vmConfig.numberOfCpuCores)") } + let ramMiB = status.vmConfig.ramSizeBytes / 1024 / 1024 + guard ramMiB >= 5000 && ramMiB <= 5300 else { throw ProbeError("Unexpected guest RAM: \(ramMiB) MiB") } + guard status.version.contains("37.1.11") else { throw ProbeError("Unexpected emulator version: \(status.version)") } + + let evidence: [String: Any] = [ + "schema": 1, + "gate": 2, + "result": "PASS", + "hidden": true, + "authenticatedGetStatus": true, + "emulatorPid": start.emulatorPid, + "avd": "TFT_Ultra_Tablet", + "emulatorVersion": status.version, + "booted": status.booted, + "cpuCores": status.vmConfig.numberOfCpuCores, + "ramMiB": ramMiB, + "grpcPort": discovery.port, + "discoveryRecord": discovery.path, + "sessionId": start.sessionId, + "captureDir": start.captureDir + ] + try writeJSON(evidence, to: root.appendingPathComponent("ssot/native-app-probe-results.json")) + + let authority: [String: Any] = [ + "schema": 1, + "authority": "INSTALLED_EMULATOR_CONTROLLER", + "emulatorVersion": status.version, + "avd": "TFT_Ultra_Tablet", + "authenticated": true, + "loopbackOnly": true, + "discoveryRecord": discovery.path, + "tokenPersisted": false + ] + try writeJSON(authority, to: root.appendingPathComponent("ssot/emulator-controller-authority.json")) + print("TFTMAC Gate 2: PASS") + } catch { + fputs("TFTMAC Gate 2: FAIL: \(error.localizedDescription)\n", stderr) + exit(EXIT_FAILURE) + } + } + + static func waitForDiscovery(pid: Int32, avdHome: String?, captureDir: String) async throws -> DiscoveryRecord { + var home = FileManager.default.homeDirectoryForCurrentUser + if let marker = captureDir.range(of: "/Library/Application Support/TFTMAC/") { + home = URL(fileURLWithPath: String(captureDir[.. 0 else { continue } + guard let token = values["grpc.token"], !token.isEmpty else { throw ProbeError("Emulator registration has no grpc.token at \(candidate.path)") } + return DiscoveryRecord(path: candidate.path, port: port, token: token) + } + try await Task.sleep(for: .milliseconds(200)) + } + throw ProbeError("No emulator registration record appeared for PID \(pid)") + } + + static func parseINI(_ text: String) -> [String: String] { + var result: [String: String] = [:] + for line in text.split(whereSeparator: \.isNewline) { + let pair = line.split(separator: "=", maxSplits: 1).map(String.init) + if pair.count == 2 { result[pair[0].trimmingCharacters(in: .whitespaces)] = pair[1].trimmingCharacters(in: .whitespaces) } + } + return result + } + + static func writeJSON(_ object: [String: Any], to url: URL) throws { + let data = try JSONSerialization.data(withJSONObject: object, options: [.prettyPrinted, .sortedKeys]) + try data.write(to: url, options: .atomic) + } + + @discardableResult + static func run(_ executable: URL, _ arguments: [String]) throws -> String { + let process = Process() + process.executableURL = executable + process.arguments = arguments + let out = Pipe() + let err = Pipe() + process.standardOutput = out + process.standardError = err + try process.run() + let stdout = out.fileHandleForReading.readDataToEndOfFile() + let stderr = err.fileHandleForReading.readDataToEndOfFile() + process.waitUntilExit() + let outText = String(data: stdout, encoding: .utf8) ?? "" + let errText = String(data: stderr, encoding: .utf8) ?? "" + guard process.terminationStatus == 0 else { throw ProbeError(errText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty ? outText : errText) } + return outText + } +} diff --git a/Probes/EmbeddedControlProbe/main.swift b/Probes/EmbeddedControlProbe/main.swift deleted file mode 100644 index e77015b..0000000 --- a/Probes/EmbeddedControlProbe/main.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Foundation - -let authority = URL(fileURLWithPath: FileManager.default.currentDirectoryPath) - .appendingPathComponent("Vendor/AndroidEmulator/SOURCE.json") - -if FileManager.default.fileExists(atPath: authority.path) { - print("TFTMAC EmbeddedControlProbe: emulator protocol authority present") - exit(EXIT_SUCCESS) -} else { - fputs("TFTMAC EmbeddedControlProbe: emulator protocol authority missing\n", stderr) - exit(EXIT_FAILURE) -} diff --git a/RuntimeHost/Info.plist b/RuntimeHost/Info.plist new file mode 100644 index 0000000..cf0c495 --- /dev/null +++ b/RuntimeHost/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDisplayName + TFTMAC Emulator Host + CFBundleExecutable + TFTMACEmulatorHost + CFBundleIdentifier + com.flashls1.tftmac.emulator-host + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + TFTMAC Emulator Host + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1 + GCSupportsGameMode + + LSApplicationCategoryType + public.app-category.games + LSUIElement + + LSSupportsGameMode + + NSHighResolutionCapable + + + diff --git a/RuntimeHost/main.c b/RuntimeHost/main.c new file mode 100644 index 0000000..c6794a2 --- /dev/null +++ b/RuntimeHost/main.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) { + const char *stdout_path = getenv("TFT_HOST_STDOUT"); + const char *stderr_path = getenv("TFT_HOST_STDERR"); + if (stdout_path != NULL && stdout_path[0] != '\0') { + (void)freopen(stdout_path, "a", stdout); + } + if (stderr_path != NULL && stderr_path[0] != '\0') { + (void)freopen(stderr_path, "a", stderr); + } + + const char *emulator = getenv("TFT_EMULATOR"); + if (emulator == NULL || emulator[0] == '\0' || access(emulator, X_OK) != 0) { + fputs("TFTMAC Emulator Host could not find the Android Emulator executable.\n", stderr); + return EXIT_FAILURE; + } + + argv[0] = (char *)emulator; + execv(emulator, argv); + fprintf(stderr, "TFTMAC Emulator Host could not start Android Emulator: %s\n", strerror(errno)); + return EXIT_FAILURE; +} diff --git a/TFTMAC.xcodeproj/project.pbxproj b/TFTMAC.xcodeproj/project.pbxproj index 0320254..aa9dba9 100644 --- a/TFTMAC.xcodeproj/project.pbxproj +++ b/TFTMAC.xcodeproj/project.pbxproj @@ -11,7 +11,7 @@ 100000000000000000000003 /* MainWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000003 /* MainWindowController.swift */; }; 100000000000000000000004 /* EmbeddedEmulatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000004 /* EmbeddedEmulatorView.swift */; }; 100000000000000000000005 /* ViewportMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000005 /* ViewportMapper.swift */; }; - 100000000000000000000006 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000006 /* main.swift */; }; + 100000000000000000000006 /* EmbeddedControlProbe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000006 /* EmbeddedControlProbe.swift */; }; 100000000000000000000007 /* TFTMACGate1Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000007 /* TFTMACGate1Tests.swift */; }; 100000000000000000000008 /* ViewportMapper.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000005 /* ViewportMapper.swift */; }; 100000000000000000000011 /* GRPCCore in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000001 /* GRPCCore */; }; @@ -20,6 +20,24 @@ 100000000000000000000014 /* SwiftProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000004 /* SwiftProtobuf */; }; 100000000000000000000015 /* emulator_controller.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000009 /* emulator_controller.pb.swift */; }; 100000000000000000000016 /* emulator_controller.grpc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000010 /* emulator_controller.grpc.swift */; }; + 100000000000000000000017 /* emulator_controller.pb.swift in Probe */ = {isa = PBXBuildFile; fileRef = 200000000000000000000009 /* emulator_controller.pb.swift */; }; + 100000000000000000000018 /* emulator_controller.grpc.swift in Probe */ = {isa = PBXBuildFile; fileRef = 200000000000000000000010 /* emulator_controller.grpc.swift */; }; + 100000000000000000000019 /* GRPCCore in Probe Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000001 /* GRPCCore */; }; + 10000000000000000000001A /* GRPCNIOTransportHTTP2 in Probe Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000002 /* GRPCNIOTransportHTTP2 */; }; + 10000000000000000000001B /* GRPCProtobuf in Probe Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000003 /* GRPCProtobuf */; }; + 10000000000000000000001C /* SwiftProtobuf in Probe Frameworks */ = {isa = PBXBuildFile; productRef = D00000000000000000000004 /* SwiftProtobuf */; }; + 100000000000000000000020 /* FrameContract.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000014 /* FrameContract.swift */; }; + 100000000000000000000021 /* TFTMACRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000015 /* TFTMACRuntime.swift */; }; + 100000000000000000000022 /* FrameContract.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000014 /* FrameContract.swift */; }; + 100000000000000000000023 /* AVDTransactionGuard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000016 /* AVDTransactionGuard.swift */; }; + 100000000000000000000024 /* AVDTransactionGuard.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000016 /* AVDTransactionGuard.swift */; }; + 100000000000000000000025 /* RuntimeProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000017 /* RuntimeProfile.swift */; }; + 100000000000000000000026 /* RuntimeProfile.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000017 /* RuntimeProfile.swift */; }; + 100000000000000000000027 /* RuntimeSettingsWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000018 /* RuntimeSettingsWindowController.swift */; }; + 100000000000000000000028 /* RuntimeLease.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200000000000000000000019 /* RuntimeLease.swift */; }; + 100000000000000000000029 /* RuntimeLease.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000019 /* RuntimeLease.swift */; }; + 10000000000000000000002A /* TelemetrySignalClassifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001A /* TelemetrySignalClassifier.swift */; }; + 10000000000000000000002B /* TelemetrySignalClassifier.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001A /* TelemetrySignalClassifier.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -28,7 +46,7 @@ 200000000000000000000003 /* MainWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainWindowController.swift; sourceTree = ""; }; 200000000000000000000004 /* EmbeddedEmulatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedEmulatorView.swift; sourceTree = ""; }; 200000000000000000000005 /* ViewportMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewportMapper.swift; sourceTree = ""; }; - 200000000000000000000006 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 200000000000000000000006 /* EmbeddedControlProbe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedControlProbe.swift; sourceTree = ""; }; 200000000000000000000007 /* TFTMACGate1Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TFTMACGate1Tests.swift; sourceTree = ""; }; 200000000000000000000008 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 200000000000000000000009 /* emulator_controller.pb.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = emulator_controller.pb.swift; sourceTree = ""; }; @@ -36,6 +54,13 @@ 200000000000000000000011 /* TFTMAC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TFTMAC.app; sourceTree = BUILT_PRODUCTS_DIR; }; 200000000000000000000012 /* EmbeddedControlProbe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = EmbeddedControlProbe; sourceTree = BUILT_PRODUCTS_DIR; }; 200000000000000000000013 /* TFTMACTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TFTMACTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 200000000000000000000014 /* FrameContract.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameContract.swift; sourceTree = ""; }; + 200000000000000000000015 /* TFTMACRuntime.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TFTMACRuntime.swift; sourceTree = ""; }; + 200000000000000000000016 /* AVDTransactionGuard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AVDTransactionGuard.swift; sourceTree = ""; }; + 200000000000000000000017 /* RuntimeProfile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuntimeProfile.swift; sourceTree = ""; }; + 200000000000000000000018 /* RuntimeSettingsWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuntimeSettingsWindowController.swift; sourceTree = ""; }; + 200000000000000000000019 /* RuntimeLease.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuntimeLease.swift; sourceTree = ""; }; + 20000000000000000000001A /* TelemetrySignalClassifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelemetrySignalClassifier.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -50,7 +75,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 300000000000000000000002 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; + 300000000000000000000002 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000019, 10000000000000000000001A, 10000000000000000000001B, 10000000000000000000001C,); runOnlyForDeploymentPostprocessing = 0; }; 300000000000000000000003 /* Frameworks */ = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ @@ -71,6 +96,7 @@ children = ( 400000000000000000000003 /* App */, 400000000000000000000004 /* Presentation */, + 40000000000000000000000C /* Runtime */, 200000000000000000000008 /* Info.plist */, ); path = TFTMAC; @@ -82,6 +108,7 @@ 200000000000000000000001 /* TFTMACApplication.swift */, 200000000000000000000002 /* AppCoordinator.swift */, 200000000000000000000003 /* MainWindowController.swift */, + 200000000000000000000018 /* RuntimeSettingsWindowController.swift */, ); path = App; sourceTree = ""; @@ -91,14 +118,16 @@ children = ( 200000000000000000000004 /* EmbeddedEmulatorView.swift */, 200000000000000000000005 /* ViewportMapper.swift */, + 200000000000000000000014 /* FrameContract.swift */, ); path = Presentation; sourceTree = ""; }; + 40000000000000000000000C /* Runtime */ = {isa = PBXGroup; children = (200000000000000000000017 /* RuntimeProfile.swift */, 200000000000000000000019 /* RuntimeLease.swift */, 20000000000000000000001A /* TelemetrySignalClassifier.swift */, 200000000000000000000015 /* TFTMACRuntime.swift */, 200000000000000000000016 /* AVDTransactionGuard.swift */,); path = Runtime; sourceTree = ""; }; 40000000000000000000000A /* Generated */ = {isa = PBXGroup; children = (40000000000000000000000B /* EmulatorController */,); path = Generated; sourceTree = ""; }; 40000000000000000000000B /* EmulatorController */ = {isa = PBXGroup; children = (200000000000000000000009 /* emulator_controller.pb.swift */, 200000000000000000000010 /* emulator_controller.grpc.swift */,); path = EmulatorController; sourceTree = ""; }; 400000000000000000000005 /* Probes */ = {isa = PBXGroup; children = (400000000000000000000006 /* EmbeddedControlProbe */,); path = Probes; sourceTree = ""; }; - 400000000000000000000006 /* EmbeddedControlProbe */ = {isa = PBXGroup; children = (200000000000000000000006 /* main.swift */,); path = EmbeddedControlProbe; sourceTree = ""; }; + 400000000000000000000006 /* EmbeddedControlProbe */ = {isa = PBXGroup; children = (200000000000000000000006 /* EmbeddedControlProbe.swift */,); path = EmbeddedControlProbe; sourceTree = ""; }; 400000000000000000000007 /* Tests */ = {isa = PBXGroup; children = (400000000000000000000008 /* TFTMACTests */,); path = Tests; sourceTree = ""; }; 400000000000000000000008 /* TFTMACTests */ = {isa = PBXGroup; children = (200000000000000000000007 /* TFTMACGate1Tests.swift */,); path = TFTMACTests; sourceTree = ""; }; 400000000000000000000009 /* Products */ = {isa = PBXGroup; children = (200000000000000000000011 /* TFTMAC.app */, 200000000000000000000012 /* EmbeddedControlProbe */, 200000000000000000000013 /* TFTMACTests.xctest */,); name = Products; sourceTree = ""; }; @@ -124,6 +153,7 @@ buildRules = (); dependencies = (); name = EmbeddedControlProbe; + packageProductDependencies = (D00000000000000000000001 /* GRPCCore */, D00000000000000000000002 /* GRPCNIOTransportHTTP2 */, D00000000000000000000003 /* GRPCProtobuf */, D00000000000000000000004 /* SwiftProtobuf */); productName = EmbeddedControlProbe; productReference = 200000000000000000000012 /* EmbeddedControlProbe */; productType = "com.apple.product-type.tool"; @@ -164,16 +194,16 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000004, 100000000000000000000005, 100000000000000000000015, 100000000000000000000016,); runOnlyForDeploymentPostprocessing = 0; }; - 700000000000000000000002 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000006,); runOnlyForDeploymentPostprocessing = 0; }; - 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 100000000000000000000008,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000027, 100000000000000000000004, 100000000000000000000005, 100000000000000000000020, 100000000000000000000021, 100000000000000000000023, 100000000000000000000025, 100000000000000000000028, 10000000000000000000002A, 100000000000000000000015, 100000000000000000000016,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000002 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000006, 100000000000000000000017, 100000000000000000000018,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 100000000000000000000008, 100000000000000000000022, 100000000000000000000024, 100000000000000000000026, 100000000000000000000029, 10000000000000000000002B,); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ B00000000000000000000001 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000002 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 6.0;}; name = Release; }; - B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; - B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000021 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000022 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000031 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac.tests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; diff --git a/TFTMACAPP.md b/TFTMACAPP.md index 69dcacd..5311106 100644 --- a/TFTMACAPP.md +++ b/TFTMACAPP.md @@ -429,7 +429,7 @@ Required additional flags/direction: Use isolated ADB: ```text -ANDROID_ADB_SERVER_PORT=5040 +ANDROID_ADB_SERVER_PORT=5038 ``` Preserve the current renderer/audio/CPU/RAM/display/compatibility arguments from the active RuntimeProfile. diff --git a/TFTMAC_GPU_RUNTIME_SSOT.md b/TFTMAC_GPU_RUNTIME_SSOT.md index 1c6a35a..63a3178 100644 --- a/TFTMAC_GPU_RUNTIME_SSOT.md +++ b/TFTMAC_GPU_RUNTIME_SSOT.md @@ -1,7 +1,7 @@ # TFTMAC Runtime — Single Source of Truth **Status:** CURRENT RUNTIME AUTHORITY -**Updated:** 2026-08-29 +**Updated:** 2026-08-30 **Project:** TFTMAC ## Current production/control runtime @@ -11,8 +11,8 @@ TFTMAC uses the released Google Android Emulator already proven on the target Ap ```text Runtime root: /Volumes/MAC MINI M4/TFTMAC/Runtime Android Emulator: 37.1.11.0 (build 15917651) -ADB server: isolated port 5040 -Emulator console: 5592 +ADB server: donor port 5038 +Emulator console: 5582 AVD: TFT_Ultra_Tablet Guest image: official Google Play ARM64 image Target display: 1920x1080 / 60 Hz @@ -20,7 +20,9 @@ Package: com.riotgames.league.teamfighttactics Installer/update authority: com.android.vending ``` -The current playable control profile is `tftmac_official_baseline_v1` at 6 vCPU / 6144 MB, Medium graphics, 60 FPS, Performance OFF. Ultra High is a measured rejected configuration on the target M4 host because of severe lag. +The current native playable profile is `tftmac_5gb_native_v1` at 6 vCPU / 5120 MB, Medium graphics, 60 FPS, Performance OFF. Ultra High is a measured rejected configuration on the target M4 host because of severe lag. + +The launcher boundary is frozen: TFTMAC starts its packaged `TFTMAC Emulator Host.app` through `/usr/bin/open -n -W --env ... --args ...` in the logged-in user session. It does not directly spawn QEMU from a Node/service context and does not inject `ADB_VENDOR_KEYS`. The previous `5040/5592` direct-service identity is retained only in historical evidence as the ADB-authorization regression. ## EmulatorController authority diff --git a/Tests/TFTMACTests/TFTMACGate1Tests.swift b/Tests/TFTMACTests/TFTMACGate1Tests.swift index f7b64f3..d77bb02 100644 --- a/Tests/TFTMACTests/TFTMACGate1Tests.swift +++ b/Tests/TFTMACTests/TFTMACGate1Tests.swift @@ -27,4 +27,138 @@ final class TFTMACGate1Tests: XCTestCase { XCTAssertEqual(source.x, 960, accuracy: 0.001) XCTAssertEqual(source.y, 540, accuracy: 0.001) } + + func testNativeRGBAFrameContractAcceptsExact1080pFrame() throws { + XCTAssertNoThrow(try FrameContract.validate( + width: 1920, + height: 1080, + byteCount: 1920 * 1080 * 4 + )) + } + + func testNativeRGBAFrameContractRejectsTruncatedFrame() { + XCTAssertThrowsError(try FrameContract.validate( + width: 1920, + height: 1080, + byteCount: 1920 * 1080 * 4 - 1 + )) { error in + XCTAssertEqual( + error as? FrameContractError, + .wrongByteCount(expected: 1920 * 1080 * 4, actual: 1920 * 1080 * 4 - 1) + ) + } + } + + func testLatestFrameMailboxIsBoundedToNewestFrame() { + let mailbox = LatestFrameMailbox() + let first = EmulatorFrame( + pixels: Data(count: 4), width: 1, height: 1, sequence: 1, + emulatorTimestampMicroseconds: 1, receivedMonotonicNanoseconds: 1 + ) + let second = EmulatorFrame( + pixels: Data(count: 4), width: 1, height: 1, sequence: 2, + emulatorTimestampMicroseconds: 2, receivedMonotonicNanoseconds: 2 + ) + mailbox.publish(first) + mailbox.publish(second) + XCTAssertEqual(mailbox.takeLatest()?.sequence, 2) + XCTAssertNil(mailbox.takeLatest()) + XCTAssertEqual(mailbox.snapshot().replacedBeforePresentation, 1) + } + + func testAVDRestoreAllowsOnlyTheAppliedConfiguration() throws { + XCTAssertEqual( + try AVDTransactionGuard.restoreDecision( + currentSHA256: "applied", originalSHA256: "original", appliedSHA256: "applied" + ), + .restoreBackup + ) + } + + func testAVDRestoreDoesNotOverwriteAConflictingConfiguration() { + XCTAssertThrowsError(try AVDTransactionGuard.restoreDecision( + currentSHA256: "changed-by-someone-else", + originalSHA256: "original", + appliedSHA256: "applied" + )) { error in + XCTAssertEqual(error as? AVDTransactionGuardError, .conflictingCurrentConfiguration) + } + } + + func testRuntimeProfileRejectsUnsupportedValues() { + let baseline = TFTMACRuntimeProfile.playable + let candidate = baseline.with(vCPU: 99, ramMiB: 1, refreshHz: 144, asgDrawFlushInterval: 7) + XCTAssertEqual(candidate.vCPU, baseline.vCPU) + XCTAssertEqual(candidate.ramMiB, baseline.ramMiB) + XCTAssertEqual(candidate.refreshHz, baseline.refreshHz) + XCTAssertEqual(candidate.asgDrawFlushInterval, baseline.asgDrawFlushInterval) + XCTAssertEqual(candidate.width, 1920) + XCTAssertEqual(candidate.height, 1080) + } + + func testRuntimeProfileAcceptsSafeExperimentValues() { + let candidate = TFTMACRuntimeProfile.playable.with( + vCPU: 8, + ramMiB: 6144, + refreshHz: 30, + asgDrawFlushInterval: 400 + ) + XCTAssertEqual(candidate.vCPU, 8) + XCTAssertEqual(candidate.ramMiB, 6144) + XCTAssertEqual(candidate.refreshHz, 30) + XCTAssertEqual(candidate.asgDrawFlushInterval, 400) + XCTAssertEqual(candidate.identifier, "tftmac_native_6144m_8c_30hz_flush400") + } + + func testRuntimeLeaseRejectsASecondLiveOwner() throws { + let root = FileManager.default.temporaryDirectory + .appendingPathComponent("tftmac-lease-test-\(UUID().uuidString)", isDirectory: true) + defer { try? FileManager.default.removeItem(at: root) } + let first = try TFTMACRuntimeLease.acquire(stateRoot: root) + defer { first.release() } + XCTAssertThrowsError(try TFTMACRuntimeLease.acquire(stateRoot: root)) { error in + guard case RuntimeLeaseError.alreadyOwned = error else { + return XCTFail("Unexpected error: \(error)") + } + } + } + + func testAVDRecoveryRejectsBackupOutsideCaptureRoot() { + XCTAssertThrowsError(try AVDTransactionGuard.validateRecoveryPaths( + markerConfigURL: URL(fileURLWithPath: "/runtime/TFT.avd/config.ini"), + expectedConfigURL: URL(fileURLWithPath: "/runtime/TFT.avd/config.ini"), + backupURL: URL(fileURLWithPath: "/tmp/untrusted/avd-config.before.ini"), + captureRoot: URL(fileURLWithPath: "/captures", isDirectory: true) + )) { error in + XCTAssertEqual(error as? AVDTransactionGuardError, .unexpectedRecoveryPath) + } + } + + func testMemoryKillClassifierAcceptsConfirmedVictims() { + XCTAssertTrue(TelemetrySignalClassifier.isConfirmedGuestMemoryKill( + "08-30 04:10:00.000 I lmkd: Kill 'com.riotgames.league.teamfighttactics' (4024), uid 10123, oom_score_adj 900" + )) + XCTAssertTrue(TelemetrySignalClassifier.isConfirmedGuestMemoryKill( + "08-30 04:10:00.000 I lowmemorykiller: Killing 'com.example.background' (4025), adj 950" + )) + XCTAssertTrue(TelemetrySignalClassifier.isConfirmedGuestMemoryKill( + "kernel: Out of memory: Killed process 4024 (TFTMain) total-vm:1234kB" + )) + } + + func testMemoryKillClassifierRejectsBootAndSetupNoise() { + let nonKills = [ + "lmkd: Connection with lmkd established", + "lowmemorykiller: lowmemorykiller data connection established", + "lmkd: memevent failed to attach", + "lmkd: android_trigger_vendor_lmk_kill tracepoint unavailable", + "lmkd: Using psi monitors for memory pressure detection", + "com.riotgames.league.teamfighttactics: java.lang.OutOfMemoryError", + "ActivityManager: Killing com.riotgames.league.teamfighttactics for cached #17", + "kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null)" + ] + for line in nonKills { + XCTAssertFalse(TelemetrySignalClassifier.isConfirmedGuestMemoryKill(line), line) + } + } } diff --git a/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md new file mode 100644 index 0000000..c9e10e1 --- /dev/null +++ b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md @@ -0,0 +1,307 @@ +# TFTMAC Native Runtime Knowledge Base + +**Authority date:** 2026-08-30 + +**Product target:** Native macOS TFT client experience backed by the official Android TFT package + +**Current profile:** `tftmac_5gb_native_v1` + +## 1. Current outcome ledger + +| Claim | State | Decisive evidence | +| --- | --- | --- | +| TFTMAC is a real native Mac app | VERIFIED | AppKit `NSWindow`, native macOS full-screen space, Metal presenter, normal menus/window behavior | +| Full display is 1920x1080 | VERIFIED | AX window receipt was origin `0,0`, size `1920x1080`, `AXFullScreen=true`; gRPC frames are exactly 1920x1080 RGBA | +| Correctly oriented live Android video | VERIFIED | Live screenshot and input mapping on native Metal output | +| Donor-compatible launch architecture | VERIFIED | Packaged `TFTMAC Emulator Host.app` launched with `/usr/bin/open -n -W --env ... --args ...` in the logged-in Mac session | +| Correct ADB identity | VERIFIED | ADB server `5038`, console `5582`, serial `emulator-5582`; observed transition `offline -> unauthorized -> device` | +| No manual ADB key injection | VERIFIED | `ADB_VENDOR_KEYS` absent in launch receipt; inherited service socket/address variables cleared | +| Authenticated hidden-emulator control | VERIFIED | Exact PID-bound `pid_*.ini`, loopback gRPC `8554`, bearer token used in memory only, Emulator `37.1.11.0` authenticated | +| Native frame transport | VERIFIED | Raw gRPC `RGBA8888`, 8,294,400 bytes per 1920x1080 frame; 16-MiB request/response limits on pinned gRPC transport | +| Native presentation near 60 Hz in lobby | VERIFIED | Live session observed source-window max `61.1` and Metal-output max `60.5`; these are transport/output metrics, not Unreal FPS | +| Official current TFT launches | VERIFIED | Package `com.riotgames.league.teamfighttactics`, version `18.1-5402721`, SplashActivity then `com.epicgames.unreal.GameActivity`, PID observed | +| Riot account can reach the TFT lobby | VERIFIED | Live rendered lobby on the existing signed-in official app state | +| Mouse and keyboard transport | VERIFIED | Native view coordinate transform and gRPC input; ADB authorization dialog accepted through the native view; input SQL records counts/coordinates, never typed content | +| CoreAudio software path | VERIFIED | Emulator launched `-audio coreaudio`; active AudioFlinger output, stereo, 48 kHz on the live check, one active track, zero partial/empty underruns | +| User can hear sound | USER ACCEPTANCE REQUIRED | The software path is healthy; only the person at the Mac can confirm audible output | +| Full match in this exact native build | NOT YET VERIFIED | Earlier donor runtime completed matches; current native lobby/GameActivity is proven, but a start-to-result native match receipt is still needed | +| Release build/install integrity | VERIFIED | Native-only verifier passed 14/14 tests; `/Applications/TFTMAC.app` is deep-code-sign valid, version 2.0.0 (build 2), embeds its Mac icon, and its executable SHA-256 matches the verified `dist` build | + +Primary live acceptance capture: + +```text +~/Library/Application Support/TFTMAC/Captures/ + 2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94/ +``` + +Final release receipts: + +```text +Verified executable SHA-256: + 4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49 + +Live match/lobby plus clean shutdown: + 2026-08-30T09-25-17.519Z-1a9d0227-3cf8-4a19-b353-c0f135ccf31c + +Exact icon-inclusive installed release launch: + 2026-08-30T09-30-17.189Z-68f1bb24-f660-4245-9750-823b7da703a4 +``` + +The first receipt reached Unreal `GameActivity`, rendered a live match and the +fully colored post-match lobby, recorded source/output maxima of 60.95/60.53, +zero sequence drops, active 48-kHz stereo output with zero underruns, and zero +confirmed memory kills. Its normal Quit sealed SQL as `STOPPED`, confirmed the +owned emulator exit, restored the exact AVD hash, and removed both transaction +and lease markers. The second receipt is the exact final bundle left open for +play. Its live native window was re-verified at origin `0,0`, size `1920x1080`, +`AXFullScreen=true`; SQL later observed source/output maxima of 60.99/60.33, +active 48-kHz stereo output with one active track and zero underruns, and zero +confirmed memory kills. Four cumulative sequence gaps appeared only after +repeatedly backgrounding the app and switching Spaces for release captures; the +separate uninterrupted match/lobby receipt retained zero sequence drops. The +installed-release session also captured one real +Riot `MobileFREWebViewActivity` input-dispatch ANR after a five-second +MotionEvent timeout. That process recovered automatically from PID 2348 to PID +4439; the session remained `RUNNING`, with no fatal, Vulkan, or audio-error +aggregate. Secure Android PIN entry remains deliberately manual. + +## 2. Non-negotiable runtime invariants + +These values are product authority, not suggestions: + +```text +Engine fact: Unreal Engine +Runtime root: /Volumes/MAC MINI M4/TFTMAC/Runtime +Emulator: Google Android Emulator 37.1.11 / build 15917651 +AVD: TFT_Ultra_Tablet / API36 Google Play ARM64 +Package: com.riotgames.league.teamfighttactics +Launcher: /usr/bin/open -n -W -> packaged TFTMAC Emulator Host.app +ADB server: 5038 +Console: 5582 +Serial: emulator-5582 +ADB_VENDOR_KEYS: absent +Controller: authenticated loopback gRPC, default port 8554 +Display: 1920x1080 / 320 dpi / 60-Hz default +CPU/RAM default: 6 vCPU / 5120 MiB +GPU/audio: host / CoreAudio +Graphics transport: virtio-gpu-asg +ASG: 1 MiB write buffer / 16 KiB write step / 32 KiB ring / flush 800 +ANGLE enabled: exposeNonConformantExtensionsAndVersions:exposeES32ForTesting +ANGLE disabled: preferSubmitAtFBOBoundary +MoltenVK requested: synchronous submits 0 / max active command buffers 64 / fast math 1 +``` + +The previous `5040 / 5592 / emulator-5592` service-context route is a historical regression. It must remain only as failure evidence. It is not a fallback and must never overwrite current authority. + +## 3. Architecture and ownership boundaries + +```text +Official TFT Unreal GameActivity + -> Android application graphics contract + -> ANGLE GLES compatibility layer + -> guest Vulkan/ranchu + -> virtio-gpu-asg + gfxstream + -> host Vulkan + -> emulator-bundled MoltenVK + -> Apple Metal executes emulator rendering + -> authenticated EmulatorController raw RGBA stream + -> latest-only TFTMAC mailbox + -> persistent native Metal queue / triple texture storage + -> AppKit full-screen Mac window +``` + +There are two Metal owners: + +1. MoltenVK uses Metal internally for the emulator's host Vulkan work. +2. TFTMAC uses its own Metal presenter for the completed Android image. + +Do not assign a stall to Unreal, ANGLE, gfxstream, MoltenVK, TFTMAC Metal, or macOS presentation from a metric owned by a different boundary. + +## 4. What the FPS display means + +The overlay is intentionally explicit: + +```text +SRC · OUT +``` + +- `SRC` is the rate of distinct images received through authenticated gRPC. +- `OUT` is the native Metal presentation cadence. +- Neither number is automatically Unreal engine FPS. +- A static Android image may be re-presented at 60 OUT while SRC is lower. +- Unreal/guest/display attribution requires marked SurfaceFlinger deltas and, for deep diagnosis, a bounded Perfetto FrameTimeline trace. +- `dumpsys gfxinfo` is blind to the native Unreal/Vulkan workload and must not be used as primary FPS authority. + +## 5. Native logging system + +Every app launch creates a private session directory: + +```text +~/Library/Application Support/TFTMAC/Captures// +``` + +The directory is mode `0700`. Queryable authority is `TFTMAC_NATIVE_RUNTIME.sqlite`; local sidecars include `native-events.jsonl`, emulator stdout/stderr, a reversible AVD backup, and session-scoped `logcat.raw.txt`. + +| SQL table | What it establishes | Normal cadence | +| --- | --- | --- | +| `sessions` | Start/end/status/profile | One row per app run | +| `runtime_receipts` | Ports, launcher, AVD, renderer requests, profile | At startup | +| `events` | Lifecycle, package, ADB transitions, markers, failures | Event-driven | +| `frame_samples` | Visual/hash checkpoints, dimensions, sequence | First frame and bounded checkpoints | +| `frame_interval_windows` | Source ingress count, drops, mean/p95/max interval | One-second windows | +| `presentation_samples` | SRC/OUT rate, mailbox replacement and drops | About once per second | +| `resource_samples` | QEMU CPU/RSS, TFT PID, resumed activity | Five seconds | +| `guest_memory_samples` | MemTotal/MemAvailable/swap | Five seconds | +| `clock_sync_samples` | Host/guest monotonic alignment and RTT | Thirty seconds | +| `surfaceflinger_samples` | Render rate and cumulative total/HWC/GPU misses | Start/end and 30 seconds during gameplay | +| `audio_samples` | CoreAudio receipt plus active output/rate/stereo/tracks/underruns | Start/end and 30 seconds during gameplay | +| `logcat_aggregates` | Counts only: ANR, input timeout, fatal, LMK/OOM, skipped frames, ANGLE/Vulkan warnings, PCM errors | Five seconds | +| `game_process_sessions` | TFT PID start/end | PID transition | +| `input_samples` | Mouse coordinate/button and keyboard character count/special key | Input event; no typed content | + +Raw logcat is local sensitive data. It is excluded from SQL and must never be uploaded or pasted without deliberate sanitization. It begins at a guest timestamp taken after ADB authorization so stale ring-buffer events do not contaminate the run. + +`memory_kill_count` is intentionally conservative: it counts only an LMKD line +that names an actual kill victim or a kernel `Out of memory: Killed process` +line. LMKD connection, memevent, tracepoint, monitor and policy setup messages +remain in the private raw log but do not become false-positive kills in SQL. + +Useful queries: + +```sql +-- Run and exact profile +SELECT * FROM sessions; +SELECT receipt_key, receipt_value, confidence +FROM runtime_receipts ORDER BY id; + +-- Frame ingress and native output +SELECT started_monotonic_ns, frame_count, sequence_drop_count, + mean_interval_ms, p95_interval_ms, maximum_interval_ms +FROM frame_interval_windows ORDER BY started_monotonic_ns; + +SELECT sampled_monotonic_ns, source_fps, presentation_fps, + mailbox_replacements, sequence_drops +FROM presentation_samples ORDER BY sampled_monotonic_ns; + +-- Marked gameplay correlation +SELECT kind, monotonic_ns FROM events +WHERE kind IN ('MATCH_ENTRY','COMBAT_START','VISIBLE_STUTTER','MATCH_END') +ORDER BY monotonic_ns; + +-- SurfaceFlinger deltas belong inside a marked window +SELECT sample_label, monotonic_ns, render_rate_hz, + total_missed_frames, hwc_missed_frames, gpu_missed_frames +FROM surfaceflinger_samples ORDER BY monotonic_ns; + +-- Sound-health regressions +SELECT sample_label, active_output, sample_rate_hz, stereo_output, + active_tracks, partial_underruns, empty_underruns +FROM audio_samples ORDER BY monotonic_ns; + +-- Crash, memory and renderer signals without exposing raw log text +SELECT * FROM logcat_aggregates +WHERE anr_count + fatal_count + memory_kill_count + + angle_warning_count + vulkan_warning_count + audio_error_count > 0; +``` + +## 6. Performance Lab controls + +The app's `Performance Lab…` window persists only validated, restart-bound values. Restart is mandatory so the logger has one attributable profile and the AVD transaction remains reversible. + +| Variable | Safe UI domain | Default | Evidence rule | +| --- | --- | --- | --- | +| vCPU | `4, 6, 8` | `6` | One-factor test; watch host CPU and frame windows | +| Guest RAM | `4096, 5120, 6144 MiB` | `5120` | 5120 is KEEP; 4096 remains deferred unless a deliberate test is run | +| Refresh target | `30, 60 Hz` | `60` | Do not confuse refresh target with engine FPS | +| ASG draw flush | `400, 800` | `800` | 400 is experimental; score SurfaceFlinger delta and host CPU overhead | + +The following remain fixed in the UI: 1920x1080, 320 dpi, ports, AVD/image, official package, host GPU, CoreAudio, ASG buffer/step/ring, ANGLE compatibility flags, MoltenVK requests and native presenter design. + +The Telemetry menu records exact user-observed boundaries: + +```text +Command-Shift-1 MATCH_ENTRY +Command-Shift-2 COMBAT_START +Command-Shift-3 VISIBLE_STUTTER +Command-Shift-4 MATCH_END +``` + +## 7. Experiment protocol + +1. Start from `tftmac_5gb_native_v1`. +2. Change exactly one restart-bound variable. +3. Quit cleanly and relaunch; never mutate an AVD profile mid-match. +4. Keep the same TFT build, graphics preset, FPS cap, workload phase and login state where practical. +5. Mark match entry, combat, visible stutters and match end. +6. Compare frame-window p95/max, SurfaceFlinger counter deltas, QEMU CPU/RSS, guest available memory, ANR/fatal/LMK counts and audio underruns. +7. Reject any boot, ADB, package, crash, memory, audio or usability regression. +8. KEEP only after a comparable repeat plus cold confirmation. +9. Record why a candidate was kept or rejected; never promote from a single lobby sample. + +Current product decisions: + +- KEEP 5120 MiB. Sustained donor runs showed lower pressure direction than 6144 MiB while retaining guest headroom. +- DEFER 4096 MiB. It lacks sufficient heavy-game safety margin. +- KEEP Medium / 60 / Performance OFF as the currently usable in-game control. +- REJECT Ultra High for current usability; direct user observation found severe lag, without fabricating a numeric FPS. +- TEST 800 -> 400 ASG flush only as a controlled candidate, never bundled with another change. +- KEEP raw gRPC as the working native presentation transport now. +- DEFER MMAP until producer readiness, tear-free integrity, frame-age and performance are empirically proven. + +A transient black/white end-of-match frame was investigated before release. +The following guest-side screenshot and native Metal frame both showed the same +fully colored lobby, so no graphics feature override was promoted from that +single transient. `BypassVulkanDeviceFeatureOverrides` remains an unproven +one-factor diagnostic candidate only; use it only if a same-moment guest/native +capture proves repeatable missing board materials during active combat. + +## 8. ZoeMC and graphics-council conclusion + +The earlier 10,000-world simulation was reproducible but used subjective priors. It was correctly retained as hypothesis-ordering evidence, not as proof of a winning architecture. ZoeMC v0.2 concluded that real authenticated frame delivery was the decisive next test. + +That test has now resolved the first branch: + +- Raw authenticated gRPC is empirically viable for correct 1920x1080 native lobby presentation and input. +- MMAP remains a possible later efficiency optimization, not a requirement to play TFT. +- Direct MMAP zero-copy is invalid without producer-readiness/integrity fencing. +- Direct MoltenVK texture handoff has no supported resource-sharing contract. +- Encoded video/scrcpy and an external emulator window do not satisfy the native product target. + +Specialist boundary findings retained from the council: + +- Unreal owns game/render/RHI workload behavior, not macOS panel visibility. +- ANGLE owns the GLES-to-Vulkan compatibility boundary; exposed ES3.2 is a named nonconformant workload adapter, not conformance proof. +- gfxstream/ASG owns guest-to-host graphics command transport; requested ring/buffer values are not per-frame latency proof. +- MoltenVK owns host Vulkan-to-Metal translation; environment values are requested until effective readback is available. +- TFTMAC owns the final frame copy, orientation, scaling, input transform, output cadence and native Mac experience. +- Fortnite/Unreal guidance supplies transferable measurement categories, not TFT-specific capability or performance proof. + +Source research artifacts: + +- `outputs/ZoeMC_TFTMAC_Unreal_Graphics_v0.2/REPORT.md` +- `outputs/ZoeMC_TFTMAC_Unreal_Graphics_v0.2/VARIABLE_MANIFEST.json` +- `outputs/ZoeMC_TFTMAC_Unreal_Graphics_v0.2/NEXT_TESTS.md` +- `outputs/TFTMAC_UNREAL_GRAPHICS_COUNCIL_FINDINGS.md` + +## 9. Safety and recovery + +- TFTMAC acquires an exclusive interprocess lease before touching the shared AVD. +- Launch fails closed if `TFT_Ultra_Tablet`, console `5582`, or controller `8554` is already occupied. +- The emulator command line carries a unique per-session marker. +- Cleanup kills only the exact process that still matches that ownership marker. +- AVD configuration is backed up, hashed, applied atomically and restored only after the owned emulator exits. +- Interrupted recovery accepts only the exact discovered AVD config path and a backup inside TFTMAC's capture root. +- A repeated Quit remains `terminateLater`; it cannot bypass telemetry sealing or AVD restoration. +- Google/Riot passwords, MFA, CAPTCHA and consent remain manual official-UI actions and are never logged or automated. +- Android secure-lock content may be intentionally blank in the authenticated screenshot stream. TFTMAC wakes the display, shows an explicit prompt, accepts manual PIN keyboard input, records only character counts, and never stores the PIN. + +## 10. Remaining decisive gaps + +1. User confirms sound is audible at the Mac speakers/headphones. +2. Complete one full match in the installed native build and mark entry/combat/stutter/end. +3. Correlate a bounded active-combat Perfetto trace with SQL clock sync and SurfaceFlinger deltas before attributing a graphics bottleneck. +4. Validate whether MMAP improves CPU/frame age without tearing; keep raw gRPC if it does not. +5. Treat source rate, output rate, guest frame timing and panel visibility as separate clocks and claims. +6. If black/white or missing board materials recur during active combat, mark `VISIBLE_STUTTER` and take guest/native screenshots at the same instant before changing ANGLE, Vulkan, gfxstream or MoltenVK flags. + +These are optimization and final user-acceptance gaps. They do not undo the proven native launch, lobby, rendering, input, official-package or software-audio path. diff --git a/docs/telemetry.md b/docs/telemetry.md index 03e111d..d93ab31 100644 --- a/docs/telemetry.md +++ b/docs/telemetry.md @@ -2,21 +2,33 @@ TFTMAC diagnostics are local-first and evidence-driven. -## Raw-first capture +## Native capture -High-rate frame/runtime evidence is written append-only during capture. Normalization into SQLite or other derived analysis happens after capture so database writes do not perturb the measured workload. +Each native app start creates a private `0700` session directory under: + +```text +~/Library/Application Support/TFTMAC/Captures// +``` + +`TFTMAC_NATIVE_RUNTIME.sqlite` is the queryable session authority. `native-events.jsonl`, emulator stdout/stderr and session-scoped `logcat.raw.txt` are local sidecars. Raw logcat is sensitive, never copied into SQLite, and must not be published. Useful evidence may include: - host monotonic timestamps; - emulator/runtime state; -- filtered logcat/emulator output; -- SurfaceFlinger frame timing; +- one-second native frame-ingress interval windows and visual checkpoints; +- raw-gRPC source-window and Metal output-presentation rates, labeled separately and never called Unreal FPS; +- aggregate logcat fault counts with raw lines kept outside SQL; +- SurfaceFlinger render-rate and cumulative missed/HWC/GPU counters sampled at boundaries and every 30 seconds during gameplay; +- AudioFlinger active output, sample rate, stereo state, tracks and underruns; - host CPU/RSS/memory-pressure samples; +- guest `/proc/meminfo` and host/guest monotonic clock calibration; - renderer/graphics state; - package version, installer, and signer evidence; - explicit user stutter markers. +The Telemetry menu records `MATCH_ENTRY`, `COMBAT_START`, `VISIBLE_STUTTER` and `MATCH_END` on the host monotonic timeline. Use cumulative SurfaceFlinger counter deltas only inside those marked windows. `gfxinfo` is not Unreal/Vulkan frame authority. Perfetto remains a bounded on-demand diagnostic rather than an always-on observer. + ## Retention Keep only evidence that protects a current product decision: diff --git a/scripts/build-native-app.command b/scripts/build-native-app.command index dca6e2e..9e4bb7f 100644 --- a/scripts/build-native-app.command +++ b/scripts/build-native-app.command @@ -12,6 +12,12 @@ fi DERIVED="${ROOT}/.build/native-release" APP="${DERIVED}/Build/Products/Release/TFTMAC.app" DIST="${ROOT}/dist/TFTMAC.app" +ICON_WORK="$(mktemp -d /private/tmp/tftmac-native-icon.XXXXXX)" + +cleanup() { + /bin/rm -rf "${ICON_WORK}" +} +trap cleanup EXIT /usr/bin/xcodebuild \ -quiet \ @@ -26,6 +32,44 @@ DIST="${ROOT}/dist/TFTMAC.app" /bin/rm -rf "${DIST}" /bin/mkdir -p "${ROOT}/dist" /usr/bin/ditto "${APP}" "${DIST}" + +# The Info.plist declares TFTMAC.icns. Generate and embed every required Mac +# representation before signing so Finder and the Dock never show a generic app. +/usr/bin/xcrun swift "${ROOT}/tftmac/GenerateIcon.swift" "${ICON_WORK}/icon_1024x1024.png" +/bin/mkdir -p "${ICON_WORK}/TFTMAC.iconset" "${DIST}/Contents/Resources" +for specification in \ + '16 icon_16x16.png' \ + '32 icon_16x16@2x.png' \ + '32 icon_32x32.png' \ + '64 icon_32x32@2x.png' \ + '128 icon_128x128.png' \ + '256 icon_128x128@2x.png' \ + '256 icon_256x256.png' \ + '512 icon_256x256@2x.png' \ + '512 icon_512x512.png' \ + '1024 icon_512x512@2x.png'; do + pixels="${specification%% *}" + filename="${specification#* }" + /usr/bin/sips -z "${pixels}" "${pixels}" "${ICON_WORK}/icon_1024x1024.png" \ + --out "${ICON_WORK}/TFTMAC.iconset/${filename}" >/dev/null +done +/usr/bin/iconutil -c icns "${ICON_WORK}/TFTMAC.iconset" -o "${DIST}/Contents/Resources/TFTMAC.icns" +/bin/cp "${ICON_WORK}/icon_1024x1024.png" "${DIST}/Contents/Resources/TFTMAC-1024.png" + +# Package a TFTMAC-owned Mac application host for Android Emulator. Launching +# this nested app with /usr/bin/open keeps the emulator and ADB identity inside +# the logged-in user's macOS session, matching the proven donor architecture. +HOST_APP="${DIST}/Contents/Resources/TFTMAC Emulator Host.app" +HOST_MACOS="${HOST_APP}/Contents/MacOS" +/bin/mkdir -p "${HOST_MACOS}" +/usr/bin/xcrun --sdk macosx clang \ + -Os -arch arm64 -mmacosx-version-min=15.0 \ + "${ROOT}/RuntimeHost/main.c" \ + -o "${HOST_MACOS}/TFTMACEmulatorHost" +/bin/cp "${ROOT}/RuntimeHost/Info.plist" "${HOST_APP}/Contents/Info.plist" +/usr/bin/plutil -lint "${HOST_APP}/Contents/Info.plist" >/dev/null +/usr/bin/codesign --force --sign - --timestamp=none "${HOST_APP}" + /usr/bin/codesign --force --deep --sign - --timestamp=none "${DIST}" /usr/bin/codesign --verify --deep --strict --verbose=2 "${DIST}" diff --git a/scripts/build-tftmac-app.command b/scripts/build-tftmac-app.command index 3f00d08..a415cc0 100644 --- a/scripts/build-tftmac-app.command +++ b/scripts/build-tftmac-app.command @@ -1,120 +1,9 @@ #!/bin/zsh set -euo pipefail -readonly PROJECT_DIR="${0:A:h:h}" -readonly APP="$PROJECT_DIR/dist/TFTMAC.app" -readonly CONTENTS="$APP/Contents" -readonly MACOS="$CONTENTS/MacOS" -readonly RESOURCES="$CONTENTS/Resources" -readonly SOURCES_DIR="$PROJECT_DIR/tftmac/Sources" -readonly INFO_PLIST="$PROJECT_DIR/tftmac/Info.plist" -readonly ICON_SOURCE="$PROJECT_DIR/tftmac/GenerateIcon.swift" -readonly ICON_WORK="$(mktemp -d /private/tmp/tftmac-icon.XXXXXX)" -readonly INSTALL_ROOT="${TFTMAC_INSTALL_ROOT:-/Applications}" -readonly DEVELOPER_DIR="${DEVELOPER_DIR:-/Applications/Xcode-26.6.0.app/Contents/Developer}" -export DEVELOPER_DIR -readonly INSTALLED_APP="$INSTALL_ROOT/TFTMAC.app" +readonly ROOT="${0:A:h:h}" -cleanup() { - rm -rf "$ICON_WORK" -} -trap cleanup EXIT - -[[ -x "$DEVELOPER_DIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc" ]] || { print -u2 "Required Xcode 26.6 toolchain is missing: $DEVELOPER_DIR"; exit 1; } -[[ "$(xcodebuild -version | head -n 1)" == "Xcode 26.6" ]] || { print -u2 "TFTMAC requires Xcode 26.6"; exit 1; } - -rm -rf "$APP" -mkdir -p "$MACOS" "$RESOURCES/Tools" "$RESOURCES/ssot" "$PROJECT_DIR/dist" - -plutil -lint "$INFO_PLIST" >/dev/null - -# Generate a native TFTMAC launcher icon locally. No Android/Emulator branding is used. -xcrun swift "$ICON_SOURCE" "$ICON_WORK/icon_1024x1024.png" -mkdir -p "$ICON_WORK/TFTMAC.iconset" -for spec in \ - '16 icon_16x16.png' \ - '32 icon_16x16@2x.png' \ - '32 icon_32x32.png' \ - '64 icon_32x32@2x.png' \ - '128 icon_128x128.png' \ - '256 icon_128x128@2x.png' \ - '256 icon_256x256.png' \ - '512 icon_256x256@2x.png' \ - '512 icon_512x512.png' \ - '1024 icon_512x512@2x.png'; do - pixels="${spec%% *}" - name="${spec#* }" - sips -z "$pixels" "$pixels" "$ICON_WORK/icon_1024x1024.png" --out "$ICON_WORK/TFTMAC.iconset/$name" >/dev/null - done -iconutil -c icns "$ICON_WORK/TFTMAC.iconset" -o "$RESOURCES/TFTMAC.icns" -cp -f "$ICON_WORK/icon_1024x1024.png" "$RESOURCES/TFTMAC-1024.png" - -# Compile only the new stock-runtime TFTMAC shell. The retired donor/PBE launcher is not linked. -typeset -a SWIFT_SOURCES -SWIFT_SOURCES=("$SOURCES_DIR"/*.swift) -xcrun swiftc \ - -O \ - -swift-version 5 \ - -parse-as-library \ - -target arm64-apple-macosx14.0 \ - "${SWIFT_SOURCES[@]}" \ - -framework AppKit \ - -framework SwiftUI \ - -framework ApplicationServices \ - -o "$MACOS/TFTMAC" - -cp -f "$INFO_PLIST" "$CONTENTS/Info.plist" -cp -f "$PROJECT_DIR/tools/tftmac-direct-control.mjs" "$RESOURCES/Tools/tftmac-direct-control.mjs" -chmod 755 "$RESOURCES/Tools/tftmac-direct-control.mjs" -cp -f "$PROJECT_DIR/ssot/TFTMAC_PERFORMANCE_LAB.sql" "$RESOURCES/ssot/TFTMAC_PERFORMANCE_LAB.sql" -cp -f "$PROJECT_DIR/ssot/TFTMAC_ENGINEERING_MAP.sql" "$RESOURCES/ssot/TFTMAC_ENGINEERING_MAP.sql" -cp -f "$PROJECT_DIR/ssot/STACK.lock.yaml" "$RESOURCES/ssot/STACK.lock.yaml" -git -C "$PROJECT_DIR" rev-parse HEAD > "$RESOURCES/Tools/build-commit.txt" - -plutil -lint "$CONTENTS/Info.plist" >/dev/null -if rg -n 'CFBundle(DisplayName|Name).*Emulator|Emulator' "$CONTENTS/Info.plist"; then - print -u2 "TFTMAC app metadata contains legacy Emulator branding." - exit 1 -fi - -codesign --force --sign - --timestamp=none --options runtime "$APP" -codesign --verify --deep --strict --verbose=2 "$APP" - -mkdir -p "$INSTALL_ROOT" -rm -rf "$INSTALLED_APP" -ditto "$APP" "$INSTALLED_APP" -codesign --verify --deep --strict --verbose=2 "$INSTALLED_APP" - -# Launcher smoke: the installed Finder/Dock icon must start the native shell. -pkill -f '/Applications/TFTMAC.app/Contents/MacOS/TFTMAC' 2>/dev/null || true -sleep 0.4 -# Remove only TFTMAC's stale private ADB server before app launch. A stale 5040 -# listener is not a valid runtime and must never prevent the launcher from booting. -/opt/homebrew/bin/node "$PROJECT_DIR/tools/tftmac-direct-control.mjs" cleanup-tftmac-adb-residue >/dev/null -open -na "$INSTALLED_APP" -sleep 1.5 -pgrep -f '/Applications/TFTMAC.app/Contents/MacOS/TFTMAC' >/dev/null || { print -u2 "Installed TFTMAC launcher did not stay running."; exit 1; } - -# End-to-end launcher gate: after opening the installed app, the app itself must -# establish exactly one owned emulator/logger/ADB runtime. TFT launch may pause -# at Android secure unlock, which is intentionally a manual security boundary. -typeset runtime_ready=0 runtime_audit="" -for _ in {1..45}; do - runtime_audit="$(/opt/homebrew/bin/node "$PROJECT_DIR/tools/tftmac-direct-control.mjs" runtime-process-audit 2>/dev/null || true)" - if [[ -n "$runtime_audit" ]] \ - && print -r -- "$runtime_audit" | jq -e ' - .duplicateRisk.tftmacApps == 1 - and .duplicateRisk.emulators == 1 - and .duplicateRisk.samplers == 1 - and .duplicateRisk.adbServers == 1 - ' >/dev/null 2>&1; then - runtime_ready=1 - break - fi - sleep 1 -done -(( runtime_ready == 1 )) || { print -u2 "TFTMAC launcher did not establish its emulator/logger/ADB runtime. Last audit: $runtime_audit"; exit 1; } - -print "Built: $APP" -print "Installed: $INSTALLED_APP" -print "Launched: $INSTALLED_APP" +# Compatibility entrypoint only. The old glob-compiled service-context app +# caused the ADB authorization regression and is not a build authority. +print -u2 "build-tftmac-app.command now delegates to the native Xcode build." +exec /bin/zsh "${ROOT}/scripts/build-native-app.command" "$@" diff --git a/scripts/test-native-app.command b/scripts/test-native-app.command index 0682359..685b568 100644 --- a/scripts/test-native-app.command +++ b/scripts/test-native-app.command @@ -19,4 +19,10 @@ DERIVED="${ROOT}/.build/native-tests" -destination 'platform=macOS,arch=arm64' \ -derivedDataPath "${DERIVED}" \ CODE_SIGNING_ALLOWED=NO \ - test + build-for-testing + +readonly TEST_BUNDLE="${DERIVED}/Build/Products/Debug/TFTMACTests.xctest" +readonly XCTEST="${DEVELOPER_DIR}/usr/bin/xctest" +[[ -x "${XCTEST}" ]] || { echo "XCTest runner is unavailable: ${XCTEST}" >&2; exit 1; } +[[ -x "${TEST_BUNDLE}/Contents/MacOS/TFTMACTests" ]] || { echo "Test bundle is incomplete: ${TEST_BUNDLE}" >&2; exit 1; } +"${XCTEST}" "${TEST_BUNDLE}" diff --git a/scripts/verify-tftmac.command b/scripts/verify-tftmac.command index 391d620..c137bdf 100644 --- a/scripts/verify-tftmac.command +++ b/scripts/verify-tftmac.command @@ -33,8 +33,11 @@ for required in \ Generated/EmulatorController/emulator_controller.pb.swift \ Generated/EmulatorController/emulator_controller.grpc.swift \ scripts/generate-emulator-proto.command \ + scripts/build-tftmac-app.command \ scripts/build-native-app.command \ - scripts/test-native-app.command; do + scripts/test-native-app.command \ + ssot/STACK.lock.yaml \ + ssot/runtime-authority.json; do [[ -f "$required" ]] || fail "required file is missing: $required" done @@ -43,6 +46,42 @@ plutil -lint "$INFO" >/dev/null || fail "Info.plist is invalid" [[ "$(plutil -extract CFBundleExecutable raw "$INFO")" == "TFTMAC" ]] || fail "unexpected app executable" [[ "$(plutil -extract CFBundleIdentifier raw "$INFO")" == "com.flashls1.tftmac" ]] || fail "unexpected bundle identifier" +# There is one executable build authority. The compatibility entrypoint may +# delegate to it, but it may never rebuild or install the retired Node shell. +rg -q -F 'scripts/build-native-app.command' scripts/build-tftmac-app.command \ + || fail "compatibility build entrypoint does not delegate to the native build" +if rg -n 'tftmac/Sources|tftmac-direct-control|5040|5592|swiftc' scripts/build-tftmac-app.command; then + fail "compatibility build entrypoint still contains a retired build/runtime path" +fi +if rg -n 'TFTMACRuntimeBridge|TFTMACViews|TFTMACWindowCoordinator' TFTMAC.xcodeproj/project.pbxproj; then + fail "native Xcode target references the retired Node shell" +fi + +jq -e ' + .schema == 2 and .result == "PASS" and + .emulator.avd == "TFT_Ultra_Tablet" and + .emulator.adbSerial == "emulator-5582" and + .emulator.adbServerPort == 5038 and + .emulator.consolePort == 5582 and + .emulator.adbVendorKeysInjected == false and + .runtimeProfile.vcpu == 6 and + .runtimeProfile.ramMiB == 5120 and + .runtimeProfile.display == "1920x1080" +' ssot/runtime-authority.json >/dev/null || fail "native runtime authority drifted" + +for locked in \ + 'mode: "released_native_runtime"' \ + 'avd_name: "TFT_Ultra_Tablet"' \ + 'emulator_console_port: 5582' \ + 'adb_serial: "emulator-5582"' \ + 'adb_server_port: 5038' \ + 'ram_mb: 5120' \ + 'selected: A' \ + 'mac_icon_embedded: true' \ + 'unit_tests_passed: 14'; do + rg -q -F -- "$locked" ssot/STACK.lock.yaml || fail "active stack lock drifted: $locked" +done + readonly PROTO_SHA="$(shasum -a 256 "$PROTO" | awk '{print $1}')" readonly RECORDED_PROTO_SHA="$(jq -r '.vendoredProtoSHA256' "$PROTO_SOURCE")" readonly RECORDED_INSTALLED_SHA="$(jq -r '.installedProtoSHA256' "$PROTO_SOURCE")" @@ -91,6 +130,8 @@ git diff --check if [[ "${TFTMAC_SKIP_NATIVE_BUILD:-0}" != "1" ]]; then /bin/zsh scripts/build-native-app.command + [[ -s dist/TFTMAC.app/Contents/Resources/TFTMAC.icns ]] || fail "native app icon is missing" + [[ -s dist/TFTMAC.app/Contents/Resources/TFTMAC-1024.png ]] || fail "native app icon source is missing" /bin/zsh scripts/test-native-app.command fi diff --git a/ssot/STACK.lock.yaml b/ssot/STACK.lock.yaml index 09036e7..e730fe7 100644 --- a/ssot/STACK.lock.yaml +++ b/ssot/STACK.lock.yaml @@ -1,17 +1,19 @@ -schema: 2 -frozen_at: "2026-08-28T08:46:32.848Z" +schema: 3 +frozen_at: "2026-08-30T09:30:17Z" phase0_status: PASS authority: - ssot_version: "2.0" + mode: "released_native_runtime" + runtime_authority: "ssot/runtime-authority.json" + ssot_version: "3.0" implementation_plan_version: "2.0" ssot_sha256: "4c905ad35a676aa8f4ad0a22416e73d640120851ce9f41e742349ac61ceab1ea" implementation_plan_sha256: "81bd386c1d9d47f26659c93af914ec9a92568ee689e7bed47eb0f2afd6dd5f1a" zengate_version: "2.3" zengate_score: 93 zengate_result: "PASS" - aemu_branch: "emu-master-dev" - production_guest: "official Android 17 Google Play ARM64" + source_build_inputs_status: "historical_reference_only" + production_guest: "official Android 16 Google Play ARM64" shipping_render_target: "1920x1080@60" host: @@ -23,6 +25,17 @@ host: macos_sdk_path: "/Applications/Xcode-26.6.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk" hardware_model: "Mac16,10" +release: + version: "2.0.0" + build: "2" + installed_path: "/Applications/TFTMAC.app" + executable_sha256: "4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49" + signing: "ad_hoc_local_valid" + notarized_for_public_distribution: false + mac_icon_embedded: true + native_verifier: PASS + unit_tests_passed: 14 + android_command_line_tools: archive: "commandlinetools-mac_arm64-15859902_latest.zip" sha256: "835b62a26162b229b441d1f6d4680383815a270809eb33522c0d480fa5002c4e" @@ -30,19 +43,20 @@ android_command_line_tools: installed_revision: "22.0" android: - api: 37 + api: 36 play_image_package: "system-images;android-36;google_apis_playstore;arm64-v8a" play_image_revision: 7 - avd_name: "TFTMAC_Live_API37" - emulator_console_port: 5592 - adb_serial: "emulator-5592" - adb_server_port: 5040 + avd_name: "TFT_Ultra_Tablet" + emulator_console_port: 5582 + adb_serial: "emulator-5582" + adb_server_port: 5038 platform_tools_revision: "37.0.1" emulator_revision: "37.1.11" platform_revision: "1" build_tools_revision: "37.0.0" aemu: + status: "historical_reference_only_not_required_by_live_runtime" authority_branch: "emu-master-dev" resolved_manifest_sha256: "28865cd8a162178ba462b296f5714b6b7b6916e0cafcddfc0c5e44aa03f8e8d3" qemu_commit: "ae9d18d2b6261179fbd57fffec720a04f7bfb053" @@ -53,17 +67,20 @@ aemu: guestangle_authority: "PASS" vulkan_sdk: + status: "historical_reference_only_not_required_by_live_runtime" version: "1.4.357.0" sha256: "539433589c83522e6f31b1c7b418a4167e21597a4a361ab119e1dc0760cf3865" vulkaninfo_version: "vulkaninfo - Summarize Vulkan information in relation to the current environment.\n\nUSAGE: \n vulkaninfo --summary\n vulkaninfo -o | --output \n vulkaninfo -j | -j= | --json | --json=\n vulkaninfo --text\n vulkaninfo --html\n vulkaninfo --show-all\n vulkaninfo --show-formats\n vulkaninfo --show-tool-props\n vulkaninfo --show-promoted-structs\n vulkaninfo --show-video-props\n\nOPTIONS:\n[-h, --help] Print this help.\n[--summary] Show a summary of the instance and GPU's on a system.\n[-o , --output ]\n Print output to a new file whose name is specified by filename.\n File will be written to the current working directory.\n[--text] Produce a text version of vulkaninfo output to stdout. This is\n the default output.\n[--html] Produce an html version of vulkaninfo output, saved as\n \"vulkaninfo.html\" in the directory in which the command\n is run.\n[-j, --json] Produce a json version of vulkaninfo output conforming to the Vulkan\n Profiles schema, saved as \n \"VP_VULKANINFO_[DEVICE_NAME]_[DRIVER_VERSION].json\"\n of the first gpu in the system.\n[-j=, --json=]\n For a multi-gpu system, a single gpu can be targeted by\n specifying the gpu-number associated with the gpu of \n interest. This number can be determined by running\n vulkaninfo without any options specified.\n[--show-all] Show everything (includes all the below options)\n[--show-tool-props] Show the active VkPhysicalDeviceToolPropertiesEXT that vulkaninfo finds.\n[--show-formats] Display the format properties of each physical device.\n Note: This only affects text output.\n[--show-promoted-structs] Include structs promoted to core in pNext Chains.\n[--show-video-props]\n Display the video profile info, video capabilities and\n video format properties of each video profile supported\n by each physical device.\n Note: This only affects text output which by default\n only contains the list of supported video profile names." moltenvk: + status: "emulator_bundled_runtime_active_reference_source_historical" reference_tag: "v1.4.2" reference_commit: "db66022459ffb663aa2b50f6b018bc2e124f5edf" selected_commit: null patch_series_sha256: null generality: + status: "historical_reference_only_not_release_acceptance" gles_cts_tag: "opengl-es-cts-3.2.14.1" gles_cts_commit: "067e8832315e79817ede1c4863804e440f5d1c80" vulkan_cts_tag: "vulkan-cts-1.4.6.1" @@ -74,13 +91,14 @@ generality: resource_profiles: A: vcpu: 6 - ram_mb: 6144 + ram_mb: 5120 B: vcpu: 8 - ram_mb: 8192 - selected: null + ram_mb: 6144 + selected: A phase0_evidence: + status: "historical_source_research_only" authority_hashes: "ssot/AUTHORITY_INPUTS.sha256" policy: "ssot/phase0-policy.json" remediation_inventory: "ssot/phase0-remediation-inventory.md" diff --git a/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md b/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md index 8d878ec..7b2f5f9 100644 --- a/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md +++ b/ssot/TFTMAC_DIRECT_PLAY_CONTROL_BUILD.md @@ -1,11 +1,13 @@ # TFTMAC Direct-Play Control Build -**Status:** Execution authority for the fast control build +**Status:** SUPERSEDED HISTORICAL CONTROL-BUILD RECEIPT **Date:** 2026-08-28 **Project:** `TFTMAC` **Repository:** `flashls1/TFTMAC` **Purpose:** Build the smallest trustworthy TFT-on-Mac control product, launch the current official TFT client through Google Play/Riot authority, and capture enough synchronized telemetry to make subsequent performance work causal rather than speculative. +> This dated direct-play/Node control plan is preserved as evidence. It is not current launch authority. Current native authority is `ssot/runtime-authority.json` and `TFTMAC_GPU_RUNTIME_SSOT.md`; in particular, do not reuse this receipt's `5040/5592` service-context identity or 6144-MiB control value. + --- # 0. Fresh-chat execution directive diff --git a/ssot/TFTMAC_ENGINEERING_MAP.sql b/ssot/TFTMAC_ENGINEERING_MAP.sql index 970c9f1..0e22e63 100644 --- a/ssot/TFTMAC_ENGINEERING_MAP.sql +++ b/ssot/TFTMAC_ENGINEERING_MAP.sql @@ -1379,3 +1379,24 @@ COMMIT; -- 3. Resolve or create the corresponding unknown. -- 4. Re-query v_architecture_options and v_open_questions. -- 5. Only then choose the next mutation. + +-- --------------------------------------------------------------------------- +-- 2026-08-30 native full-screen runtime authority +-- --------------------------------------------------------------------------- +UPDATE runtime_variants +SET current_relevance='Historical first-win control receipt; superseded as current launcher identity by rv_current_native_5gb.' +WHERE id='rv_current_first_win'; + +INSERT OR REPLACE INTO runtime_variants(id,entrypoint,classification,runtime_family,graphics_path,display_profile,resource_profile,exact_result,promotion_state,source_document_id,current_relevance,notes) VALUES +('rv_current_native_5gb','TFTMAC.app','RECOMMENDED','Released Emulator37.1.11 / Android16 API36 Play through packaged macOS app host','TFT Unreal -> ANGLE -> Vulkan/ranchu -> virtio-gpu-asg/gfxstream -> host Vulkan -> MoltenVK -> Metal -> raw gRPC RGBA -> AppKit Metal','1920x1080 / 320 DPI / 60Hz target / native full screen','6 vCPU / 5120 MB','Authenticated controller, ADB5038/emulator-5582 device, official TFT18.1 SplashActivity -> Unreal GameActivity, correctly oriented native frames and input all passed in one live session.','PROMOTED',NULL,'Current native product/runtime authority','Source/presentation FPS are transport metrics, not Unreal FPS. CoreAudio software path passed; user audible confirmation and a full native match remain acceptance gaps.'); + +INSERT OR REPLACE INTO evidence(id,observed_at,kind,source_path,source_sha256,statement,confidence,notes) VALUES +('ev_native_fullscreen_20260830','2026-08-30T08:41:35Z','native_runtime_acceptance','~/Library/Application Support/TFTMAC/Captures/2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94/TFTMAC_NATIVE_RUNTIME.sqlite',NULL,'Native AppKit TFTMAC authenticated Emulator37.1.11, reached ADB5038/emulator-5582 device, rendered exact 1920x1080 raw RGBA through Metal, accepted mouse input, and launched official TFT18.1 into com.epicgames.unreal.GameActivity.','DIRECT','Live lobby acceptance. Does not claim a completed native match, user-audible sound, or causal graphics-boundary attribution.'); + +INSERT OR REPLACE INTO map_meta(key,value) VALUES +('current_native_runtime','TFTMAC.app; packaged TFTMAC Emulator Host.app via /usr/bin/open -n -W; ADB5038; emulator-5582; no injected ADB_VENDOR_KEYS; 6 vCPU; 5120 MiB; 1920x1080/320dpi/60Hz; CoreAudio; authenticated gRPC raw RGBA -> AppKit Metal full screen.'), +('current_native_telemetry','Private local SQL plus JSONL/raw sidecars: configuration receipts, events, one-second native-frame interval windows, output presentation, qemu CPU/RSS, guest memory, clock sync, SurfaceFlinger deltas, AudioFlinger health, logcat fault counts, game-process sessions, input counts and manual match/combat/stutter/end markers.'), +('current_native_metric_boundary','gRPC source-window and Metal output rates are transport/presentation observations, not Unreal engine FPS. Use bounded SurfaceFlinger/Perfetto evidence for guest/pipeline attribution.'); + +INSERT INTO update_log(observed_at,subject,change_summary,evidence_id) VALUES +('2026-08-30T08:41:35Z','Native runtime promotion','Promoted the logged-in-session packaged-host 5038/5582/5120-MiB AppKit/Metal path after live TFT GameActivity acceptance; preserved 5040/5592/6144 evidence as historical only.','ev_native_fullscreen_20260830'); diff --git a/ssot/TFTMAC_NATIVE_APP_PREFLIGHT.md b/ssot/TFTMAC_NATIVE_APP_PREFLIGHT.md index 215453c..e95df59 100644 --- a/ssot/TFTMAC_NATIVE_APP_PREFLIGHT.md +++ b/ssot/TFTMAC_NATIVE_APP_PREFLIGHT.md @@ -76,8 +76,8 @@ Runtime root: /Volumes/MAC MINI M4/TFTMAC/Runtime Android Emulator: 37.1.11.0 / build 15917651 ADB: 1.0.41 AVD: TFT_Ultra_Tablet -Console port: 5592 -ADB server: isolated port 5040 +Console port: 5582 +ADB server: donor port 5038 Google Play ARM64 API36 image ``` diff --git a/ssot/TFTMAC_PERFORMANCE_LAB.sql b/ssot/TFTMAC_PERFORMANCE_LAB.sql index 94d7a2c..6804d3a 100644 --- a/ssot/TFTMAC_PERFORMANCE_LAB.sql +++ b/ssot/TFTMAC_PERFORMANCE_LAB.sql @@ -664,3 +664,36 @@ COMMIT; -- SELECT * FROM v_open_hypotheses; -- SELECT * FROM v_experiment_scorecard; -- SELECT * FROM v_promoted_facts; + +-- --------------------------------------------------------------------------- +-- 2026-08-30 native AppKit/Metal runtime authority +-- Historical 5040/5592/6144 rows above remain immutable experiment receipts. +-- --------------------------------------------------------------------------- +INSERT OR REPLACE INTO runtime_configs ( + id,parent_config_id,name,emulator_version,platform_tools_version,system_image_package,system_image_revision, + avd_name,adb_serial,adb_server_port,emulator_console_port,vcpu,ram_mb, + display_width,display_height,density_dpi,refresh_hz,gpu_mode,audio_enabled, + graphics_transport,angle_mode,vulkan_mode,moltenvk_mode,presentation_mode,state,created_at,notes +) VALUES +('tftmac_5gb_native_v1','tftmac_5gb_baseline_v1','TFTMAC native full-screen 5 GiB baseline','37.1.11','37.0.1','system-images;android-36;google_apis_playstore;arm64-v8a',7,'TFT_Ultra_Tablet','emulator-5582',5038,5582,6,5120,1920,1080,320,60.0,'host',1,'virtio-gpu-asg','GuestAngle + explicit exposeNonConformantExtensionsAndVersions/exposeES32ForTesting compatibility adapter','ranchu guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','authenticated raw gRPC -> AppKit Metal full screen','CONTROL','2026-08-30T08:40:36Z','Donor-compatible logged-in-session launcher: /usr/bin/open -n -W through packaged TFTMAC Emulator Host.app; ADB_VENDOR_KEYS absent. Native lobby acceptance passed; source/presentation counters are transport metrics, not Unreal engine FPS.'); + +INSERT OR REPLACE INTO sessions( + id,runtime_config_id,started_utc,ended_utc,host_start_mono_ns,host_end_mono_ns, + boot_class,workload_class,package_name,package_version_name,package_version_code, + package_state_sha256,renderer_state_sha256,session_manifest_sha256, + package_updated_during_session,capture_state,semantic_valid,invalid_reason,notes +) VALUES +('2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94','tftmac_5gb_native_v1','2026-08-30T08:40:36Z',NULL,NULL,NULL,'COLD','LOBBY','com.riotgames.league.teamfighttactics','18.1-5402721','8402721',NULL,NULL,NULL,0,'PARTIAL',1,NULL,'Native full-screen lobby acceptance; capture was still open when this SSOT receipt was written.'); + +INSERT OR REPLACE INTO lab_meta(key,value) VALUES +('current_playable_baseline','tftmac_5gb_native_v1'), +('current_native_runtime_config','tftmac_5gb_native_v1'), +('current_native_acceptance_session','2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94'), +('current_runtime_identity','ADB 5038; console 5582; serial emulator-5582; packaged app host via /usr/bin/open; no injected ADB_VENDOR_KEYS'), +('current_native_frame_truth','Raw gRPC source-window rate and Metal presentation rate are transport/output metrics only. Do not label either as Unreal engine FPS.'), +('current_native_logger','Private local capture: SQL receipts/events, one-second frame interval windows, presentation, qemu CPU/RSS, guest memory, clock sync, SurfaceFlinger deltas, AudioFlinger health, aggregate logcat signals, game PID sessions, input counts and explicit match/stutter markers.'), +('current_surfaceflinger_counter_policy','Sample the live dumpsys SurfaceFlinger counters every 30 seconds during gameplay and at session boundaries. Compare deltas inside marked windows; absolute counters remain cumulative since boot.'), +('current_optimization_priority','Hold 1920x1080/320 dpi, 5038/5582, 5120 MiB, 6 vCPU, CoreAudio, host GPU and the renderer chain. Run one restart-bound variable A/B at a time and require cold confirmation before promotion.'); + +INSERT OR REPLACE INTO evidence(id,hypothesis_id,session_id,experiment_id,evidence_type,claim,relation,strength,source_artifact_id,created_at,notes) VALUES +('ev_native_fullscreen_acceptance_20260830',NULL,'2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94',NULL,'DIRECT_MEASUREMENT','Native TFTMAC filled the 1920x1080 display in an AppKit full-screen window, authenticated Emulator37.1.11 gRPC, authorized emulator-5582 on ADB5038, rendered 1920x1080 RGBA through Metal at about 60 output presentations/s, and launched official TFT18.1 into Unreal GameActivity.','NEUTRAL','DECISIVE',NULL,'2026-08-30T08:41:35Z','Capture 2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94. Lobby/input/software-audio path proven; full-match and user-audible acceptance remain separate.'); diff --git a/ssot/history/runtime-authority-gate4-2026-08-30.json b/ssot/history/runtime-authority-gate4-2026-08-30.json new file mode 100644 index 0000000..235d59a --- /dev/null +++ b/ssot/history/runtime-authority-gate4-2026-08-30.json @@ -0,0 +1,49 @@ +{ + "schema": 1, + "observedAt": "2026-08-30T03:59:46Z", + "gate": "Gate 4 stock-runtime independence", + "result": "PASS", + "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", + "sdkRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk", + "emulator": { + "version": "Android emulator version 37.1.11.0", + "buildId": "15917651", + "avd": "TFT_Ultra_Tablet", + "adbSerial": "emulator-5592", + "adbServerPort": 5040, + "consolePort": 5592 + }, + "package": { + "name": "com.riotgames.league.teamfighttactics", + "versionName": "18.1-5402721", + "versionCode": "8402721", + "installer": "com.android.vending" + }, + "emulatorController": { + "installedPath": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto", + "vendoredPath": "Vendor/AndroidEmulator/emulator_controller.proto", + "sha256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", + "byteEquality": true + }, + "buildTreeRequiredByLiveRuntime": false, + "retiredApplicationRequired": false, + "processAudit": { + "operation": "tftmac-gate4-process-audit-20260829", + "duplicateRisk": { + "tftmacApps": 1, + "emulators": 1, + "samplers": 1, + "adbServers": 1 + }, + "buildTreeProcessReferences": 0 + }, + "evidenceOperations": [ + "tftmac-gate4-runtime-inventory-20260829", + "tftmac-gate4-start-baseline-20260829", + "tftmac-gate4-package-state-20260829", + "tftmac-gate4-proto-equality-20260829", + "tftmac-gate4-process-audit-20260829", + "tftmac-gate4-clean-stop-20260829" + ], + "historicalNotice": "Exact archived receipt. Its 5040/5592 service-context identity is superseded and must not be used as current launch authority." +} diff --git a/ssot/runtime-authority.json b/ssot/runtime-authority.json index 33e9401..bcc8b69 100644 --- a/ssot/runtime-authority.json +++ b/ssot/runtime-authority.json @@ -1,17 +1,32 @@ { - "schema": 1, - "observedAt": "2026-08-30T03:59:46Z", - "gate": "Gate 4 stock-runtime independence", + "schema": 2, + "observedAt": "2026-08-30T09:30:17Z", + "gate": "Native full-screen playable runtime acceptance", "result": "PASS", "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", - "sdkRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk", + "sdkRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime/SDK", "emulator": { "version": "Android emulator version 37.1.11.0", "buildId": "15917651", "avd": "TFT_Ultra_Tablet", - "adbSerial": "emulator-5592", - "adbServerPort": 5040, - "consolePort": 5592 + "adbSerial": "emulator-5582", + "adbServerPort": 5038, + "consolePort": 5582, + "launcher": "/usr/bin/open -n -W --env ... --args ...", + "launcherHost": "TFTMAC Emulator Host.app", + "adbVendorKeysInjected": false + }, + "runtimeProfile": { + "id": "tftmac_5gb_native_v1", + "vcpu": 6, + "ramMiB": 5120, + "display": "1920x1080", + "densityDpi": 320, + "refreshHz": 60, + "gpu": "host", + "audio": "coreaudio", + "graphicsTransport": "virtio-gpu-asg", + "asgDrawFlushInterval": 800 }, "package": { "name": "com.riotgames.league.teamfighttactics", @@ -20,29 +35,47 @@ "installer": "com.android.vending" }, "emulatorController": { - "installedPath": "/Volumes/MAC MINI M4/TFTMAC/Runtime/sdk/emulator/lib/emulator_controller.proto", + "installedPath": "/Volumes/MAC MINI M4/TFTMAC/Runtime/SDK/emulator/lib/emulator_controller.proto", "vendoredPath": "Vendor/AndroidEmulator/emulator_controller.proto", "sha256": "1d62c6bcad5f06621f90ec2bf26c661ba769ccd0f1416b5314d25a68e04eee5f", "byteEquality": true }, "buildTreeRequiredByLiveRuntime": false, "retiredApplicationRequired": false, - "processAudit": { - "operation": "tftmac-gate4-process-audit-20260829", - "duplicateRisk": { - "tftmacApps": 1, - "emulators": 1, - "samplers": 1, - "adbServers": 1 - }, - "buildTreeProcessReferences": 0 + "nativeAcceptance": { + "captureSession": "2026-08-30T08-40-36.792Z-5637b7cf-0c8b-435e-adbb-8f4c0e18de94", + "controllerAuthenticated": true, + "frameTransport": "raw_grpc_rgba8888", + "frameSize": "1920x1080", + "metalPresentationHzObserved": 60.5, + "sourceStreamHzObserved": 61.1, + "windowNativeFullscreen": true, + "tftActivity": "com.epicgames.unreal.GameActivity", + "audioSoftwarePathVerified": true, + "userAudibleConfirmation": false + }, + "finalInstalledRelease": { + "path": "/Applications/TFTMAC.app", + "version": "2.0.0", + "build": "2", + "executableSHA256": "4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49", + "deepCodeSignatureValid": true, + "macIconEmbedded": true, + "nativeVerifier": "PASS", + "unitTestsPassed": 14, + "liveMatchAndCleanShutdownCapture": "2026-08-30T09-25-17.519Z-1a9d0227-3cf8-4a19-b353-c0f135ccf31c", + "installedReleaseLaunchCapture": "2026-08-30T09-30-17.189Z-68f1bb24-f660-4245-9750-823b7da703a4", + "confirmedMemoryKills": 0, + "secureAndroidUnlock": "MANUAL_ONLY" }, "evidenceOperations": [ - "tftmac-gate4-runtime-inventory-20260829", - "tftmac-gate4-start-baseline-20260829", - "tftmac-gate4-package-state-20260829", - "tftmac-gate4-proto-equality-20260829", - "tftmac-gate4-process-audit-20260829", - "tftmac-gate4-clean-stop-20260829" - ] + "native-events:CONTROLLER_AUTHENTICATED", + "native-events:ADB_DEVICE_AUTHORIZED", + "native-events:FIRST_NATIVE_FRAME", + "native-events:OFFICIAL_TFT_PACKAGE_RECEIPT", + "native-events:TFT_LAUNCH_REQUESTED", + "native-events:TFT_PROCESS_STARTED", + "appkit-accessibility:AXFullScreen=true" + ], + "supersedes": "ssot/history/runtime-authority-gate4-2026-08-30.json" } diff --git a/tftmac/App/AppCoordinator.swift b/tftmac/App/AppCoordinator.swift index 46d5913..eb79d69 100644 --- a/tftmac/App/AppCoordinator.swift +++ b/tftmac/App/AppCoordinator.swift @@ -2,16 +2,78 @@ import AppKit @MainActor final class AppCoordinator: NSObject, NSApplicationDelegate { + private let mailbox = LatestFrameMailbox() private var mainWindowController: MainWindowController? + private var runtimeController: TFTMACRuntimeController? + private var settingsWindowController: RuntimeSettingsWindowController? + private var terminationInProgress = false func applicationDidFinishLaunching(_ notification: Notification) { - let controller = MainWindowController() + let controller = MainWindowController(mailbox: mailbox) mainWindowController = controller + let activeProfile = TFTMACRuntimeProfile.load() + let runtime = TFTMACRuntimeController(profile: activeProfile, mailbox: mailbox) { [weak controller] text, isError in + controller?.emulatorView.setStatus(text, isError: isError) + } + runtimeController = runtime + controller.emulatorView.onMouseInput = { [weak runtime] x, y, buttons in + runtime?.sendMouse(x: x, y: y, buttons: buttons) + } + controller.emulatorView.onKeyboardInput = { [weak runtime] text, key in + runtime?.sendKeyboard(text: text, key: key) + } + controller.emulatorView.onPresentationSample = { [weak runtime] sample in + runtime?.recordPresentation(sample) + } controller.showWindow(nil) + controller.window?.makeFirstResponder(controller.emulatorView) NSApp.activate(ignoringOtherApps: true) + runtime.start() + DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) { [weak controller] in + controller?.enterNativeFullscreen() + } + } + + @objc func showSettings(_ sender: Any?) { + let settings = settingsWindowController ?? RuntimeSettingsWindowController(profile: TFTMACRuntimeProfile.load()) + settings.onSave = { [weak self] previous, next in + self?.runtimeController?.recordSettingsChange(previous: previous, next: next) + } + settingsWindowController = settings + settings.refreshFromSavedProfile() + settings.showWindow(sender) + settings.window?.makeKeyAndOrderFront(sender) + NSApp.activate(ignoringOtherApps: true) + } + + @objc func markMatchEntry(_ sender: Any?) { recordMarker("MATCH_ENTRY") } + @objc func markCombatStart(_ sender: Any?) { recordMarker("COMBAT_START") } + @objc func markVisibleStutter(_ sender: Any?) { recordMarker("VISIBLE_STUTTER") } + @objc func markMatchEnd(_ sender: Any?) { recordMarker("MATCH_END") } + + @objc func revealCaptureFolder(_ sender: Any?) { + let captures = FileManager.default.homeDirectoryForCurrentUser + .appendingPathComponent("Library/Application Support/TFTMAC/Captures", isDirectory: true) + try? FileManager.default.createDirectory(at: captures, withIntermediateDirectories: true) + NSWorkspace.shared.open(captures) + } + + private func recordMarker(_ marker: String) { + runtimeController?.recordMarker(marker) } func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { true } + + func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { + if terminationInProgress { return .terminateLater } + guard let runtimeController else { return .terminateNow } + terminationInProgress = true + Task { @MainActor in + await runtimeController.stop() + sender.reply(toApplicationShouldTerminate: true) + } + return .terminateLater + } } diff --git a/tftmac/App/MainWindowController.swift b/tftmac/App/MainWindowController.swift index ebd8b19..15ae39b 100644 --- a/tftmac/App/MainWindowController.swift +++ b/tftmac/App/MainWindowController.swift @@ -2,10 +2,15 @@ import AppKit @MainActor final class MainWindowController: NSWindowController { - init() { - let contentView = EmbeddedEmulatorView(frame: NSRect(x: 0, y: 0, width: 1280, height: 720)) + let emulatorView: EmbeddedEmulatorView + + init(mailbox: LatestFrameMailbox) { + emulatorView = EmbeddedEmulatorView( + frame: NSRect(x: 0, y: 0, width: 1920, height: 1080), + mailbox: mailbox + ) let window = NSWindow( - contentRect: NSRect(x: 0, y: 0, width: 1280, height: 720), + contentRect: NSRect(x: 0, y: 0, width: 1920, height: 1080), styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], backing: .buffered, defer: false @@ -15,7 +20,7 @@ final class MainWindowController: NSWindowController { window.collectionBehavior.insert(.fullScreenPrimary) window.minSize = NSSize(width: 960, height: 540) window.center() - window.contentView = contentView + window.contentView = emulatorView super.init(window: window) shouldCascadeWindows = false } @@ -23,4 +28,9 @@ final class MainWindowController: NSWindowController { required init?(coder: NSCoder) { nil } + + func enterNativeFullscreen() { + guard let window, !window.styleMask.contains(.fullScreen) else { return } + window.toggleFullScreen(nil) + } } diff --git a/tftmac/App/RuntimeSettingsWindowController.swift b/tftmac/App/RuntimeSettingsWindowController.swift new file mode 100644 index 0000000..9166802 --- /dev/null +++ b/tftmac/App/RuntimeSettingsWindowController.swift @@ -0,0 +1,154 @@ +import AppKit + +@MainActor +final class RuntimeSettingsWindowController: NSWindowController { + private let vCPUButton = NSPopUpButton() + private let ramButton = NSPopUpButton() + private let refreshButton = NSPopUpButton() + private let flushButton = NSPopUpButton() + private let resultLabel = NSTextField(labelWithString: "") + private var originalProfile: TFTMACRuntimeProfile + var onSave: ((TFTMACRuntimeProfile, TFTMACRuntimeProfile) -> Void)? + + init(profile: TFTMACRuntimeProfile) { + originalProfile = profile + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 600, height: 470), + styleMask: [.titled, .closable], + backing: .buffered, + defer: false + ) + window.title = "TFTMAC Performance Lab" + window.isReleasedWhenClosed = false + window.center() + super.init(window: window) + configureContent(profile: profile) + } + + required init?(coder: NSCoder) { nil } + + func refreshFromSavedProfile() { + originalProfile = TFTMACRuntimeProfile.load() + select(originalProfile.vCPU, in: vCPUButton) + select(originalProfile.ramMiB, in: ramButton) + select(originalProfile.refreshHz, in: refreshButton) + select(originalProfile.asgDrawFlushInterval, in: flushButton) + resultLabel.stringValue = "Changes are validated, logged, and applied on the next app launch." + } + + private func configureContent(profile: TFTMACRuntimeProfile) { + guard let window else { return } + let effect = NSVisualEffectView() + effect.material = .windowBackground + effect.blendingMode = .behindWindow + effect.state = .active + effect.translatesAutoresizingMaskIntoConstraints = false + window.contentView = effect + + let title = NSTextField(labelWithString: "Performance Lab") + title.font = .systemFont(ofSize: 24, weight: .semibold) + let subtitle = NSTextField(wrappingLabelWithString: "The proven 1920 × 1080, 320-dpi, host-GPU, CoreAudio and ANGLE/Vulkan/MoltenVK pipeline stays fixed. These bounded variables apply after restart so every run remains attributable and recoverable.") + subtitle.textColor = .secondaryLabelColor + subtitle.maximumNumberOfLines = 3 + + vCPUButton.addItems(withTitles: TFTMACRuntimeProfile.supportedVCPU.map(String.init)) + ramButton.addItems(withTitles: TFTMACRuntimeProfile.supportedRAMMiB.map { "\($0) MiB" }) + refreshButton.addItems(withTitles: TFTMACRuntimeProfile.supportedRefreshHz.map { "\($0) Hz" }) + flushButton.addItems(withTitles: TFTMACRuntimeProfile.supportedASGDrawFlushIntervals.map { "\($0) µs" }) + select(profile.vCPU, in: vCPUButton) + select(profile.ramMiB, in: ramButton) + select(profile.refreshHz, in: refreshButton) + select(profile.asgDrawFlushInterval, in: flushButton) + + let grid = NSGridView(views: [ + [fieldLabel("Virtual CPUs"), vCPUButton], + [fieldLabel("Android RAM"), ramButton], + [fieldLabel("Guest refresh target"), refreshButton], + [fieldLabel("ASG draw flush interval"), flushButton], + [fieldLabel("Play surface"), fixedValue("1920 × 1080 @ 320 dpi")], + [fieldLabel("Graphics / audio"), fixedValue("Host GPU · CoreAudio")] + ]) + grid.rowSpacing = 13 + grid.columnSpacing = 24 + grid.column(at: 0).xPlacement = .trailing + grid.column(at: 1).xPlacement = .fill + grid.translatesAutoresizingMaskIntoConstraints = false + + resultLabel.stringValue = "Changes are validated, logged, and applied on the next app launch." + resultLabel.textColor = .secondaryLabelColor + resultLabel.font = .systemFont(ofSize: 12) + + let baseline = NSButton(title: "Restore Proven Baseline", target: self, action: #selector(restoreBaseline(_:))) + let save = NSButton(title: "Save for Next Launch", target: self, action: #selector(saveSettings(_:))) + save.keyEquivalent = "\r" + save.bezelStyle = .rounded + let buttons = NSStackView(views: [baseline, NSView(), save]) + buttons.orientation = .horizontal + buttons.spacing = 10 + buttons.distribution = .fill + + let stack = NSStackView(views: [title, subtitle, grid, resultLabel, buttons]) + stack.orientation = .vertical + stack.alignment = .leading + stack.spacing = 18 + stack.translatesAutoresizingMaskIntoConstraints = false + effect.addSubview(stack) + + NSLayoutConstraint.activate([ + stack.leadingAnchor.constraint(equalTo: effect.leadingAnchor, constant: 30), + stack.trailingAnchor.constraint(equalTo: effect.trailingAnchor, constant: -30), + stack.topAnchor.constraint(equalTo: effect.topAnchor, constant: 28), + stack.bottomAnchor.constraint(lessThanOrEqualTo: effect.bottomAnchor, constant: -24), + grid.widthAnchor.constraint(equalTo: stack.widthAnchor), + buttons.widthAnchor.constraint(equalTo: stack.widthAnchor), + resultLabel.widthAnchor.constraint(equalTo: stack.widthAnchor) + ]) + } + + private func fieldLabel(_ text: String) -> NSTextField { + let label = NSTextField(labelWithString: text) + label.font = .systemFont(ofSize: 13, weight: .medium) + return label + } + + private func fixedValue(_ text: String) -> NSTextField { + let value = NSTextField(labelWithString: text) + value.textColor = .secondaryLabelColor + return value + } + + private func select(_ value: Int, in button: NSPopUpButton) { + let candidate = button.itemTitles.first(where: { $0.split(separator: " ").first == "\(value)" }) + if let candidate { button.selectItem(withTitle: candidate) } + } + + @objc private func restoreBaseline(_ sender: Any?) { + let baseline = TFTMACRuntimeProfile.playable + select(baseline.vCPU, in: vCPUButton) + select(baseline.ramMiB, in: ramButton) + select(baseline.refreshHz, in: refreshButton) + select(baseline.asgDrawFlushInterval, in: flushButton) + resultLabel.stringValue = "Proven 6-CPU / 5120-MiB / 60-Hz / 800-µs values selected. Save to keep them." + } + + @objc private func saveSettings(_ sender: Any?) { + guard let vCPU = selectedInteger(vCPUButton), + let ram = selectedInteger(ramButton), + let refresh = selectedInteger(refreshButton), + let flush = selectedInteger(flushButton) else { return } + let next = TFTMACRuntimeProfile.playable.with( + vCPU: vCPU, + ramMiB: ram, + refreshHz: refresh, + asgDrawFlushInterval: flush + ) + next.save() + onSave?(originalProfile, next) + originalProfile = next + resultLabel.stringValue = "Saved as \(next.identifier). Quit and relaunch TFTMAC to apply it." + } + + private func selectedInteger(_ button: NSPopUpButton) -> Int? { + button.titleOfSelectedItem?.split(separator: " ").first.flatMap { Int($0) } + } +} diff --git a/tftmac/App/TFTMACApplication.swift b/tftmac/App/TFTMACApplication.swift index 176bbb2..eab97f9 100644 --- a/tftmac/App/TFTMACApplication.swift +++ b/tftmac/App/TFTMACApplication.swift @@ -11,6 +11,75 @@ enum TFTMACApplication { Self.coordinator = coordinator application.delegate = coordinator application.setActivationPolicy(.regular) + installMainMenu(on: application, coordinator: coordinator) application.run() } + + @MainActor + private static func installMainMenu(on application: NSApplication, coordinator: AppCoordinator) { + let mainMenu = NSMenu(title: "TFTMAC") + + let appItem = NSMenuItem() + let appMenu = NSMenu(title: "TFTMAC") + appItem.submenu = appMenu + appMenu.addItem(withTitle: "About TFTMAC", action: #selector(NSApplication.orderFrontStandardAboutPanel(_:)), keyEquivalent: "") + let settings = appMenu.addItem(withTitle: "Performance Lab…", action: #selector(AppCoordinator.showSettings(_:)), keyEquivalent: ",") + settings.target = coordinator + appMenu.addItem(.separator()) + let quit = appMenu.addItem(withTitle: "Quit TFTMAC", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q") + quit.target = application + mainMenu.addItem(appItem) + + let editItem = NSMenuItem() + let editMenu = NSMenu(title: "Edit") + editItem.submenu = editMenu + editMenu.addItem(withTitle: "Paste", action: #selector(NSText.paste(_:)), keyEquivalent: "v") + mainMenu.addItem(editItem) + + let viewItem = NSMenuItem() + let viewMenu = NSMenu(title: "View") + viewItem.submenu = viewMenu + let fullscreen = viewMenu.addItem( + withTitle: "Toggle Full Screen", + action: #selector(NSWindow.toggleFullScreen(_:)), + keyEquivalent: "f" + ) + fullscreen.keyEquivalentModifierMask = [.command, .control] + mainMenu.addItem(viewItem) + + let performanceItem = NSMenuItem() + let performanceMenu = NSMenu(title: "Telemetry") + performanceItem.submenu = performanceMenu + addTelemetryItem("Mark Match Entry", action: #selector(AppCoordinator.markMatchEntry(_:)), key: "1", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("Mark Combat Start", action: #selector(AppCoordinator.markCombatStart(_:)), key: "2", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("Mark Visible Stutter", action: #selector(AppCoordinator.markVisibleStutter(_:)), key: "3", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("Mark Match End", action: #selector(AppCoordinator.markMatchEnd(_:)), key: "4", to: performanceMenu, coordinator: coordinator) + performanceMenu.addItem(.separator()) + let reveal = performanceMenu.addItem(withTitle: "Reveal Local Capture Folder", action: #selector(AppCoordinator.revealCaptureFolder(_:)), keyEquivalent: "l") + reveal.keyEquivalentModifierMask = [.command, .shift] + reveal.target = coordinator + mainMenu.addItem(performanceItem) + + let windowItem = NSMenuItem() + let windowMenu = NSMenu(title: "Window") + windowItem.submenu = windowMenu + windowMenu.addItem(withTitle: "Minimize", action: #selector(NSWindow.performMiniaturize(_:)), keyEquivalent: "m") + windowMenu.addItem(withTitle: "Close", action: #selector(NSWindow.performClose(_:)), keyEquivalent: "w") + mainMenu.addItem(windowItem) + + application.mainMenu = mainMenu + } + + @MainActor + private static func addTelemetryItem( + _ title: String, + action: Selector, + key: String, + to menu: NSMenu, + coordinator: AppCoordinator + ) { + let item = menu.addItem(withTitle: title, action: action, keyEquivalent: key) + item.keyEquivalentModifierMask = [.command, .shift] + item.target = coordinator + } } diff --git a/tftmac/Info.plist b/tftmac/Info.plist index 535bb93..9be2f1c 100644 --- a/tftmac/Info.plist +++ b/tftmac/Info.plist @@ -19,9 +19,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.1.0 + 2.0.0 CFBundleVersion - 1 + 2 LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion diff --git a/tftmac/Presentation/EmbeddedEmulatorView.swift b/tftmac/Presentation/EmbeddedEmulatorView.swift index 8f042e9..672b49b 100644 --- a/tftmac/Presentation/EmbeddedEmulatorView.swift +++ b/tftmac/Presentation/EmbeddedEmulatorView.swift @@ -1,38 +1,318 @@ import AppKit import MetalKit +private final class PresenterGPUState: @unchecked Sendable { + private let lock = NSLock() + private var inFlight = [0, 0, 0] + private var completedPresentations: UInt64 = 0 + + func availableUploadSlot(excluding current: Int?) -> Int? { + lock.lock() + defer { lock.unlock() } + return inFlight.indices.first(where: { inFlight[$0] == 0 && $0 != current }) + ?? inFlight.indices.first(where: { inFlight[$0] == 0 }) + } + + func beginPresentation(slot: Int) { + lock.lock() + inFlight[slot] += 1 + lock.unlock() + } + + func completePresentation(slot: Int) { + lock.lock() + inFlight[slot] = max(0, inFlight[slot] - 1) + completedPresentations &+= 1 + lock.unlock() + } + + func completedCount() -> UInt64 { + lock.lock() + defer { lock.unlock() } + return completedPresentations + } +} + @MainActor final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { - init(frame: NSRect) { + var onMouseInput: ((Int32, Int32, Int32) -> Void)? + var onKeyboardInput: ((String?, String?) -> Void)? + var onPresentationSample: ((PresentationSample) -> Void)? + + private let mailbox: LatestFrameMailbox + private let commandQueue: MTLCommandQueue + private let pipeline: MTLRenderPipelineState + private let gpuState = PresenterGPUState() + private var textures: [MTLTexture?] = [nil, nil, nil] + private var currentTextureSlot: Int? + private var lastPresentedSequence: UInt32? + private var lastSampleTime = CACurrentMediaTime() + private var lastSamplePresentationCount: UInt64 = 0 + private var lastSampleReceivedCount: UInt64 = 0 + private let statusLabel = NSTextField(labelWithString: "Preparing native Android runtime…") + private let fpsLabel = NSTextField(labelWithString: "0 FPS") + + init(frame: NSRect, mailbox: LatestFrameMailbox) { guard let device = MTLCreateSystemDefaultDevice() else { fatalError("TFTMAC requires Metal on Apple Silicon") } + guard let commandQueue = device.makeCommandQueue() else { + fatalError("TFTMAC could not create its persistent Metal command queue") + } + self.mailbox = mailbox + self.commandQueue = commandQueue + do { + pipeline = try Self.makePipeline(device: device) + } catch { + fatalError("TFTMAC could not create its native frame pipeline: \(error.localizedDescription)") + } super.init(frame: frame, device: device) framebufferOnly = true colorPixelFormat = .bgra8Unorm_srgb preferredFramesPerSecond = 60 enableSetNeedsDisplay = false isPaused = false - clearColor = MTLClearColorMake(0.035, 0.035, 0.045, 1.0) + clearColor = MTLClearColorMake(0.015, 0.018, 0.025, 1.0) delegate = self + configureOverlays() } required init(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } + override var acceptsFirstResponder: Bool { true } + + func setStatus(_ text: String, isError: Bool) { + guard !text.isEmpty else { + statusLabel.isHidden = true + return + } + statusLabel.stringValue = text + statusLabel.textColor = isError ? .systemRed : .white + statusLabel.isHidden = false + } + func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {} func draw(in view: MTKView) { - guard let drawable = currentDrawable, + uploadNewestFrameIfPossible() + guard let slot = currentTextureSlot, + let texture = textures[slot], + let drawable = currentDrawable, let descriptor = currentRenderPassDescriptor, - let queue = device?.makeCommandQueue(), - let buffer = queue.makeCommandBuffer(), + let buffer = commandQueue.makeCommandBuffer(), let encoder = buffer.makeRenderCommandEncoder(descriptor: descriptor) else { + updatePresentationSampleIfNeeded() return } + + let source = CGSize(width: texture.width, height: texture.height) + let target = drawableSize + let scale = min(target.width / source.width, target.height / source.height) + let renderWidth = source.width * scale + let renderHeight = source.height * scale + encoder.setViewport(MTLViewport( + originX: (target.width - renderWidth) / 2, + originY: (target.height - renderHeight) / 2, + width: renderWidth, + height: renderHeight, + znear: 0, + zfar: 1 + )) + encoder.setRenderPipelineState(pipeline) + encoder.setFragmentTexture(texture, index: 0) + encoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: 3) encoder.endEncoding() + + gpuState.beginPresentation(slot: slot) + let state = gpuState + buffer.addCompletedHandler { _ in state.completePresentation(slot: slot) } buffer.present(drawable) buffer.commit() + updatePresentationSampleIfNeeded() + } + + override func mouseDown(with event: NSEvent) { sendMouse(event, buttons: 1) } + override func mouseDragged(with event: NSEvent) { sendMouse(event, buttons: 1) } + override func mouseUp(with event: NSEvent) { sendMouse(event, buttons: 0) } + override func rightMouseDown(with event: NSEvent) { sendMouse(event, buttons: 2) } + override func rightMouseDragged(with event: NSEvent) { sendMouse(event, buttons: 2) } + override func rightMouseUp(with event: NSEvent) { sendMouse(event, buttons: 0) } + + override func keyDown(with event: NSEvent) { + if event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command) { + super.keyDown(with: event) + return + } + if let key = Self.specialKey(for: event) { + onKeyboardInput?(nil, key) + } else if let text = event.characters, !text.isEmpty { + onKeyboardInput?(text, nil) + } + } + + override func performKeyEquivalent(with event: NSEvent) -> Bool { + let modifiers = event.modifierFlags.intersection(.deviceIndependentFlagsMask) + if modifiers == .command, event.charactersIgnoringModifiers?.lowercased() == "v" { + paste(nil) + return true + } + return super.performKeyEquivalent(with: event) + } + + @objc func paste(_ sender: Any?) { + guard let text = NSPasteboard.general.string(forType: .string), !text.isEmpty else { return } + onKeyboardInput?(String(text.prefix(1024)), nil) + } + + private func uploadNewestFrameIfPossible() { + guard let frame = mailbox.takeLatest() else { return } + guard let slot = gpuState.availableUploadSlot(excluding: currentTextureSlot) else { return } + if textures[slot] == nil { + let descriptor = MTLTextureDescriptor.texture2DDescriptor( + pixelFormat: .rgba8Unorm_srgb, + width: frame.width, + height: frame.height, + mipmapped: false + ) + descriptor.usage = [.shaderRead] + descriptor.storageMode = .shared + textures[slot] = device?.makeTexture(descriptor: descriptor) + textures[slot]?.label = "TFTMAC Android frame \(slot)" + } + guard let texture = textures[slot] else { return } + frame.pixels.withUnsafeBytes { bytes in + guard let baseAddress = bytes.baseAddress else { return } + texture.replace( + region: MTLRegionMake2D(0, 0, frame.width, frame.height), + mipmapLevel: 0, + withBytes: baseAddress, + bytesPerRow: frame.width * FrameContract.bytesPerPixel + ) + } + currentTextureSlot = slot + lastPresentedSequence = frame.sequence + } + + private func sendMouse(_ event: NSEvent, buttons: Int32) { + let location = convert(event.locationInWindow, from: nil) + let mapper = ViewportMapper( + sourceSize: CGSize(width: FrameContract.width, height: FrameContract.height), + viewportSize: bounds.size + ) + guard let source = mapper.sourcePoint(for: location) else { return } + let x = Int32(max(0, min(FrameContract.width - 1, Int(source.x.rounded())))) + let topOriginY = FrameContract.height - 1 - Int(source.y.rounded()) + let y = Int32(max(0, min(FrameContract.height - 1, topOriginY))) + onMouseInput?(x, y, buttons) + } + + private func updatePresentationSampleIfNeeded() { + let now = CACurrentMediaTime() + let elapsed = now - lastSampleTime + guard elapsed >= 1 else { return } + let total = gpuState.completedCount() + let delta = total - lastSamplePresentationCount + let presentationFPS = Double(delta) / elapsed + let mailboxSnapshot = mailbox.snapshot() + let receivedDelta = mailboxSnapshot.receivedFrames - lastSampleReceivedCount + let sourceFPS = Double(receivedDelta) / elapsed + fpsLabel.stringValue = String(format: "SRC %.0f · OUT %.0f", sourceFPS, presentationFPS) + let sample = PresentationSample( + presentedFrames: total, + presentationFPS: presentationFPS, + sourceFPS: sourceFPS, + mailbox: mailboxSnapshot, + lastPresentedSequence: lastPresentedSequence, + sampledMonotonicNanoseconds: DispatchTime.now().uptimeNanoseconds + ) + onPresentationSample?(sample) + lastSamplePresentationCount = total + lastSampleReceivedCount = mailboxSnapshot.receivedFrames + lastSampleTime = now + } + + private func configureOverlays() { + statusLabel.font = .systemFont(ofSize: 16, weight: .semibold) + statusLabel.alignment = .center + statusLabel.maximumNumberOfLines = 3 + statusLabel.translatesAutoresizingMaskIntoConstraints = false + statusLabel.wantsLayer = true + statusLabel.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.72).cgColor + statusLabel.layer?.cornerRadius = 10 + addSubview(statusLabel) + + fpsLabel.font = .monospacedDigitSystemFont(ofSize: 13, weight: .bold) + fpsLabel.textColor = .white + fpsLabel.alignment = .center + fpsLabel.translatesAutoresizingMaskIntoConstraints = false + fpsLabel.wantsLayer = true + fpsLabel.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.62).cgColor + fpsLabel.layer?.cornerRadius = 6 + addSubview(fpsLabel) + + NSLayoutConstraint.activate([ + statusLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + statusLabel.centerYAnchor.constraint(equalTo: centerYAnchor), + statusLabel.widthAnchor.constraint(lessThanOrEqualTo: widthAnchor, multiplier: 0.72), + statusLabel.heightAnchor.constraint(greaterThanOrEqualToConstant: 52), + fpsLabel.topAnchor.constraint(equalTo: topAnchor, constant: 12), + fpsLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -12), + fpsLabel.widthAnchor.constraint(equalToConstant: 142), + fpsLabel.heightAnchor.constraint(equalToConstant: 28) + ]) + } + + private static func makePipeline(device: MTLDevice) throws -> MTLRenderPipelineState { + let source = """ + #include + using namespace metal; + + struct RasterData { + float4 position [[position]]; + float2 textureCoordinate; + }; + + vertex RasterData tftmac_vertex(uint vertexID [[vertex_id]]) { + const float2 positions[3] = { float2(-1.0, -1.0), float2(3.0, -1.0), float2(-1.0, 3.0) }; + // Metal's bottom screen edge must sample the bottom RGBA row. + // The oversized triangle therefore maps bottom vertices to v=1. + const float2 coordinates[3] = { float2(0.0, 1.0), float2(2.0, 1.0), float2(0.0, -1.0) }; + RasterData output; + output.position = float4(positions[vertexID], 0.0, 1.0); + output.textureCoordinate = coordinates[vertexID]; + return output; + } + + fragment float4 tftmac_fragment(RasterData input [[stage_in]], texture2d frame [[texture(0)]]) { + constexpr sampler sampleState(coord::normalized, address::clamp_to_edge, filter::linear); + return frame.sample(sampleState, input.textureCoordinate); + } + """ + let library = try device.makeLibrary(source: source, options: nil) + let descriptor = MTLRenderPipelineDescriptor() + descriptor.label = "TFTMAC RGBA presenter" + descriptor.vertexFunction = library.makeFunction(name: "tftmac_vertex") + descriptor.fragmentFunction = library.makeFunction(name: "tftmac_fragment") + descriptor.colorAttachments[0].pixelFormat = .bgra8Unorm_srgb + return try device.makeRenderPipelineState(descriptor: descriptor) + } + + private static func specialKey(for event: NSEvent) -> String? { + switch event.keyCode { + case 36, 76: return "Enter" + case 48: return "Tab" + case 51, 117: return "Backspace" + case 53: return "GoBack" + case 111: return "Power" + case 115: return "GoHome" + case 119: return "End" + case 123: return "ArrowLeft" + case 124: return "ArrowRight" + case 125: return "ArrowDown" + case 126: return "ArrowUp" + default: return nil + } } } diff --git a/tftmac/Presentation/FrameContract.swift b/tftmac/Presentation/FrameContract.swift new file mode 100644 index 0000000..fb513b1 --- /dev/null +++ b/tftmac/Presentation/FrameContract.swift @@ -0,0 +1,95 @@ +import Foundation + +struct EmulatorFrame: @unchecked Sendable { + let pixels: Data + let width: Int + let height: Int + let sequence: UInt32 + let emulatorTimestampMicroseconds: UInt64 + let receivedMonotonicNanoseconds: UInt64 +} + +enum FrameContractError: LocalizedError, Equatable { + case inactiveDisplay + case wrongDimensions(width: Int, height: Int) + case wrongByteCount(expected: Int, actual: Int) + + var errorDescription: String? { + switch self { + case .inactiveDisplay: + return "The Android display is inactive." + case .wrongDimensions(let width, let height): + return "Expected a 1920×1080 Android frame, received \(width)×\(height)." + case .wrongByteCount(let expected, let actual): + return "Expected \(expected) RGBA bytes, received \(actual)." + } + } +} + +enum FrameContract { + static let width = 1920 + static let height = 1080 + static let bytesPerPixel = 4 + static let expectedByteCount = width * height * bytesPerPixel + + static func validate(width: Int, height: Int, byteCount: Int) throws { + guard width > 0, height > 0 else { throw FrameContractError.inactiveDisplay } + guard width == Self.width, height == Self.height else { + throw FrameContractError.wrongDimensions(width: width, height: height) + } + guard byteCount == expectedByteCount else { + throw FrameContractError.wrongByteCount(expected: expectedByteCount, actual: byteCount) + } + } +} + +struct FrameMailboxSnapshot: Sendable { + let receivedFrames: UInt64 + let replacedBeforePresentation: UInt64 + let sequenceDrops: UInt64 + let latestSequence: UInt32? + let latestReceiveMonotonicNanoseconds: UInt64? +} + +final class LatestFrameMailbox: @unchecked Sendable { + private let lock = NSLock() + private var latest: EmulatorFrame? + private var receivedFrames: UInt64 = 0 + private var replacedBeforePresentation: UInt64 = 0 + private var sequenceDrops: UInt64 = 0 + private var previousSequence: UInt32? + private var latestReceiveMonotonicNanoseconds: UInt64? + + func publish(_ frame: EmulatorFrame) { + lock.lock() + defer { lock.unlock() } + receivedFrames &+= 1 + if latest != nil { replacedBeforePresentation &+= 1 } + if let previousSequence, frame.sequence > previousSequence &+ 1 { + sequenceDrops &+= UInt64(frame.sequence - previousSequence - 1) + } + previousSequence = frame.sequence + latestReceiveMonotonicNanoseconds = frame.receivedMonotonicNanoseconds + latest = frame + } + + func takeLatest() -> EmulatorFrame? { + lock.lock() + defer { lock.unlock() } + let frame = latest + latest = nil + return frame + } + + func snapshot() -> FrameMailboxSnapshot { + lock.lock() + defer { lock.unlock() } + return FrameMailboxSnapshot( + receivedFrames: receivedFrames, + replacedBeforePresentation: replacedBeforePresentation, + sequenceDrops: sequenceDrops, + latestSequence: previousSequence, + latestReceiveMonotonicNanoseconds: latestReceiveMonotonicNanoseconds + ) + } +} diff --git a/tftmac/Runtime/AVDTransactionGuard.swift b/tftmac/Runtime/AVDTransactionGuard.swift new file mode 100644 index 0000000..94516c3 --- /dev/null +++ b/tftmac/Runtime/AVDTransactionGuard.swift @@ -0,0 +1,52 @@ +import Foundation + +enum AVDTransactionRestoreDecision: Equatable, Sendable { + case alreadyOriginal + case restoreBackup +} + +enum AVDTransactionGuardError: LocalizedError, Equatable, Sendable { + case conflictingCurrentConfiguration + case unexpectedRecoveryPath + + var errorDescription: String? { + switch self { + case .conflictingCurrentConfiguration: + return "The AVD config changed after TFTMAC applied its profile; automatic restore stopped without overwriting it." + case .unexpectedRecoveryPath: + return "The interrupted AVD transaction names a path outside TFTMAC's exact config and capture roots; recovery stopped safely." + } + } +} + +enum AVDTransactionGuard { + static func restoreDecision( + currentSHA256: String, + originalSHA256: String, + appliedSHA256: String + ) throws -> AVDTransactionRestoreDecision { + if currentSHA256 == originalSHA256 { return .alreadyOriginal } + guard currentSHA256 == appliedSHA256 else { + throw AVDTransactionGuardError.conflictingCurrentConfiguration + } + return .restoreBackup + } + + static func validateRecoveryPaths( + markerConfigURL: URL, + expectedConfigURL: URL, + backupURL: URL, + captureRoot: URL + ) throws { + let markerConfig = markerConfigURL.standardizedFileURL.resolvingSymlinksInPath() + let expectedConfig = expectedConfigURL.standardizedFileURL.resolvingSymlinksInPath() + let backup = backupURL.standardizedFileURL.resolvingSymlinksInPath() + let captures = captureRoot.standardizedFileURL.resolvingSymlinksInPath() + let capturesPrefix = captures.path.hasSuffix("/") ? captures.path : captures.path + "/" + guard markerConfig.path == expectedConfig.path, + backup.path.hasPrefix(capturesPrefix), + backup.lastPathComponent == "avd-config.before.ini" else { + throw AVDTransactionGuardError.unexpectedRecoveryPath + } + } +} diff --git a/tftmac/Runtime/RuntimeLease.swift b/tftmac/Runtime/RuntimeLease.swift new file mode 100644 index 0000000..a64f86c --- /dev/null +++ b/tftmac/Runtime/RuntimeLease.swift @@ -0,0 +1,105 @@ +import Darwin +import Foundation + +enum RuntimeLeaseError: LocalizedError, Sendable { + case alreadyOwned(processIdentifier: Int32) + case cannotCreate(String) + + var errorDescription: String? { + switch self { + case .alreadyOwned(let processIdentifier): + return "TFTMAC runtime is already owned by process \(processIdentifier). Close the other TFTMAC session first." + case .cannotCreate(let reason): + return "TFTMAC could not acquire its runtime lease: \(reason)" + } + } +} + +final class TFTMACRuntimeLease: @unchecked Sendable { + let processIdentifier: Int32 + let token: String + let url: URL + private var released = false + + private init(url: URL, processIdentifier: Int32, token: String) { + self.url = url + self.processIdentifier = processIdentifier + self.token = token + } + + static func acquire(stateRoot: URL, processIdentifier: Int32 = ProcessInfo.processInfo.processIdentifier) throws -> Self { + try FileManager.default.createDirectory( + at: stateRoot, + withIntermediateDirectories: true, + attributes: [.posixPermissions: 0o700] + ) + let url = stateRoot.appendingPathComponent("native-runtime.lease") + let token = UUID().uuidString.lowercased() + for _ in 0..<2 { + let descriptor = Darwin.open(url.path, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR) + if descriptor >= 0 { + let payload: [String: Any] = [ + "schema": 1, + "pid": processIdentifier, + "token": token, + "created_utc": ISO8601DateFormatter().string(from: Date()) + ] + do { + let data = try JSONSerialization.data(withJSONObject: payload, options: [.sortedKeys]) + try writeAll(data, to: descriptor) + _ = Darwin.fsync(descriptor) + Darwin.close(descriptor) + return Self(url: url, processIdentifier: processIdentifier, token: token) + } catch { + Darwin.close(descriptor) + try? FileManager.default.removeItem(at: url) + throw RuntimeLeaseError.cannotCreate(error.localizedDescription) + } + } + guard errno == EEXIST else { + throw RuntimeLeaseError.cannotCreate(String(cString: strerror(errno))) + } + if let owner = leaseOwner(at: url), processExists(owner) { + throw RuntimeLeaseError.alreadyOwned(processIdentifier: owner) + } + do { try FileManager.default.removeItem(at: url) } + catch { throw RuntimeLeaseError.cannotCreate("stale lease could not be removed") } + } + throw RuntimeLeaseError.cannotCreate("another launch won the lease race") + } + + func release() { + guard !released else { return } + released = true + guard let data = try? Data(contentsOf: url), + let object = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + object["token"] as? String == token else { return } + try? FileManager.default.removeItem(at: url) + } + + deinit { release() } + + private static func leaseOwner(at url: URL) -> Int32? { + guard let data = try? Data(contentsOf: url), + let object = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let number = object["pid"] as? NSNumber else { return nil } + return number.int32Value + } + + private static func processExists(_ processIdentifier: Int32) -> Bool { + if Darwin.kill(processIdentifier, 0) == 0 { return true } + return errno != ESRCH + } + + private static func writeAll(_ data: Data, to descriptor: Int32) throws { + try data.withUnsafeBytes { rawBuffer in + guard let baseAddress = rawBuffer.baseAddress else { return } + var written = 0 + while written < rawBuffer.count { + let result = Darwin.write(descriptor, baseAddress.advanced(by: written), rawBuffer.count - written) + guard result > 0 else { throw RuntimeLeaseError.cannotCreate(String(cString: strerror(errno))) } + written += result + } + } + } +} diff --git a/tftmac/Runtime/RuntimeProfile.swift b/tftmac/Runtime/RuntimeProfile.swift new file mode 100644 index 0000000..5396f69 --- /dev/null +++ b/tftmac/Runtime/RuntimeProfile.swift @@ -0,0 +1,106 @@ +import Foundation + +struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { + static let supportedVCPU = [4, 6, 8] + static let supportedRAMMiB = [4096, 5120, 6144] + static let supportedRefreshHz = [30, 60] + static let supportedASGDrawFlushIntervals = [400, 800] + + static let playable = TFTMACRuntimeProfile( + identifier: "tftmac_5gb_native_v1", + width: 1920, + height: 1080, + densityDPI: 320, + refreshHz: 60, + vCPU: 6, + ramMiB: 5120, + gpuMode: "host", + audioBackend: "coreaudio", + graphicsTransport: "virtio-gpu-asg", + asgWriteBufferSize: 1_048_576, + asgWriteStepSize: 16_384, + asgDataRingSize: 32_768, + asgDrawFlushInterval: 800, + controllerPort: 8554, + angleEnabledFeatures: "exposeNonConformantExtensionsAndVersions:exposeES32ForTesting", + angleDisabledFeatures: "preferSubmitAtFBOBoundary" + ) + + private enum PreferenceKey { + static let vCPU = "runtime.vcpu" + static let ramMiB = "runtime.ramMiB" + static let refreshHz = "runtime.refreshHz" + static let asgDrawFlushInterval = "runtime.asgDrawFlushInterval" + } + + let identifier: String + let width: Int + let height: Int + let densityDPI: Int + let refreshHz: Int + let vCPU: Int + let ramMiB: Int + let gpuMode: String + let audioBackend: String + let graphicsTransport: String + let asgWriteBufferSize: Int + let asgWriteStepSize: Int + let asgDataRingSize: Int + let asgDrawFlushInterval: Int + let controllerPort: Int + let angleEnabledFeatures: String + let angleDisabledFeatures: String + + static func load(from defaults: UserDefaults = .standard) -> Self { + let baseline = Self.playable + let vCPU = supportedValue(defaults.integer(forKey: PreferenceKey.vCPU), in: supportedVCPU) ?? baseline.vCPU + let ramMiB = supportedValue(defaults.integer(forKey: PreferenceKey.ramMiB), in: supportedRAMMiB) ?? baseline.ramMiB + let refreshHz = supportedValue(defaults.integer(forKey: PreferenceKey.refreshHz), in: supportedRefreshHz) ?? baseline.refreshHz + let flush = supportedValue( + defaults.integer(forKey: PreferenceKey.asgDrawFlushInterval), + in: supportedASGDrawFlushIntervals + ) ?? baseline.asgDrawFlushInterval + return baseline.with(vCPU: vCPU, ramMiB: ramMiB, refreshHz: refreshHz, asgDrawFlushInterval: flush) + } + + func save(to defaults: UserDefaults = .standard) { + defaults.set(vCPU, forKey: PreferenceKey.vCPU) + defaults.set(ramMiB, forKey: PreferenceKey.ramMiB) + defaults.set(refreshHz, forKey: PreferenceKey.refreshHz) + defaults.set(asgDrawFlushInterval, forKey: PreferenceKey.asgDrawFlushInterval) + } + + func with(vCPU: Int, ramMiB: Int, refreshHz: Int, asgDrawFlushInterval: Int) -> Self { + let safeVCPU = Self.supportedValue(vCPU, in: Self.supportedVCPU) ?? self.vCPU + let safeRAM = Self.supportedValue(ramMiB, in: Self.supportedRAMMiB) ?? self.ramMiB + let safeRefresh = Self.supportedValue(refreshHz, in: Self.supportedRefreshHz) ?? self.refreshHz + let safeFlush = Self.supportedValue( + asgDrawFlushInterval, + in: Self.supportedASGDrawFlushIntervals + ) ?? self.asgDrawFlushInterval + let identifier = "tftmac_native_\(safeRAM)m_\(safeVCPU)c_\(safeRefresh)hz_flush\(safeFlush)" + return Self( + identifier: identifier, + width: width, + height: height, + densityDPI: densityDPI, + refreshHz: safeRefresh, + vCPU: safeVCPU, + ramMiB: safeRAM, + gpuMode: gpuMode, + audioBackend: audioBackend, + graphicsTransport: graphicsTransport, + asgWriteBufferSize: asgWriteBufferSize, + asgWriteStepSize: asgWriteStepSize, + asgDataRingSize: asgDataRingSize, + asgDrawFlushInterval: safeFlush, + controllerPort: controllerPort, + angleEnabledFeatures: angleEnabledFeatures, + angleDisabledFeatures: angleDisabledFeatures + ) + } + + private static func supportedValue(_ candidate: Int, in allowed: [Int]) -> Int? { + allowed.contains(candidate) ? candidate : nil + } +} diff --git a/tftmac/Runtime/TFTMACRuntime.swift b/tftmac/Runtime/TFTMACRuntime.swift new file mode 100644 index 0000000..b2f33e2 --- /dev/null +++ b/tftmac/Runtime/TFTMACRuntime.swift @@ -0,0 +1,2169 @@ +import AppKit +import CryptoKit +import Darwin +import Foundation +import GRPCCore +import GRPCNIOTransportHTTP2 +import GRPCProtobuf +import SQLite3 +import SwiftProtobuf + +struct TFTMACRuntimePaths: Sendable { + let sdkRoot: URL + let emulator: URL + let adb: URL + let avdHome: URL + let avdDirectory: URL + let avdConfig: URL + let hostApplication: URL + let applicationSupport: URL + + static func discover() throws -> Self { + let manager = FileManager.default + let runtimeRoot = URL(fileURLWithPath: "/Volumes/MAC MINI M4/TFTMAC/Runtime", isDirectory: true) + let sdkCandidates = ["SDK", "sdk"].map { runtimeRoot.appendingPathComponent($0, isDirectory: true) } + guard let sdkRoot = sdkCandidates.first(where: { + manager.isExecutableFile(atPath: $0.appendingPathComponent("emulator/emulator").path) + && manager.isExecutableFile(atPath: $0.appendingPathComponent("platform-tools/adb").path) + }) else { + throw TFTMACRuntimeError("The proven Android runtime is not mounted at /Volumes/MAC MINI M4/TFTMAC/Runtime.") + } + + let avdCandidates = ["AVD", "avd"].map { runtimeRoot.appendingPathComponent($0, isDirectory: true) } + guard let avdHome = avdCandidates.first(where: { + manager.fileExists(atPath: $0.appendingPathComponent("TFT_Ultra_Tablet.ini").path) + }) else { + throw TFTMACRuntimeError("The TFT_Ultra_Tablet AVD is missing from the proven runtime.") + } + let avdINI = avdHome.appendingPathComponent("TFT_Ultra_Tablet.ini") + let iniText = try String(contentsOf: avdINI, encoding: .utf8) + guard let avdPath = iniText.split(whereSeparator: \.isNewline) + .first(where: { $0.hasPrefix("path=") })? + .dropFirst("path=".count), !avdPath.isEmpty else { + throw TFTMACRuntimeError("TFT_Ultra_Tablet.ini does not identify its AVD directory.") + } + let avdDirectory = URL(fileURLWithPath: String(avdPath), isDirectory: true) + let avdConfig = avdDirectory.appendingPathComponent("config.ini") + guard manager.fileExists(atPath: avdConfig.path) else { + throw TFTMACRuntimeError("The TFT_Ultra_Tablet config.ini is missing.") + } + + guard let resourceURL = Bundle.main.resourceURL else { + throw TFTMACRuntimeError("TFTMAC.app has no Resources directory.") + } + let hostApplication = resourceURL.appendingPathComponent("TFTMAC Emulator Host.app", isDirectory: true) + guard manager.fileExists(atPath: hostApplication.path) else { + throw TFTMACRuntimeError("TFTMAC Emulator Host.app is missing from the application bundle.") + } + let applicationSupport = manager.homeDirectoryForCurrentUser + .appendingPathComponent("Library/Application Support/TFTMAC", isDirectory: true) + return Self( + sdkRoot: sdkRoot, + emulator: sdkRoot.appendingPathComponent("emulator/emulator"), + adb: sdkRoot.appendingPathComponent("platform-tools/adb"), + avdHome: avdHome, + avdDirectory: avdDirectory, + avdConfig: avdConfig, + hostApplication: hostApplication, + applicationSupport: applicationSupport + ) + } +} + +struct EmulatorControllerDiscovery: Sendable { + let processIdentifier: Int32 + let port: Int + let token: String + let recordPath: String +} + +struct MouseInput: Sendable { + let x: Int32 + let y: Int32 + let buttons: Int32 +} + +struct KeyboardInput: Sendable { + let text: String? + let key: String? +} + +private enum EmulatorInput: Sendable { + case mouse(MouseInput) + case keyboard(KeyboardInput) +} + +struct PresentationSample: Sendable { + let presentedFrames: UInt64 + let presentationFPS: Double + let sourceFPS: Double + let mailbox: FrameMailboxSnapshot + let lastPresentedSequence: UInt32? + let sampledMonotonicNanoseconds: UInt64 +} + +private struct FrameVisualSample: Sendable { + let sampleCount: Int + let meanLuma: Double + let nonBlackFraction: Double + let minimumRGB: Int + let maximumRGB: Int + let minimumAlpha: Int + let maximumAlpha: Int + let contentSHA256: String? +} + +private struct FrameIntervalWindow: Sendable { + let startedMonotonicNS: UInt64 + let endedMonotonicNS: UInt64 + let frameCount: Int + let sequenceDropCount: UInt64 + let meanIntervalMS: Double? + let p95IntervalMS: Double? + let maximumIntervalMS: Double? +} + +private struct GuestMemorySample: Sendable { + let totalKiB: Int64 + let availableKiB: Int64 + let swapTotalKiB: Int64? + let swapFreeKiB: Int64? +} + +private struct SurfaceFlingerSample: Sendable { + let renderRateHz: Double? + let totalMissedFrames: Int64? + let hwcMissedFrames: Int64? + let gpuMissedFrames: Int64? + let tftRequestedRateHz: Double? +} + +private struct AudioFlingerSample: Sendable { + let activeOutput: Bool + let sampleRateHz: Int? + let stereoOutput: Bool + let activeTracks: Int? + let partialUnderruns: Int64? + let emptyUnderruns: Int64? +} + +private struct LogcatAggregate: Sendable { + let byteStart: UInt64 + let byteEnd: UInt64 + let skippedBytes: UInt64 + let lineCount: Int + let anrCount: Int + let inputTimeoutCount: Int + let fatalCount: Int + let memoryKillCount: Int + let choreographerSkipCount: Int + let angleWarningCount: Int + let vulkanWarningCount: Int + let audioErrorCount: Int +} + +struct TFTMACRuntimeError: LocalizedError, Sendable { + let message: String + init(_ message: String) { self.message = message } + var errorDescription: String? { message } +} + +private enum SQLiteValue: Sendable { + case integer(Int64) + case real(Double) + case text(String) + case null +} + +final class TFTMACNativeTelemetry: @unchecked Sendable { + let sessionIdentifier: String + let captureDirectory: URL + + private let queue = DispatchQueue(label: "com.flashls1.tftmac.telemetry") + private var database: OpaquePointer? + private var eventLog: FileHandle? + private let transientDestructor = unsafeBitCast(-1, to: sqlite3_destructor_type.self) + + init(profile: TFTMACRuntimeProfile, applicationSupport: URL) throws { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + sessionIdentifier = formatter.string(from: Date()) + .replacingOccurrences(of: ":", with: "-") + "-" + UUID().uuidString.lowercased() + captureDirectory = applicationSupport.appendingPathComponent("Captures/\(sessionIdentifier)", isDirectory: true) + try FileManager.default.createDirectory( + at: captureDirectory, + withIntermediateDirectories: true, + attributes: [.posixPermissions: 0o700] + ) + + let logURL = captureDirectory.appendingPathComponent("native-events.jsonl") + FileManager.default.createFile(atPath: logURL.path, contents: nil, attributes: [.posixPermissions: 0o600]) + eventLog = try FileHandle(forWritingTo: logURL) + + let databaseURL = captureDirectory.appendingPathComponent("TFTMAC_NATIVE_RUNTIME.sqlite") + guard sqlite3_open_v2( + databaseURL.path, + &database, + SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE | SQLITE_OPEN_FULLMUTEX, + nil + ) == SQLITE_OK else { + throw TFTMACRuntimeError("The native SQL telemetry database could not be opened.") + } + try FileManager.default.setAttributes([.posixPermissions: 0o600], ofItemAtPath: databaseURL.path) + try executeSchema() + try execute( + "INSERT INTO sessions(session_id, started_utc, status, profile_id) VALUES(?, ?, 'STARTING', ?)", + [.text(sessionIdentifier), .text(Self.utcNow()), .text(profile.identifier)] + ) + recordEvent("LOGGER_INITIALIZED", payload: [ + "database": databaseURL.lastPathComponent, + "rawEventLog": logURL.lastPathComponent, + "loggerStartsBeforeEmulator": true + ]) + } + + deinit { + queue.sync { + try? eventLog?.close() + if let database { sqlite3_close(database) } + database = nil + } + } + + func recordReceipt(key: String, value: String, source: String, confidence: String) { + enqueue { + try self.execute( + "INSERT INTO runtime_receipts(session_id, receipt_key, receipt_value, source, confidence, observed_utc) VALUES(?, ?, ?, ?, ?, ?)", + [.text(self.sessionIdentifier), .text(key), .text(value), .text(source), .text(confidence), .text(Self.utcNow())] + ) + } + } + + func markRunning() { + enqueue { + try self.execute( + "UPDATE sessions SET status = 'RUNNING' WHERE session_id = ? AND ended_utc IS NULL", + [.text(self.sessionIdentifier)] + ) + } + } + + func recordEvent(_ kind: String, payload: [String: Any] = [:]) { + let payloadText = Self.json(payload) + let utc = Self.utcNow() + let monotonic = DispatchTime.now().uptimeNanoseconds + let lineData = Data((Self.json([ + "session_id": sessionIdentifier, + "observed_utc": utc, + "monotonic_ns": String(monotonic), + "kind": kind, + "payload": payload + ]) + "\n").utf8) + enqueue { + try self.execute( + "INSERT INTO events(session_id, observed_utc, monotonic_ns, kind, payload_json) VALUES(?, ?, ?, ?, ?)", + [.text(self.sessionIdentifier), .text(utc), .integer(Int64(bitPattern: monotonic)), .text(kind), .text(payloadText)] + ) + try self.eventLog?.write(contentsOf: lineData) + } + } + + fileprivate func recordFrameReceived( + _ frame: EmulatorFrame, + transport: String, + sequenceDropCount: UInt64, + visual: FrameVisualSample + ) { + enqueue { + try self.execute( + "INSERT INTO frame_samples(session_id, sequence, emulator_timestamp_us, received_monotonic_ns, width, height, byte_count, transport, sequence_drop_count, visual_sample_count, mean_luma, nonblack_fraction, minimum_rgb, maximum_rgb, minimum_alpha, maximum_alpha, content_sha256) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .integer(Int64(frame.sequence)), + .integer(Int64(bitPattern: frame.emulatorTimestampMicroseconds)), + .integer(Int64(bitPattern: frame.receivedMonotonicNanoseconds)), + .integer(Int64(frame.width)), .integer(Int64(frame.height)), + .integer(Int64(frame.pixels.count)), .text(transport), + .integer(Int64(bitPattern: sequenceDropCount)), + .integer(Int64(visual.sampleCount)), .real(visual.meanLuma), + .real(visual.nonBlackFraction), .integer(Int64(visual.minimumRGB)), + .integer(Int64(visual.maximumRGB)), .integer(Int64(visual.minimumAlpha)), + .integer(Int64(visual.maximumAlpha)), visual.contentSHA256.map(SQLiteValue.text) ?? .null + ] + ) + } + } + + fileprivate func recordFrameIntervalWindow(_ sample: FrameIntervalWindow) { + enqueue { + try self.execute( + "INSERT INTO frame_interval_windows(session_id, started_monotonic_ns, ended_monotonic_ns, frame_count, sequence_drop_count, mean_interval_ms, p95_interval_ms, maximum_interval_ms) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), + .integer(Int64(bitPattern: sample.startedMonotonicNS)), + .integer(Int64(bitPattern: sample.endedMonotonicNS)), + .integer(Int64(sample.frameCount)), + .integer(Int64(bitPattern: sample.sequenceDropCount)), + sample.meanIntervalMS.map(SQLiteValue.real) ?? .null, + sample.p95IntervalMS.map(SQLiteValue.real) ?? .null, + sample.maximumIntervalMS.map(SQLiteValue.real) ?? .null + ] + ) + } + } + + func recordPresentation(_ sample: PresentationSample) { + enqueue { + try self.execute( + "INSERT INTO presentation_samples(session_id, sampled_monotonic_ns, presented_frames, presentation_fps, source_fps, received_frames, mailbox_replacements, sequence_drops, last_sequence) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .integer(Int64(bitPattern: sample.sampledMonotonicNanoseconds)), + .integer(Int64(bitPattern: sample.presentedFrames)), .real(sample.presentationFPS), .real(sample.sourceFPS), + .integer(Int64(bitPattern: sample.mailbox.receivedFrames)), + .integer(Int64(bitPattern: sample.mailbox.replacedBeforePresentation)), + .integer(Int64(bitPattern: sample.mailbox.sequenceDrops)), + sample.lastPresentedSequence.map { .integer(Int64($0)) } ?? .null + ] + ) + } + } + + func recordResourceSample(emulatorPID: Int32, emulatorCPU: Double?, emulatorRSSKiB: Int64?, gamePID: Int32?, topActivity: String) { + enqueue { + try self.execute( + "INSERT INTO resource_samples(session_id, observed_utc, monotonic_ns, emulator_pid, emulator_cpu_percent, emulator_rss_kib, game_pid, top_activity) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .integer(Int64(emulatorPID)), emulatorCPU.map(SQLiteValue.real) ?? .null, + emulatorRSSKiB.map(SQLiteValue.integer) ?? .null, + gamePID.map { .integer(Int64($0)) } ?? .null, .text(topActivity) + ] + ) + } + } + + fileprivate func recordGuestMemory(_ sample: GuestMemorySample) { + enqueue { + try self.execute( + "INSERT INTO guest_memory_samples(session_id, observed_utc, monotonic_ns, total_kib, available_kib, swap_total_kib, swap_free_kib) VALUES(?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .integer(sample.totalKiB), .integer(sample.availableKiB), + sample.swapTotalKiB.map(SQLiteValue.integer) ?? .null, + sample.swapFreeKiB.map(SQLiteValue.integer) ?? .null + ] + ) + } + } + + fileprivate func recordClockSync(hostT0NS: UInt64, guestUptimeNS: UInt64, hostT1NS: UInt64) { + let midpoint = hostT0NS &+ ((hostT1NS &- hostT0NS) / 2) + enqueue { + try self.execute( + "INSERT INTO clock_sync_samples(session_id, observed_utc, host_t0_ns, guest_uptime_ns, host_t1_ns, host_midpoint_ns, round_trip_ns, host_minus_guest_ns) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: hostT0NS)), .integer(Int64(bitPattern: guestUptimeNS)), + .integer(Int64(bitPattern: hostT1NS)), .integer(Int64(bitPattern: midpoint)), + .integer(Int64(bitPattern: hostT1NS &- hostT0NS)), + .integer(Int64(bitPattern: midpoint &- guestUptimeNS)) + ] + ) + } + } + + fileprivate func recordSurfaceFlinger(_ sample: SurfaceFlingerSample, label: String) { + enqueue { + try self.execute( + "INSERT INTO surfaceflinger_samples(session_id, observed_utc, monotonic_ns, sample_label, render_rate_hz, total_missed_frames, hwc_missed_frames, gpu_missed_frames, tft_requested_rate_hz) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), .text(label), + sample.renderRateHz.map(SQLiteValue.real) ?? .null, + sample.totalMissedFrames.map(SQLiteValue.integer) ?? .null, + sample.hwcMissedFrames.map(SQLiteValue.integer) ?? .null, + sample.gpuMissedFrames.map(SQLiteValue.integer) ?? .null, + sample.tftRequestedRateHz.map(SQLiteValue.real) ?? .null + ] + ) + } + } + + fileprivate func recordAudioFlinger(_ sample: AudioFlingerSample, label: String) { + enqueue { + try self.execute( + "INSERT INTO audio_samples(session_id, observed_utc, monotonic_ns, sample_label, backend, active_output, sample_rate_hz, stereo_output, active_tracks, partial_underruns, empty_underruns) VALUES(?, ?, ?, ?, 'coreaudio', ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), .text(label), + .integer(sample.activeOutput ? 1 : 0), + sample.sampleRateHz.map { .integer(Int64($0)) } ?? .null, + .integer(sample.stereoOutput ? 1 : 0), + sample.activeTracks.map { .integer(Int64($0)) } ?? .null, + sample.partialUnderruns.map(SQLiteValue.integer) ?? .null, + sample.emptyUnderruns.map(SQLiteValue.integer) ?? .null + ] + ) + } + } + + fileprivate func recordLogcatAggregate(_ sample: LogcatAggregate) { + enqueue { + try self.execute( + "INSERT INTO logcat_aggregates(session_id, observed_utc, monotonic_ns, byte_start, byte_end, skipped_bytes, line_count, anr_count, input_timeout_count, fatal_count, memory_kill_count, choreographer_skip_count, angle_warning_count, vulkan_warning_count, audio_error_count) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .integer(Int64(bitPattern: sample.byteStart)), .integer(Int64(bitPattern: sample.byteEnd)), + .integer(Int64(bitPattern: sample.skippedBytes)), .integer(Int64(sample.lineCount)), + .integer(Int64(sample.anrCount)), .integer(Int64(sample.inputTimeoutCount)), + .integer(Int64(sample.fatalCount)), .integer(Int64(sample.memoryKillCount)), + .integer(Int64(sample.choreographerSkipCount)), .integer(Int64(sample.angleWarningCount)), + .integer(Int64(sample.vulkanWarningCount)), .integer(Int64(sample.audioErrorCount)) + ] + ) + } + } + + func recordGameProcessTransition(previousPID: Int32?, currentPID: Int32?) { + enqueue { + let now = Self.utcNow() + let monotonic = Int64(bitPattern: DispatchTime.now().uptimeNanoseconds) + if let previousPID { + try self.execute( + "UPDATE game_process_sessions SET ended_utc = ?, ended_monotonic_ns = ? WHERE session_id = ? AND game_pid = ? AND ended_utc IS NULL", + [.text(now), .integer(monotonic), .text(self.sessionIdentifier), .integer(Int64(previousPID))] + ) + } + if let currentPID { + try self.execute( + "INSERT INTO game_process_sessions(session_id, game_pid, started_utc, started_monotonic_ns) VALUES(?, ?, ?, ?)", + [.text(self.sessionIdentifier), .integer(Int64(currentPID)), .text(now), .integer(monotonic)] + ) + } + } + } + + fileprivate func recordInput(_ input: EmulatorInput) { + let values: [SQLiteValue] + switch input { + case .mouse(let mouse): + values = [ + .text(sessionIdentifier), .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .text("mouse"), .integer(Int64(mouse.x)), .integer(Int64(mouse.y)), + .integer(Int64(mouse.buttons)), .null, .null + ] + case .keyboard(let keyboard): + values = [ + .text(sessionIdentifier), .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .text("keyboard"), .null, .null, .null, + keyboard.text.map { .integer(Int64($0.count)) } ?? .null, + keyboard.key.map(SQLiteValue.text) ?? .null + ] + } + enqueue { + try self.execute( + "INSERT INTO input_samples(session_id, monotonic_ns, input_kind, x, y, buttons, character_count, special_key) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + values + ) + } + } + + func finish(status: String) { + queue.sync { + let now = Self.utcNow() + let monotonic = Int64(bitPattern: DispatchTime.now().uptimeNanoseconds) + try? self.execute( + "UPDATE game_process_sessions SET ended_utc = ?, ended_monotonic_ns = ? WHERE session_id = ? AND ended_utc IS NULL", + [.text(now), .integer(monotonic), .text(self.sessionIdentifier)] + ) + try? self.execute( + "UPDATE sessions SET ended_utc = ?, status = ? WHERE session_id = ?", + [.text(now), .text(status), .text(self.sessionIdentifier)] + ) + try? self.eventLog?.synchronize() + } + } + + private func executeSchema() throws { + let schema = """ + PRAGMA journal_mode=WAL; + PRAGMA synchronous=NORMAL; + PRAGMA foreign_keys=ON; + CREATE TABLE IF NOT EXISTS sessions( + session_id TEXT PRIMARY KEY, + started_utc TEXT NOT NULL, + ended_utc TEXT, + status TEXT NOT NULL, + profile_id TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS runtime_receipts( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + receipt_key TEXT NOT NULL, + receipt_value TEXT NOT NULL, + source TEXT NOT NULL, + confidence TEXT NOT NULL, + observed_utc TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS events( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + kind TEXT NOT NULL, + payload_json TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS frame_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + sequence INTEGER NOT NULL, + emulator_timestamp_us INTEGER NOT NULL, + received_monotonic_ns INTEGER NOT NULL, + width INTEGER NOT NULL, + height INTEGER NOT NULL, + byte_count INTEGER NOT NULL, + transport TEXT NOT NULL, + sequence_drop_count INTEGER NOT NULL, + visual_sample_count INTEGER NOT NULL, + mean_luma REAL NOT NULL, + nonblack_fraction REAL NOT NULL, + minimum_rgb INTEGER NOT NULL, + maximum_rgb INTEGER NOT NULL, + minimum_alpha INTEGER NOT NULL, + maximum_alpha INTEGER NOT NULL, + content_sha256 TEXT + ); + CREATE TABLE IF NOT EXISTS presentation_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + sampled_monotonic_ns INTEGER NOT NULL, + presented_frames INTEGER NOT NULL, + presentation_fps REAL NOT NULL, + source_fps REAL NOT NULL, + received_frames INTEGER NOT NULL, + mailbox_replacements INTEGER NOT NULL, + sequence_drops INTEGER NOT NULL, + last_sequence INTEGER + ); + CREATE TABLE IF NOT EXISTS frame_interval_windows( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, + ended_monotonic_ns INTEGER NOT NULL, + frame_count INTEGER NOT NULL, + sequence_drop_count INTEGER NOT NULL, + mean_interval_ms REAL, + p95_interval_ms REAL, + maximum_interval_ms REAL + ); + CREATE TABLE IF NOT EXISTS resource_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + emulator_pid INTEGER NOT NULL, + emulator_cpu_percent REAL, + emulator_rss_kib INTEGER, + game_pid INTEGER, + top_activity TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS guest_memory_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + total_kib INTEGER NOT NULL, + available_kib INTEGER NOT NULL, + swap_total_kib INTEGER, + swap_free_kib INTEGER + ); + CREATE TABLE IF NOT EXISTS clock_sync_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + host_t0_ns INTEGER NOT NULL, + guest_uptime_ns INTEGER NOT NULL, + host_t1_ns INTEGER NOT NULL, + host_midpoint_ns INTEGER NOT NULL, + round_trip_ns INTEGER NOT NULL, + host_minus_guest_ns INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS surfaceflinger_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + sample_label TEXT NOT NULL, + render_rate_hz REAL, + total_missed_frames INTEGER, + hwc_missed_frames INTEGER, + gpu_missed_frames INTEGER, + tft_requested_rate_hz REAL + ); + CREATE TABLE IF NOT EXISTS audio_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + sample_label TEXT NOT NULL, + backend TEXT NOT NULL, + active_output INTEGER NOT NULL, + sample_rate_hz INTEGER, + stereo_output INTEGER NOT NULL, + active_tracks INTEGER, + partial_underruns INTEGER, + empty_underruns INTEGER + ); + CREATE TABLE IF NOT EXISTS logcat_aggregates( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + byte_start INTEGER NOT NULL, + byte_end INTEGER NOT NULL, + skipped_bytes INTEGER NOT NULL, + line_count INTEGER NOT NULL, + anr_count INTEGER NOT NULL, + input_timeout_count INTEGER NOT NULL, + fatal_count INTEGER NOT NULL, + memory_kill_count INTEGER NOT NULL, + choreographer_skip_count INTEGER NOT NULL, + angle_warning_count INTEGER NOT NULL, + vulkan_warning_count INTEGER NOT NULL, + audio_error_count INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS game_process_sessions( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + game_pid INTEGER NOT NULL, + started_utc TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, + ended_utc TEXT, + ended_monotonic_ns INTEGER + ); + CREATE TABLE IF NOT EXISTS input_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + input_kind TEXT NOT NULL, + x INTEGER, + y INTEGER, + buttons INTEGER, + character_count INTEGER, + special_key TEXT + ); + CREATE INDEX IF NOT EXISTS idx_events_kind_time ON events(kind, monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_frames_time ON frame_samples(received_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_frame_windows_time ON frame_interval_windows(started_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_resources_time ON resource_samples(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_guest_memory_time ON guest_memory_samples(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_surfaceflinger_time ON surfaceflinger_samples(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_audio_time ON audio_samples(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_logcat_time ON logcat_aggregates(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_inputs_time ON input_samples(monotonic_ns); + """ + guard sqlite3_exec(database, schema, nil, nil, nil) == SQLITE_OK else { + throw TFTMACRuntimeError("The native SQL telemetry schema could not be created.") + } + } + + private func enqueue(_ operation: @escaping @Sendable () throws -> Void) { + queue.async { + do { try operation() } + catch { fputs("TFTMAC telemetry error: \(error.localizedDescription)\n", stderr) } + } + } + + private func execute(_ sql: String, _ values: [SQLiteValue]) throws { + guard let database else { throw TFTMACRuntimeError("The telemetry database is closed.") } + var statement: OpaquePointer? + guard sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK, let statement else { + throw TFTMACRuntimeError("SQLite could not prepare a telemetry statement.") + } + defer { sqlite3_finalize(statement) } + for (offset, value) in values.enumerated() { + let index = Int32(offset + 1) + switch value { + case .integer(let value): sqlite3_bind_int64(statement, index, value) + case .real(let value): sqlite3_bind_double(statement, index, value) + case .text(let value): sqlite3_bind_text(statement, index, value, -1, transientDestructor) + case .null: sqlite3_bind_null(statement, index) + } + } + guard sqlite3_step(statement) == SQLITE_DONE else { + throw TFTMACRuntimeError("SQLite could not write a telemetry record.") + } + } + + private static func utcNow() -> String { + ISO8601DateFormatter().string(from: Date()) + } + + private static func json(_ object: [String: Any]) -> String { + guard JSONSerialization.isValidJSONObject(object), + let data = try? JSONSerialization.data(withJSONObject: object, options: [.sortedKeys, .withoutEscapingSlashes]) else { + return "{}" + } + return String(data: data, encoding: .utf8) ?? "{}" + } +} + +private final class NativeFrameAdmissionState: @unchecked Sendable { + private let lock = NSLock() + private let mailbox: LatestFrameMailbox + private let telemetry: TFTMACNativeTelemetry + private var previousSequence: UInt32? + private var admittedFirstFrame = false + private var windowStartedNS: UInt64? + private var previousReceivedNS: UInt64? + private var windowFrameCount = 0 + private var windowSequenceDrops: UInt64 = 0 + private var windowIntervalsNS = [UInt64]() + + init(mailbox: LatestFrameMailbox, telemetry: TFTMACNativeTelemetry) { + self.mailbox = mailbox + self.telemetry = telemetry + } + + func admit(_ image: Android_Emulation_Control_Image) throws -> Bool { + let width = Int(image.format.width == 0 ? image.width : image.format.width) + let height = Int(image.format.height == 0 ? image.height : image.format.height) + guard width > 0, height > 0 else { return false } + guard image.format.format == .rgba8888 else { + throw TFTMACRuntimeError("The emulator returned a non-RGBA8888 frame.") + } + try FrameContract.validate(width: width, height: height, byteCount: image.image.count) + + let receivedNS = DispatchTime.now().uptimeNanoseconds + lock.lock() + let sequenceDrops: UInt64 + if let previousSequence, image.seq > previousSequence &+ 1 { + sequenceDrops = UInt64(image.seq - previousSequence - 1) + } else { + sequenceDrops = 0 + } + previousSequence = image.seq + let isFirstFrame = !admittedFirstFrame + admittedFirstFrame = true + if windowStartedNS == nil { windowStartedNS = receivedNS } + if let previousReceivedNS { windowIntervalsNS.append(receivedNS &- previousReceivedNS) } + previousReceivedNS = receivedNS + windowFrameCount += 1 + windowSequenceDrops &+= sequenceDrops + var completedWindow: FrameIntervalWindow? + if let started = windowStartedNS, receivedNS &- started >= 1_000_000_000 { + let sorted = windowIntervalsNS.sorted() + let mean = sorted.isEmpty ? nil : Double(sorted.reduce(0, &+)) / Double(sorted.count) / 1_000_000 + let p95Index = sorted.isEmpty ? 0 : min(sorted.count - 1, Int(ceil(Double(sorted.count) * 0.95)) - 1) + completedWindow = FrameIntervalWindow( + startedMonotonicNS: started, + endedMonotonicNS: receivedNS, + frameCount: windowFrameCount, + sequenceDropCount: windowSequenceDrops, + meanIntervalMS: mean, + p95IntervalMS: sorted.isEmpty ? nil : Double(sorted[p95Index]) / 1_000_000, + maximumIntervalMS: sorted.last.map { Double($0) / 1_000_000 } + ) + windowStartedNS = receivedNS + windowFrameCount = 0 + windowSequenceDrops = 0 + windowIntervalsNS.removeAll(keepingCapacity: true) + } + lock.unlock() + + let checkpoint = isFirstFrame || image.seq.isMultiple(of: 60) + + let frame = EmulatorFrame( + pixels: image.image, + width: width, + height: height, + sequence: image.seq, + emulatorTimestampMicroseconds: image.timestampUs, + receivedMonotonicNanoseconds: receivedNS + ) + mailbox.publish(frame) + if let completedWindow { telemetry.recordFrameIntervalWindow(completedWindow) } + guard checkpoint else { return isFirstFrame } + let visual = Self.sampleVisualContent(image.image, includeHash: true) + telemetry.recordFrameReceived(frame, transport: "raw_grpc_rgba8888", sequenceDropCount: sequenceDrops, visual: visual) + let visualPayload: [String: Any] = [ + "visual_sample_count": visual.sampleCount, + "mean_luma": visual.meanLuma, + "nonblack_fraction": visual.nonBlackFraction, + "minimum_rgb": visual.minimumRGB, + "maximum_rgb": visual.maximumRGB, + "minimum_alpha": visual.minimumAlpha, + "maximum_alpha": visual.maximumAlpha, + "content_sha256": visual.contentSHA256 ?? NSNull() + ] + if isFirstFrame { + var payload: [String: Any] = [ + "width": width, "height": height, "bytes": image.image.count, + "sequence": image.seq, "bottom_up": true, + "pixel_format": "RGBA8888", + "rotation": image.format.rotation.rotation.rawValue + ] + payload.merge(visualPayload) { current, _ in current } + telemetry.recordEvent("FIRST_NATIVE_FRAME", payload: payload) + } else if checkpoint { + var payload = visualPayload + payload["sequence"] = image.seq + payload["emulator_timestamp_us"] = String(image.timestampUs) + telemetry.recordEvent("FRAME_VISUAL_CHECKPOINT", payload: payload) + } + return isFirstFrame + } + + private static func sampleVisualContent(_ data: Data, includeHash: Bool) -> FrameVisualSample { + let pixelCount = data.count / FrameContract.bytesPerPixel + let step = max(1, pixelCount / 4096) + var sampleCount = 0 + var lumaSum = 0.0 + var nonBlackCount = 0 + var minimumRGB = 255 + var maximumRGB = 0 + var minimumAlpha = 255 + var maximumAlpha = 0 + + data.withUnsafeBytes { raw in + let bytes = raw.bindMemory(to: UInt8.self) + var pixel = 0 + while pixel < pixelCount { + let offset = pixel * FrameContract.bytesPerPixel + let red = Int(bytes[offset]) + let green = Int(bytes[offset + 1]) + let blue = Int(bytes[offset + 2]) + let alpha = Int(bytes[offset + 3]) + minimumRGB = Swift.min(minimumRGB, Swift.min(red, Swift.min(green, blue))) + maximumRGB = Swift.max(maximumRGB, Swift.max(red, Swift.max(green, blue))) + minimumAlpha = min(minimumAlpha, alpha) + maximumAlpha = max(maximumAlpha, alpha) + lumaSum += (0.2126 * Double(red) + 0.7152 * Double(green) + 0.0722 * Double(blue)) / 255.0 + if max(red, green, blue) > 4 { nonBlackCount += 1 } + sampleCount += 1 + pixel += step + } + } + + let divisor = Double(max(sampleCount, 1)) + let digest = includeHash + ? SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() + : nil + return FrameVisualSample( + sampleCount: sampleCount, + meanLuma: lumaSum / divisor, + nonBlackFraction: Double(nonBlackCount) / divisor, + minimumRGB: minimumRGB, + maximumRGB: maximumRGB, + minimumAlpha: minimumAlpha, + maximumAlpha: maximumAlpha, + contentSHA256: digest + ) + } +} + +actor TFTMACRuntimeService { + typealias StatusHandler = @MainActor @Sendable (String, Bool) -> Void + + private let profile: TFTMACRuntimeProfile + private let mailbox: LatestFrameMailbox + private let status: StatusHandler + private var telemetry: TFTMACNativeTelemetry? + private var paths: TFTMACRuntimePaths? + private var openProcess: Process? + private var logcatProcess: Process? + private var logcatOutputHandle: FileHandle? + private var logcatErrorHandle: FileHandle? + private var logcatReadOffset: UInt64 = 0 + private var runtimeLease: TFTMACRuntimeLease? + private var expectedSessionMarker: String? + private var discovery: EmulatorControllerDiscovery? + private var inputContinuation: AsyncStream.Continuation? + private var avdTransaction: AVDConfigurationTransaction? + private var stopping = false + + init(profile: TFTMACRuntimeProfile, mailbox: LatestFrameMailbox, status: @escaping StatusHandler) { + self.profile = profile + self.mailbox = mailbox + self.status = status + } + + func run() async throws { + let applicationSupport = FileManager.default.homeDirectoryForCurrentUser + .appendingPathComponent("Library/Application Support/TFTMAC", isDirectory: true) + let telemetry = try TFTMACNativeTelemetry(profile: profile, applicationSupport: applicationSupport) + self.telemetry = telemetry + await status("Starting Android through the native Mac app host…", false) + + do { + let paths = try TFTMACRuntimePaths.discover() + self.paths = paths + let stateRoot = paths.applicationSupport.appendingPathComponent("State", isDirectory: true) + runtimeLease = try TFTMACRuntimeLease.acquire(stateRoot: stateRoot) + telemetry.recordEvent("RUNTIME_LEASE_ACQUIRED", payload: [ + "lease": "State/native-runtime.lease", + "pid": ProcessInfo.processInfo.processIdentifier, + "exclusive": true + ]) + try assertRuntimeUnoccupied(telemetry: telemetry) + try recoverInterruptedAVDTransaction(paths: paths) + recordFrozenReceipts(telemetry: telemetry, paths: paths) + avdTransaction = try prepareAVD(paths: paths, telemetry: telemetry) + try startADBServer(paths: paths, telemetry: telemetry) + let launchStarted = Date() + try launchEmulatorHost(paths: paths, telemetry: telemetry) + let discovery = try await waitForDiscovery(paths: paths, captureDirectory: telemetry.captureDirectory, after: launchStarted) + self.discovery = discovery + telemetry.recordEvent("EMULATOR_CONTROLLER_DISCOVERED", payload: [ + "pid": discovery.processIdentifier, + "grpc_port": discovery.port, + "record": discovery.recordPath, + "token_persisted": false + ]) + + let (inputStream, continuation) = AsyncStream.makeStream(of: EmulatorInput.self, bufferingPolicy: .bufferingNewest(256)) + inputContinuation = continuation + try await withThrowingTaskGroup(of: Void.self) { group in + group.addTask { [profile, mailbox] in + try await Self.runController( + discovery: discovery, + profile: profile, + mailbox: mailbox, + telemetry: telemetry, + inputStream: inputStream, + status: self.status + ) + } + group.addTask { + try await self.waitForBootAndLaunchGame(paths: paths, telemetry: telemetry) + } + group.addTask { + try await self.sampleRuntime(paths: paths, telemetry: telemetry, emulatorPID: discovery.processIdentifier) + } + _ = try await group.next() + group.cancelAll() + } + if !stopping { throw TFTMACRuntimeError("The native emulator session ended unexpectedly.") } + } catch { + if stopping || error is CancellationError { + telemetry.recordEvent("RUNTIME_STOP_REQUESTED", payload: ["reason": "application_termination"]) + await cleanup(status: "STOPPED") + return + } + telemetry.recordEvent("RUNTIME_FAILED", payload: [ + "error": error.localizedDescription, + "diagnostic": String(describing: error), + "type": String(reflecting: type(of: error)) + ]) + await cleanup(status: stopping ? "STOPPED" : "FAILED") + if !stopping { await status(error.localizedDescription, true) } + throw error + } + await cleanup(status: "STOPPED") + } + + func sendMouse(_ input: MouseInput) { + telemetry?.recordInput(.mouse(input)) + inputContinuation?.yield(.mouse(input)) + } + + func sendKeyboard(_ input: KeyboardInput) { + telemetry?.recordInput(.keyboard(input)) + inputContinuation?.yield(.keyboard(input)) + } + + func recordPresentation(_ sample: PresentationSample) { + telemetry?.recordPresentation(sample) + } + + func recordMarker(_ marker: String) { + let allowed = ["MATCH_ENTRY", "COMBAT_START", "VISIBLE_STUTTER", "MATCH_END"] + guard allowed.contains(marker) else { return } + telemetry?.recordEvent(marker, payload: [ + "source": "native_menu", + "profile_id": profile.identifier, + "host_monotonic_timestamp": true + ]) + } + + func recordSettingsChange(previous: TFTMACRuntimeProfile, next: TFTMACRuntimeProfile) { + telemetry?.recordEvent("NEXT_LAUNCH_PROFILE_SAVED", payload: [ + "active_profile_id": profile.identifier, + "previous_saved_profile_id": previous.identifier, + "next_profile_id": next.identifier, + "next_vcpu": next.vCPU, + "next_ram_mib": next.ramMiB, + "next_refresh_hz": next.refreshHz, + "next_asg_draw_flush_interval": next.asgDrawFlushInterval, + "applies_after_restart": true + ]) + } + + func stop() async { + guard !stopping else { return } + stopping = true + await status("Sealing SQL telemetry and stopping Android…", false) + inputContinuation?.finish() + if let paths, + let ownedPID = discovery?.processIdentifier, + Self.processMatchesLaunchedIdentity(ownedPID, sessionMarker: expectedSessionMarker) { + telemetry?.recordEvent("EMULATOR_STOP_SIGNAL_SENT", payload: [ + "pid": ownedPID, + "serial": "emulator-5582", + "method": "adb emu kill", + "ownership_verified": true + ]) + _ = try? Self.runCommand( + paths.adb, + ["-P", "5038", "-s", "emulator-5582", "emu", "kill"], + environment: Self.adbEnvironment(paths: paths), + timeout: 15 + ) + } + } + + private func cleanup(status finalStatus: String) async { + inputContinuation?.finish() + inputContinuation = nil + var emulatorExitConfirmed = true + if let paths { + let ownedPID = discovery?.processIdentifier ?? expectedSessionMarker.flatMap(Self.findOwnedEmulatorPID) + let ownedProcessExists = ownedPID.map(Self.processExists) ?? false + let ownsRunningEmulator = ownedPID.map { + ownedProcessExists && Self.processMatchesLaunchedIdentity($0, sessionMarker: expectedSessionMarker) + } ?? false + if ownsRunningEmulator { + recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "session_end") + } + stopLogcatCapture() + if let ownedPID, ownsRunningEmulator { + _ = try? Self.runCommand( + paths.adb, + ["-P", "5038", "-s", "emulator-5582", "emu", "kill"], + environment: Self.adbEnvironment(paths: paths), + timeout: 15 + ) + emulatorExitConfirmed = await waitForOwnedEmulatorExit(ownedPID) + } else if let ownedPID, ownedProcessExists { + emulatorExitConfirmed = false + telemetry?.recordEvent("EMULATOR_KILL_WITHHELD", payload: [ + "pid": ownedPID, + "reason": "process no longer matches this session ownership marker" + ]) + } else if ownedPID != nil { + emulatorExitConfirmed = true + } + telemetry?.recordEvent( + emulatorExitConfirmed ? "EMULATOR_EXIT_CONFIRMED" : "EMULATOR_EXIT_TIMEOUT", + payload: ["pid": ownedPID ?? 0, "serial": "emulator-5582", "owned": ownsRunningEmulator] + ) + } + if openProcess?.isRunning == true { openProcess?.terminate() } + openProcess = nil + var avdRestoreConfirmed = avdTransaction == nil + if let transaction = avdTransaction { + do { + guard emulatorExitConfirmed else { + throw TFTMACRuntimeError("AVD restore was withheld because the emulator exit was not confirmed.") + } + guard !Self.anyEmulatorUsingSharedAVD() else { + throw TFTMACRuntimeError("AVD restore was withheld because another TFT_Ultra_Tablet process is active.") + } + try transaction.restore() + avdRestoreConfirmed = true + telemetry?.recordEvent("AVD_CONFIG_RESTORED", payload: ["sha256": transaction.originalSHA256]) + } catch { + telemetry?.recordEvent("AVD_CONFIG_RESTORE_FAILED", payload: ["error": error.localizedDescription]) + } + } + avdTransaction = nil + let sealedStatus = finalStatus == "STOPPED" && emulatorExitConfirmed && avdRestoreConfirmed ? "STOPPED" : "FAILED" + telemetry?.finish(status: sealedStatus) + runtimeLease?.release() + runtimeLease = nil + await status(sealedStatus == "STOPPED" ? "TFTMAC stopped cleanly." : "TFTMAC needs attention.", sealedStatus == "FAILED") + } + + private func startLogcatCapture(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) throws { + guard logcatProcess == nil else { return } + let outputURL = telemetry.captureDirectory.appendingPathComponent("logcat.raw.txt") + let errorURL = telemetry.captureDirectory.appendingPathComponent("logcat.stderr.log") + let sessionStartSelector = try Self.adb( + paths: paths, + ["shell", "date '+%m-%d %H:%M:%S.%3N'"], + timeout: 10 + ).output.trimmingCharacters(in: .whitespacesAndNewlines) + guard Self.firstRegexText("^([0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3})$", in: sessionStartSelector) != nil else { + throw TFTMACRuntimeError("Android did not provide a valid session boundary for local logcat capture.") + } + FileManager.default.createFile(atPath: outputURL.path, contents: nil, attributes: [.posixPermissions: 0o600]) + FileManager.default.createFile(atPath: errorURL.path, contents: nil, attributes: [.posixPermissions: 0o600]) + let outputHandle = try FileHandle(forWritingTo: outputURL) + let errorHandle = try FileHandle(forWritingTo: errorURL) + let process = Process() + process.executableURL = paths.adb + process.arguments = ["-P", "5038", "-s", "emulator-5582", "logcat", "-v", "threadtime", "-T", sessionStartSelector] + process.environment = Self.adbEnvironment(paths: paths) + process.standardOutput = outputHandle + process.standardError = errorHandle + do { + try process.run() + } catch { + try? outputHandle.close() + try? errorHandle.close() + throw error + } + logcatProcess = process + logcatOutputHandle = outputHandle + logcatErrorHandle = errorHandle + logcatReadOffset = 0 + telemetry.recordEvent("LOGCAT_CAPTURE_STARTED", payload: [ + "format": "threadtime", + "raw_file": outputURL.lastPathComponent, + "stderr_file": errorURL.lastPathComponent, + "raw_content_local_only": true, + "raw_content_sensitive": true, + "raw_content_excluded_from_sql": true, + "session_start_selector": sessionStartSelector, + "initial_backlog_lines_requested": 0, + "process_pid": process.processIdentifier + ]) + } + + private func stopLogcatCapture() { + guard let process = logcatProcess else { return } + if process.isRunning { + process.terminate() + let deadline = Date().addingTimeInterval(2) + while process.isRunning && Date() < deadline { Thread.sleep(forTimeInterval: 0.02) } + if process.isRunning { Darwin.kill(process.processIdentifier, SIGKILL) } + process.waitUntilExit() + } + try? logcatOutputHandle?.synchronize() + try? logcatErrorHandle?.synchronize() + try? logcatOutputHandle?.close() + try? logcatErrorHandle?.close() + telemetry?.recordEvent("LOGCAT_CAPTURE_STOPPED", payload: [ + "termination_status": process.terminationStatus, + "final_read_offset": String(logcatReadOffset) + ]) + logcatProcess = nil + logcatOutputHandle = nil + logcatErrorHandle = nil + } + + private func waitForOwnedEmulatorExit(_ processIdentifier: Int32) async -> Bool { + let deadline = Date().addingTimeInterval(30) + while Date() < deadline { + if !Self.processExists(processIdentifier) { return true } + try? await Task.sleep(for: .milliseconds(250)) + } + return false + } + + private func assertRuntimeUnoccupied(telemetry: TFTMACNativeTelemetry) throws { + let processOutput = (try? Self.runCommand( + URL(fileURLWithPath: "/bin/ps"), + ["-axo", "pid=,command="], + timeout: 10 + ).output) ?? "" + let emulatorConflicts = processOutput.split(whereSeparator: \.isNewline).filter { line in + line.contains("qemu-system-aarch64") + && (line.contains("@TFT_Ultra_Tablet") || line.contains("-port 5582") || line.contains("-grpc 8554")) + } + let listenerOutput = (try? Self.runCommand( + URL(fileURLWithPath: "/usr/sbin/lsof"), + ["-nP", "-iTCP:5582", "-iTCP:8554", "-sTCP:LISTEN"], + timeout: 10 + ).output) ?? "" + let listeners = listenerOutput.split(whereSeparator: \.isNewline).dropFirst() + guard emulatorConflicts.isEmpty && listeners.isEmpty else { + throw TFTMACRuntimeError("The shared TFT_Ultra_Tablet runtime or ports 5582/8554 are already in use. Close the existing emulator before launching TFTMAC.") + } + telemetry.recordEvent("RUNTIME_OWNERSHIP_PREFLIGHT_PASSED", payload: [ + "avd": "TFT_Ultra_Tablet", + "console_port": 5582, + "controller_port": 8554, + "existing_emulator_count": 0, + "existing_listener_count": 0 + ]) + } + + private func recordFrozenReceipts(telemetry: TFTMACNativeTelemetry, paths: TFTMACRuntimePaths) { + let receipts: [(String, String, String, String)] = [ + ("engine", "Unreal Engine", "user_locked_fact", "LOCKED"), + ("runtime_profile_id", profile.identifier, "validated native preferences", "DIRECT"), + ("launcher_method", "/usr/bin/open -n -W --env ... --args ...", "Mactician donor architecture", "DIRECT"), + ("adb_server_port", "5038", "known-good donor", "DIRECT"), + ("emulator_console_port", "5582", "known-good donor", "DIRECT"), + ("adb_serial", "emulator-5582", "known-good donor", "DIRECT"), + ("controller_port", "\(profile.controllerPort)", "native authenticated controller", "REQUESTED"), + ("adb_vendor_keys", "ABSENT", "launch environment contract", "DIRECT"), + ("avd", "TFT_Ultra_Tablet", "installed runtime", "DIRECT"), + ("resolution", "\(profile.width)x\(profile.height)", "5 GiB gameplay evidence", "DIRECT"), + ("density_dpi", "\(profile.densityDPI)", "5 GiB gameplay evidence", "DIRECT"), + ("refresh_hz", "\(profile.refreshHz)", "5 GiB gameplay evidence", "DIRECT"), + ("vcpu", "\(profile.vCPU)", "5 GiB gameplay evidence", "DIRECT"), + ("ram_mib", "\(profile.ramMiB)", "latest retained 5 GiB runs", "STRONG"), + ("gpu_mode", profile.gpuMode, "playable baseline", "DIRECT"), + ("audio_backend", profile.audioBackend, "audio health receipt", "DIRECT"), + ("graphics_transport_requested", profile.graphicsTransport, "playable baseline", "REQUESTED"), + ("angle_enabled_requested", profile.angleEnabledFeatures, "playable baseline", "REQUESTED"), + ("angle_disabled_requested", profile.angleDisabledFeatures, "playable baseline", "REQUESTED"), + ("frame_transport", "raw_grpc_rgba8888", "native admission path", "DIRECT"), + ("raw_logcat_policy", "LOCAL_SENSITIVE_SESSION_SCOPED_NOT_FOR_SHARING", "privacy contract", "LOCKED"), + ("sdk_root", paths.sdkRoot.path, "filesystem discovery", "DIRECT") + ] + for receipt in receipts { + telemetry.recordReceipt(key: receipt.0, value: receipt.1, source: receipt.2, confidence: receipt.3) + } + } + + private func startADBServer(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) throws { + let result = try Self.runCommand( + paths.adb, + ["-P", "5038", "start-server"], + environment: Self.adbEnvironment(paths: paths), + timeout: 30 + ) + guard result.status == 0 else { + throw TFTMACRuntimeError("ADB server 5038 could not start: \(result.output.suffix(1200))") + } + telemetry.recordEvent("ADB_SERVER_STARTED", payload: [ + "port": 5038, + "serial": "emulator-5582", + "adb_vendor_keys_present": false, + "output": result.output.suffix(2000).description + ]) + } + + private func launchEmulatorHost(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) throws { + let stdout = telemetry.captureDirectory.appendingPathComponent("emulator.stdout.log") + let stderr = telemetry.captureDirectory.appendingPathComponent("emulator.stderr.log") + FileManager.default.createFile(atPath: stdout.path, contents: nil) + FileManager.default.createFile(atPath: stderr.path, contents: nil) + for root in Self.controllerDiscoveryRoots(paths: paths) { + try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true) + } + expectedSessionMarker = "androidboot.tftmac.session=\(telemetry.sessionIdentifier)" + var arguments = [ + "-n", "-W", + "--env", "TFT_EMULATOR=\(paths.emulator.path)", + "--env", "TFT_ADB_SERVER_PORT=5038", + "--env", "ANDROID_ADB_SERVER_PORT=5038", + "--env", "ADB_MDNS_AUTO_CONNECT=", + "--env", "ADB_SERVER_SOCKET=", + "--env", "ANDROID_ADB_SERVER_ADDRESS=", + "--env", "ANDROID_SDK_ROOT=\(paths.sdkRoot.path)", + "--env", "ANDROID_AVD_HOME=\(paths.avdHome.path)", + "--env", "ANDROID_EMULATOR_USE_SYSTEM_LIBS=0", + "--env", "ANGLE_FEATURE_OVERRIDES_ENABLED=\(profile.angleEnabledFeatures)", + "--env", "ANGLE_FEATURE_OVERRIDES_DISABLED=\(profile.angleDisabledFeatures)", + "--env", "MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=0", + "--env", "MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE=64", + "--env", "MVK_CONFIG_FAST_MATH_ENABLED=1", + "--env", "TFT_HOST_STDOUT=\(stdout.path)", + "--env", "TFT_HOST_STDERR=\(stderr.path)", + paths.hostApplication.path, + "--args", + "@TFT_Ultra_Tablet", "-id", "TFTMAC", "-port", "5582", + "-gpu", profile.gpuMode, "-audio", profile.audioBackend, + "-feature", "GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts", + "-append-userspace-opt", "androidboot.opengles.version=196610", + "-append-userspace-opt", "androidboot.tftmac.graphics_profile=tftmac", + "-append-userspace-opt", expectedSessionMarker!, + "-skin", "\(profile.width)x\(profile.height)", + "-vsync-rate", "\(profile.refreshHz)", + "-dns-server", "1.1.1.1,8.8.8.8", + "-cores", "\(profile.vCPU)", "-memory", "\(profile.ramMiB)", + "-no-hidpi-scaling", "-no-snapshot", "-no-metrics", "-no-boot-anim", + "-crash-report-mode", "disabled", "-qt-hide-window", + "-grpc", "\(profile.controllerPort)", "-grpc-use-token", + "-idle-grpc-timeout", "300" + ] + if let zone = TimeZone.current.identifier.addingPercentEncoding(withAllowedCharacters: .alphanumerics), !zone.isEmpty { + arguments += ["-timezone", TimeZone.current.identifier] + } + let process = Process() + process.executableURL = URL(fileURLWithPath: "/usr/bin/open") + process.arguments = arguments + var environment = ProcessInfo.processInfo.environment + environment.removeValue(forKey: "ADB_VENDOR_KEYS") + process.environment = environment + try process.run() + openProcess = process + telemetry.recordEvent("EMULATOR_HOST_LAUNCHED", payload: [ + "method": "/usr/bin/open", + "flags": ["-n", "-W", "--env", "--args"], + "host_application": paths.hostApplication.path, + "open_pid": process.processIdentifier, + "adb_vendor_keys_present": false, + "controller_discovery_roots": Self.controllerDiscoveryRoots(paths: paths).map(\.path), + "emulator_arguments": Array(arguments.suffix(from: arguments.firstIndex(of: "--args") ?? arguments.startIndex).dropFirst()) + ]) + } + + private func waitForDiscovery(paths: TFTMACRuntimePaths, captureDirectory: URL, after launchStarted: Date) async throws -> EmulatorControllerDiscovery { + let logURL = captureDirectory.appendingPathComponent("emulator.stdout.log") + let deadline = Date().addingTimeInterval(90) + var candidates = [URL]() + while Date() < deadline { + try Task.checkCancellation() + if let log = try? String(contentsOf: logURL, encoding: .utf8) { + for line in log.split(whereSeparator: \.isNewline) { + guard let range = line.range(of: "Advertising in:") else { continue } + let path = line[range.upperBound...].trimmingCharacters(in: .whitespaces) + if !path.isEmpty { + let candidate = URL(fileURLWithPath: path) + if !candidates.contains(candidate) { candidates.append(candidate) } + } + } + } + for root in Self.controllerDiscoveryRoots(paths: paths) { + if let files = try? FileManager.default.contentsOfDirectory( + at: root, + includingPropertiesForKeys: [.contentModificationDateKey], + options: [.skipsHiddenFiles] + ) { + for file in files where file.lastPathComponent.hasPrefix("pid_") && file.pathExtension == "ini" { + if !candidates.contains(file) { candidates.append(file) } + } + } + } + for candidate in candidates where FileManager.default.fileExists(atPath: candidate.path) { + let modified = try? candidate.resourceValues(forKeys: [.contentModificationDateKey]).contentModificationDate + guard modified == nil || modified! >= launchStarted.addingTimeInterval(-2) else { continue } + guard let text = try? String(contentsOf: candidate, encoding: .utf8) else { continue } + let values = Self.parseINI(text) + guard let rawPort = values["grpc.port"], let port = Int(rawPort), port > 0, + let token = values["grpc.token"], !token.isEmpty else { continue } + let name = candidate.deletingPathExtension().lastPathComponent + let pidText = name.dropFirst("pid_".count).prefix(while: \.isNumber) + guard let pid = Int32(pidText), Self.processMatchesLaunchedIdentity(pid, sessionMarker: expectedSessionMarker) else { continue } + return EmulatorControllerDiscovery(processIdentifier: pid, port: port, token: token, recordPath: candidate.path) + } + try await Task.sleep(for: .milliseconds(200)) + } + throw TFTMACRuntimeError("The emulator did not publish its authenticated controller endpoint.") + } + + private func waitForBootAndLaunchGame(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) async throws { + await status("Waiting for the proven ADB identity on emulator-5582…", false) + var lastState = "missing" + var previouslyLoggedState: String? + while !stopping { + try Task.checkCancellation() + let result = try? Self.runCommand( + paths.adb, + ["-P", "5038", "-s", "emulator-5582", "get-state"], + environment: Self.adbEnvironment(paths: paths), + timeout: 10 + ) + let diagnostic = result?.output.trimmingCharacters(in: .whitespacesAndNewlines) ?? "" + if result?.status == 0 && diagnostic == "device" { + lastState = "device" + } else if diagnostic.localizedCaseInsensitiveContains("unauthorized") { + lastState = "unauthorized" + } else if diagnostic.localizedCaseInsensitiveContains("offline") { + lastState = "offline" + } else { + lastState = "missing" + } + if lastState != previouslyLoggedState { + telemetry.recordEvent("ADB_STATE_CHANGED", payload: [ + "previous_state": previouslyLoggedState ?? "none", + "current_state": lastState, + "serial": "emulator-5582", + "diagnostic": String(diagnostic.prefix(800)) + ]) + if lastState == "unauthorized" { + telemetry.recordEvent("ADB_UNAUTHORIZED_OBSERVED", payload: [ + "serial": "emulator-5582", + "authorization_is_user_controlled": true + ]) + await status("ADB authorization required — press Fn-F12 if Android is asleep, unlock it, then choose Always allow and Allow.", false) + } else if lastState == "offline" { + await status("Android is booting; ADB is temporarily offline…", false) + } else if lastState == "missing" { + await status("Waiting for emulator-5582 to appear on ADB 5038…", false) + } + previouslyLoggedState = lastState + } + if lastState == "device" { break } + try await Task.sleep(for: .seconds(1)) + } + try Task.checkCancellation() + guard lastState == "device" else { + throw TFTMACRuntimeError("ADB emulator-5582 did not authorize in the logged-in Mac session (last state: \(lastState)).") + } + telemetry.recordEvent("ADB_DEVICE_AUTHORIZED", payload: ["port": 5038, "serial": "emulator-5582"]) + try startLogcatCapture(paths: paths, telemetry: telemetry) + + let bootDeadline = Date().addingTimeInterval(300) + var bootCompleted = false + while Date() < bootDeadline { + try Task.checkCancellation() + let booted = try Self.adb(paths: paths, ["shell", "getprop", "sys.boot_completed"], timeout: 10).output + .trimmingCharacters(in: .whitespacesAndNewlines) + if booted == "1" { + bootCompleted = true + break + } + try await Task.sleep(for: .seconds(1)) + } + guard bootCompleted else { + throw TFTMACRuntimeError("Android did not finish booting before the five-minute deadline.") + } + _ = try? Self.adb(paths: paths, ["shell", "input", "keyevent", "KEYCODE_WAKEUP"], timeout: 10) + _ = try? Self.adb(paths: paths, ["shell", "settings", "put", "global", "stay_on_while_plugged_in", "7"], timeout: 10) + var manualUnlockRequired = false + while !stopping { + try Task.checkCancellation() + let user = try Self.adb(paths: paths, ["shell", "dumpsys", "user"], timeout: 15).output + if user.contains("RUNNING_UNLOCKED") { break } + if !manualUnlockRequired { + manualUnlockRequired = true + telemetry.recordEvent("GUEST_SECURE_UNLOCK_REQUIRED", payload: [ + "user": 0, + "pin_entry": "manual_only", + "credential_logged": false + ]) + await status("Android is securely locked. Click here, type your Android PIN, then press Return. TFTMAC never stores it.", false) + } + try await Task.sleep(for: .seconds(1)) + } + try Task.checkCancellation() + telemetry.recordEvent("GUEST_UNLOCKED", payload: [ + "user": 0, + "manual_unlock_was_required": manualUnlockRequired + ]) + let package = "com.riotgames.league.teamfighttactics" + let packageDump = try Self.adb(paths: paths, ["shell", "dumpsys", "package", package], timeout: 30).output + guard packageDump.contains("Package [\(package)]") || packageDump.contains("versionName=") else { + throw TFTMACRuntimeError("Official TFT is not installed. Open Google Play in Android and install Teamfight Tactics.") + } + let installer = try? Self.adb(paths: paths, ["shell", "cmd", "package", "get-install-source", package], timeout: 15).output + telemetry.recordEvent("OFFICIAL_TFT_PACKAGE_RECEIPT", payload: [ + "package": package, + "installer_output": installer?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "unknown", + "version_line": packageDump.split(whereSeparator: \.isNewline).first(where: { $0.contains("versionName=") }).map(String.init) ?? "unknown" + ]) + try await Task.sleep(for: .milliseconds(750)) + guard logcatProcess?.isRunning == true, + Self.fileSize(telemetry.captureDirectory.appendingPathComponent("logcat.raw.txt")) > 0 else { + throw TFTMACRuntimeError("The required local logcat recorder did not become healthy before TFT launch.") + } + telemetry.recordEvent("LOGGER_HEALTH_GATE_PASSED", payload: [ + "logcat_growing": true, + "resource_sampler_active": true, + "sql_database": "TFTMAC_NATIVE_RUNTIME.sqlite" + ]) + recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "before_tft_launch") + + let resolved = try? Self.adb( + paths: paths, + ["shell", "cmd", "package", "resolve-activity", "--brief", "-a", "android.intent.action.MAIN", "-c", "android.intent.category.LAUNCHER", package], + timeout: 20 + ).output.split(whereSeparator: \.isNewline).last.map(String.init) + var launched = false + for component in [resolved, "\(package)/com.epicgames.unreal.SplashActivity", "\(package)/com.epicgames.unreal.GameActivity"].compactMap({ $0 }) { + let result = try? Self.adb(paths: paths, ["shell", "am", "start", "-W", "-n", component], timeout: 45) + if result?.status == 0 { + launched = true + telemetry.recordEvent("TFT_LAUNCH_REQUESTED", payload: ["component": component]) + break + } + } + guard launched else { throw TFTMACRuntimeError("Android could not launch the official TFT activity.") } + telemetry.recordEvent("TFT_READY_FOR_USER", payload: [ + "engine": "Unreal Engine", + "resolution": "1920x1080", + "refresh_hz": profile.refreshHz, + "audio_backend": "coreaudio", + "profile_id": profile.identifier + ]) + telemetry.markRunning() + await status("", false) + while !stopping { + try Task.checkCancellation() + try await Task.sleep(for: .seconds(1)) + } + } + + private func sampleRuntime(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry, emulatorPID: Int32) async throws { + var previousGamePID: Int32? + var sampleIndex = 0 + while !stopping { + try Task.checkCancellation() + let ps = try? Self.runCommand( + URL(fileURLWithPath: "/bin/ps"), + ["-o", "%cpu=,rss=", "-p", "\(emulatorPID)"], + timeout: 10 + ).output.trimmingCharacters(in: .whitespacesAndNewlines) + let pieces = ps?.split(whereSeparator: \.isWhitespace) ?? [] + let cpu = pieces.first.flatMap { Double($0) } + let rss = pieces.dropFirst().first.flatMap { Int64($0) } + let pidText = try? Self.adb(paths: paths, ["shell", "pidof", "com.riotgames.league.teamfighttactics"], timeout: 10).output + .trimmingCharacters(in: .whitespacesAndNewlines) + let gamePID = pidText?.split(separator: " ").first.flatMap { Int32($0) } + let activity = try? Self.adb(paths: paths, ["shell", "dumpsys", "activity", "activities"], timeout: 15).output + .split(whereSeparator: \.isNewline) + .first(where: { $0.contains("mResumedActivity") || $0.contains("topResumedActivity") }) + .map(String.init) ?? "unknown" + telemetry.recordResourceSample( + emulatorPID: emulatorPID, + emulatorCPU: cpu, + emulatorRSSKiB: rss, + gamePID: gamePID, + topActivity: activity ?? "unknown" + ) + if let memoryOutput = try? Self.adb(paths: paths, ["shell", "cat", "/proc/meminfo"], timeout: 10).output, + let memory = Self.parseGuestMemory(memoryOutput) { + telemetry.recordGuestMemory(memory) + } + let logcatURL = telemetry.captureDirectory.appendingPathComponent("logcat.raw.txt") + if let aggregate = Self.readLogcatAggregate(url: logcatURL, from: &logcatReadOffset) { + telemetry.recordLogcatAggregate(aggregate) + } + if gamePID != previousGamePID { + let previousValue: Any = previousGamePID.map { NSNumber(value: $0) } ?? NSNull() + let currentValue: Any = gamePID.map { NSNumber(value: $0) } ?? NSNull() + telemetry.recordEvent(gamePID == nil ? "TFT_PROCESS_ENDED" : "TFT_PROCESS_STARTED", payload: [ + "previous_pid": previousValue, + "current_pid": currentValue + ]) + telemetry.recordGameProcessTransition(previousPID: previousGamePID, currentPID: gamePID) + previousGamePID = gamePID + } + if sampleIndex.isMultiple(of: 6) { + recordClockSync(paths: paths, telemetry: telemetry) + if gamePID != nil { + recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "gameplay_periodic") + } + } + sampleIndex += 1 + try await Task.sleep(for: .seconds(5)) + } + } + + private func recordClockSync(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) { + let hostT0 = DispatchTime.now().uptimeNanoseconds + guard let output = try? Self.adb(paths: paths, ["shell", "cat", "/proc/uptime"], timeout: 10).output, + let seconds = output.split(whereSeparator: \.isWhitespace).first.flatMap({ Double($0) }) else { return } + let hostT1 = DispatchTime.now().uptimeNanoseconds + let guestNS = UInt64(max(0, seconds) * 1_000_000_000) + telemetry.recordClockSync(hostT0NS: hostT0, guestUptimeNS: guestNS, hostT1NS: hostT1) + } + + private func recordDiagnosticSnapshot(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry?, label: String) { + guard let telemetry else { return } + if let output = try? Self.adb(paths: paths, ["shell", "dumpsys", "SurfaceFlinger"], timeout: 20).output, + let sample = Self.parseSurfaceFlinger(output) { + telemetry.recordSurfaceFlinger(sample, label: label) + } + if let output = try? Self.adb(paths: paths, ["shell", "dumpsys", "media.audio_flinger"], timeout: 20).output, + let sample = Self.parseAudioFlinger(output) { + telemetry.recordAudioFlinger(sample, label: label) + } + } + + nonisolated private static func fileSize(_ url: URL) -> UInt64 { + guard let attributes = try? FileManager.default.attributesOfItem(atPath: url.path), + let size = attributes[.size] as? NSNumber else { return 0 } + return size.uint64Value + } + + nonisolated private static func parseGuestMemory(_ output: String) -> GuestMemorySample? { + var values = [String: Int64]() + for line in output.split(whereSeparator: \.isNewline) { + let pair = line.split(separator: ":", maxSplits: 1) + guard pair.count == 2, + let value = pair[1].split(whereSeparator: \.isWhitespace).first.flatMap({ Int64($0) }) else { continue } + values[String(pair[0])] = value + } + guard let total = values["MemTotal"], let available = values["MemAvailable"] ?? values["MemFree"] else { return nil } + return GuestMemorySample( + totalKiB: total, + availableKiB: available, + swapTotalKiB: values["SwapTotal"], + swapFreeKiB: values["SwapFree"] + ) + } + + nonisolated private static func parseSurfaceFlinger(_ output: String) -> SurfaceFlingerSample? { + let renderRate = firstRegexDouble("renderRate=([0-9.]+)\\s*Hz", in: output) + let totalMissed = firstRegexInt("Total missed frame count:\\s*([0-9]+)", in: output) + let hwcMissed = firstRegexInt("HWC missed frame count:\\s*([0-9]+)", in: output) + let gpuMissed = firstRegexInt("GPU missed frame count:\\s*([0-9]+)", in: output) + let requestedRates = regexDoubles( + "com\\.riotgames\\.league\\.teamfighttactics[^\\n]*requestedFrameRate:\\s*\\{([0-9.]+)\\s*Hz", + in: output + ) + guard renderRate != nil || totalMissed != nil || hwcMissed != nil || gpuMissed != nil else { return nil } + return SurfaceFlingerSample( + renderRateHz: renderRate, + totalMissedFrames: totalMissed, + hwcMissedFrames: hwcMissed, + gpuMissedFrames: gpuMissed, + tftRequestedRateHz: requestedRates.max() + ) + } + + nonisolated private static func parseAudioFlinger(_ output: String) -> AudioFlingerSample? { + let chunks = output.components(separatedBy: "Output thread ") + guard let activeChunk = chunks.first(where: { $0.contains("Standby: no") }) else { + return output.contains("Output thread ") + ? AudioFlingerSample( + activeOutput: false, sampleRateHz: nil, stereoOutput: false, + activeTracks: 0, partialUnderruns: nil, emptyUnderruns: nil + ) + : nil + } + let sampleRate = firstRegexInt("Sample rate:\\s*([0-9]+)\\s*Hz", in: activeChunk).map(Int.init) + let channelText = firstRegexText("Channel mask:[^\\n]*\\(([^)]*)\\)", in: activeChunk)?.lowercased() ?? "" + let stereo = (channelText.contains("front-left") && channelText.contains("front-right")) + || (channelText.contains("left") && channelText.contains("right")) + let activeTracks = firstRegexInt("[0-9]+ Tracks of which ([0-9]+) are active", in: activeChunk).map(Int.init) + return AudioFlingerSample( + activeOutput: true, + sampleRateHz: sampleRate, + stereoOutput: stereo, + activeTracks: activeTracks, + partialUnderruns: firstRegexInt("underrun counters:\\s*partial=([0-9]+)", in: activeChunk), + emptyUnderruns: firstRegexInt("underrun counters:[^\\n]*empty=([0-9]+)", in: activeChunk) + ) + } + + nonisolated private static func readLogcatAggregate(url: URL, from offset: inout UInt64) -> LogcatAggregate? { + let end = fileSize(url) + guard end > offset else { return nil } + let maximumReadBytes: UInt64 = 4 * 1024 * 1024 + let requestedStart = offset + let actualStart = end - min(end - requestedStart, maximumReadBytes) + let skipped = actualStart - requestedStart + guard let handle = try? FileHandle(forReadingFrom: url) else { return nil } + defer { try? handle.close() } + do { + try handle.seek(toOffset: actualStart) + let data = try handle.read(upToCount: Int(end - actualStart)) ?? Data() + offset = end + let text = String(decoding: data, as: UTF8.self) + let lines = text.split(whereSeparator: \.isNewline) + var anr = 0 + var inputTimeout = 0 + var fatal = 0 + var memoryKill = 0 + var choreographer = 0 + var angleWarning = 0 + var vulkanWarning = 0 + var audioError = 0 + for rawLine in lines { + let line = String(rawLine) + let lower = line.lowercased() + let warningOrError = lower.contains(" warning") || lower.contains(" error") + || lower.contains(" failed") || lower.contains(" fatal") + || line.contains(" W ") || line.contains(" E ") + if lower.contains("anr in com.riotgames.league.teamfighttactics") { anr += 1 } + if lower.contains("input dispatching timed out") || lower.contains("input timeout") { inputTimeout += 1 } + if lower.contains("com.riotgames.league.teamfighttactics") + && (lower.contains("fatal exception") || lower.contains("fatal signal") || lower.contains("signal 11")) { fatal += 1 } + if TelemetrySignalClassifier.isConfirmedGuestMemoryKill(line) { memoryKill += 1 } + if lower.contains("choreographer") && lower.contains("skipped") { choreographer += 1 } + if lower.contains("angle") && warningOrError { angleWarning += 1 } + if lower.contains("vulkan") && warningOrError { vulkanWarning += 1 } + if lower.contains("pcm_writei") && (warningOrError || lower.contains("underrun")) { audioError += 1 } + } + return LogcatAggregate( + byteStart: actualStart, byteEnd: end, skippedBytes: skipped, lineCount: lines.count, + anrCount: anr, inputTimeoutCount: inputTimeout, fatalCount: fatal, + memoryKillCount: memoryKill, choreographerSkipCount: choreographer, + angleWarningCount: angleWarning, vulkanWarningCount: vulkanWarning, + audioErrorCount: audioError + ) + } catch { + return nil + } + } + + nonisolated private static func firstRegexInt(_ pattern: String, in text: String) -> Int64? { + firstRegexText(pattern, in: text).flatMap(Int64.init) + } + + nonisolated private static func firstRegexDouble(_ pattern: String, in text: String) -> Double? { + firstRegexText(pattern, in: text).flatMap(Double.init) + } + + nonisolated private static func firstRegexText(_ pattern: String, in text: String) -> String? { + guard let regex = try? NSRegularExpression(pattern: pattern), + let match = regex.firstMatch(in: text, range: NSRange(text.startIndex..., in: text)), + match.numberOfRanges > 1, + let range = Range(match.range(at: 1), in: text) else { return nil } + return String(text[range]) + } + + nonisolated private static func regexDoubles(_ pattern: String, in text: String) -> [Double] { + guard let regex = try? NSRegularExpression(pattern: pattern) else { return [] } + return regex.matches(in: text, range: NSRange(text.startIndex..., in: text)).compactMap { match in + guard match.numberOfRanges > 1, let range = Range(match.range(at: 1), in: text) else { return nil } + return Double(text[range]) + } + } + + nonisolated private static func runController( + discovery: EmulatorControllerDiscovery, + profile: TFTMACRuntimeProfile, + mailbox: LatestFrameMailbox, + telemetry: TFTMACNativeTelemetry, + inputStream: AsyncStream, + status: @escaping StatusHandler + ) async throws { + let transport = try HTTP2ClientTransport.Posix( + target: .ipv4(address: "127.0.0.1", port: discovery.port), + transportSecurity: .plaintext + ) + try await withGRPCClient(transport: transport) { grpc in + let client = Android_Emulation_Control_EmulatorController.Client(wrapping: grpc) + let metadata: GRPCCore.Metadata = ["authorization": "Bearer \(discovery.token)"] + let statusRequest = GRPCCore.ClientRequest( + message: SwiftProtobuf.Google_Protobuf_Empty(), + metadata: metadata + ) + let emulatorStatus: Android_Emulation_Control_EmulatorStatus = try await client.getStatus( + request: statusRequest, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer() + ) + guard emulatorStatus.version.contains("37.1.11") else { + throw TFTMACRuntimeError("Unexpected Android Emulator version: \(emulatorStatus.version)") + } + telemetry.recordEvent("CONTROLLER_AUTHENTICATED", payload: [ + "version": emulatorStatus.version, + "booted": emulatorStatus.booted, + "cpu_cores": emulatorStatus.vmConfig.numberOfCpuCores, + "ram_mib": emulatorStatus.vmConfig.ramSizeBytes / 1024 / 1024 + ]) + + try await withThrowingTaskGroup(of: Void.self) { group in + group.addTask { + var requestFormat = Android_Emulation_Control_ImageFormat() + requestFormat.format = .rgba8888 + requestFormat.width = 0 + requestFormat.height = 0 + requestFormat.display = 0 + let request = GRPCCore.ClientRequest(message: requestFormat, metadata: metadata) + var callOptions = GRPCCore.CallOptions.defaults + callOptions.waitForReady = true + // grpc-swift-nio-transport 2.9.1 wires maxRequestMessageBytes + // into the HTTP/2 stream decoder's payload ceiling, so the + // pinned transport requires both limits for an 8.3 MB frame. + callOptions.maxRequestMessageBytes = 16 * 1024 * 1024 + callOptions.maxResponseMessageBytes = 16 * 1024 * 1024 + + let admission = NativeFrameAdmissionState(mailbox: mailbox, telemetry: telemetry) + let clock = ContinuousClock() + let firstFrameDeadline = clock.now.advanced(by: .seconds(120)) + var initialImage: Android_Emulation_Control_Image? + var recordedFrameWait = false + while initialImage == nil { + do { + initialImage = try await client.getScreenshot( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: callOptions + ) + } catch let error as GRPCCore.RPCError where error.code == .failedPrecondition { + if !recordedFrameWait { + telemetry.recordEvent("FIRST_NATIVE_FRAME_WAITING", payload: [ + "grpc_code": "failedPrecondition", + "reason": error.message, + "timeout_seconds": 120 + ]) + recordedFrameWait = true + } + guard clock.now < firstFrameDeadline else { + throw TFTMACRuntimeError("Timed out waiting for Android to post its first native frame.") + } + try await Task.sleep(for: .milliseconds(250)) + } + } + guard let initialImage else { + throw TFTMACRuntimeError("Android did not return an initial native frame.") + } + _ = try admission.admit(initialImage) + try await client.streamScreenshot( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer(), + options: callOptions + ) { response in + for try await image in response.messages { + try Task.checkCancellation() + _ = try admission.admit(image) + } + throw TFTMACRuntimeError("The authenticated screenshot stream ended unexpectedly.") + } + } + group.addTask { + for await input in inputStream { + try Task.checkCancellation() + switch input { + case .mouse(let mouse): + var event = Android_Emulation_Control_MouseEvent() + event.x = mouse.x + event.y = mouse.y + event.buttons = mouse.buttons + event.display = 0 + let request = GRPCCore.ClientRequest(message: event, metadata: metadata) + _ = try await client.sendMouse( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer() + ) + case .keyboard(let keyboard): + var event = Android_Emulation_Control_KeyboardEvent() + event.eventType = .keypress + if let key = keyboard.key { event.key = key } + else if let text = keyboard.text { event.text = text } + let request = GRPCCore.ClientRequest(message: event, metadata: metadata) + _ = try await client.sendKey( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer() + ) + } + } + } + _ = try await group.next() + group.cancelAll() + } + } + } + + private func prepareAVD(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) throws -> AVDConfigurationTransaction { + let transaction = try AVDConfigurationTransaction( + configURL: paths.avdConfig, + stateRoot: paths.applicationSupport.appendingPathComponent("State", isDirectory: true), + captureDirectory: telemetry.captureDirectory, + profile: profile + ) + telemetry.recordEvent("AVD_CONFIG_APPLIED", payload: [ + "original_sha256": transaction.originalSHA256, + "applied_sha256": transaction.appliedSHA256, + "reversible": true + ]) + return transaction + } + + private func recoverInterruptedAVDTransaction(paths: TFTMACRuntimePaths) throws { + try AVDConfigurationTransaction.recoverIfNeeded( + configURL: paths.avdConfig, + stateRoot: paths.applicationSupport.appendingPathComponent("State", isDirectory: true), + captureRoot: paths.applicationSupport.appendingPathComponent("Captures", isDirectory: true) + ) + } + + nonisolated private static func adbEnvironment(paths: TFTMACRuntimePaths) -> [String: String] { + var environment = ProcessInfo.processInfo.environment + environment.removeValue(forKey: "ADB_VENDOR_KEYS") + environment.removeValue(forKey: "ADB_SERVER_SOCKET") + environment.removeValue(forKey: "ANDROID_ADB_SERVER_ADDRESS") + environment["ANDROID_SDK_ROOT"] = paths.sdkRoot.path + environment["ANDROID_AVD_HOME"] = paths.avdHome.path + environment["ANDROID_ADB_SERVER_PORT"] = "5038" + environment["ADB_MDNS_AUTO_CONNECT"] = "" + return environment + } + + nonisolated private static func adb(paths: TFTMACRuntimePaths, _ arguments: [String], timeout: TimeInterval) throws -> ProcessResult { + let result = try runCommand( + paths.adb, + ["-P", "5038", "-s", "emulator-5582"] + arguments, + environment: adbEnvironment(paths: paths), + timeout: timeout + ) + guard result.status == 0 else { + throw TFTMACRuntimeError("ADB command failed: \(result.output.suffix(1200))") + } + return result + } + + nonisolated private static func runCommand( + _ executable: URL, + _ arguments: [String], + environment: [String: String]? = nil, + timeout: TimeInterval + ) throws -> ProcessResult { + let process = Process() + process.executableURL = executable + process.arguments = arguments + process.environment = environment + let pipe = Pipe() + process.standardOutput = pipe + process.standardError = pipe + try process.run() + let timeoutWork = DispatchWorkItem { + if process.isRunning { process.terminate() } + } + DispatchQueue.global().asyncAfter(deadline: .now() + timeout, execute: timeoutWork) + let data = pipe.fileHandleForReading.readDataToEndOfFile() + process.waitUntilExit() + timeoutWork.cancel() + let output = String(data: data, encoding: .utf8) ?? "" + return ProcessResult(status: process.terminationStatus, output: output) + } + + nonisolated private static func parseINI(_ text: String) -> [String: String] { + var result = [String: String]() + for line in text.split(whereSeparator: \.isNewline) { + let pair = line.split(separator: "=", maxSplits: 1).map(String.init) + if pair.count == 2 { + result[pair[0].trimmingCharacters(in: .whitespaces)] = pair[1].trimmingCharacters(in: .whitespaces) + } + } + return result + } + + nonisolated private static func processExists(_ processIdentifier: Int32) -> Bool { + if Darwin.kill(processIdentifier, 0) == 0 { return true } + return errno != ESRCH + } + + nonisolated private static func processMatchesLaunchedIdentity( + _ processIdentifier: Int32, + sessionMarker: String? = nil + ) -> Bool { + guard processExists(processIdentifier), + let result = try? runCommand( + URL(fileURLWithPath: "/bin/ps"), + ["-p", "\(processIdentifier)", "-ww", "-o", "command="], + timeout: 5 + ), result.status == 0 else { return false } + let baseIdentityMatches = result.output.contains("qemu-system-aarch64") + && result.output.contains("@TFT_Ultra_Tablet") + && result.output.contains("-port 5582") + return baseIdentityMatches && (sessionMarker.map(result.output.contains) ?? true) + } + + nonisolated private static func findOwnedEmulatorPID(sessionMarker: String) -> Int32? { + guard let result = try? runCommand( + URL(fileURLWithPath: "/bin/ps"), + ["-axo", "pid=,command="], + timeout: 10 + ), result.status == 0 else { return nil } + for line in result.output.split(whereSeparator: \.isNewline) { + guard line.contains("qemu-system-aarch64"), + line.contains("@TFT_Ultra_Tablet"), + line.contains(sessionMarker), + let pid = line.split(whereSeparator: \.isWhitespace).first.flatMap({ Int32($0) }) else { continue } + return pid + } + return nil + } + + nonisolated private static func anyEmulatorUsingSharedAVD() -> Bool { + guard let result = try? runCommand( + URL(fileURLWithPath: "/bin/ps"), + ["-axo", "command="], + timeout: 10 + ), result.status == 0 else { return true } + return result.output.split(whereSeparator: \.isNewline).contains { line in + line.contains("qemu-system-aarch64") && line.contains("@TFT_Ultra_Tablet") + } + } + + nonisolated private static func controllerDiscoveryRoots(paths: TFTMACRuntimePaths) -> [URL] { + let home = FileManager.default.homeDirectoryForCurrentUser + let candidates = [ + home.appendingPathComponent("Library/Caches/TemporaryItems/avd/running", isDirectory: true), + FileManager.default.temporaryDirectory.appendingPathComponent("avd/running", isDirectory: true), + paths.avdHome.appendingPathComponent("running", isDirectory: true), + home.appendingPathComponent(".android/avd/running", isDirectory: true) + ] + var unique = [URL]() + for candidate in candidates where !unique.contains(candidate) { unique.append(candidate) } + return unique + } +} + +private struct ProcessResult: Sendable { + let status: Int32 + let output: String +} + +private final class AVDConfigurationTransaction: @unchecked Sendable { + let originalSHA256: String + let appliedSHA256: String + + private let configURL: URL + private let backupURL: URL + private let markerURL: URL + + init( + configURL: URL, + stateRoot: URL, + captureDirectory: URL, + profile: TFTMACRuntimeProfile + ) throws { + try FileManager.default.createDirectory(at: stateRoot, withIntermediateDirectories: true) + self.configURL = configURL + backupURL = captureDirectory.appendingPathComponent("avd-config.before.ini") + markerURL = stateRoot.appendingPathComponent("avd-config-transaction.json") + let original = try Data(contentsOf: configURL) + originalSHA256 = Self.sha256(original) + try original.write(to: backupURL, options: .atomic) + var config = String(decoding: original, as: UTF8.self) + let values: [String: String] = [ + "hw.cpu.ncore": "\(profile.vCPU)", + "hw.ramSize": "\(profile.ramMiB)", + "hw.lcd.width": "\(profile.width)", + "hw.lcd.height": "\(profile.height)", + "hw.lcd.density": "\(profile.densityDPI)", + "hw.gpu.enabled": "yes", + "hw.gpu.mode": profile.gpuMode, + "hw.gltransport": profile.graphicsTransport, + "hw.gltransport.drawFlushInterval": "\(profile.asgDrawFlushInterval)", + "hw.gltransport.asg.writeBufferSize": "\(profile.asgWriteBufferSize)", + "hw.gltransport.asg.writeStepSize": "\(profile.asgWriteStepSize)", + "hw.gltransport.asg.dataRingSize": "\(profile.asgDataRingSize)", + "showDeviceFrame": "no", + "skin.name": "\(profile.width)x\(profile.height)", + "fastboot.forceColdBoot": "yes", + "fastboot.forceFastBoot": "no" + ] + for (key, value) in values { config = Self.setting(key: key, value: value, in: config) } + let applied = Data(config.utf8) + appliedSHA256 = Self.sha256(applied) + let marker: [String: Any] = [ + "schema": 1, + "config": configURL.path, + "backup": backupURL.path, + "original_sha256": originalSHA256, + "applied_sha256": appliedSHA256 + ] + let markerData = try JSONSerialization.data(withJSONObject: marker, options: [.prettyPrinted, .sortedKeys]) + try markerData.write(to: markerURL, options: .atomic) + try applied.write(to: configURL, options: .atomic) + } + + func restore() throws { + let original = try Data(contentsOf: backupURL) + guard Self.sha256(original) == originalSHA256 else { + throw TFTMACRuntimeError("The AVD backup hash changed; automatic restore stopped safely.") + } + let current = try Data(contentsOf: configURL) + let currentSHA256 = Self.sha256(current) + let decision = try AVDTransactionGuard.restoreDecision( + currentSHA256: currentSHA256, + originalSHA256: originalSHA256, + appliedSHA256: appliedSHA256 + ) + if decision == .alreadyOriginal { + try? FileManager.default.removeItem(at: markerURL) + return + } + try original.write(to: configURL, options: .atomic) + try? FileManager.default.removeItem(at: markerURL) + } + + static func recoverIfNeeded(configURL expectedConfigURL: URL, stateRoot: URL, captureRoot: URL) throws { + let markerURL = stateRoot.appendingPathComponent("avd-config-transaction.json") + guard let data = try? Data(contentsOf: markerURL), + let marker = try? JSONSerialization.jsonObject(with: data) as? [String: Any], + let config = marker["config"] as? String, + let backup = marker["backup"] as? String, + let expected = marker["original_sha256"] as? String, + let applied = marker["applied_sha256"] as? String else { return } + let markerConfigURL = URL(fileURLWithPath: config) + let backupURL = URL(fileURLWithPath: backup) + try AVDTransactionGuard.validateRecoveryPaths( + markerConfigURL: markerConfigURL, + expectedConfigURL: expectedConfigURL, + backupURL: backupURL, + captureRoot: captureRoot + ) + let backupData = try Data(contentsOf: backupURL) + guard sha256(backupData) == expected else { + throw TFTMACRuntimeError("A prior AVD transaction backup failed its hash check.") + } + let currentData = try Data(contentsOf: expectedConfigURL) + let currentSHA256 = sha256(currentData) + let decision = try AVDTransactionGuard.restoreDecision( + currentSHA256: currentSHA256, + originalSHA256: expected, + appliedSHA256: applied + ) + if decision == .alreadyOriginal { + try FileManager.default.removeItem(at: markerURL) + return + } + try backupData.write(to: expectedConfigURL, options: .atomic) + try FileManager.default.removeItem(at: markerURL) + } + + private static func setting(key: String, value: String, in text: String) -> String { + var lines = text.split(separator: "\n", omittingEmptySubsequences: false).map(String.init) + if let index = lines.firstIndex(where: { $0.hasPrefix("\(key)=") }) { + lines[index] = "\(key)=\(value)" + } else { + lines.append("\(key)=\(value)") + } + return lines.joined(separator: "\n") + } + + private static func sha256(_ data: Data) -> String { + SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() + } +} + +@MainActor +final class TFTMACRuntimeController { + private let service: TFTMACRuntimeService + private var runTask: Task? + private(set) var failed = false + + init(profile: TFTMACRuntimeProfile, mailbox: LatestFrameMailbox, status: @escaping TFTMACRuntimeService.StatusHandler) { + service = TFTMACRuntimeService(profile: profile, mailbox: mailbox, status: status) + } + + func start() { + guard runTask == nil else { return } + runTask = Task { [service] in + do { try await service.run() } + catch is CancellationError { } + catch { + await MainActor.run { self.failed = true } + } + } + } + + func sendMouse(x: Int32, y: Int32, buttons: Int32) { + Task { await service.sendMouse(MouseInput(x: x, y: y, buttons: buttons)) } + } + + func sendKeyboard(text: String? = nil, key: String? = nil) { + guard text?.isEmpty == false || key?.isEmpty == false else { return } + Task { await service.sendKeyboard(KeyboardInput(text: text, key: key)) } + } + + func recordPresentation(_ sample: PresentationSample) { + Task { await service.recordPresentation(sample) } + } + + func recordMarker(_ marker: String) { + Task { await service.recordMarker(marker) } + } + + func recordSettingsChange(previous: TFTMACRuntimeProfile, next: TFTMACRuntimeProfile) { + Task { await service.recordSettingsChange(previous: previous, next: next) } + } + + func stop() async { + await service.stop() + runTask?.cancel() + _ = await runTask?.result + runTask = nil + } +} diff --git a/tftmac/Runtime/TelemetrySignalClassifier.swift b/tftmac/Runtime/TelemetrySignalClassifier.swift new file mode 100644 index 0000000..3bcd45e --- /dev/null +++ b/tftmac/Runtime/TelemetrySignalClassifier.swift @@ -0,0 +1,23 @@ +import Foundation + +enum TelemetrySignalClassifier { + /// Counts only lines that identify an actual memory-pressure victim. + /// LMKD startup, socket, memevent, tracepoint, and policy messages are not kills. + static func isConfirmedGuestMemoryKill(_ line: String) -> Bool { + let lower = line.lowercased() + + if lower.contains("out of memory: killed process") { + return true + } + + guard lower.contains("lmkd") || lower.contains("lowmemorykiller") else { + return false + } + + return lower.contains("kill '") + || lower.contains("killing '") + || lower.contains("kill process ") + || lower.contains("killing process ") + || lower.contains("killed process ") + } +} diff --git a/tftmac/Sources/README.md b/tftmac/Sources/README.md new file mode 100644 index 0000000..ec1a19e --- /dev/null +++ b/tftmac/Sources/README.md @@ -0,0 +1,6 @@ +# Retired shell source + +These Swift files are preserved only as historical donor evidence. They are not +members of the native Xcode target and no build script compiles them. The only +shipping implementation lives under `tftmac/App`, `tftmac/Presentation`, and +`tftmac/Runtime`; `scripts/build-native-app.command` is the sole build authority. diff --git a/tools/tftmac-direct-control.mjs b/tools/tftmac-direct-control.mjs index 1eb967e..40955de 100644 --- a/tools/tftmac-direct-control.mjs +++ b/tools/tftmac-direct-control.mjs @@ -17,15 +17,15 @@ const PLAY_PROFILE_LABEL = 'TFT Ultra Tablet - 13.5in Freeform / Galaxy Tab S10 const PLAY_DISPLAY_WIDTH = 2960; const PLAY_DISPLAY_HEIGHT = 1848; const PLAY_DISPLAY_DENSITY = 320; -const PLAY_RAM_MB = 8192; +const PLAY_RAM_MB = 5120; const BASELINE_PROFILE = Object.freeze({ - id: 'tftmac_official_baseline_v1', - label: 'TFTMAC official playable baseline', + id: 'tftmac_5gb_native_v1', + label: 'TFTMAC native playable 5 GiB baseline', width: 1920, height: 1080, density: 320, vcpu: 6, - ramMB: 6144, + ramMB: 5120, refreshHz: 60, glTransport: 'virtio-gpu-asg', asgWriteBufferSize: 1048576, @@ -36,9 +36,11 @@ const BASELINE_PROFILE = Object.freeze({ angleEnabledFeatures: 'exposeNonConformantExtensionsAndVersions:exposeES32ForTesting', angleDisabledFeatures: 'preferSubmitAtFBOBoundary' }); -const ADB_PORT = '5040'; -const SERIAL = 'emulator-5592'; -const EMULATOR_PORT = '5592'; +// Preserve the donor topology that completed real TFT games in the logged-in +// macOS user session. 5040/5592 was the service-context regression. +const ADB_PORT = '5038'; +const SERIAL = 'emulator-5582'; +const EMULATOR_PORT = '5582'; const EXTERNAL_ROOT = '/Volumes/MAC MINI M4/TFTMAC/Runtime'; function resolveConsoleUserHome() { const userResult = spawnSync('/usr/bin/stat', ['-f', '%Su', '/dev/console'], { encoding: 'utf8' }); @@ -771,7 +773,7 @@ function restoreBaselineAVD(runtime) { return { restored: true, configPath, configSHA256: sha256File(configPath) }; } -function startBaselineEmulator(runtime, captureDir, ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id) { +function startBaselineEmulator(runtime, captureDir, ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, embeddedControl = false) { if (!runtime.avdHome || !runtime.avdIni || !runtime.avdDir) throw new Error(`Official AVD ${AVD_NAME} is not present under the external runtime.`); const out = fs.openSync(path.join(captureDir, 'emulator.stdout.log'), 'a'); const err = fs.openSync(path.join(captureDir, 'emulator.stderr.log'), 'a'); @@ -787,7 +789,8 @@ function startBaselineEmulator(runtime, captureDir, ramMB = BASELINE_PROFILE.ram '-no-hidpi-scaling', '-no-snapshot', '-no-metrics', '-no-boot-anim', '-crash-report-mode', 'disabled' ]; - if (process.env.TFTMAC_NATIVE_FULLSCREEN === '1') { + if (embeddedControl) args.push('-qt-hide-window', '-grpc-use-token', '-idle-grpc-timeout', '300'); + if (process.env.TFTMAC_NATIVE_FULLSCREEN === '1' && !embeddedControl) { const screenWidth = Number(process.env.TFTMAC_HOST_SCREEN_WIDTH ?? 0); const screenHeight = Number(process.env.TFTMAC_HOST_SCREEN_HEIGHT ?? 0); const controlWidth = Number(process.env.TFTMAC_NATIVE_CONTROL_WIDTH ?? 64); @@ -811,10 +814,32 @@ function startBaselineEmulator(runtime, captureDir, ramMB = BASELINE_PROFILE.ram MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE: '64', MVK_CONFIG_FAST_MATH_ENABLED: '1' }; - const child = spawn(runtime.emulator, args, { cwd: repoRoot, env, detached: true, stdio: ['ignore', out, err] }); + delete env.ADB_VENDOR_KEYS; + const hostApp = path.join(repoRoot, 'dist', 'TFTMAC.app', 'Contents', 'Resources', 'TFTMAC Emulator Host.app'); + if (!exists(hostApp)) throw new Error(`TFTMAC_EMULATOR_HOST_MISSING: build the native app first: ${hostApp}`); + const openArgs = [ + '-n', '-W', + '--env', `TFT_EMULATOR=${runtime.emulator}`, + '--env', `TFT_ADB_SERVER_PORT=${ADB_PORT}`, + '--env', `ANDROID_ADB_SERVER_PORT=${ADB_PORT}`, + '--env', 'ADB_MDNS_AUTO_CONNECT=', + '--env', `ANDROID_SDK_ROOT=${runtime.sdkRoot}`, + '--env', `ANDROID_AVD_HOME=${runtime.avdHome}`, + '--env', 'ANDROID_EMULATOR_USE_SYSTEM_LIBS=0', + '--env', `ANGLE_FEATURE_OVERRIDES_ENABLED=${env.ANGLE_FEATURE_OVERRIDES_ENABLED}`, + '--env', `ANGLE_FEATURE_OVERRIDES_DISABLED=${env.ANGLE_FEATURE_OVERRIDES_DISABLED}`, + '--env', `MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=${env.MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS}`, + '--env', `MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE=${env.MVK_CONFIG_MAX_ACTIVE_METAL_COMMAND_BUFFERS_PER_QUEUE}`, + '--env', `MVK_CONFIG_FAST_MATH_ENABLED=${env.MVK_CONFIG_FAST_MATH_ENABLED}`, + '--env', `TFT_HOST_STDOUT=${path.join(captureDir, 'emulator.stdout.log')}`, + '--env', `TFT_HOST_STDERR=${path.join(captureDir, 'emulator.stderr.log')}`, + hostApp, '--args', ...args + ]; + const child = spawn('/usr/bin/open', openArgs, { cwd: repoRoot, env, detached: true, stdio: ['ignore', out, err] }); child.unref(); appendJSONL(path.join(captureDir, 'host-events.jsonl'), { - utc: nowISO(), event: 'BASELINE_EMULATOR_STARTED', pid: child.pid, args, + utc: nowISO(), event: 'BASELINE_EMULATOR_STARTED', launcherPid: child.pid, args, + launcher: '/usr/bin/open -n -W --env ... --args ...', adbVendorKeysPresent: false, profile: controlProfileId, env: { ANGLE_FEATURE_OVERRIDES_ENABLED: env.ANGLE_FEATURE_OVERRIDES_ENABLED, @@ -878,7 +903,7 @@ function baselineRuntimeState(runtime, captureDir, prepared, bootClass, ramMB = return state; } -async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval) { +async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfileId = BASELINE_PROFILE.id, drawFlushInterval = BASELINE_PROFILE.drawFlushInterval, embeddedControl = false) { const preAudit = runtimeProcessAudit(); const hasEmulator = preAudit.processes.some(item => item.kind === 'ANDROID_EMULATOR'); if (!hasEmulator) { @@ -902,7 +927,7 @@ async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfi if (!runtime.avdIni || !runtime.avdConfig || !runtime.avdDir) throw new Error(`Required official Play AVD ${AVD_NAME} was not found.`); ensureDir(STATE_ROOT); ensureDir(CAPTURE_ROOT); ensureDir(DIAGNOSTICS_ROOT); const prepared = prepareBaselineAVD(runtime, drawFlushInterval); - const windowFit = prepareEmulatorWindowFit(runtime, BASELINE_PROFILE.width, BASELINE_PROFILE.height); + const windowFit = embeddedControl ? { prepared: false, reason: 'HIDDEN_EMBEDDED_CONTROL' } : prepareEmulatorWindowFit(runtime, BASELINE_PROFILE.width, BASELINE_PROFILE.height); const sessionId = `${new Date().toISOString().replace(/[:.]/g, '-')}-${crypto.randomUUID()}`; const captureDir = path.join(CAPTURE_ROOT, sessionId); for (const d of [captureDir, path.join(captureDir, 'surfaceflinger'), path.join(captureDir, 'gfxinfo')]) ensureDir(d); @@ -923,8 +948,11 @@ async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfi let emulatorPid = null; try { adbServer(runtime); - emulatorPid = startBaselineEmulator(runtime, captureDir, ramMB, controlProfileId); + const launcherPid = startBaselineEmulator(runtime, captureDir, ramMB, controlProfileId, embeddedControl); await waitForBoot(runtime); + const observedEmulator = runtimeProcessAudit().processes.find(item => item.kind === 'ANDROID_EMULATOR' && item.command.includes(`-port ${EMULATOR_PORT}`)); + if (!observedEmulator) throw new Error(`EMULATOR_PID_NOT_OBSERVED_AFTER_OPEN: console port ${EMULATOR_PORT}`); + emulatorPid = observedEmulator.pid; const guestUnlock = wakeGuestScreen(runtime, captureDir); const fullscreenPolicy = prepareGuestFullscreenPolicy(runtime); const clockPreflight = await ensureGuestClock(runtime, captureDir); @@ -932,9 +960,9 @@ async function startBaselineControl(ramMB = BASELINE_PROFILE.ramMB, controlProfi const pkg = packageState(runtime, captureDir, false); const renderer = rendererState(runtime, captureDir); const state = { - schema: 1, sessionId, captureDir, samplerPid, emulatorPid, reusedRunningEmulator: false, + schema: 1, sessionId, captureDir, samplerPid, emulatorPid, launcherPid, reusedRunningEmulator: false, sdkRoot: runtime.sdkRoot, avdHome: runtime.avdHome, startedUTC: session.startedUTC, - packageState: pkg.state, controlProfile: controlProfileId, baselineConfigBackupPath: prepared.backupPath + packageState: pkg.state, controlProfile: controlProfileId, baselineConfigBackupPath: prepared.backupPath, embeddedControl }; writeJSON(CONTROL_STATE, state); return { ...state, package: pkg, clockPreflight, runtime: runtimeObserved, renderer, next: pkg.state === 'MISSING' ? 'run play-action to install official TFT from Google Play' : 'run play-action to verify/update official TFT, then launch-game' }; @@ -1477,7 +1505,7 @@ function ingestApproximateLatestMatch() { try { if (initialize) db.exec(fs.readFileSync(schemaPath, 'utf8')); db.exec('PRAGMA foreign_keys = ON;'); - const configId = 'tftmac_official_baseline_v1'; + const configId = BASELINE_PROFILE.id; const labSessionId = `${analysis.sessionId}-match-${analysis.matchOrdinal}-approx`; const packageInfo = readJSON(path.join(captureDir, 'package-state.json'), {}); const packageFile = path.join(captureDir, 'package-state.json'); @@ -1966,7 +1994,7 @@ function ingestContinuousRunIntoLab() { const sessionFile = readJSON(path.join(captureDir, 'session.json'), {}); const packageFile = path.join(captureDir, 'package-state.json'); const rendererFile = path.join(captureDir, 'renderer-state.json'); - const currentConfigId = 'tftmac_official_baseline_v1'; + const currentConfigId = BASELINE_PROFILE.id; const now = nowISO(); db.exec('BEGIN IMMEDIATE;'); try { @@ -2211,12 +2239,12 @@ function ingestAnalysisIntoLab() { .sort((a, b) => b.mtimeMs - a.mtimeMs); if (metas[0]) latestTraceMetadata = readJSON(metas[0].path, null); } catch {} - const currentConfigId = 'tftmac_official_baseline_v1'; + const currentConfigId = BASELINE_PROFILE.id; const candidateConfigId = 'tftmac_5gb_baseline_v1'; db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('last_gameplay_ingest_at', now); db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('current_gameplay_baseline_session', labSessionId); - db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('current_optimization_priority', '1 preserve continuous-run logger; 2 use pre-play app refresh when memory-pressure thresholds fire; 3 one-factor guest RAM 6144->5120 A/B; 4 test Performance Mode/FPS/graphics by setting timestamps; 5 only then graphics transport/queue experiments'); + db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('current_optimization_priority', 'Hold the proven 5120-MiB native baseline; correlate native frame windows, SurfaceFlinger deltas, memory, audio and explicit setting markers; change one restart-bound variable at a time.'); db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('current_game_settings', JSON.stringify(analysis.match.gameSettings)); if (latestTraceMetadata) db.prepare('INSERT OR REPLACE INTO lab_meta(key,value) VALUES(?,?)').run('native_trace_collector_smoke', JSON.stringify({ label: latestTraceMetadata.label, durationSeconds: latestTraceMetadata.durationSeconds, byteCount: latestTraceMetadata.byteCount, sha256: latestTraceMetadata.sha256, dataSources: latestTraceMetadata.dataSources, parseState: latestTraceMetadata.parseState })); @@ -2234,9 +2262,9 @@ function ingestAnalysisIntoLab() { refresh_hz=excluded.refresh_hz,gpu_mode=excluded.gpu_mode,audio_enabled=excluded.audio_enabled, graphics_transport=excluded.graphics_transport,angle_mode=excluded.angle_mode,vulkan_mode=excluded.vulkan_mode, moltenvk_mode=excluded.moltenvk_mode,presentation_mode=excluded.presentation_mode,state=excluded.state,notes=excluded.notes`); - const currentNotes = 'First playable official TFT control: API36 Play ARM64, ANGLE ES3.2 compatibility exposure, Vulkan/ranchu, virtio-gpu-asg, gfxstream, MoltenVK/Metal. First full match placed 1st.'; - configStmt.run(currentConfigId,null,'TFTMAC official playable baseline v0',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,6144,1920,1080,320,60,'host',1,'virtio-gpu-asg','GuestAngle + explicit ES3.2 compatibility exposure','ranchu / guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','direct emulator window','CONTROL',sessionFile.startedUTC ?? now,currentNotes); - configStmt.run(candidateConfigId,currentConfigId,'RAM 5 GiB candidate',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,5120,1920,1080,320,60,'host',1,'virtio-gpu-asg','same as baseline','same as baseline','same as baseline','same as baseline','CANDIDATE',now,'One-factor candidate: only guest RAM changes from 6144 MB to 5120 MB; 4096 MB is deferred because observed guest headroom makes a 2 GiB cut too aggressive.'); + const currentNotes = 'Current native baseline: API36 Play ARM64, 5038/5582 donor identity, 5 GiB, authenticated gRPC raw frames, AppKit/Metal presentation, ANGLE ES3.2 compatibility exposure, Vulkan/ranchu, virtio-gpu-asg, gfxstream and MoltenVK/Metal.'; + configStmt.run(currentConfigId,null,'TFTMAC native playable 5 GiB baseline',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),BASELINE_PROFILE.vcpu,BASELINE_PROFILE.ramMB,BASELINE_PROFILE.width,BASELINE_PROFILE.height,BASELINE_PROFILE.density,BASELINE_PROFILE.refreshHz,'host',1,BASELINE_PROFILE.glTransport,'GuestAngle + explicit ES3.2 compatibility exposure','ranchu / guest Vulkan','gfxstream host Vulkan -> MoltenVK/Metal','native AppKit Metal embedded','CONTROL',sessionFile.startedUTC ?? now,currentNotes); + configStmt.run(candidateConfigId,'tftmac_official_baseline_v1','RAM 5 GiB candidate (historical)',null,'37.1.11','37.0.1',REQUIRED_IMAGE,REQUIRED_IMAGE_MIN_REVISION,AVD_NAME,SERIAL,Number(ADB_PORT),Number(EMULATOR_PORT),6,5120,1920,1080,320,60,'host',1,'virtio-gpu-asg','same as historical 6 GiB baseline','same as historical baseline','same as historical baseline','same as historical baseline','HISTORICAL',now,'Preserved historical 6144 -> 5120 MiB experiment receipt; current authority is tftmac_5gb_native_v1.'); db.prepare(`INSERT INTO sessions( id,runtime_config_id,started_utc,ended_utc,host_start_mono_ns,host_end_mono_ns,boot_class,workload_class, @@ -2320,7 +2348,7 @@ function ingestAnalysisIntoLab() { db.prepare(`INSERT INTO experiments(id,hypothesis_id,name,experiment_type,baseline_config_id,candidate_config_id,run_class,one_factor,state,required_cold_confirmation,semantic_gate,created_at,completed_at,notes) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET baseline_config_id=excluded.baseline_config_id,candidate_config_id=excluded.candidate_config_id,state=excluded.state,semantic_gate=excluded.semantic_gate,notes=excluded.notes`) - .run('exp_ram_5gb_ab','h_guest_ram_host_pressure','Guest RAM 6144 -> 5120 MB A/B','INTERVENTION',currentConfigId,candidateConfigId,'HEAVY',1,'PLANNED',1,'Same official TFT version, same renderer/transport/display/vCPU; compare full-match or matched heavy-combat resource pressure plus native frame timing once available.',now,null,'Safer first RAM intervention selected after Game 2: reduce one GiB only and compare continuous-run pressure.'); + .run('exp_ram_5gb_ab','h_guest_ram_host_pressure','Guest RAM 6144 -> 5120 MB A/B','INTERVENTION','tftmac_official_baseline_v1',candidateConfigId,'HEAVY',1,'COMPLETE',1,'Historical one-factor experiment preserved; current native runs hold 5120 MiB unless a new explicit experiment is selected.',now,now,'Historical RAM experiment closed by promotion of the 5120-MiB native baseline.'); db.prepare(`INSERT INTO experiments(id,hypothesis_id,name,experiment_type,baseline_config_id,candidate_config_id,run_class,one_factor,state,required_cold_confirmation,semantic_gate,created_at,completed_at,notes) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?) ON CONFLICT(id) DO UPDATE SET baseline_config_id=excluded.baseline_config_id,state=excluded.state,semantic_gate=excluded.semantic_gate,notes=excluded.notes`) @@ -4066,7 +4094,7 @@ function normalizePerformanceLab(captureDir, frames, metrics, storage, manifestS const safeConfigHash = !hashOwner || hashOwner === runtimeConfigId ? observedConfigHash : null; const runtimeConfigExists = Boolean(db.prepare('SELECT 1 AS ok FROM runtime_configs WHERE id=?').get(runtimeConfigId)); if (!runtimeConfigExists) { - const baselineId = 'tftmac_official_baseline_v1'; + const baselineId = BASELINE_PROFILE.id; const baselineExists = Boolean(db.prepare('SELECT 1 AS ok FROM runtime_configs WHERE id=?').get(baselineId)); const parentConfigId = runtimeConfigId !== baselineId && baselineExists ? baselineId : null; db.prepare(`INSERT INTO runtime_configs( @@ -4673,6 +4701,7 @@ async function main() { if (action === 'start') { json(await startControl()); return; } if (action === 'start-baseline-control') { json(await startBaselineControl()); return; } if (action === 'start-baseline-control-5gb') { json(await startBaselineControl(5120, 'tftmac_5gb_baseline_v1', 800)); return; } + if (action === 'start-native-controller-probe') { json(await startBaselineControl(5120, 'tftmac_5gb_baseline_v1', 800, true)); return; } if (action === 'start-baseline-control-5gb-flush400') { json(await startBaselineControl(5120, 'tftmac_5gb_flush400_exp_v1', 400)); return; } if (action === 'play-action') { json(await playAction()); return; } if (action === 'play-probe') { json(await playProbe()); return; } From 558c0eaea0fe3450d4d244ae1faee86c660d371a Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sun, 30 Aug 2026 18:32:59 -0500 Subject: [PATCH 13/19] Add rapid combat A/B benchmark and telemetry --- TFTMAC.xcodeproj/project.pbxproj | 27 +- .../CombatBenchmarkAnalysisTests.swift | 157 ++ .../TFTMACTests/GameFrameTelemetryTests.swift | 105 + Tests/TFTMACTests/TFTMACGate1Tests.swift | 60 + docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md | 113 +- docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md | 184 ++ docs/building.md | 13 +- docs/releasing.md | 7 +- scripts/build-native-app.command | 25 +- scripts/ensure-local-signing-identity.command | 72 + scripts/install-trace-processor.command | 40 + scripts/summarize-native-session.command | 236 +++ scripts/verify-tftmac.command | 47 +- ssot/STACK.lock.yaml | 21 +- ssot/runtime-authority.json | 34 +- tftmac/App/AppCoordinator.swift | 53 +- .../App/RuntimeSettingsWindowController.swift | 43 +- tftmac/App/TFTMACApplication.swift | 5 +- tftmac/Info.plist | 6 +- .../Presentation/EmbeddedEmulatorView.swift | 244 ++- tftmac/Runtime/CombatBenchmarkAnalysis.swift | 203 ++ tftmac/Runtime/CombatBenchmarkStore.swift | 485 +++++ tftmac/Runtime/GameFrameTelemetry.swift | 300 +++ tftmac/Runtime/RuntimeProfile.swift | 177 +- tftmac/Runtime/TFTMACRuntime.swift | 1703 ++++++++++++++++- .../Runtime/TelemetrySignalClassifier.swift | 49 + tftmac/Runtime/TouchInput.swift | 52 + 27 files changed, 4361 insertions(+), 100 deletions(-) create mode 100644 Tests/TFTMACTests/CombatBenchmarkAnalysisTests.swift create mode 100644 Tests/TFTMACTests/GameFrameTelemetryTests.swift create mode 100644 docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md mode change 100644 => 100755 scripts/build-native-app.command create mode 100755 scripts/ensure-local-signing-identity.command create mode 100644 scripts/install-trace-processor.command create mode 100755 scripts/summarize-native-session.command create mode 100644 tftmac/Runtime/CombatBenchmarkAnalysis.swift create mode 100644 tftmac/Runtime/CombatBenchmarkStore.swift create mode 100644 tftmac/Runtime/GameFrameTelemetry.swift create mode 100644 tftmac/Runtime/TouchInput.swift diff --git a/TFTMAC.xcodeproj/project.pbxproj b/TFTMAC.xcodeproj/project.pbxproj index aa9dba9..ee18295 100644 --- a/TFTMAC.xcodeproj/project.pbxproj +++ b/TFTMAC.xcodeproj/project.pbxproj @@ -38,6 +38,15 @@ 100000000000000000000029 /* RuntimeLease.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000019 /* RuntimeLease.swift */; }; 10000000000000000000002A /* TelemetrySignalClassifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001A /* TelemetrySignalClassifier.swift */; }; 10000000000000000000002B /* TelemetrySignalClassifier.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001A /* TelemetrySignalClassifier.swift */; }; + 10000000000000000000002C /* GameFrameTelemetry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001B /* GameFrameTelemetry.swift */; }; + 10000000000000000000002D /* GameFrameTelemetry.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001B /* GameFrameTelemetry.swift */; }; + 10000000000000000000002E /* GameFrameTelemetryTests.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001C /* GameFrameTelemetryTests.swift */; }; + 10000000000000000000002F /* TouchInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001D /* TouchInput.swift */; }; + 100000000000000000000030 /* TouchInput.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001D /* TouchInput.swift */; }; + 100000000000000000000031 /* CombatBenchmarkAnalysis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001E /* CombatBenchmarkAnalysis.swift */; }; + 100000000000000000000032 /* CombatBenchmarkAnalysis.swift in Tests */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001E /* CombatBenchmarkAnalysis.swift */; }; + 100000000000000000000033 /* CombatBenchmarkStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20000000000000000000001F /* CombatBenchmarkStore.swift */; }; + 100000000000000000000034 /* CombatBenchmarkAnalysisTests.swift in Tests */ = {isa = PBXBuildFile; fileRef = 200000000000000000000020 /* CombatBenchmarkAnalysisTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -61,6 +70,12 @@ 200000000000000000000018 /* RuntimeSettingsWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuntimeSettingsWindowController.swift; sourceTree = ""; }; 200000000000000000000019 /* RuntimeLease.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuntimeLease.swift; sourceTree = ""; }; 20000000000000000000001A /* TelemetrySignalClassifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelemetrySignalClassifier.swift; sourceTree = ""; }; + 20000000000000000000001B /* GameFrameTelemetry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameFrameTelemetry.swift; sourceTree = ""; }; + 20000000000000000000001C /* GameFrameTelemetryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameFrameTelemetryTests.swift; sourceTree = ""; }; + 20000000000000000000001D /* TouchInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TouchInput.swift; sourceTree = ""; }; + 20000000000000000000001E /* CombatBenchmarkAnalysis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombatBenchmarkAnalysis.swift; sourceTree = ""; }; + 20000000000000000000001F /* CombatBenchmarkStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombatBenchmarkStore.swift; sourceTree = ""; }; + 200000000000000000000020 /* CombatBenchmarkAnalysisTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombatBenchmarkAnalysisTests.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -123,13 +138,13 @@ path = Presentation; sourceTree = ""; }; - 40000000000000000000000C /* Runtime */ = {isa = PBXGroup; children = (200000000000000000000017 /* RuntimeProfile.swift */, 200000000000000000000019 /* RuntimeLease.swift */, 20000000000000000000001A /* TelemetrySignalClassifier.swift */, 200000000000000000000015 /* TFTMACRuntime.swift */, 200000000000000000000016 /* AVDTransactionGuard.swift */,); path = Runtime; sourceTree = ""; }; + 40000000000000000000000C /* Runtime */ = {isa = PBXGroup; children = (200000000000000000000017 /* RuntimeProfile.swift */, 200000000000000000000019 /* RuntimeLease.swift */, 20000000000000000000001A /* TelemetrySignalClassifier.swift */, 20000000000000000000001B /* GameFrameTelemetry.swift */, 20000000000000000000001E /* CombatBenchmarkAnalysis.swift */, 20000000000000000000001F /* CombatBenchmarkStore.swift */, 20000000000000000000001D /* TouchInput.swift */, 200000000000000000000015 /* TFTMACRuntime.swift */, 200000000000000000000016 /* AVDTransactionGuard.swift */,); path = Runtime; sourceTree = ""; }; 40000000000000000000000A /* Generated */ = {isa = PBXGroup; children = (40000000000000000000000B /* EmulatorController */,); path = Generated; sourceTree = ""; }; 40000000000000000000000B /* EmulatorController */ = {isa = PBXGroup; children = (200000000000000000000009 /* emulator_controller.pb.swift */, 200000000000000000000010 /* emulator_controller.grpc.swift */,); path = EmulatorController; sourceTree = ""; }; 400000000000000000000005 /* Probes */ = {isa = PBXGroup; children = (400000000000000000000006 /* EmbeddedControlProbe */,); path = Probes; sourceTree = ""; }; 400000000000000000000006 /* EmbeddedControlProbe */ = {isa = PBXGroup; children = (200000000000000000000006 /* EmbeddedControlProbe.swift */,); path = EmbeddedControlProbe; sourceTree = ""; }; 400000000000000000000007 /* Tests */ = {isa = PBXGroup; children = (400000000000000000000008 /* TFTMACTests */,); path = Tests; sourceTree = ""; }; - 400000000000000000000008 /* TFTMACTests */ = {isa = PBXGroup; children = (200000000000000000000007 /* TFTMACGate1Tests.swift */,); path = TFTMACTests; sourceTree = ""; }; + 400000000000000000000008 /* TFTMACTests */ = {isa = PBXGroup; children = (200000000000000000000007 /* TFTMACGate1Tests.swift */, 20000000000000000000001C /* GameFrameTelemetryTests.swift */, 200000000000000000000020 /* CombatBenchmarkAnalysisTests.swift */,); path = TFTMACTests; sourceTree = ""; }; 400000000000000000000009 /* Products */ = {isa = PBXGroup; children = (200000000000000000000011 /* TFTMAC.app */, 200000000000000000000012 /* EmbeddedControlProbe */, 200000000000000000000013 /* TFTMACTests.xctest */,); name = Products; sourceTree = ""; }; /* End PBXGroup section */ @@ -194,16 +209,16 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000027, 100000000000000000000004, 100000000000000000000005, 100000000000000000000020, 100000000000000000000021, 100000000000000000000023, 100000000000000000000025, 100000000000000000000028, 10000000000000000000002A, 100000000000000000000015, 100000000000000000000016,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000001 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000001, 100000000000000000000002, 100000000000000000000003, 100000000000000000000027, 100000000000000000000004, 100000000000000000000005, 100000000000000000000020, 100000000000000000000021, 100000000000000000000023, 100000000000000000000025, 100000000000000000000028, 10000000000000000000002A, 10000000000000000000002C, 10000000000000000000002F, 100000000000000000000031, 100000000000000000000033, 100000000000000000000015, 100000000000000000000016,); runOnlyForDeploymentPostprocessing = 0; }; 700000000000000000000002 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000006, 100000000000000000000017, 100000000000000000000018,); runOnlyForDeploymentPostprocessing = 0; }; - 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 100000000000000000000008, 100000000000000000000022, 100000000000000000000024, 100000000000000000000026, 100000000000000000000029, 10000000000000000000002B,); runOnlyForDeploymentPostprocessing = 0; }; + 700000000000000000000003 /* Sources */ = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (100000000000000000000007, 10000000000000000000001C, 100000000000000000000008, 100000000000000000000022, 100000000000000000000024, 100000000000000000000026, 100000000000000000000029, 10000000000000000000002B, 10000000000000000000002D, 10000000000000000000002E, 100000000000000000000030, 100000000000000000000032, 100000000000000000000034,); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ B00000000000000000000001 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000002 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 6.0;}; name = Release; }; - B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; - B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.0.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 5; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 5; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000021 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000022 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000031 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac.tests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; diff --git a/Tests/TFTMACTests/CombatBenchmarkAnalysisTests.swift b/Tests/TFTMACTests/CombatBenchmarkAnalysisTests.swift new file mode 100644 index 0000000..f514192 --- /dev/null +++ b/Tests/TFTMACTests/CombatBenchmarkAnalysisTests.swift @@ -0,0 +1,157 @@ +import XCTest + +final class CombatBenchmarkAnalysisTests: XCTestCase { + func testHomeRunRequiresBroadPacingImprovement() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics( + weightedFPS: 58, + onePercentLowFPS: 18, + p95IntervalMilliseconds: 24, + p99IntervalMilliseconds: 36, + jankRate: 0.05, + severeRate: 0.001, + missedVsyncRate: 0.07 + ) + ) + + XCTAssertEqual(analysis.decision, .homeRun) + XCTAssertEqual(analysis.deltas.weightedFPSPercent, 16, accuracy: 0.001) + XCTAssertEqual(analysis.deltas.p99IntervalPercent, -28, accuracy: 0.001) + } + + func testPromisingAcceptsOneMaterialImprovementWithoutRegression() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics(weightedFPS: 53, onePercentLowFPS: 17) + ) + + XCTAssertEqual(analysis.decision, .promising) + } + + func testRejectsMaterialFramePacingRegression() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics(p99IntervalMilliseconds: 60) + ) + + XCTAssertEqual(analysis.decision, .reject) + } + + func testCompletedScreeningBelowFivePercentWeightedFPSImprovementRejects() { + let baseline = metrics() + let analysis = CombatBenchmarkAnalysis(baseline: baseline, candidate: baseline) + + XCTAssertEqual(analysis.decision, .reject) + } + + func testInvalidCandidateIsInconclusiveAndReportsEveryFailure() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics( + combatDurationSeconds: 299, + surfaceAvailability: 0.94, + clockCoverage: 0.94, + p95ClockRoundTripMilliseconds: 10.1, + frameHistoryTruncated: true, + exactLayerStable: false, + weightedFPS: 100, + onePercentLowFPS: 100, + p95IntervalMilliseconds: 1, + p99IntervalMilliseconds: 1, + jankRate: 0, + severeRate: 0, + missedVsyncRate: 0 + ) + ) + + XCTAssertEqual(analysis.decision, .inconclusive) + XCTAssertEqual( + analysis.candidateValidity.failures, + [.combatDurationTooShort, .insufficientSurfaceAvailability, .insufficientClockCoverage, .clockRoundTripTooHigh, .frameHistoryTruncated, .exactLayerChangedOrAmbiguous] + ) + } + + func testDeltasUsePercentagePointsForRates() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(jankRate: 0.10, severeRate: 0.01, missedVsyncRate: 0.12), + candidate: metrics(jankRate: 0.08, severeRate: 0.007, missedVsyncRate: 0.10) + ) + + XCTAssertEqual(analysis.deltas.jankRatePercentagePoints, -0.02, accuracy: 0.000_001) + XCTAssertEqual(analysis.deltas.severeRatePercentagePoints, -0.003, accuracy: 0.000_001) + XCTAssertEqual(analysis.deltas.missedVsyncRatePercentagePoints, -0.02, accuracy: 0.000_001) + } + + func testCorrectnessRegressionRejectsAnOtherwiseFastCandidate() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics( + correctnessPassed: false, + weightedFPS: 70, + onePercentLowFPS: 30, + p95IntervalMilliseconds: 10, + p99IntervalMilliseconds: 10, + jankRate: 0.01, + severeRate: 0.001, + missedVsyncRate: 0.01 + ) + ) + + XCTAssertEqual(analysis.decision, .reject) + } + + func testThresholdGapIsInconclusive() { + let analysis = CombatBenchmarkAnalysis( + baseline: metrics(), + candidate: metrics(weightedFPS: 53, onePercentLowFPS: 16) + ) + + XCTAssertEqual(analysis.decision, .inconclusive) + } + + func testOnePercentLowUsesMeanOfSlowestOnePercent() { + let intervals = Array(repeating: 16.667, count: 198) + [100, 200] + + XCTAssertEqual( + CombatBenchmarkMetrics.onePercentLowFPS(from: intervals), + 6.666_667, + accuracy: 0.000_001 + ) + } + + private func metrics( + combatDurationSeconds: Double = 480, + surfaceAvailability: Double = 0.98, + clockCoverage: Double = 0.99, + p95ClockRoundTripMilliseconds: Double = 5, + frameHistoryTruncated: Bool = false, + exactLayerStable: Bool = true, + correctnessPassed: Bool = true, + weightedFPS: Double = 50, + onePercentLowFPS: Double = 15, + p95IntervalMilliseconds: Double = 32, + p99IntervalMilliseconds: Double = 50, + jankRate: Double = 0.10, + severeRate: Double = 0.005, + missedVsyncRate: Double = 0.12 + ) -> CombatBenchmarkMetrics { + CombatBenchmarkMetrics( + combatDurationSeconds: combatDurationSeconds, + surfaceAvailability: surfaceAvailability, + clockCoverage: clockCoverage, + p95ClockRoundTripMilliseconds: p95ClockRoundTripMilliseconds, + frameHistoryTruncated: frameHistoryTruncated, + exactLayerStable: exactLayerStable, + correctnessPassed: correctnessPassed, + weightedFPS: weightedFPS, + onePercentLowFPS: onePercentLowFPS, + p95IntervalMilliseconds: p95IntervalMilliseconds, + p99IntervalMilliseconds: p99IntervalMilliseconds, + jankRate: jankRate, + severeRate: severeRate, + missedVsyncRate: missedVsyncRate + ) + } + +} diff --git a/Tests/TFTMACTests/GameFrameTelemetryTests.swift b/Tests/TFTMACTests/GameFrameTelemetryTests.swift new file mode 100644 index 0000000..7c28a73 --- /dev/null +++ b/Tests/TFTMACTests/GameFrameTelemetryTests.swift @@ -0,0 +1,105 @@ +import XCTest + +final class GameFrameTelemetryTests: XCTestCase { + private let layer = "SurfaceView[com.riotgames.league.teamfighttactics/com.epicgames.unreal.GameActivity](BLAST)#42" + private let refresh: UInt64 = 16_666_667 + + func testSteadySixtyHertzProducesSixtyFPSWindow() throws { + var sampler = GameFrameTelemetrySampler() + XCTAssertEqual(sampler.updateLayerList(layer), .available) + _ = sampler.ingestLatency(latency(timestamps: timestamps(count: 1)), observedMonotonicNS: 1) + let update = sampler.ingestLatency(latency(timestamps: timestamps(count: 61)), observedMonotonicNS: 1_000_000_001) + let window = try XCTUnwrap(update.window) + XCTAssertEqual(window.frameCount, 60) + XCTAssertEqual(window.effectiveFPS, 60, accuracy: 0.001) + XCTAssertEqual(window.p95MS ?? 0, 16.666667, accuracy: 0.001) + XCTAssertEqual(window.jankCount, 0) + XCTAssertEqual(window.missedVsyncEquivalents, 0) + } + + func testHitchCountsJankAndMissedVsyncs() throws { + var sampler = GameFrameTelemetrySampler() + _ = sampler.updateLayerList(layer) + _ = sampler.ingestLatency(latency(timestamps: timestamps(count: 1)), observedMonotonicNS: 1) + var values = timestamps(count: 31) + let hitchTimestamp = values.last! + 150_000_003 + values += [hitchTimestamp, hitchTimestamp + refresh, hitchTimestamp + (2 * refresh)] + let window = try XCTUnwrap(sampler.ingestLatency(latency(timestamps: values), observedMonotonicNS: 1_000_000_001).window) + XCTAssertEqual(window.maximumMS ?? 0, 150, accuracy: 0.001) + XCTAssertEqual(window.jankCount, 1) + XCTAssertEqual(window.severeCount, 1) + XCTAssertEqual(window.missedVsyncEquivalents, 8) + XCTAssertEqual(window.onePercentLowFPS ?? 0, 6.666666, accuracy: 0.001) + } + + func testOverlappingPollsDoNotDuplicateIntervals() throws { + var sampler = GameFrameTelemetrySampler() + _ = sampler.updateLayerList(layer) + let first = sampler.ingestLatency(latency(timestamps: timestamps(count: 40)), observedMonotonicNS: 1) + XCTAssertEqual(first.intervals.count, 0) + let secondValues = Array(timestamps(count: 40).suffix(20)) + timestamps(count: 20, start: 41 * refresh) + let second = sampler.ingestLatency(latency(timestamps: secondValues), observedMonotonicNS: 500_000_001) + XCTAssertEqual(second.intervals.count, 20) + XCTAssertNil(second.window) + let thirdValues = Array(secondValues.suffix(20)) + timestamps(count: 30, start: 61 * refresh) + let third = sampler.ingestLatency(latency(timestamps: thirdValues), observedMonotonicNS: 1_000_000_001) + XCTAssertEqual(third.intervals.count, 30) + XCTAssertEqual(try XCTUnwrap(third.window).frameCount, 50) + } + + func testLayerResetPreventsCrossLayerInterval() { + var sampler = GameFrameTelemetrySampler() + _ = sampler.updateLayerList(layer) + _ = sampler.ingestLatency(latency(timestamps: timestamps(count: 3)), observedMonotonicNS: 100) + _ = sampler.updateLayerList(layer.replacingOccurrences(of: "#42", with: "#43")) + let update = sampler.ingestLatency(latency(timestamps: timestamps(count: 3, start: 9_000_000_000)), observedMonotonicNS: 200) + XCTAssertEqual(update.intervals.count, 0) + } + + func testMissingAndMultipleLayersFailClosed() { + XCTAssertEqual(GameFrameTelemetry.selectTFTSurfaceViewLayer(from: "unrelated"), .unavailable(.noTFTSurfaceView)) + XCTAssertEqual(GameFrameTelemetry.selectTFTSurfaceViewLayer(from: "\(layer)\n\(layer.replacingOccurrences(of: "#42", with: "#43"))"), .unavailable(.multipleTFTSurfaceViews)) + var sampler = GameFrameTelemetrySampler() + XCTAssertEqual(sampler.updateLayerList("unrelated"), .unavailable(.noTFTSurfaceView)) + XCTAssertNil(sampler.ingestLatency(latency(timestamps: timestamps(count: 2)), observedMonotonicNS: 1_000_000_000).window) + } + + func testAndroidSixteenRequestedLayerPrefixIsPreservedForExactQuery() { + let requested = "RequestedLayerState{d6240da \(layer) parentId=128}" + XCTAssertEqual( + GameFrameTelemetry.selectTFTSurfaceViewLayer(from: requested), + .selected("d6240da \(layer)") + ) + XCTAssertEqual( + GameFrameTelemetry.surfaceFlingerLatencyShellCommand(layerName: "d6240da \(layer)"), + "dumpsys SurfaceFlinger --latency 'd6240da \(layer)'" + ) + } + + func testNoNewFrameWindowIsAnActualZeroNotUnavailable() throws { + var sampler = GameFrameTelemetrySampler() + _ = sampler.updateLayerList(layer) + _ = sampler.ingestLatency(latency(timestamps: timestamps(count: 2)), observedMonotonicNS: 100) + let update = sampler.ingestLatency(latency(timestamps: timestamps(count: 2)), observedMonotonicNS: 1_000_000_100) + let window = try XCTUnwrap(update.window) + XCTAssertEqual(window.status, .available) + XCTAssertEqual(window.frameCount, 0) + let empty = sampler.ingestLatency(latency(timestamps: timestamps(count: 2)), observedMonotonicNS: 2_000_000_100) + XCTAssertEqual(try XCTUnwrap(empty.window).frameCount, 0) + XCTAssertEqual(try XCTUnwrap(empty.window).effectiveFPS, 0) + } + + func testZeroAndSentinelRowsAreFiltered() throws { + let raw = "\(refresh)\n0 0 0\n9223372036854775807 9223372036854775807 9223372036854775807\n18446744073709551615 18446744073709551615 18446744073709551615\n1 2 3\n" + let poll = try XCTUnwrap(GameFrameTelemetry.parseSurfaceFlingerLatency(raw)) + XCTAssertEqual(poll.samples, [GameFrameLatencySample(desiredPresentNS: 1, actualPresentNS: 2, frameReadyNS: 3)]) + } + + private func timestamps(count: Int, start: UInt64 = 16_666_667) -> [UInt64] { + (0.. String { + ([String(refresh)] + timestamps.map { "\($0 + 1) \($0) \($0 + 2)" }).joined(separator: "\n") + } +} diff --git a/Tests/TFTMACTests/TFTMACGate1Tests.swift b/Tests/TFTMACTests/TFTMACGate1Tests.swift index d77bb02..32a87c2 100644 --- a/Tests/TFTMACTests/TFTMACGate1Tests.swift +++ b/Tests/TFTMACTests/TFTMACGate1Tests.swift @@ -28,6 +28,20 @@ final class TFTMACGate1Tests: XCTestCase { XCTAssertEqual(source.y, 540, accuracy: 0.001) } + func testPrimaryTouchKeepsItsIdentifierUntilZeroPressureRelease() { + var sequence = PrimaryTouchSequence() + let point = TouchPoint(x: 1716, y: 898) + let contact = sequence.contact(at: point) + let release = sequence.release(at: nil) + + XCTAssertEqual(contact?.identifier, TouchInput.primaryIdentifier) + XCTAssertEqual(release?.identifier, contact?.identifier) + XCTAssertEqual(release.map { TouchPoint(x: $0.x, y: $0.y) }, point) + XCTAssertEqual(contact?.pressure, 1) + XCTAssertEqual(release?.pressure, 0) + XCTAssertNil(sequence.release(at: nil)) + } + func testNativeRGBAFrameContractAcceptsExact1080pFrame() throws { XCTAssertNoThrow(try FrameContract.validate( width: 1920, @@ -110,6 +124,24 @@ final class TFTMACGate1Tests: XCTestCase { XCTAssertEqual(candidate.identifier, "tftmac_native_6144m_8c_30hz_flush400") } + func testRapidCombatExperimentHasExactlyTwoNamedPresets() { + XCTAssertEqual(RuntimeExperimentPreset.allCases.map(\.rawValue), ["control", "home_run_a"]) + } + + func testHomeRunAChangesOnlyTheTwoApprovedEmulatorFeatures() { + let control = TFTMACRuntimeProfile.playable.with(experimentPreset: .control) + let candidate = TFTMACRuntimeProfile.playable.with(experimentPreset: .homeRunA) + XCTAssertEqual(control.effectiveEmulatorFeatures, RuntimeExperimentPreset.baselineEmulatorFeatures) + XCTAssertEqual( + candidate.effectiveEmulatorFeatures, + RuntimeExperimentPreset.baselineEmulatorFeatures + ["NativeTextureDecompression", "NoDelayCloseColorBuffer"] + ) + XCTAssertEqual(control.vCPU, candidate.vCPU) + XCTAssertEqual(control.ramMiB, candidate.ramMiB) + XCTAssertEqual(control.asgDrawFlushInterval, candidate.asgDrawFlushInterval) + XCTAssertNotEqual(control.experimentConfigurationReceipt.sha256, candidate.experimentConfigurationReceipt.sha256) + } + func testRuntimeLeaseRejectsASecondLiveOwner() throws { let root = FileManager.default.temporaryDirectory .appendingPathComponent("tftmac-lease-test-\(UUID().uuidString)", isDirectory: true) @@ -161,4 +193,32 @@ final class TFTMACGate1Tests: XCTestCase { XCTAssertFalse(TelemetrySignalClassifier.isConfirmedGuestMemoryKill(line), line) } } + + func testPipelineClassifierRejectsNormalConfigurationReceipts() { + let normalLines = [ + "gfxstream: using Vulkan host renderer", + "virtio-gpu-asg write buffer size 1048576", + "MoltenVK version 1.4 initialized", + "shader cache directory ready", + "sync fence support enabled" + ] + for line in normalLines { + XCTAssertEqual(TelemetrySignalClassifier.pipelineSignals(in: line), PipelineLogSignals(), line) + } + } + + func testPipelineClassifierNamesDiagnosticBoundaries() { + XCTAssertEqual( + TelemetrySignalClassifier.pipelineSignals(in: "gfxstream warning: host queue stalled"), + PipelineLogSignals(gfxstreamWarningCount: 1) + ) + XCTAssertEqual( + TelemetrySignalClassifier.pipelineSignals(in: "virtio-gpu-asg timeout waiting for ring fence"), + PipelineLogSignals(asgStallCount: 1, fenceTimeoutCount: 1) + ) + XCTAssertEqual( + TelemetrySignalClassifier.pipelineSignals(in: "[MVK] Vulkan error: shader compilation failed"), + PipelineLogSignals(vulkanErrorCount: 1, moltenVKWarningCount: 1, shaderErrorCount: 1) + ) + } } diff --git a/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md index c9e10e1..42b8791 100644 --- a/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md +++ b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md @@ -21,11 +21,13 @@ | Native presentation near 60 Hz in lobby | VERIFIED | Live session observed source-window max `61.1` and Metal-output max `60.5`; these are transport/output metrics, not Unreal FPS | | Official current TFT launches | VERIFIED | Package `com.riotgames.league.teamfighttactics`, version `18.1-5402721`, SplashActivity then `com.epicgames.unreal.GameActivity`, PID observed | | Riot account can reach the TFT lobby | VERIFIED | Live rendered lobby on the existing signed-in official app state | -| Mouse and keyboard transport | VERIFIED | Native view coordinate transform and gRPC input; ADB authorization dialog accepted through the native view; input SQL records counts/coordinates, never typed content | +| Primary touch and keyboard transport | VERIFIED | Mac primary-pointer down/drag/up uses EmulatorController `TouchEvent` with stable identifier `0` and pressure `1 -> 0`; keyboard remains gRPC evdev input; SQL records coordinates, pressure, counts and special keys, never typed content | | CoreAudio software path | VERIFIED | Emulator launched `-audio coreaudio`; active AudioFlinger output, stereo, 48 kHz on the live check, one active track, zero partial/empty underruns | | User can hear sound | USER ACCEPTANCE REQUIRED | The software path is healthy; only the person at the Mac can confirm audible output | | Full match in this exact native build | NOT YET VERIFIED | Earlier donor runtime completed matches; current native lobby/GameActivity is proven, but a start-to-result native match receipt is still needed | -| Release build/install integrity | VERIFIED | Native-only verifier passed 14/14 tests; `/Applications/TFTMAC.app` is deep-code-sign valid, version 2.0.0 (build 2), embeds its Mac icon, and its executable SHA-256 matches the verified `dist` build | +| Release build/install integrity | VERIFIED | All 36 native tests passed; `/Applications/TFTMAC.app` is deep-code-sign valid under the stable local identity, version 2.2.0 (build 5), embeds its Mac icon and pinned Perfetto processor, and its executable SHA-256 matches `dist` | +| External-runtime permission retention | VERIFIED | Stable designated requirement installed; a clean second launch immediately reopened `/Volumes/MAC MINI M4/TFTMAC/Runtime` and started QEMU without another drive-access dialog | +| Secure-unlock display | VERIFIED | Secure unlock stays manual and logged, while non-error runtime instructions are suppressed from the Android display; live signed launch showed no TFTMAC center overlay | Primary live acceptance capture: @@ -38,13 +40,19 @@ Final release receipts: ```text Verified executable SHA-256: - 4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49 + 8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2 Live match/lobby plus clean shutdown: 2026-08-30T09-25-17.519Z-1a9d0227-3cf8-4a19-b353-c0f135ccf31c -Exact icon-inclusive installed release launch: - 2026-08-30T09-30-17.189Z-68f1bb24-f660-4245-9750-823b7da703a4 +Stable-signed release launch plus clean shutdown: + 2026-08-30T20-24-24.969Z-998c4e53-ff91-4cf3-8002-21543dc5d46f + +Second launch proving retained drive consent: + 2026-08-30T20-25-43.388Z-8373817a-5c4c-4b47-9459-8c2a8751b096 + +Build 4 primary-touch/login investigation: + 2026-08-30T20-41-22.662Z-4bdb8a3f-813d-4e70-b8bd-67c0b6b5766f ``` The first receipt reached Unreal `GameActivity`, rendered a live match and the @@ -150,17 +158,79 @@ The directory is mode `0700`. Queryable authority is `TFTMAC_NATIVE_RUNTIME.sqli | `frame_samples` | Visual/hash checkpoints, dimensions, sequence | First frame and bounded checkpoints | | `frame_interval_windows` | Source ingress count, drops, mean/p95/max interval | One-second windows | | `presentation_samples` | SRC/OUT rate, mailbox replacement and drops | About once per second | +| `game_frame_intervals` | Exact TFT SurfaceView actual-present intervals, jank/severe flags and missed-vsync equivalents | Every newly observed guest frame | +| `game_frame_windows` | TFT FPS, 1% low, p50/p95/p99/max, jank/severe counts and explicit unavailable status | One-second windows | +| `stream_freshness_windows` | Sampled content changes, repeated images, longest static run and transport loss | One-second windows | +| `host_presentation_windows` | Final Metal completion/GPU timing, unique/repeated source use, drawable misses and command errors | One-second windows | | `resource_samples` | QEMU CPU/RSS, TFT PID, resumed activity | Five seconds | | `guest_memory_samples` | MemTotal/MemAvailable/swap | Five seconds | +| `host_resource_samples` | Host available/compressed/swap/pageouts, thermal state and AC/battery source | Five seconds | | `clock_sync_samples` | Host/guest monotonic alignment and RTT | Thirty seconds | | `surfaceflinger_samples` | Render rate and cumulative total/HWC/GPU misses | Start/end and 30 seconds during gameplay | | `audio_samples` | CoreAudio receipt plus active output/rate/stereo/tracks/underruns | Start/end and 30 seconds during gameplay | | `logcat_aggregates` | Counts only: ANR, input timeout, fatal, LMK/OOM, skipped frames, ANGLE/Vulkan warnings, PCM errors | Five seconds | +| `pipeline_log_aggregates` | Counts only real gfxstream/ASG/Vulkan/MoltenVK/shader/fence warnings, errors, stalls and timeouts | Five seconds | +| `graphics_pipeline_snapshots` | Effective TFT SurfaceView, ANGLE, gfxstream, MoltenVK, host device and guest EGL/Vulkan identity | Thirty seconds during gameplay | +| `diagnostic_artifacts` | Raw and normalized trace paths/hashes, pinned processor hash, normalized SQL summary and analysis state | Event-driven | +| `combat_benchmarks` | Named preset, complete configuration hash, coverage, validity, exact layer and combat metrics | Benchmark boundary | +| `combat_incidents` | Bad-window or visible-stutter trigger, frame state, trace sequence and explicit unknown boundary | Event-driven during benchmark | +| `combat_comparisons` | Control/candidate deltas, correctness, observer overhead and HOME_RUN/PROMISING/REJECT/INCONCLUSIVE decision | Candidate benchmark end | | `game_process_sessions` | TFT PID start/end | PID transition | -| `input_samples` | Mouse coordinate/button and keyboard character count/special key | Input event; no typed content | +| `input_samples` | Primary-touch coordinate/pressure, secondary-mouse button, and keyboard character count/special key | Input event; no typed content | Raw logcat is local sensitive data. It is excluded from SQL and must never be uploaded or pasted without deliberate sanitization. It begins at a guest timestamp taken after ADB authorization so stale ring-buffer events do not contaminate the run. +### Rapid Combat A/B workflow (2.2.0) + +The Telemetry menu now owns `Start Combat Benchmark`, `Mark Visible Stutter` +and `End Combat Benchmark`. A run is valid after 300 seconds and closes +automatically at 480 seconds. Automatic incident traces are armed only inside +that window, require two adjacent bad one-second windows, have a 120-second +cooldown, and are capped at two in addition to the 20-second start trace. + +`Control` is the exact 1920x1080/320-dpi/60-Hz, 6-vCPU, 5120-MiB proven +configuration. `Home Run A` changes only the official in-game Performance Mode +Beta confirmation and the emulator features `NativeTextureDecompression` and +`NoDelayCloseColorBuffer`. All other values are locked. Every run stores the +canonical configuration JSON and SHA-256 plus the official TFT package version. + +Every valid Perfetto artifact is processed locally by the packaged +`trace_processor_shell` v58.2 ARM64 binary. Its pinned SHA-256 is +`d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa`. +If normalization fails or that receipt changes, TFTMAC removes the unprocessed +raw trace and records the failure; it does not retain a trace indefinitely in a +raw-only state. The persistent comparison authority is: + +```text +~/Library/Application Support/TFTMAC/TFTMAC_LAB.sqlite +``` + +The 2.2.0 build/install, SQL schema, preset invariants and decision engine are +verified. A real Control/Home Run A combat pair remains runtime acceptance and +must not be claimed until the user runs it. + +### Riot login input contract + +Build 4 removed the desktop-mouse assumption from primary interaction. A Mac +left press, drag and release now becomes Android multitouch identifier `0`, +with non-zero pressure while in contact and an unconditional zero-pressure +release at the last valid Android coordinate. The live build-4 capture logged +`PRIMARY_TOUCH_INPUT_ACTIVE`; pressure-down and pressure-up rows were persisted +without credential content. + +The same investigation found the guest WebView provider at +`133.0.6943.137`. Google Play exposed and installed the signed stable update +`151.0.7922.199`; Riot's `MobileFREWebViewActivity` restarted on that provider. +WebView is a mutable guest dependency and its exact version belongs in runtime +receipts whenever login behavior changes. + +Riot's official form labels the first field `USERNAME`. It requires the private +Riot account login username, not an email address and not the public Riot ID +(`Name#Tag`). Riot's official recovery flow starts from the account email and +sends back the username: . +Passwords, usernames, email addresses and form screenshots are never retained +as TFTMAC evidence. + `memory_kill_count` is intentionally conservative: it counts only an LMKD line that names an actual kill victim or a kernel `Out of memory: Killed process` line. LMKD connection, memevent, tracepoint, monitor and policy setup messages @@ -183,6 +253,17 @@ SELECT sampled_monotonic_ns, source_fps, presentation_fps, mailbox_replacements, sequence_drops FROM presentation_samples ORDER BY sampled_monotonic_ns; +-- Player-visible TFT guest frame truth +SELECT started_monotonic_ns, status, unavailable_reason, + effective_fps, one_percent_low_fps, + p95_interval_ms, p99_interval_ms, maximum_interval_ms, + jank_count, severe_count, missed_vsync_equivalents +FROM game_frame_windows ORDER BY started_monotonic_ns; + +-- Delivery freshness and final Mac presenter are separate boundaries +SELECT * FROM stream_freshness_windows ORDER BY started_monotonic_ns; +SELECT * FROM host_presentation_windows ORDER BY started_monotonic_ns; + -- Marked gameplay correlation SELECT kind, monotonic_ns FROM events WHERE kind IN ('MATCH_ENTRY','COMBAT_START','VISIBLE_STUTTER','MATCH_END') @@ -202,8 +283,17 @@ FROM audio_samples ORDER BY monotonic_ns; SELECT * FROM logcat_aggregates WHERE anr_count + fatal_count + memory_kill_count + angle_warning_count + vulkan_warning_count + audio_error_count > 0; + +SELECT * FROM pipeline_log_aggregates +WHERE gfxstream_warning_count + asg_stall_count + vulkan_error_count + + moltenvk_warning_count + shader_error_count + fence_timeout_count > 0; ``` +Run `scripts/summarize-native-session.command` with no argument for the latest +capture or pass one capture directory. It validates SQLite first, summarizes +every evidence layer, and reports missing telemetry explicitly without printing +raw logs, credentials or tokens. + ## 6. Performance Lab controls The app's `Performance Lab…` window persists only validated, restart-bound values. Restart is mandatory so the logger has one attributable profile and the AVD transaction remains reversible. @@ -226,6 +316,11 @@ Command-Shift-3 VISIBLE_STUTTER Command-Shift-4 MATCH_END ``` +`COMBAT_START` and `VISIBLE_STUTTER` also request a bounded 15-second Perfetto +ring trace. Severe actual-present degradation may request a rate-limited trace +automatically. A raw trace is evidence to normalize later, not an automatic +root-cause verdict. + ## 7. Experiment protocol 1. Start from `tftmac_5gb_native_v1`. @@ -276,6 +371,10 @@ Specialist boundary findings retained from the council: - TFTMAC owns the final frame copy, orientation, scaling, input transform, output cadence and native Mac experience. - Fortnite/Unreal guidance supplies transferable measurement categories, not TFT-specific capability or performance proof. +The complete Unreal/Fortnite transfer map, attribution gates, owned patch +points and current unknown ledger are maintained in +`docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md`. + Source research artifacts: - `outputs/ZoeMC_TFTMAC_Unreal_Graphics_v0.2/REPORT.md` @@ -293,7 +392,7 @@ Source research artifacts: - Interrupted recovery accepts only the exact discovered AVD config path and a backup inside TFTMAC's capture root. - A repeated Quit remains `terminateLater`; it cannot bypass telemetry sealing or AVD restoration. - Google/Riot passwords, MFA, CAPTCHA and consent remain manual official-UI actions and are never logged or automated. -- Android secure-lock content may be intentionally blank in the authenticated screenshot stream. TFTMAC wakes the display, shows an explicit prompt, accepts manual PIN keyboard input, records only character counts, and never stores the PIN. +- Android secure-lock content may be intentionally blank in the authenticated screenshot stream. TFTMAC wakes the display and accepts manual PIN keyboard input without placing instructions over Android. SQL records the unlock-required state and input character counts, never the PIN. ## 10. Remaining decisive gaps diff --git a/docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md b/docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md new file mode 100644 index 0000000..291fb9d --- /dev/null +++ b/docs/TFTMAC_UNREAL_PIPELINE_OBSERVABILITY.md @@ -0,0 +1,184 @@ +# TFTMAC Unreal graphics observability and patch map + +Authority date: 2026-08-30 + +## Fixed premise and engineering objective + +TFT uses Epic's Unreal Engine technology. Fortnite and other shipped Unreal +Android titles are therefore valid architecture and experiment references. The +reference does not make every TFT runtime choice identical: the exact Unreal +branch, RHI, renderer features, shader keys, PSO cache, swapchain, device +profile, and CVars must be identified from this TFT run before a connector is +changed. + +The absence of Riot's signed game source changes the interception point. It +does not make the graphics pipeline unknowable. TFTMAC can observe and change +the components it owns: the Android/emulator configuration, AEMU/gfxstream, +ANGLE when active, MoltenVK when active, the native frame transport, and the +final Metal presenter. A future source-built gfxstream can add a shared +`frame_id` at every guest/host handoff without modifying Riot's APK. + +## Transferable Unreal model + +The useful Unreal reference pipeline is: + +```text +GameThread simulation + -> RenderThread command construction + -> optional RHIThread / graphics API submission + -> guest GPU queue and swapchain + -> Android compositor actual presentation +``` + +Unreal Insights can name GameThread, RenderThread, RHIThread, GPU and PSO work +when the application build exposes those trace channels. TFTMAC must leave +those internal spans `UNKNOWN` when the signed TFT build does not expose them. +Android platform traces still establish CPU scheduling, compositor deadlines, +GPU memory, and what the player actually saw. + +## Runtime paths that evidence must distinguish + +Only a per-session pipeline snapshot may promote one of these candidates: + +1. Unreal Vulkan -> guest Vulkan -> gfxstream -> host Vulkan -> MoltenVK -> Metal. +2. Unreal GLES/EGL -> ANGLE Vulkan -> gfxstream -> host Vulkan -> MoltenVK -> Metal. +3. Unreal GLES/EGL -> native guest GLES -> gfxstream -> host rendering. +4. Another renderer selected by the installed TFT/emulator build. + +ANGLE applies only when the game selected a GLES/EGL path and Android selected +ANGLE for that package. MoltenVK applies only when the host Vulkan backend +actually loaded it. Requested launch flags are hypotheses; normal runtime log +identity and effective guest properties are evidence. + +## Three clocks that must never be merged + +| Label | Measurement | Valid claim | +| --- | --- | --- | +| `TFT` | Exact TFT `GameActivity` BLAST SurfaceView, SurfaceFlinger actual-present timestamps | Frames the guest compositor actually presented for TFT | +| `PIPE` | Authenticated EmulatorController image arrivals plus sampled content identity | Transport delivery and whether delivered images changed | +| `MAC` | TFTMAC's final Metal command completion and presentation loop | Health of the native Mac presentation of an already completed Android image | + +`PIPE 60` and `MAC 60` can coexist with a frozen or repeatedly presented TFT +frame. Neither is Unreal FPS. The overlay must show `TFT —` when the exact +SurfaceView cannot be selected or its timestamps cannot be read; it must never +substitute another clock. + +## Implemented data contract + +Every native app start creates a private SQLite session. The 2.2 telemetry +extension adds: + +| Table | Evidence | +| --- | --- | +| `game_frame_intervals` | Every newly observed actual-present interval, jank flag, severe flag and missed-vsync equivalent | +| `game_frame_windows` | One-second TFT FPS, 1% low, p50/p95/p99/max, jank, severe stalls, missed vsyncs, layer identity, refresh period and explicit availability reason | +| `stream_freshness_windows` | Changed/identical sampled content, longest identical run and sequence loss | +| `host_presentation_windows` | Final Metal submissions/completions, unique/repeated sources, drawable/command errors, completion and GPU timing | +| `pipeline_log_aggregates` | Counts of real warning/error/stall lines at gfxstream, ASG, Vulkan, MoltenVK, shader and fence boundaries; normal configuration lines do not become failures | +| `graphics_pipeline_snapshots` | Per-run evidence for the active TFT surface, ANGLE, gfxstream, MoltenVK, host device and effective guest EGL/Vulkan settings | +| `diagnostic_artifacts` | SHA-256, byte count, trigger and analysis state for bounded Perfetto captures | +| `host_resource_samples` | Host available/compressed/swap/pageouts, thermal state and power source at five seconds | +| `combat_benchmarks` | Named preset, configuration SHA, 300/480-second boundaries, coverage, validity and summary metrics | +| `combat_incidents` | Adjacent bad-window/visible-stutter triggers, trace sequence, evidence confidence and explicit unknowns | +| `combat_comparisons` | Control/candidate deltas and deterministic HOME_RUN/PROMISING/REJECT/INCONCLUSIVE result | + +SurfaceFlinger history polls overlap. The collector establishes a first-poll +boundary, de-duplicates actual-present timestamps, resets on layer replacement, +and records bounded-history loss explicitly rather than inventing one giant +frame interval. Interval inserts are committed once per poll so the logger does +not create dozens of disk transactions per second. + +The fixed Combat Benchmark captures one 20-second/32-MiB start trace and up to +two 15-second/32-MiB incident traces. Automatic capture is combat-only, requires +two adjacent bad one-second windows and retains the 120-second cooldown. Traces +include SurfaceFlinger, FrameTimeline, layers, Android GPU memory, scheduler +switch/wakeup/waking events, process/system stats, TFT process identity and +guest CPU-frequency events when exposed. Every retained trace is hash-sealed +and normalized immediately with pinned Perfetto `trace_processor_shell` v58.2; +normalization output and hashes are written to SQL. Failure deletes the +unprocessed raw trace and records a trace failure. + +## Attribution gates + +| Candidate blocker | Evidence required before naming it | +| --- | --- | +| Guest display/frame pacing | TFT actual-present misses or long intervals, with bounded SurfaceFlinger/FrameTimeline evidence | +| Unreal CPU thread | A missed frame correlated with named Unreal spans, or at minimum TFT process runnable/running pressure; without named spans report only process CPU pressure | +| gfxstream/ASG transport | Queue depth or submit-to-host receive time from an instrumented gfxstream build; warning counts alone are not latency proof | +| Host emulator GPU | Host renderer command completion crossing display deadlines plus supported Metal/GPU counters | +| PSO/shader hitch | A PSO compile/miss event coincident with the hitch in a controlled UE trace; a fight-only spike is not sufficient | +| ANGLE mismatch | A session snapshot proves ANGLE is active and a one-factor controlled change improves actual-present percentiles without a correctness regression | +| MoltenVK behavior | A snapshot proves MoltenVK is active and its own queue/pipeline-cache instrumentation or a controlled build isolates the change | +| TFTMAC final presenter | Guest `TFT` stays healthy while `MAC` completion, GPU time, drawable misses or repeated presentations regress | + +## Safe code and configuration intervention points + +1. Native logger/controller: markers, clock alignment, capture health, loss + counters, SurfaceFlinger timing and Perfetto lifecycle. This is implemented. +2. Source-built gfxstream/AEMU: emit one monotonic frame ID and timestamps at + guest submit, host receive, host queue, host GPU scheduled/completed and + output present. This is the highest-value next code patch after a real combat + trace identifies an unresolved guest/host queue gap. +3. ANGLE source/build, only if active: log renderer/feature selection, shader + translation/cache time, queue waits and relevant extension negotiation. +4. MoltenVK source/build, only if active: log pipeline creation/cache hits, + queue submit, command-buffer scheduling/completion and swapchain behavior. +5. TFTMAC's final Metal presenter: change copy/storage/scheduling only when the + `MAC` layer, not the guest layer, is the first failing boundary. +6. A controlled Unreal Android reference app on the identical emulator stack: + expose Unreal Insights and systematic PSO/frame-pacing experiments. It + proves stack capability and causal signatures, not TFT internals by proxy. + +Do not patch the signed TFT APK, inject code into Riot's process, copy +Fortnite's PSO cache, or label a guessed shader as Riot's. Unreal/Fortnite +practices remain valuable as test hypotheses: PSO precaching, work off the +interactive frame, stable Android frame pacing, device-profile quality tiers, +and one-factor RHI experiments. + +## Combat experiment protocol + +1. Run the locked `control` preset for a representative 5-8 minute heavy-combat window. +2. Restart with `home_run_a`, manually confirm official TFT Performance Mode Beta is ON, and repeat a comparable window. +3. Mark every visible stutter; the run ends manually after five minutes or automatically at eight minutes. +4. Compare the 5 seconds before and after each marker: TFT actual-present p95, + p99, max, 1% low, consecutive misses, stream freshness, Mac presenter, CPU, + memory, thermal/frequency evidence available in the trace, and pipeline + errors. +5. Classify the first divergent boundary; leave later boundaries as effects. +6. If the composite wins, run the five-minute cold confirmation before separating its two components. +7. Repeat a comparable fight and a cold-start confirmation. Reject correctness, + boot, ADB, audio, memory, login, or usability regressions. +8. Use the automatic trace-active/trace-inactive comparison; over 5% change marks causal trace conclusions `OBSERVER_OVERHEAD_INVALID` while retaining performance data. + +## Current unknowns to close with data + +- Exact TFT Unreal branch and mobile renderer feature set. +- Active per-run RHI and all negotiated graphics extensions/features. +- Game/Render/RHI thread spans when the signed build does not expose them. +- TFT shader/PSO keys, cache hit rate and compile timing. +- gfxstream queue depth and per-frame guest-submit-to-host-receive latency. +- MoltenVK pipeline-cache and queue timing inside the emulator process. +- Host Metal saturation counters for the emulator renderer, distinct from the + final TFTMAC presenter. +- Observer overhead during a comparable major fight. + +An unknown is not filled by a Fortnite assumption. Fortnite/Unreal tells us +which mechanism and signature to test; the correlated TFT run tells us whether +that mechanism is active and failing here. + +## Primary technical references + +- Epic, platform-native Android profiling: +- Epic, Unreal Insights channels: +- Epic, mobile frame pacing: +- Epic, PSO cache optimization: +- Epic, PSO precaching: +- Android, game frame-rate optimization: +- Android, frame pacing: +- Perfetto, FrameTimeline: +- Perfetto, GPU data sources: +- Google gfxstream source: +- ANGLE source: +- Khronos Vulkan specification: +- MoltenVK runtime guide: +- Apple, Metal performance analysis: diff --git a/docs/building.md b/docs/building.md index aa3f0fa..d482048 100644 --- a/docs/building.md +++ b/docs/building.md @@ -13,11 +13,22 @@ The working stock Android runtime is external to the repository and is not rebui ## Build +Create TFTMAC's stable local-only signing identity once: + +```sh +/bin/zsh scripts/ensure-local-signing-identity.command +``` + +The identity remains in the current user's login Keychain so macOS can retain +the removable-volume grant across changed local builds. It is not a Developer +ID and is not suitable for public distribution. + ```sh /bin/zsh scripts/build-native-app.command ``` -The Release application is produced under the ignored native build directory and copied to `dist/TFTMAC.app` for local use. Local validation uses ad-hoc signing. +The Release application is produced under the ignored native build directory, +copied to `dist/TFTMAC.app`, and signed as `TFTMAC Local Code Signing`. ## Test diff --git a/docs/releasing.md b/docs/releasing.md index 11f73cf..dc30b0c 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -29,7 +29,12 @@ The application does not package or publish TFT APKs. The supported Android pack ## Signing -Local development builds are ad-hoc signed. A public distribution may later use the project's Apple Developer identity, hardened runtime, notarization, and stapling through a separately approved release configuration. Credentials and signing secrets never belong in Git. +Local builds use the stable `TFTMAC Local Code Signing` identity created once by +`scripts/ensure-local-signing-identity.command`. This lets macOS recognize +updated local builds as the same app and retain removable-volume consent. The +private key remains in the user's login Keychain and never enters Git. This +local identity is not a public distribution identity; public distribution still +requires Developer ID signing, hardened runtime, notarization, and stapling. ## Release evidence diff --git a/scripts/build-native-app.command b/scripts/build-native-app.command old mode 100644 new mode 100755 index 9e4bb7f..8c216a1 --- a/scripts/build-native-app.command +++ b/scripts/build-native-app.command @@ -13,6 +13,14 @@ DERIVED="${ROOT}/.build/native-release" APP="${DERIVED}/Build/Products/Release/TFTMAC.app" DIST="${ROOT}/dist/TFTMAC.app" ICON_WORK="$(mktemp -d /private/tmp/tftmac-native-icon.XXXXXX)" +SIGNING_IDENTITY_NAME="${TFTMAC_CODE_SIGN_IDENTITY_NAME:-TFTMAC Local Code Signing}" +SIGNING_IDENTITY_HASH="$(/usr/bin/security find-identity -v -p codesigning \ + | /usr/bin/awk -v name="${SIGNING_IDENTITY_NAME}" 'index($0, "\"" name "\"") { print $2; exit }')" + +[[ -n "${SIGNING_IDENTITY_HASH}" ]] || { + print -u2 "TFTMAC requires the stable '${SIGNING_IDENTITY_NAME}' identity. Run scripts/ensure-local-signing-identity.command once." + exit 1 +} cleanup() { /bin/rm -rf "${ICON_WORK}" @@ -56,6 +64,17 @@ done /usr/bin/iconutil -c icns "${ICON_WORK}/TFTMAC.iconset" -o "${DIST}/Contents/Resources/TFTMAC.icns" /bin/cp "${ICON_WORK}/icon_1024x1024.png" "${DIST}/Contents/Resources/TFTMAC-1024.png" +# Perfetto v58.2 mac-arm64 is pinned by the official manifest SHA-256. Raw +# combat traces are normalized locally with this exact executable before the +# app records any causal trace conclusion. +TRACE_PROCESSOR="$(/bin/zsh "${ROOT}/scripts/install-trace-processor.command")" +/bin/cp "${TRACE_PROCESSOR}" "${DIST}/Contents/Resources/trace_processor_shell" +/bin/chmod 755 "${DIST}/Contents/Resources/trace_processor_shell" +[[ "$(/usr/bin/shasum -a 256 "${DIST}/Contents/Resources/trace_processor_shell" | /usr/bin/awk '{print $1}')" == "d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa" ]] || { + print -u2 "Packaged Perfetto trace_processor failed its pinned SHA-256 receipt." + exit 1 +} + # Package a TFTMAC-owned Mac application host for Android Emulator. Launching # this nested app with /usr/bin/open keeps the emulator and ADB identity inside # the logged-in user's macOS session, matching the proven donor architecture. @@ -68,9 +87,11 @@ HOST_MACOS="${HOST_APP}/Contents/MacOS" -o "${HOST_MACOS}/TFTMACEmulatorHost" /bin/cp "${ROOT}/RuntimeHost/Info.plist" "${HOST_APP}/Contents/Info.plist" /usr/bin/plutil -lint "${HOST_APP}/Contents/Info.plist" >/dev/null -/usr/bin/codesign --force --sign - --timestamp=none "${HOST_APP}" +/usr/bin/codesign --force --sign "${SIGNING_IDENTITY_HASH}" --timestamp=none "${HOST_APP}" -/usr/bin/codesign --force --deep --sign - --timestamp=none "${DIST}" +/usr/bin/codesign --force --deep --sign "${SIGNING_IDENTITY_HASH}" --timestamp=none "${DIST}" /usr/bin/codesign --verify --deep --strict --verbose=2 "${DIST}" +/usr/bin/codesign -dvv "${DIST}" 2>&1 \ + | /usr/bin/grep -F "Authority=${SIGNING_IDENTITY_NAME}" >/dev/null echo "Native TFTMAC built: ${DIST}" diff --git a/scripts/ensure-local-signing-identity.command b/scripts/ensure-local-signing-identity.command new file mode 100755 index 0000000..647ca40 --- /dev/null +++ b/scripts/ensure-local-signing-identity.command @@ -0,0 +1,72 @@ +#!/bin/zsh +set -euo pipefail + +# TFTMAC's Android runtime intentionally lives on a removable volume. macOS +# associates that consent with the app's code-signing identity, so ad-hoc +# signing causes the prompt to return after every changed build. This creates a +# stable, local-only identity in the current user's login keychain. It is not a +# distribution or notarization identity. +readonly IDENTITY_NAME="TFTMAC Local Code Signing" +readonly LOGIN_KEYCHAIN="$(/usr/bin/security default-keychain -d user \ + | /usr/bin/sed -E 's/^[[:space:]]*"//; s/"[[:space:]]*$//')" + +identity_hash() { + /usr/bin/security find-identity -v -p codesigning "${LOGIN_KEYCHAIN}" \ + | /usr/bin/awk -v name="${IDENTITY_NAME}" 'index($0, "\"" name "\"") { print $2; exit }' +} + +existing_hash="$(identity_hash)" +if [[ -n "${existing_hash}" ]]; then + echo "${existing_hash}" + exit 0 +fi + +if /usr/bin/security find-certificate -c "${IDENTITY_NAME}" "${LOGIN_KEYCHAIN}" >/dev/null 2>&1; then + print -u2 "TFTMAC signing certificate exists but is not a valid code-signing identity. Repair it in Keychain Access before rebuilding." + exit 1 +fi + +readonly OPENSSL="${TFTMAC_OPENSSL:-/opt/homebrew/bin/openssl}" +[[ -x "${OPENSSL}" ]] || { + print -u2 "TFTMAC requires OpenSSL at ${OPENSSL} to create its one-time local signing identity." + exit 1 +} + +work_dir="$(/usr/bin/mktemp -d /private/tmp/tftmac-local-signing.XXXXXX)" +cleanup() { + /bin/rm -rf "${work_dir}" +} +trap cleanup EXIT + +passphrase="$(/usr/bin/uuidgen)$(/usr/bin/uuidgen)" +umask 077 +"${OPENSSL}" req -x509 -newkey rsa:3072 -sha256 -days 3650 -nodes \ + -subj "/CN=${IDENTITY_NAME}/O=TFTMAC Local Development" \ + -addext "basicConstraints=critical,CA:TRUE" \ + -addext "keyUsage=critical,digitalSignature" \ + -addext "extendedKeyUsage=codeSigning" \ + -keyout "${work_dir}/identity.key" \ + -out "${work_dir}/identity.pem" >/dev/null 2>&1 +"${OPENSSL}" pkcs12 -export -legacy \ + -inkey "${work_dir}/identity.key" \ + -in "${work_dir}/identity.pem" \ + -name "${IDENTITY_NAME}" \ + -passout "pass:${passphrase}" \ + -out "${work_dir}/identity.p12" + +/usr/bin/security import "${work_dir}/identity.p12" \ + -k "${LOGIN_KEYCHAIN}" \ + -P "${passphrase}" \ + -T /usr/bin/codesign >/dev/null +/usr/bin/security add-trusted-cert \ + -r trustRoot \ + -p codeSign \ + -k "${LOGIN_KEYCHAIN}" \ + "${work_dir}/identity.pem" + +created_hash="$(identity_hash)" +[[ -n "${created_hash}" ]] || { + print -u2 "TFTMAC created the certificate but macOS did not expose a valid signing identity." + exit 1 +} +echo "${created_hash}" diff --git a/scripts/install-trace-processor.command b/scripts/install-trace-processor.command new file mode 100644 index 0000000..3faee9d --- /dev/null +++ b/scripts/install-trace-processor.command @@ -0,0 +1,40 @@ +#!/bin/zsh +set -euo pipefail + +readonly ROOT="${0:A:h:h}" +readonly VERSION="58.2" +readonly EXPECTED_SHA256="d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa" +readonly EXPECTED_BYTES="13597976" +readonly URL="https://commondatastorage.googleapis.com/perfetto-luci-artifacts/v${VERSION}/mac-arm64/trace_processor_shell" +readonly TOOL_DIRECTORY="${ROOT}/.build/tools/perfetto" +readonly TOOL="${TOOL_DIRECTORY}/trace_processor_shell-v${VERSION}-mac-arm64" + +/bin/mkdir -p "${TOOL_DIRECTORY}" +if [[ -f "${TOOL}" ]]; then + actual_sha="$(/usr/bin/shasum -a 256 "${TOOL}" | /usr/bin/awk '{print $1}')" + actual_bytes="$(/usr/bin/stat -f '%z' "${TOOL}")" + if [[ "${actual_sha}" == "${EXPECTED_SHA256}" && "${actual_bytes}" == "${EXPECTED_BYTES}" ]]; then + /bin/chmod 755 "${TOOL}" + print -r -- "${TOOL}" + exit 0 + fi +fi + +temporary="$(/usr/bin/mktemp "${TOOL_DIRECTORY}/trace_processor.XXXXXX")" +cleanup() { /bin/rm -f "${temporary}"; } +trap cleanup EXIT +/usr/bin/curl -fsSL "${URL}" -o "${temporary}" +actual_sha="$(/usr/bin/shasum -a 256 "${temporary}" | /usr/bin/awk '{print $1}')" +actual_bytes="$(/usr/bin/stat -f '%z' "${temporary}")" +[[ "${actual_sha}" == "${EXPECTED_SHA256}" ]] || { + print -u2 "Perfetto trace_processor SHA-256 mismatch: ${actual_sha}" + exit 1 +} +[[ "${actual_bytes}" == "${EXPECTED_BYTES}" ]] || { + print -u2 "Perfetto trace_processor size mismatch: ${actual_bytes}" + exit 1 +} +/bin/chmod 755 "${temporary}" +/bin/mv -f "${temporary}" "${TOOL}" +trap - EXIT +print -r -- "${TOOL}" diff --git a/scripts/summarize-native-session.command b/scripts/summarize-native-session.command new file mode 100755 index 0000000..4506cd2 --- /dev/null +++ b/scripts/summarize-native-session.command @@ -0,0 +1,236 @@ +#!/bin/zsh +# Summarize one native TFTMAC capture without exposing raw guest/emulator logs. +set -euo pipefail + +readonly SQLITE3_BIN="${TFT_SQLITE3:-$(command -v sqlite3 2>/dev/null || true)}" +readonly CAPTURE_ROOT_INPUT="${TFTMAC_CAPTURE_ROOT:-$HOME/Library/Application Support/TFTMAC/Captures}" + +fail() { + print -u2 -- "$*" + exit 1 +} + +canonical_directory() { + [[ -d "$1" ]] || return 1 + (cd "$1" && pwd -P) +} + +[[ -n "$SQLITE3_BIN" && -x "$SQLITE3_BIN" ]] || fail "sqlite3 is required to summarize a native TFTMAC session." +readonly CAPTURE_ROOT="$(canonical_directory "$CAPTURE_ROOT_INPUT")" \ + || fail "Capture root does not exist: $CAPTURE_ROOT_INPUT" + +typeset capture_input +if (( $# > 1 )); then + fail "Usage: ${0:t} [capture-directory]" +elif (( $# == 1 )); then + capture_input="$1" +else + typeset -a captures + captures=("$CAPTURE_ROOT"/*(N/om[1])) + (( ${#captures} > 0 )) || fail "No capture directories were found under $CAPTURE_ROOT" + capture_input="$captures[1]" +fi + +readonly CAPTURE_DIR="$(canonical_directory "$capture_input")" \ + || fail "Capture directory does not exist: $capture_input" +if [[ "$CAPTURE_DIR" != "$CAPTURE_ROOT" && "$CAPTURE_DIR" != "$CAPTURE_ROOT"/* ]]; then + fail "Capture directory must be inside $CAPTURE_ROOT" +fi + +readonly DATABASE="$CAPTURE_DIR/TFTMAC_NATIVE_RUNTIME.sqlite" +[[ -f "$DATABASE" ]] || fail "Missing TFTMAC_NATIVE_RUNTIME.sqlite in $CAPTURE_DIR" + +sql() { + "$SQLITE3_BIN" -readonly -noheader -batch "$DATABASE" "$1" +} + +table_exists() { + [[ "$(sql "SELECT count(*) FROM sqlite_master WHERE type='table' AND name=$(sql_quote "$1");")" == "1" ]] +} + +sql_quote() { + local value="$1" + value="${value//\'/\'\'}" + print -r -- "'$value'" +} + +has_column() { + local table="$1" column="$2" + [[ "$(sql "SELECT count(*) FROM pragma_table_info($(sql_quote "$table")) WHERE name=$(sql_quote "$column");")" == "1" ]] +} + +first_column() { + local table="$1" + shift + local candidate + for candidate in "$@"; do + if has_column "$table" "$candidate"; then + print -r -- "$candidate" + return 0 + fi + done + return 1 +} + +column_or_null() { + local table="$1" + shift + local column + column="$(first_column "$table" "$@" 2>/dev/null || true)" + [[ -n "$column" ]] && print -r -- "\"$column\"" || print -r -- "NULL" +} + +print_table_coverage() { + local table="$1" time_column rows earliest latest + if ! table_exists "$table"; then + print " $table: UNAVAILABLE (this app version did not create the table)" + return + fi + rows="$(sql "SELECT count(*) FROM \"$table\";")" + time_column="$(first_column "$table" observed_utc started_utc ended_utc sampled_utc created_utc timestamp_utc started_monotonic_ns sampled_monotonic_ns monotonic_ns 2>/dev/null || true)" + if [[ -z "$time_column" ]]; then + print " $table: rows=$rows coverage=timestamp-column-unavailable" + return + fi + earliest="$(sql "SELECT COALESCE(min(\"$time_column\"), '—') FROM \"$table\";")" + latest="$(sql "SELECT COALESCE(max(\"$time_column\"), '—') FROM \"$table\";")" + print " $table: rows=$rows coverage=$earliest .. $latest" +} + +print_section() { + print "" + print "$1" +} + +print "TFTMAC native-session report" +print "capture=$CAPTURE_DIR" +print "database=$DATABASE" +print "generated_utc=$(date -u '+%Y-%m-%dT%H:%M:%SZ')" + +readonly INTEGRITY="$(sql 'PRAGMA integrity_check;' | tr '\n' ' ')" +readonly QUICK="$(sql 'PRAGMA quick_check;' | tr '\n' ' ')" +print "integrity_check=$INTEGRITY" +print "quick_check=$QUICK" +[[ "$INTEGRITY" == "ok " && "$QUICK" == "ok " ]] || fail "Database integrity check failed; report stopped." + +print_section "Coverage" +for table in sessions runtime_receipts events presentation_samples frame_interval_windows \ + game_frame_windows game_frame_intervals stream_freshness_windows \ + host_presentation_windows resource_samples guest_memory_samples \ + surfaceflinger_samples audio_samples logcat_aggregates pipeline_log_aggregates \ + graphics_pipeline_snapshots diagnostic_artifacts; do + print_table_coverage "$table" +done + +print_section "Guest TFT frame truth (SurfaceFlinger timing)" +if table_exists game_frame_windows; then + readonly GUEST_LOW="$(column_or_null game_frame_windows rolling_1pct_low_fps one_percent_low_fps one_percent_low)" + readonly GUEST_P95="$(column_or_null game_frame_windows p95_interval_ms p95_ms)" + readonly GUEST_P99="$(column_or_null game_frame_windows p99_interval_ms p99_ms)" + readonly GUEST_MAX="$(column_or_null game_frame_windows maximum_interval_ms max_interval_ms max_ms)" + readonly GUEST_JANK="$(column_or_null game_frame_windows jank_count janky_frames)" + readonly GUEST_SEVERE="$(column_or_null game_frame_windows severe_count severe_frames)" + readonly GUEST_MISSED="$(column_or_null game_frame_windows missed_vsync_equivalents missed_vsync_count missed_vsyncs)" + readonly GUEST_ORDER="$(first_column game_frame_windows rolling_1pct_low_fps one_percent_low_fps p99_interval_ms maximum_interval_ms started_monotonic_ns 2>/dev/null || true)" + if [[ -n "$GUEST_ORDER" ]]; then + sql "SELECT ' worst window: 1%-low=' || COALESCE(CAST($GUEST_LOW AS TEXT), '—') || + ' p95ms=' || COALESCE(CAST($GUEST_P95 AS TEXT), '—') || + ' p99ms=' || COALESCE(CAST($GUEST_P99 AS TEXT), '—') || + ' maxms=' || COALESCE(CAST($GUEST_MAX AS TEXT), '—') || + ' jank=' || COALESCE(CAST($GUEST_JANK AS TEXT), '—') || + ' severe=' || COALESCE(CAST($GUEST_SEVERE AS TEXT), '—') || + ' missed-vsync=' || COALESCE(CAST($GUEST_MISSED AS TEXT), '—') + FROM game_frame_windows + WHERE status = 'AVAILABLE' + ORDER BY \"$GUEST_ORDER\" ASC LIMIT 1;" || true + else + print " telemetry rows exist, but the expected frame-window fields are unavailable" + fi +else + print " UNAVAILABLE: no game_frame_windows table; SRC/OUT must not be treated as TFT FPS." +fi + +print_section "Transport freshness and Mac presentation" +if table_exists stream_freshness_windows; then + readonly FREEZE_COL="$(column_or_null stream_freshness_windows longest_identical_run_ms longest_static_run_ms freeze_ms)" + readonly IDENTICAL_COL="$(column_or_null stream_freshness_windows identical_frames repeated_frames)" + print " worst stream freeze_ms=$(sql "SELECT COALESCE(max($FREEZE_COL), '—') FROM stream_freshness_windows;") identical_frames=$(sql "SELECT COALESCE(sum($IDENTICAL_COL), '—') FROM stream_freshness_windows;")" +else + print " stream freshness: UNAVAILABLE" +fi +if table_exists host_presentation_windows; then + readonly HOST_GPU_P95="$(column_or_null host_presentation_windows p95_gpu_time_ms gpu_p95_ms p95_gpu_ms)" + readonly HOST_ERRORS="$(column_or_null host_presentation_windows command_errors command_error_count errors)" + readonly HOST_MISSES="$(column_or_null host_presentation_windows drawable_miss_count drawable_misses)" + print " host Metal: gpu_p95ms=$(sql "SELECT COALESCE(max($HOST_GPU_P95), '—') FROM host_presentation_windows;") errors=$(sql "SELECT COALESCE(sum($HOST_ERRORS), '—') FROM host_presentation_windows;") drawable_misses=$(sql "SELECT COALESCE(sum($HOST_MISSES), '—') FROM host_presentation_windows;")" +else + print " host Metal timing: UNAVAILABLE" +fi + +print_section "Resources and graphics-pipeline signals" +if table_exists resource_samples; then + readonly CPU_COL="$(column_or_null resource_samples emulator_cpu_percent cpu_percent)" + readonly RSS_COL="$(column_or_null resource_samples emulator_rss_kib rss_kib)" + print " emulator CPU peak=$(sql "SELECT COALESCE(max($CPU_COL), '—') FROM resource_samples;")% RSS peak KiB=$(sql "SELECT COALESCE(max($RSS_COL), '—') FROM resource_samples;")" +else + print " resources: UNAVAILABLE" +fi +if table_exists guest_memory_samples; then + readonly AVAILABLE_MEM_COL="$(column_or_null guest_memory_samples available_kib mem_available_kib)" + readonly SWAP_FREE_COL="$(column_or_null guest_memory_samples swap_free_kib)" + print " guest memory: minimum_available_kib=$(sql "SELECT COALESCE(min($AVAILABLE_MEM_COL), '—') FROM guest_memory_samples;") minimum_swap_free_kib=$(sql "SELECT COALESCE(min($SWAP_FREE_COL), '—') FROM guest_memory_samples;")" +else + print " guest memory: UNAVAILABLE" +fi +if table_exists pipeline_log_aggregates; then + readonly GFX_COL="$(column_or_null pipeline_log_aggregates gfxstream_warning_count gfxstream_warnings)" + readonly ASG_COL="$(column_or_null pipeline_log_aggregates asg_stall_count asg_stalls)" + readonly VK_COL="$(column_or_null pipeline_log_aggregates vulkan_error_count vulkan_errors)" + readonly MVK_COL="$(column_or_null pipeline_log_aggregates moltenvk_warning_count moltenvk_warnings)" + readonly SHADER_COL="$(column_or_null pipeline_log_aggregates shader_error_count shader_errors)" + readonly FENCE_COL="$(column_or_null pipeline_log_aggregates fence_timeout_count fence_timeouts)" + print " pipeline aggregate: gfxstream_warn=$(sql "SELECT COALESCE(sum($GFX_COL), '—') FROM pipeline_log_aggregates;") asg_stall=$(sql "SELECT COALESCE(sum($ASG_COL), '—') FROM pipeline_log_aggregates;") vulkan_error=$(sql "SELECT COALESCE(sum($VK_COL), '—') FROM pipeline_log_aggregates;") mvk_warn=$(sql "SELECT COALESCE(sum($MVK_COL), '—') FROM pipeline_log_aggregates;") shader_error=$(sql "SELECT COALESCE(sum($SHADER_COL), '—') FROM pipeline_log_aggregates;") fence_timeout=$(sql "SELECT COALESCE(sum($FENCE_COL), '—') FROM pipeline_log_aggregates;")" +else + print " pipeline aggregates: UNAVAILABLE (raw logs are intentionally not printed)" +fi +if table_exists graphics_pipeline_snapshots; then + sql "SELECT ' latest stack evidence: TFT-surface=' || tft_surface_state || + ' ANGLE=' || angle_state || ' gfxstream=' || gfxstream_state || + ' MoltenVK=' || moltenvk_state || ' host-device=' || COALESCE(host_vulkan_device, '—') + FROM graphics_pipeline_snapshots ORDER BY monotonic_ns DESC LIMIT 1;" || true +else + print " graphics pipeline identity: UNAVAILABLE" +fi + +print_section "Markers, incidents, and diagnostic artifacts" +if table_exists events; then + readonly EVENT_KIND="$(first_column events event_type kind name 2>/dev/null || true)" + if [[ -n "$EVENT_KIND" ]]; then + print " events_total=$(sql 'SELECT count(*) FROM events;') incident_like=$(sql "SELECT count(*) FROM events WHERE upper(\"$EVENT_KIND\") LIKE '%INCIDENT%' OR upper(\"$EVENT_KIND\") LIKE '%STUTTER%' OR upper(\"$EVENT_KIND\") LIKE '%DEGRAD%';")" + else + print " events_total=$(sql 'SELECT count(*) FROM events;')" + fi +else + print " events: UNAVAILABLE" +fi +if table_exists diagnostic_artifacts; then + print " diagnostic_artifacts=$(sql 'SELECT count(*) FROM diagnostic_artifacts;') (artifact paths and trace contents withheld)" +else + print " diagnostic artifacts: UNAVAILABLE" +fi + +print_section "Explicit telemetry gaps" +typeset -a gaps +gaps=() +for table in game_frame_windows game_frame_intervals stream_freshness_windows host_presentation_windows pipeline_log_aggregates graphics_pipeline_snapshots diagnostic_artifacts; do + table_exists "$table" || gaps+=("$table") +done +if (( ${#gaps} == 0 )); then + print " No required telemetry table is missing. Empty rows still mean no sampled evidence for that layer." +else + print " Missing tables: ${(j:, :)gaps}" +fi +if table_exists game_frame_windows && [[ "$(sql 'SELECT count(*) FROM game_frame_windows;')" == "0" ]]; then + print " Guest frame table has no rows: no evidence yet for real TFT combat FPS." +fi +print " This report deliberately excludes raw logcat/emulator text, credentials, and tokens." diff --git a/scripts/verify-tftmac.command b/scripts/verify-tftmac.command index c137bdf..a9e0143 100644 --- a/scripts/verify-tftmac.command +++ b/scripts/verify-tftmac.command @@ -14,7 +14,7 @@ require_command() { command -v "$1" >/dev/null 2>&1 || fail "required command is unavailable: $1" } -for tool in git jq node plutil rg shasum xcodebuild zsh; do +for tool in codesign git jq node plutil rg security shasum xcodebuild zsh; do require_command "$tool" done @@ -35,6 +35,8 @@ for required in \ scripts/generate-emulator-proto.command \ scripts/build-tftmac-app.command \ scripts/build-native-app.command \ + scripts/install-trace-processor.command \ + scripts/ensure-local-signing-identity.command \ scripts/test-native-app.command \ ssot/STACK.lock.yaml \ ssot/runtime-authority.json; do @@ -45,6 +47,14 @@ plutil -lint "$INFO" >/dev/null || fail "Info.plist is invalid" [[ "$(plutil -extract CFBundleDisplayName raw "$INFO")" == "TFTMAC" ]] || fail "unexpected app display name" [[ "$(plutil -extract CFBundleExecutable raw "$INFO")" == "TFTMAC" ]] || fail "unexpected app executable" [[ "$(plutil -extract CFBundleIdentifier raw "$INFO")" == "com.flashls1.tftmac" ]] || fail "unexpected bundle identifier" +readonly INFO_VERSION="$(plutil -extract CFBundleShortVersionString raw "$INFO")" +readonly INFO_BUILD="$(plutil -extract CFBundleVersion raw "$INFO")" +readonly AUTHORITY_VERSION="$(jq -r '.finalInstalledRelease.version' ssot/runtime-authority.json)" +readonly AUTHORITY_BUILD="$(jq -r '.finalInstalledRelease.build' ssot/runtime-authority.json)" +[[ "$INFO_VERSION" == "$AUTHORITY_VERSION" ]] || fail "source and release-authority versions differ" +[[ "$INFO_BUILD" == "$AUTHORITY_BUILD" ]] || fail "source and release-authority builds differ" +[[ "$(plutil -extract NSRemovableVolumesUsageDescription raw "$INFO")" == *"Android emulator runtime"* ]] \ + || fail "removable-volume purpose string is missing" # There is one executable build authority. The compatibility entrypoint may # delegate to it, but it may never rebuild or install the retired Node shell. @@ -66,7 +76,16 @@ jq -e ' .emulator.adbVendorKeysInjected == false and .runtimeProfile.vcpu == 6 and .runtimeProfile.ramMiB == 5120 and - .runtimeProfile.display == "1920x1080" + .runtimeProfile.display == "1920x1080" and + .finalInstalledRelease.version == "2.2.0" and + .finalInstalledRelease.build == "5" and + .finalInstalledRelease.signingIdentity == "TFTMAC Local Code Signing" and + .finalInstalledRelease.adHocSigned == false and + .finalInstalledRelease.removableVolumePermissionRetainedAcrossRelaunch == true and + .finalInstalledRelease.nonErrorUnlockOverlayVisible == false and + .finalInstalledRelease.unitTestsPassed == 36 and + .finalInstalledRelease.primaryInputTransport == "EmulatorController.sendTouch" and + .androidWebView.currentVersion == "151.0.7922.199" ' ssot/runtime-authority.json >/dev/null || fail "native runtime authority drifted" for locked in \ @@ -77,11 +96,31 @@ for locked in \ 'adb_server_port: 5038' \ 'ram_mb: 5120' \ 'selected: A' \ + 'version: "2.2.0"' \ + 'build: "5"' \ + 'signing: "stable_local_identity_valid"' \ 'mac_icon_embedded: true' \ - 'unit_tests_passed: 14'; do + 'removable_volume_permission_relaunch: PASS' \ + 'non_error_unlock_overlay: ABSENT' \ + 'unit_tests_passed: 36' \ + 'webview_version: "151.0.7922.199"'; do rg -q -F -- "$locked" ssot/STACK.lock.yaml || fail "active stack lock drifted: $locked" done +readonly TEST_FUNCTION_COUNT="$(rg -n '^[[:space:]]*func test' Tests/TFTMACTests --glob '*.swift' | wc -l | tr -d '[:space:]')" +[[ "$TEST_FUNCTION_COUNT" == "36" ]] || fail "native test inventory drifted: expected 36, found $TEST_FUNCTION_COUNT" + +readonly INSTALLED_APP="/Applications/TFTMAC.app" +[[ -d "$INSTALLED_APP" ]] || fail "released native app is not installed" +codesign --verify --deep --strict "$INSTALLED_APP" || fail "installed native app signature is invalid" +[[ "$(plutil -extract CFBundleShortVersionString raw "$INSTALLED_APP/Contents/Info.plist")" == "$INFO_VERSION" ]] \ + || fail "installed app version differs from source" +[[ "$(plutil -extract CFBundleVersion raw "$INSTALLED_APP/Contents/Info.plist")" == "$INFO_BUILD" ]] \ + || fail "installed app build differs from source" +readonly INSTALLED_EXECUTABLE_SHA="$(shasum -a 256 "$INSTALLED_APP/Contents/MacOS/TFTMAC" | awk '{print $1}')" +[[ "$INSTALLED_EXECUTABLE_SHA" == "$(jq -r '.finalInstalledRelease.executableSHA256' ssot/runtime-authority.json)" ]] \ + || fail "installed executable hash differs from release authority" + readonly PROTO_SHA="$(shasum -a 256 "$PROTO" | awk '{print $1}')" readonly RECORDED_PROTO_SHA="$(jq -r '.vendoredProtoSHA256' "$PROTO_SOURCE")" readonly RECORDED_INSTALLED_SHA="$(jq -r '.installedProtoSHA256' "$PROTO_SOURCE")" @@ -132,6 +171,8 @@ if [[ "${TFTMAC_SKIP_NATIVE_BUILD:-0}" != "1" ]]; then /bin/zsh scripts/build-native-app.command [[ -s dist/TFTMAC.app/Contents/Resources/TFTMAC.icns ]] || fail "native app icon is missing" [[ -s dist/TFTMAC.app/Contents/Resources/TFTMAC-1024.png ]] || fail "native app icon source is missing" + [[ "$(shasum -a 256 dist/TFTMAC.app/Contents/Resources/trace_processor_shell | awk '{print $1}')" == "d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa" ]] \ + || fail "pinned Perfetto trace_processor is missing or invalid" /bin/zsh scripts/test-native-app.command fi diff --git a/ssot/STACK.lock.yaml b/ssot/STACK.lock.yaml index e730fe7..232de13 100644 --- a/ssot/STACK.lock.yaml +++ b/ssot/STACK.lock.yaml @@ -1,5 +1,5 @@ schema: 3 -frozen_at: "2026-08-30T09:30:17Z" +frozen_at: "2026-08-30T23:30:36Z" phase0_status: PASS authority: @@ -26,15 +26,22 @@ host: hardware_model: "Mac16,10" release: - version: "2.0.0" - build: "2" + version: "2.2.0" + build: "5" installed_path: "/Applications/TFTMAC.app" - executable_sha256: "4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49" - signing: "ad_hoc_local_valid" + executable_sha256: "8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2" + signing: "stable_local_identity_valid" + signing_identity: "TFTMAC Local Code Signing" notarized_for_public_distribution: false mac_icon_embedded: true + removable_volume_permission_relaunch: PASS + non_error_unlock_overlay: ABSENT native_verifier: PASS - unit_tests_passed: 14 + unit_tests_passed: 36 + rapid_combat_ab: "STATIC_VERIFIED_RUNTIME_BENCHMARK_PENDING" + current_release_launch_acceptance: "PENDING_USER_COMBAT_BENCHMARK" + perfetto_trace_processor_version: "58.2" + perfetto_trace_processor_sha256: "d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa" android_command_line_tools: archive: "commandlinetools-mac_arm64-15859902_latest.zip" @@ -52,6 +59,8 @@ android: adb_server_port: 5038 platform_tools_revision: "37.0.1" emulator_revision: "37.1.11" + webview_provider: "com.google.android.webview" + webview_version: "151.0.7922.199" platform_revision: "1" build_tools_revision: "37.0.0" diff --git a/ssot/runtime-authority.json b/ssot/runtime-authority.json index bcc8b69..24515a4 100644 --- a/ssot/runtime-authority.json +++ b/ssot/runtime-authority.json @@ -1,6 +1,6 @@ { "schema": 2, - "observedAt": "2026-08-30T09:30:17Z", + "observedAt": "2026-08-30T23:30:36Z", "gate": "Native full-screen playable runtime acceptance", "result": "PASS", "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", @@ -28,6 +28,13 @@ "graphicsTransport": "virtio-gpu-asg", "asgDrawFlushInterval": 800 }, + "androidWebView": { + "package": "com.google.android.webview", + "preRepairVersion": "133.0.6943.137", + "currentVersion": "151.0.7922.199", + "updateSource": "com.android.vending", + "riotLoginActivity": "com.riotgames.platformui.mobilefre.MobileFREWebViewActivity" + }, "package": { "name": "com.riotgames.league.teamfighttactics", "versionName": "18.1-5402721", @@ -56,22 +63,35 @@ }, "finalInstalledRelease": { "path": "/Applications/TFTMAC.app", - "version": "2.0.0", - "build": "2", - "executableSHA256": "4f684ccea98b83a5451e8e614a795615d47970368b7e5273d92537ddc10c0a49", + "version": "2.2.0", + "build": "5", + "executableSHA256": "8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2", "deepCodeSignatureValid": true, + "signingIdentity": "TFTMAC Local Code Signing", + "adHocSigned": false, + "designatedRequirement": "identifier com.flashls1.tftmac and certificate root AD42350FDE69323BA63D0E0C6604AC347C506F0C", "macIconEmbedded": true, "nativeVerifier": "PASS", - "unitTestsPassed": 14, + "unitTestsPassed": 36, + "rapidCombatABImplementation": "STATIC_VERIFIED_RUNTIME_BENCHMARK_PENDING", + "perfettoTraceProcessorVersion": "58.2", + "perfettoTraceProcessorSHA256": "d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa", "liveMatchAndCleanShutdownCapture": "2026-08-30T09-25-17.519Z-1a9d0227-3cf8-4a19-b353-c0f135ccf31c", - "installedReleaseLaunchCapture": "2026-08-30T09-30-17.189Z-68f1bb24-f660-4245-9750-823b7da703a4", + "priorSignedReleaseCleanShutdownCapture": "2026-08-30T20-24-24.969Z-998c4e53-ff91-4cf3-8002-21543dc5d46f", + "priorVersionLaunchCapture": "2026-08-30T20-41-22.662Z-4bdb8a3f-813d-4e70-b8bd-67c0b6b5766f", + "currentReleaseLaunchAcceptance": "PENDING_USER_COMBAT_BENCHMARK", + "removableVolumePermissionRetainedAcrossRelaunch": true, + "nonErrorUnlockOverlayVisible": false, "confirmedMemoryKills": 0, - "secureAndroidUnlock": "MANUAL_ONLY" + "secureAndroidUnlock": "MANUAL_ONLY", + "primaryInputTransport": "EmulatorController.sendTouch", + "primaryTouchReceipt": "PRIMARY_TOUCH_INPUT_ACTIVE" }, "evidenceOperations": [ "native-events:CONTROLLER_AUTHENTICATED", "native-events:ADB_DEVICE_AUTHORIZED", "native-events:FIRST_NATIVE_FRAME", + "native-events:PRIMARY_TOUCH_INPUT_ACTIVE", "native-events:OFFICIAL_TFT_PACKAGE_RECEIPT", "native-events:TFT_LAUNCH_REQUESTED", "native-events:TFT_PROCESS_STARTED", diff --git a/tftmac/App/AppCoordinator.swift b/tftmac/App/AppCoordinator.swift index eb79d69..d8d2470 100644 --- a/tftmac/App/AppCoordinator.swift +++ b/tftmac/App/AppCoordinator.swift @@ -6,16 +6,28 @@ final class AppCoordinator: NSObject, NSApplicationDelegate { private var mainWindowController: MainWindowController? private var runtimeController: TFTMACRuntimeController? private var settingsWindowController: RuntimeSettingsWindowController? + private var activeProfile: TFTMACRuntimeProfile = .playable private var terminationInProgress = false func applicationDidFinishLaunching(_ notification: Notification) { let controller = MainWindowController(mailbox: mailbox) mainWindowController = controller let activeProfile = TFTMACRuntimeProfile.load() - let runtime = TFTMACRuntimeController(profile: activeProfile, mailbox: mailbox) { [weak controller] text, isError in - controller?.emulatorView.setStatus(text, isError: isError) - } + self.activeProfile = activeProfile + let runtime = TFTMACRuntimeController( + profile: activeProfile, + mailbox: mailbox, + status: { [weak controller] text, isError in + controller?.emulatorView.setStatus(text, isError: isError) + }, + gameFrame: { [weak controller] window in + controller?.emulatorView.setGameFrameWindow(window) + } + ) runtimeController = runtime + controller.emulatorView.onTouchInput = { [weak runtime] input in + runtime?.sendTouch(input) + } controller.emulatorView.onMouseInput = { [weak runtime] x, y, buttons in runtime?.sendMouse(x: x, y: y, buttons: buttons) } @@ -25,6 +37,9 @@ final class AppCoordinator: NSObject, NSApplicationDelegate { controller.emulatorView.onPresentationSample = { [weak runtime] sample in runtime?.recordPresentation(sample) } + controller.emulatorView.onHostPresentationWindow = { [weak runtime] sample in + runtime?.recordHostPresentation(sample) + } controller.showWindow(nil) controller.window?.makeFirstResponder(controller.emulatorView) NSApp.activate(ignoringOtherApps: true) @@ -47,8 +62,36 @@ final class AppCoordinator: NSObject, NSApplicationDelegate { } @objc func markMatchEntry(_ sender: Any?) { recordMarker("MATCH_ENTRY") } - @objc func markCombatStart(_ sender: Any?) { recordMarker("COMBAT_START") } - @objc func markVisibleStutter(_ sender: Any?) { recordMarker("VISIBLE_STUTTER") } + @objc func startCombatBenchmark(_ sender: Any?) { + let confirmed: Bool + if activeProfile.experimentPreset.requiresManualPerformanceModeBetaConfirmation { + let alert = NSAlert() + alert.messageText = "Confirm TFT Performance Mode Beta" + alert.informativeText = "Start only after official TFT Performance Mode Beta is ON. TFTMAC records this confirmation but does not change Riot settings or credentials." + alert.alertStyle = .informational + alert.addButton(withTitle: "Performance Mode Beta Is On — Start") + alert.addButton(withTitle: "Cancel") + confirmed = alert.runModal() == .alertFirstButtonReturn + guard confirmed else { return } + } else { + confirmed = false + } + runtimeController?.startCombatBenchmark(performanceModeConfirmed: confirmed) + } + @objc func markVisibleStutter(_ sender: Any?) { runtimeController?.markVisibleStutter() } + @objc func endCombatBenchmark(_ sender: Any?) { + var correctnessPassed = true + if activeProfile.experimentPreset == .homeRunA { + let alert = NSAlert() + alert.messageText = "Did Home Run A preserve correctness?" + alert.informativeText = "Reject the run if boot, graphics, input, audio, login, or gameplay correctness regressed. TFTMAC will restore Control for the next launch." + alert.alertStyle = .informational + alert.addButton(withTitle: "All Correct — End") + alert.addButton(withTitle: "Reject: Correctness Problem") + correctnessPassed = alert.runModal() == .alertFirstButtonReturn + } + runtimeController?.endCombatBenchmark(correctnessPassed: correctnessPassed) + } @objc func markMatchEnd(_ sender: Any?) { recordMarker("MATCH_END") } @objc func revealCaptureFolder(_ sender: Any?) { diff --git a/tftmac/App/RuntimeSettingsWindowController.swift b/tftmac/App/RuntimeSettingsWindowController.swift index 9166802..f94869c 100644 --- a/tftmac/App/RuntimeSettingsWindowController.swift +++ b/tftmac/App/RuntimeSettingsWindowController.swift @@ -2,6 +2,7 @@ import AppKit @MainActor final class RuntimeSettingsWindowController: NSWindowController { + private let experimentButton = NSPopUpButton() private let vCPUButton = NSPopUpButton() private let ramButton = NSPopUpButton() private let refreshButton = NSPopUpButton() @@ -13,7 +14,7 @@ final class RuntimeSettingsWindowController: NSWindowController { init(profile: TFTMACRuntimeProfile) { originalProfile = profile let window = NSWindow( - contentRect: NSRect(x: 0, y: 0, width: 600, height: 470), + contentRect: NSRect(x: 0, y: 0, width: 600, height: 510), styleMask: [.titled, .closable], backing: .buffered, defer: false @@ -29,6 +30,7 @@ final class RuntimeSettingsWindowController: NSWindowController { func refreshFromSavedProfile() { originalProfile = TFTMACRuntimeProfile.load() + select(originalProfile.experimentPreset, in: experimentButton) select(originalProfile.vCPU, in: vCPUButton) select(originalProfile.ramMiB, in: ramButton) select(originalProfile.refreshHz, in: refreshButton) @@ -51,16 +53,23 @@ final class RuntimeSettingsWindowController: NSWindowController { subtitle.textColor = .secondaryLabelColor subtitle.maximumNumberOfLines = 3 + experimentButton.addItems(withTitles: RuntimeExperimentPreset.allCases.map(\.displayName)) vCPUButton.addItems(withTitles: TFTMACRuntimeProfile.supportedVCPU.map(String.init)) ramButton.addItems(withTitles: TFTMACRuntimeProfile.supportedRAMMiB.map { "\($0) MiB" }) refreshButton.addItems(withTitles: TFTMACRuntimeProfile.supportedRefreshHz.map { "\($0) Hz" }) flushButton.addItems(withTitles: TFTMACRuntimeProfile.supportedASGDrawFlushIntervals.map { "\($0) µs" }) + for button in [vCPUButton, ramButton, refreshButton, flushButton] { + button.isEnabled = false + button.toolTip = "Locked for the controlled Combat Benchmark so the preset is the only changed variable." + } + select(profile.experimentPreset, in: experimentButton) select(profile.vCPU, in: vCPUButton) select(profile.ramMiB, in: ramButton) select(profile.refreshHz, in: refreshButton) select(profile.asgDrawFlushInterval, in: flushButton) let grid = NSGridView(views: [ + [fieldLabel("Launch experiment"), experimentButton], [fieldLabel("Virtual CPUs"), vCPUButton], [fieldLabel("Android RAM"), ramButton], [fieldLabel("Guest refresh target"), refreshButton], @@ -122,8 +131,13 @@ final class RuntimeSettingsWindowController: NSWindowController { if let candidate { button.selectItem(withTitle: candidate) } } + private func select(_ preset: RuntimeExperimentPreset, in button: NSPopUpButton) { + button.selectItem(withTitle: preset.displayName) + } + @objc private func restoreBaseline(_ sender: Any?) { let baseline = TFTMACRuntimeProfile.playable + select(.control, in: experimentButton) select(baseline.vCPU, in: vCPUButton) select(baseline.ramMiB, in: ramButton) select(baseline.refreshHz, in: refreshButton) @@ -132,16 +146,9 @@ final class RuntimeSettingsWindowController: NSWindowController { } @objc private func saveSettings(_ sender: Any?) { - guard let vCPU = selectedInteger(vCPUButton), - let ram = selectedInteger(ramButton), - let refresh = selectedInteger(refreshButton), - let flush = selectedInteger(flushButton) else { return } - let next = TFTMACRuntimeProfile.playable.with( - vCPU: vCPU, - ramMiB: ram, - refreshHz: refresh, - asgDrawFlushInterval: flush - ) + guard let preset = selectedExperimentPreset() else { return } + if preset.requiresManualPerformanceModeBetaConfirmation, !confirmHomeRunA() { return } + let next = TFTMACRuntimeProfile.playable.with(experimentPreset: preset) next.save() onSave?(originalProfile, next) originalProfile = next @@ -151,4 +158,18 @@ final class RuntimeSettingsWindowController: NSWindowController { private func selectedInteger(_ button: NSPopUpButton) -> Int? { button.titleOfSelectedItem?.split(separator: " ").first.flatMap { Int($0) } } + + private func selectedExperimentPreset() -> RuntimeExperimentPreset? { + RuntimeExperimentPreset.allCases.first { $0.displayName == experimentButton.titleOfSelectedItem } + } + + private func confirmHomeRunA() -> Bool { + let alert = NSAlert() + alert.messageText = "Enable Home Run A Performance Mode?" + alert.informativeText = "Before continuing, manually enable official TFT Performance Mode Beta in the game and confirm it is on. The next launch will request only NativeTextureDecompression and NoDelayCloseColorBuffer in addition to the proven emulator feature baseline. Restore Proven Baseline returns to the control preset." + alert.alertStyle = .warning + alert.addButton(withTitle: "Performance Mode Beta Is On") + alert.addButton(withTitle: "Cancel") + return alert.runModal() == .alertFirstButtonReturn + } } diff --git a/tftmac/App/TFTMACApplication.swift b/tftmac/App/TFTMACApplication.swift index eab97f9..7ee8c7c 100644 --- a/tftmac/App/TFTMACApplication.swift +++ b/tftmac/App/TFTMACApplication.swift @@ -51,9 +51,10 @@ enum TFTMACApplication { let performanceMenu = NSMenu(title: "Telemetry") performanceItem.submenu = performanceMenu addTelemetryItem("Mark Match Entry", action: #selector(AppCoordinator.markMatchEntry(_:)), key: "1", to: performanceMenu, coordinator: coordinator) - addTelemetryItem("Mark Combat Start", action: #selector(AppCoordinator.markCombatStart(_:)), key: "2", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("Start Combat Benchmark", action: #selector(AppCoordinator.startCombatBenchmark(_:)), key: "2", to: performanceMenu, coordinator: coordinator) addTelemetryItem("Mark Visible Stutter", action: #selector(AppCoordinator.markVisibleStutter(_:)), key: "3", to: performanceMenu, coordinator: coordinator) - addTelemetryItem("Mark Match End", action: #selector(AppCoordinator.markMatchEnd(_:)), key: "4", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("End Combat Benchmark", action: #selector(AppCoordinator.endCombatBenchmark(_:)), key: "4", to: performanceMenu, coordinator: coordinator) + addTelemetryItem("Mark Match End", action: #selector(AppCoordinator.markMatchEnd(_:)), key: "5", to: performanceMenu, coordinator: coordinator) performanceMenu.addItem(.separator()) let reveal = performanceMenu.addItem(withTitle: "Reveal Local Capture Folder", action: #selector(AppCoordinator.revealCaptureFolder(_:)), keyEquivalent: "l") reveal.keyEquivalentModifierMask = [.command, .shift] diff --git a/tftmac/Info.plist b/tftmac/Info.plist index 9be2f1c..ab5361a 100644 --- a/tftmac/Info.plist +++ b/tftmac/Info.plist @@ -19,15 +19,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.0.0 + 2.2.0 CFBundleVersion - 2 + 5 LSApplicationCategoryType public.app-category.games LSMinimumSystemVersion 15.0 NSHighResolutionCapable + NSRemovableVolumesUsageDescription + TFTMAC uses the Android emulator runtime stored on MAC MINI M4. NSHumanReadableCopyright TFTMAC. Teamfight Tactics and Riot Games are property of their respective owners. diff --git a/tftmac/Presentation/EmbeddedEmulatorView.swift b/tftmac/Presentation/EmbeddedEmulatorView.swift index 672b49b..08139a0 100644 --- a/tftmac/Presentation/EmbeddedEmulatorView.swift +++ b/tftmac/Presentation/EmbeddedEmulatorView.swift @@ -33,22 +33,146 @@ private final class PresenterGPUState: @unchecked Sendable { } } +private final class HostPresentationTelemetry: @unchecked Sendable { + private struct WindowState { + var startedMonotonicNS: UInt64 + var submittedFrames = 0 + var completedFrames = 0 + var uniqueSourceUploads = 0 + var repeatedSourcePresents = 0 + var drawableMisses = 0 + var encoderMisses = 0 + var commandBufferMisses = 0 + var commandErrors = 0 + var completionLatenciesMS = [Double]() + var gpuTimesMS = [Double]() + } + + private let lock = NSLock() + private var window = WindowState(startedMonotonicNS: DispatchTime.now().uptimeNanoseconds) + // A 60 Hz presenter needs only about 60 entries/window; this cap protects telemetry itself + // from becoming a source of memory pressure if the display rate changes. + private let maximumSamples = 256 + + func recordSubmitted(uniqueSourceUpload: Bool) { + lock.lock() + window.submittedFrames += 1 + if uniqueSourceUpload { + window.uniqueSourceUploads += 1 + } else { + window.repeatedSourcePresents += 1 + } + lock.unlock() + } + + func recordDrawableMiss() { + lock.lock() + window.drawableMisses += 1 + lock.unlock() + } + + func recordEncoderMiss() { + lock.lock() + window.encoderMisses += 1 + lock.unlock() + } + + func recordCommandBufferMiss() { + lock.lock() + window.commandBufferMisses += 1 + lock.unlock() + } + + func recordCompletion(submittedMonotonicNS: UInt64, commandBuffer: MTLCommandBuffer) { + let completedMonotonicNS = DispatchTime.now().uptimeNanoseconds + let completionMS = Double(completedMonotonicNS &- submittedMonotonicNS) / 1_000_000 + let gpuStart = commandBuffer.gpuStartTime + let gpuEnd = commandBuffer.gpuEndTime + let gpuMS: Double? = gpuStart > 0 && gpuEnd >= gpuStart ? (gpuEnd - gpuStart) * 1_000 : nil + // A completed-handler normally sees `.completed` or `.error`; treat any other terminal + // outcome as failed so the persisted count does not hide cancelled/abnormal work. + let wasError = commandBuffer.status != .completed || commandBuffer.error != nil + + lock.lock() + window.completedFrames += 1 + if wasError { window.commandErrors += 1 } + if window.completionLatenciesMS.count < maximumSamples { + window.completionLatenciesMS.append(completionMS) + } + if let gpuMS, window.gpuTimesMS.count < maximumSamples { + window.gpuTimesMS.append(gpuMS) + } + lock.unlock() + } + + /// Drains a bounded approximately-one-second host window. Completion callbacks may arrive on + /// Metal worker threads, so the whole snapshot/reset operation is lock-protected. + func drainIfNeeded(nowMonotonicNS: UInt64) -> HostPresentationWindow? { + lock.lock() + defer { lock.unlock() } + let elapsedNS = nowMonotonicNS &- window.startedMonotonicNS + guard elapsedNS >= 1_000_000_000 else { return nil } + let snapshot = window + window = WindowState(startedMonotonicNS: nowMonotonicNS) + return HostPresentationWindow( + startedMonotonicNS: snapshot.startedMonotonicNS, + endedMonotonicNS: nowMonotonicNS, + submittedFrames: snapshot.submittedFrames, + completedFrames: snapshot.completedFrames, + uniqueSourceUploads: snapshot.uniqueSourceUploads, + repeatedSourcePresents: snapshot.repeatedSourcePresents, + // The shared schema exposes one presentation-miss field. Encoder and command-buffer + // misses cannot produce a drawable either, so include them while retaining separate + // in-memory counters above for their distinct collection paths. + drawableMisses: snapshot.drawableMisses + snapshot.encoderMisses + snapshot.commandBufferMisses, + commandErrors: snapshot.commandErrors, + meanCompletionLatencyMS: Self.mean(snapshot.completionLatenciesMS), + p95CompletionLatencyMS: Self.percentile(snapshot.completionLatenciesMS, percentile: 0.95), + p99CompletionLatencyMS: Self.percentile(snapshot.completionLatenciesMS, percentile: 0.99), + maximumCompletionLatencyMS: snapshot.completionLatenciesMS.max(), + meanGPUTimeMS: Self.mean(snapshot.gpuTimesMS), + p95GPUTimeMS: Self.percentile(snapshot.gpuTimesMS, percentile: 0.95), + maximumGPUTimeMS: snapshot.gpuTimesMS.max() + ) + } + + private static func mean(_ values: [Double]) -> Double? { + guard !values.isEmpty else { return nil } + return values.reduce(0, +) / Double(values.count) + } + + private static func percentile(_ values: [Double], percentile: Double) -> Double? { + guard !values.isEmpty else { return nil } + let sorted = values.sorted() + let index = min(sorted.count - 1, max(0, Int(ceil(Double(sorted.count) * percentile)) - 1)) + return sorted[index] + } +} + @MainActor final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { + var onTouchInput: ((TouchInput) -> Void)? var onMouseInput: ((Int32, Int32, Int32) -> Void)? var onKeyboardInput: ((String?, String?) -> Void)? var onPresentationSample: ((PresentationSample) -> Void)? + var onHostPresentationWindow: ((HostPresentationWindow) -> Void)? private let mailbox: LatestFrameMailbox private let commandQueue: MTLCommandQueue private let pipeline: MTLRenderPipelineState private let gpuState = PresenterGPUState() + private let hostPresentationTelemetry = HostPresentationTelemetry() private var textures: [MTLTexture?] = [nil, nil, nil] private var currentTextureSlot: Int? private var lastPresentedSequence: UInt32? private var lastSampleTime = CACurrentMediaTime() private var lastSamplePresentationCount: UInt64 = 0 private var lastSampleReceivedCount: UInt64 = 0 + private var lastSourceFPS: Double = 0 + private var lastPresentationFPS: Double = 0 + private var lastHostGPUTimeP95MS: Double? + private var gameFrameWindow: GameFrameTelemetryWindow? + private var primaryTouchSequence = PrimaryTouchSequence() private let statusLabel = NSTextField(labelWithString: "Preparing native Android runtime…") private let fpsLabel = NSTextField(labelWithString: "0 FPS") @@ -75,6 +199,7 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { clearColor = MTLClearColorMake(0.015, 0.018, 0.025, 1.0) delegate = self configureOverlays() + updatePerformanceOverlay() } required init(coder: NSCoder) { @@ -84,25 +209,44 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { override var acceptsFirstResponder: Bool { true } func setStatus(_ text: String, isError: Bool) { - guard !text.isEmpty else { + // Informational runtime state belongs in SQL telemetry, not over the + // Android display. Only a terminal error may interrupt the game view. + guard isError, !text.isEmpty else { statusLabel.isHidden = true return } statusLabel.stringValue = text - statusLabel.textColor = isError ? .systemRed : .white + statusLabel.textColor = .systemRed statusLabel.isHidden = false } + /// The runtime collector owns Android SurfaceFlinger truth. This presenter never substitutes + /// ingress or Metal presentation rates for actual guest frame production. + func setGameFrameWindow(_ window: GameFrameTelemetryWindow?) { + gameFrameWindow = window + updatePerformanceOverlay() + } + func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {} func draw(in view: MTKView) { - uploadNewestFrameIfPossible() - guard let slot = currentTextureSlot, - let texture = textures[slot], - let drawable = currentDrawable, - let descriptor = currentRenderPassDescriptor, - let buffer = commandQueue.makeCommandBuffer(), - let encoder = buffer.makeRenderCommandEncoder(descriptor: descriptor) else { + let uploadedNewSource = uploadNewestFrameIfPossible() + guard let slot = currentTextureSlot, let texture = textures[slot] else { + updatePresentationSampleIfNeeded() + return + } + guard let drawable = currentDrawable, let descriptor = currentRenderPassDescriptor else { + hostPresentationTelemetry.recordDrawableMiss() + updatePresentationSampleIfNeeded() + return + } + guard let buffer = commandQueue.makeCommandBuffer() else { + hostPresentationTelemetry.recordCommandBufferMiss() + updatePresentationSampleIfNeeded() + return + } + guard let encoder = buffer.makeRenderCommandEncoder(descriptor: descriptor) else { + hostPresentationTelemetry.recordEncoderMiss() updatePresentationSampleIfNeeded() return } @@ -125,17 +269,26 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { encoder.drawPrimitives(type: .triangle, vertexStart: 0, vertexCount: 3) encoder.endEncoding() + let submittedMonotonicNS = DispatchTime.now().uptimeNanoseconds + hostPresentationTelemetry.recordSubmitted(uniqueSourceUpload: uploadedNewSource) gpuState.beginPresentation(slot: slot) let state = gpuState - buffer.addCompletedHandler { _ in state.completePresentation(slot: slot) } + let telemetry = hostPresentationTelemetry + buffer.addCompletedHandler { commandBuffer in + state.completePresentation(slot: slot) + telemetry.recordCompletion(submittedMonotonicNS: submittedMonotonicNS, commandBuffer: commandBuffer) + } buffer.present(drawable) buffer.commit() updatePresentationSampleIfNeeded() } - override func mouseDown(with event: NSEvent) { sendMouse(event, buttons: 1) } - override func mouseDragged(with event: NSEvent) { sendMouse(event, buttons: 1) } - override func mouseUp(with event: NSEvent) { sendMouse(event, buttons: 0) } + override func mouseDown(with event: NSEvent) { + window?.makeFirstResponder(self) + sendTouch(event, isContact: true) + } + override func mouseDragged(with event: NSEvent) { sendTouch(event, isContact: true) } + override func mouseUp(with event: NSEvent) { sendTouch(event, isContact: false) } override func rightMouseDown(with event: NSEvent) { sendMouse(event, buttons: 2) } override func rightMouseDragged(with event: NSEvent) { sendMouse(event, buttons: 2) } override func rightMouseUp(with event: NSEvent) { sendMouse(event, buttons: 0) } @@ -166,9 +319,10 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { onKeyboardInput?(String(text.prefix(1024)), nil) } - private func uploadNewestFrameIfPossible() { - guard let frame = mailbox.takeLatest() else { return } - guard let slot = gpuState.availableUploadSlot(excluding: currentTextureSlot) else { return } + @discardableResult + private func uploadNewestFrameIfPossible() -> Bool { + guard let frame = mailbox.takeLatest() else { return false } + guard let slot = gpuState.availableUploadSlot(excluding: currentTextureSlot) else { return false } if textures[slot] == nil { let descriptor = MTLTextureDescriptor.texture2DDescriptor( pixelFormat: .rgba8Unorm_srgb, @@ -181,7 +335,7 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { textures[slot] = device?.makeTexture(descriptor: descriptor) textures[slot]?.label = "TFTMAC Android frame \(slot)" } - guard let texture = textures[slot] else { return } + guard let texture = textures[slot] else { return false } frame.pixels.withUnsafeBytes { bytes in guard let baseAddress = bytes.baseAddress else { return } texture.replace( @@ -193,19 +347,34 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { } currentTextureSlot = slot lastPresentedSequence = frame.sequence + return true } - private func sendMouse(_ event: NSEvent, buttons: Int32) { + private func androidPoint(for event: NSEvent) -> TouchPoint? { let location = convert(event.locationInWindow, from: nil) let mapper = ViewportMapper( sourceSize: CGSize(width: FrameContract.width, height: FrameContract.height), viewportSize: bounds.size ) - guard let source = mapper.sourcePoint(for: location) else { return } + guard let source = mapper.sourcePoint(for: location) else { return nil } let x = Int32(max(0, min(FrameContract.width - 1, Int(source.x.rounded())))) let topOriginY = FrameContract.height - 1 - Int(source.y.rounded()) let y = Int32(max(0, min(FrameContract.height - 1, topOriginY))) - onMouseInput?(x, y, buttons) + return TouchPoint(x: x, y: y) + } + + private func sendTouch(_ event: NSEvent, isContact: Bool) { + let point = androidPoint(for: event) + let input = isContact + ? primaryTouchSequence.contact(at: point) + : primaryTouchSequence.release(at: point) + guard let input else { return } + onTouchInput?(input) + } + + private func sendMouse(_ event: NSEvent, buttons: Int32) { + guard let point = androidPoint(for: event) else { return } + onMouseInput?(point.x, point.y, buttons) } private func updatePresentationSampleIfNeeded() { @@ -218,7 +387,8 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { let mailboxSnapshot = mailbox.snapshot() let receivedDelta = mailboxSnapshot.receivedFrames - lastSampleReceivedCount let sourceFPS = Double(receivedDelta) / elapsed - fpsLabel.stringValue = String(format: "SRC %.0f · OUT %.0f", sourceFPS, presentationFPS) + lastSourceFPS = sourceFPS + lastPresentationFPS = presentationFPS let sample = PresentationSample( presentedFrames: total, presentationFPS: presentationFPS, @@ -231,6 +401,30 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { lastSamplePresentationCount = total lastSampleReceivedCount = mailboxSnapshot.receivedFrames lastSampleTime = now + if let hostWindow = hostPresentationTelemetry.drainIfNeeded(nowMonotonicNS: DispatchTime.now().uptimeNanoseconds) { + lastHostGPUTimeP95MS = hostWindow.p95GPUTimeMS + onHostPresentationWindow?(hostWindow) + } + updatePerformanceOverlay() + } + + private func updatePerformanceOverlay() { + let guestLine: String + if let gameFrameWindow, case .available = gameFrameWindow.status { + let low = gameFrameWindow.onePercentLowFPS.map { String(format: "%.0f", $0) } ?? "—" + let p99 = gameFrameWindow.p99MS.map { String(format: "%.1f", $0) } ?? "—" + guestLine = String(format: "TFT %.0f · 1%% %@ · P99 %@ms", gameFrameWindow.effectiveFPS, low, p99) + } else { + guestLine = "TFT —" + } + let gpu = lastHostGPUTimeP95MS.map { String(format: "%.1f", $0) } ?? "—" + fpsLabel.stringValue = String( + format: "%@\nPIPE %.0f · MAC %.0f · GPU %@ms", + guestLine, + lastSourceFPS, + lastPresentationFPS, + gpu + ) } private func configureOverlays() { @@ -241,11 +435,13 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { statusLabel.wantsLayer = true statusLabel.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.72).cgColor statusLabel.layer?.cornerRadius = 10 + statusLabel.isHidden = true addSubview(statusLabel) fpsLabel.font = .monospacedDigitSystemFont(ofSize: 13, weight: .bold) fpsLabel.textColor = .white - fpsLabel.alignment = .center + fpsLabel.alignment = .right + fpsLabel.maximumNumberOfLines = 2 fpsLabel.translatesAutoresizingMaskIntoConstraints = false fpsLabel.wantsLayer = true fpsLabel.layer?.backgroundColor = NSColor.black.withAlphaComponent(0.62).cgColor @@ -259,8 +455,8 @@ final class EmbeddedEmulatorView: MTKView, MTKViewDelegate { statusLabel.heightAnchor.constraint(greaterThanOrEqualToConstant: 52), fpsLabel.topAnchor.constraint(equalTo: topAnchor, constant: 12), fpsLabel.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -12), - fpsLabel.widthAnchor.constraint(equalToConstant: 142), - fpsLabel.heightAnchor.constraint(equalToConstant: 28) + fpsLabel.widthAnchor.constraint(equalToConstant: 300), + fpsLabel.heightAnchor.constraint(equalToConstant: 46) ]) } diff --git a/tftmac/Runtime/CombatBenchmarkAnalysis.swift b/tftmac/Runtime/CombatBenchmarkAnalysis.swift new file mode 100644 index 0000000..0a19615 --- /dev/null +++ b/tftmac/Runtime/CombatBenchmarkAnalysis.swift @@ -0,0 +1,203 @@ +import Foundation + +enum CombatBenchmarkDecision: String, Equatable, Sendable { + case homeRun = "HOME_RUN" + case promising = "PROMISING" + case reject = "REJECT" + case inconclusive = "INCONCLUSIVE" +} + +enum CombatBenchmarkValidityFailure: String, Equatable, Sendable { + case combatDurationTooShort + case insufficientSurfaceAvailability + case insufficientClockCoverage + case clockRoundTripTooHigh + case frameHistoryTruncated + case exactLayerChangedOrAmbiguous +} + +struct CombatBenchmarkValidity: Equatable, Sendable { + static let minimumCombatDurationSeconds = 300.0 + static let minimumSurfaceAvailability = 0.95 + static let minimumClockCoverage = 0.95 + static let maximumP95ClockRoundTripMilliseconds = 10.0 + + let failures: [CombatBenchmarkValidityFailure] + + var isValid: Bool { failures.isEmpty } + + static func evaluate(_ metrics: CombatBenchmarkMetrics) -> CombatBenchmarkValidity { + var failures = [CombatBenchmarkValidityFailure]() + if metrics.combatDurationSeconds < minimumCombatDurationSeconds { + failures.append(.combatDurationTooShort) + } + if metrics.surfaceAvailability < minimumSurfaceAvailability { + failures.append(.insufficientSurfaceAvailability) + } + if metrics.clockCoverage < minimumClockCoverage { + failures.append(.insufficientClockCoverage) + } + if metrics.p95ClockRoundTripMilliseconds > maximumP95ClockRoundTripMilliseconds { + failures.append(.clockRoundTripTooHigh) + } + if metrics.frameHistoryTruncated { + failures.append(.frameHistoryTruncated) + } + if !metrics.exactLayerStable { + failures.append(.exactLayerChangedOrAmbiguous) + } + return CombatBenchmarkValidity(failures: failures) + } +} + +struct CombatBenchmarkMetrics: Equatable, Sendable { + let combatDurationSeconds: Double + let surfaceAvailability: Double + let clockCoverage: Double + let p95ClockRoundTripMilliseconds: Double + let frameHistoryTruncated: Bool + let exactLayerStable: Bool + let correctnessPassed: Bool + let weightedFPS: Double + let onePercentLowFPS: Double + let p95IntervalMilliseconds: Double + let p99IntervalMilliseconds: Double + let jankRate: Double + let severeRate: Double + let missedVsyncRate: Double + + init( + combatDurationSeconds: Double, + surfaceAvailability: Double, + clockCoverage: Double, + p95ClockRoundTripMilliseconds: Double, + frameHistoryTruncated: Bool, + exactLayerStable: Bool, + correctnessPassed: Bool, + weightedFPS: Double, + onePercentLowFPS: Double, + p95IntervalMilliseconds: Double, + p99IntervalMilliseconds: Double, + jankRate: Double, + severeRate: Double, + missedVsyncRate: Double + ) { + self.combatDurationSeconds = combatDurationSeconds + self.surfaceAvailability = surfaceAvailability + self.clockCoverage = clockCoverage + self.p95ClockRoundTripMilliseconds = p95ClockRoundTripMilliseconds + self.frameHistoryTruncated = frameHistoryTruncated + self.exactLayerStable = exactLayerStable + self.correctnessPassed = correctnessPassed + self.weightedFPS = weightedFPS + self.onePercentLowFPS = onePercentLowFPS + self.p95IntervalMilliseconds = p95IntervalMilliseconds + self.p99IntervalMilliseconds = p99IntervalMilliseconds + self.jankRate = jankRate + self.severeRate = severeRate + self.missedVsyncRate = missedVsyncRate + } + + static func onePercentLowFPS(from intervalMilliseconds: [Double]) -> Double { + guard !intervalMilliseconds.isEmpty else { return 0 } + let slowFrameCount = max(1, Int(ceil(Double(intervalMilliseconds.count) * 0.01))) + let slowest = intervalMilliseconds.sorted().suffix(slowFrameCount) + let meanSlowInterval = slowest.reduce(0, +) / Double(slowest.count) + return meanSlowInterval > 0 ? 1_000 / meanSlowInterval : 0 + } +} + +struct CombatBenchmarkDeltas: Equatable, Sendable { + /// Positive values mean the candidate has more FPS than the baseline. + let weightedFPSPercent: Double + /// Positive values mean the candidate has more 1%-low FPS than the baseline. + let onePercentLowFPSPercent: Double + /// Positive values mean the candidate has a longer (worse) frame interval. + let p95IntervalPercent: Double + /// Positive values mean the candidate has a longer (worse) frame interval. + let p99IntervalPercent: Double + /// Positive values mean more affected frames than the baseline. + let jankRatePercentagePoints: Double + /// Positive values mean more severe frames than the baseline. + let severeRatePercentagePoints: Double + /// Positive values mean more missed-vsync equivalents than the baseline. + let missedVsyncRatePercentagePoints: Double + + init(baseline: CombatBenchmarkMetrics, candidate: CombatBenchmarkMetrics) { + weightedFPSPercent = Self.percentChange(from: baseline.weightedFPS, to: candidate.weightedFPS) + onePercentLowFPSPercent = Self.percentChange(from: baseline.onePercentLowFPS, to: candidate.onePercentLowFPS) + p95IntervalPercent = Self.percentChange(from: baseline.p95IntervalMilliseconds, to: candidate.p95IntervalMilliseconds) + p99IntervalPercent = Self.percentChange(from: baseline.p99IntervalMilliseconds, to: candidate.p99IntervalMilliseconds) + jankRatePercentagePoints = candidate.jankRate - baseline.jankRate + severeRatePercentagePoints = candidate.severeRate - baseline.severeRate + missedVsyncRatePercentagePoints = candidate.missedVsyncRate - baseline.missedVsyncRate + } + + private static func percentChange(from baseline: Double, to candidate: Double) -> Double { + guard baseline > 0 else { return candidate == 0 ? 0 : .infinity } + return ((candidate - baseline) / baseline) * 100 + } +} + +struct CombatBenchmarkAnalysis: Equatable, Sendable { + let baselineValidity: CombatBenchmarkValidity + let candidateValidity: CombatBenchmarkValidity + let deltas: CombatBenchmarkDeltas + let decision: CombatBenchmarkDecision + + init(baseline: CombatBenchmarkMetrics, candidate: CombatBenchmarkMetrics) { + let baselineValidity = CombatBenchmarkValidity.evaluate(baseline) + let candidateValidity = CombatBenchmarkValidity.evaluate(candidate) + self.baselineValidity = baselineValidity + self.candidateValidity = candidateValidity + let deltas = CombatBenchmarkDeltas(baseline: baseline, candidate: candidate) + self.deltas = deltas + decision = Self.makeDecision( + baseline: baseline, + candidate: candidate, + baselineValidity: baselineValidity, + candidateValidity: candidateValidity, + deltas: deltas + ) + } + + private static func makeDecision( + baseline: CombatBenchmarkMetrics, + candidate: CombatBenchmarkMetrics, + baselineValidity: CombatBenchmarkValidity, + candidateValidity: CombatBenchmarkValidity, + deltas: CombatBenchmarkDeltas + ) -> CombatBenchmarkDecision { + guard baselineValidity.isValid, candidateValidity.isValid else { return .inconclusive } + guard baseline.correctnessPassed else { return .inconclusive } + guard candidate.correctnessPassed else { return .reject } + if deltas.p95IntervalPercent >= 10 || deltas.p99IntervalPercent >= 10 { return .reject } + if deltas.weightedFPSPercent < 5 { return .reject } + if isHomeRun(baseline: baseline, candidate: candidate, deltas: deltas) { return .homeRun } + if isPromising(deltas) { return .promising } + return .inconclusive + } + + private static func isHomeRun( + baseline: CombatBenchmarkMetrics, + candidate: CombatBenchmarkMetrics, + deltas: CombatBenchmarkDeltas + ) -> Bool { + deltas.onePercentLowFPSPercent >= 20 + && relativeReductionIsAtLeast30Percent(from: baseline.jankRate, to: candidate.jankRate) + && relativeReductionIsAtLeast30Percent(from: baseline.severeRate, to: candidate.severeRate) + && (deltas.weightedFPSPercent >= 10 || deltas.p95IntervalPercent <= -15) + } + + private static func isPromising(_ deltas: CombatBenchmarkDeltas) -> Bool { + deltas.weightedFPSPercent >= 5 + && deltas.onePercentLowFPSPercent >= 10 + && deltas.p95IntervalPercent <= 0 + && deltas.p99IntervalPercent <= 0 + } + + private static func relativeReductionIsAtLeast30Percent(from baseline: Double, to candidate: Double) -> Bool { + guard baseline > 0 else { return false } + return (baseline - candidate) / baseline >= 0.30 + } +} diff --git a/tftmac/Runtime/CombatBenchmarkStore.swift b/tftmac/Runtime/CombatBenchmarkStore.swift new file mode 100644 index 0000000..fd2eb20 --- /dev/null +++ b/tftmac/Runtime/CombatBenchmarkStore.swift @@ -0,0 +1,485 @@ +import Foundation +import SQLite3 + +struct CombatBenchmarkRun: Sendable { + let benchmarkID: String + let sessionID: String + let presetID: RuntimeExperimentPreset + let configurationSHA256: String + let comparisonIdentitySHA256: String + let configurationJSON: String + let tftPackageVersion: String + let performanceModeConfirmed: Bool + let startedUTC: String + let endedUTC: String + let startedMonotonicNS: UInt64 + let endedMonotonicNS: UInt64 + let exactLayerIdentity: String? + let metrics: CombatBenchmarkMetrics + let p50IntervalMilliseconds: Double + let maximumIntervalMilliseconds: Double + let observerOverheadInvalid: Bool + + var validity: CombatBenchmarkValidity { .evaluate(metrics) } + var isValid: Bool { metrics.correctnessPassed && validity.isValid } + var invalidReason: String? { + if !metrics.correctnessPassed { return "REJECTED_CORRECTNESS" } + let reasons = validity.failures.map(\.rawValue) + return reasons.isEmpty ? nil : reasons.joined(separator: ",") + } +} + +struct CombatIncidentRecord: Sendable { + let incidentID: String + let benchmarkID: String + let sessionID: String + let presetID: RuntimeExperimentPreset + let trigger: String + let observedMonotonicNS: UInt64 + let effectiveFPS: Double? + let onePercentLowFPS: Double? + let p99IntervalMilliseconds: Double? + let severeCount: Int + let traceSequence: Int? + let firstDivergentBoundary: String + let confidence: String + let explicitUnknowns: String +} + +struct CombatComparisonRecord: Sendable { + let comparisonID: String + let controlBenchmarkID: String + let candidateBenchmarkID: String + let analysis: CombatBenchmarkAnalysis + let correctnessStatus: String + let observerOverheadInvalid: Bool + let createdUTC: String +} + +struct ActiveCombatBenchmark: Sendable { + let benchmarkID: String + let sessionID: String + let presetID: RuntimeExperimentPreset + let configurationSHA256: String + let comparisonIdentitySHA256: String + let configurationJSON: String + let tftPackageVersion: String + let performanceModeConfirmed: Bool + let startedUTC: String + let startedMonotonicNS: UInt64 + + private(set) var intervalMilliseconds = [Double]() + private(set) var traceActiveIntervals = [Double]() + private(set) var traceInactiveIntervals = [Double]() + private(set) var jankCount = 0 + private(set) var severeCount = 0 + private(set) var missedVsyncEquivalents = 0 + private(set) var measuredWindowNS: UInt64 = 0 + private(set) var availableWindowNS: UInt64 = 0 + private(set) var historyTruncated = false + private(set) var layerNames = Set() + private(set) var clockSamples = [(hostMidpointNS: UInt64, roundTripNS: UInt64)]() + + mutating func ingest( + update: GameFrameTelemetryUpdate?, + window: GameFrameTelemetryWindow, + traceActive: Bool + ) { + let duration = window.endedMonotonicNS >= window.startedMonotonicNS + ? window.endedMonotonicNS - window.startedMonotonicNS + : 0 + measuredWindowNS &+= duration + historyTruncated = historyTruncated || window.historyTruncated + if case .available = window.status { + availableWindowNS &+= duration + if let layerName = window.layerName { layerNames.insert(layerName) } + } + guard let update else { return } + let values = update.intervals.map(\.intervalMS) + intervalMilliseconds.append(contentsOf: values) + if traceActive { + traceActiveIntervals.append(contentsOf: values) + } else { + traceInactiveIntervals.append(contentsOf: values) + } + jankCount += update.intervals.lazy.filter(\.isJanky).count + severeCount += update.intervals.lazy.filter(\.isSevere).count + missedVsyncEquivalents += update.intervals.reduce(0) { $0 + $1.missedVsyncEquivalents } + } + + mutating func recordClock(hostMidpointNS: UInt64, roundTripNS: UInt64) { + clockSamples.append((hostMidpointNS, roundTripNS)) + } + + func finish( + endedUTC: String, + endedMonotonicNS: UInt64, + correctnessPassed: Bool = true + ) -> CombatBenchmarkRun { + let durationNS = endedMonotonicNS >= startedMonotonicNS + ? endedMonotonicNS - startedMonotonicNS + : 0 + let durationSeconds = Double(durationNS) / 1_000_000_000 + let surfaceAvailability = measuredWindowNS == 0 + ? 0 + : min(1, Double(availableWindowNS) / Double(measuredWindowNS)) + let orderedClock = clockSamples.sorted { $0.hostMidpointNS < $1.hostMidpointNS } + let clockCoverage: Double + if let first = orderedClock.first?.hostMidpointNS, let last = orderedClock.last?.hostMidpointNS, + durationNS > 0, last >= first { + let bracketStart = max(startedMonotonicNS, first) + let bracketEnd = min(endedMonotonicNS, last) + clockCoverage = bracketEnd > bracketStart + ? min(1, Double(bracketEnd - bracketStart) / Double(durationNS)) + : 0 + } else { + clockCoverage = 0 + } + let orderedRTTMS = orderedClock.map { Double($0.roundTripNS) / 1_000_000 }.sorted() + let p95RTTMS = orderedRTTMS.isEmpty ? 1_000_000_000 : Self.percentile(orderedRTTMS, 0.95) + let ordered = intervalMilliseconds.sorted() + let intervalTotalMS = ordered.reduce(0, +) + let weightedFPS = intervalTotalMS > 0 ? Double(ordered.count) / (intervalTotalMS / 1_000) : 0 + let p50 = Self.percentile(ordered, 0.50) + let p95 = Self.percentile(ordered, 0.95) + let p99 = Self.percentile(ordered, 0.99) + let maximum = ordered.last ?? 0 + let count = max(1, ordered.count) + let metrics = CombatBenchmarkMetrics( + combatDurationSeconds: durationSeconds, + surfaceAvailability: surfaceAvailability, + clockCoverage: clockCoverage, + p95ClockRoundTripMilliseconds: p95RTTMS, + frameHistoryTruncated: historyTruncated, + exactLayerStable: layerNames.count == 1, + correctnessPassed: correctnessPassed, + weightedFPS: weightedFPS, + onePercentLowFPS: CombatBenchmarkMetrics.onePercentLowFPS(from: ordered), + p95IntervalMilliseconds: p95, + p99IntervalMilliseconds: p99, + jankRate: Double(jankCount) / Double(count), + severeRate: Double(severeCount) / Double(count), + missedVsyncRate: Double(missedVsyncEquivalents) / Double(count) + ) + return CombatBenchmarkRun( + benchmarkID: benchmarkID, + sessionID: sessionID, + presetID: presetID, + configurationSHA256: configurationSHA256, + comparisonIdentitySHA256: comparisonIdentitySHA256, + configurationJSON: configurationJSON, + tftPackageVersion: tftPackageVersion, + performanceModeConfirmed: performanceModeConfirmed, + startedUTC: startedUTC, + endedUTC: endedUTC, + startedMonotonicNS: startedMonotonicNS, + endedMonotonicNS: endedMonotonicNS, + exactLayerIdentity: layerNames.count == 1 ? layerNames.first : nil, + metrics: metrics, + p50IntervalMilliseconds: p50, + maximumIntervalMilliseconds: maximum, + observerOverheadInvalid: Self.observerOverheadInvalid( + traceActive: traceActiveIntervals, + traceInactive: traceInactiveIntervals + ) + ) + } + + private static func percentile(_ ordered: [Double], _ quantile: Double) -> Double { + guard !ordered.isEmpty else { return 0 } + let index = min(ordered.count - 1, max(0, Int(ceil(Double(ordered.count) * quantile)) - 1)) + return ordered[index] + } + + private static func observerOverheadInvalid(traceActive: [Double], traceInactive: [Double]) -> Bool { + guard traceActive.count >= 10, traceInactive.count >= 10 else { return false } + let activeTotal = traceActive.reduce(0, +) + let inactiveTotal = traceInactive.reduce(0, +) + guard activeTotal > 0, inactiveTotal > 0 else { return false } + let activeFPS = Double(traceActive.count) / (activeTotal / 1_000) + let inactiveFPS = Double(traceInactive.count) / (inactiveTotal / 1_000) + let fpsDelta = abs((activeFPS - inactiveFPS) / inactiveFPS) * 100 + let activeP95 = percentile(traceActive.sorted(), 0.95) + let inactiveP95 = percentile(traceInactive.sorted(), 0.95) + let p95Delta = inactiveP95 > 0 ? abs((activeP95 - inactiveP95) / inactiveP95) * 100 : 0 + return fpsDelta > 5 || p95Delta > 5 + } +} + +final class CombatBenchmarkLabStore: @unchecked Sendable { + private enum Value { + case integer(Int64) + case real(Double) + case text(String) + case null + } + + private var database: OpaquePointer? + private let transientDestructor = unsafeBitCast(-1, to: sqlite3_destructor_type.self) + + init(applicationSupport: URL) throws { + try FileManager.default.createDirectory(at: applicationSupport, withIntermediateDirectories: true) + let databaseURL = applicationSupport.appendingPathComponent("TFTMAC_LAB.sqlite") + guard sqlite3_open_v2( + databaseURL.path, + &database, + SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE | SQLITE_OPEN_FULLMUTEX, + nil + ) == SQLITE_OK else { + throw TFTMACRuntimeError("The persistent TFTMAC lab database could not be opened.") + } + sqlite3_busy_timeout(database, 5_000) + try FileManager.default.setAttributes([.posixPermissions: 0o600], ofItemAtPath: databaseURL.path) + try createSchema() + } + + deinit { + if let database { sqlite3_close(database) } + } + + func record(_ run: CombatBenchmarkRun) throws { + try execute(Self.insertBenchmarkSQL, Self.benchmarkValues(run)) + } + + func record(_ incident: CombatIncidentRecord) throws { + try execute(Self.insertIncidentSQL, Self.incidentValues(incident)) + } + + func comparisonForCandidate(_ candidate: CombatBenchmarkRun) throws -> CombatComparisonRecord? { + guard candidate.presetID == .homeRunA, + candidate.isValid, + candidate.exactLayerIdentity != nil, + let control = try latestValidControl(matching: candidate) else { return nil } + let analysis = CombatBenchmarkAnalysis(baseline: control.metrics, candidate: candidate.metrics) + let comparison = CombatComparisonRecord( + comparisonID: UUID().uuidString.lowercased(), + controlBenchmarkID: control.benchmarkID, + candidateBenchmarkID: candidate.benchmarkID, + analysis: analysis, + correctnessStatus: candidate.metrics.correctnessPassed ? "PASSED" : "REJECTED_CORRECTNESS", + observerOverheadInvalid: control.observerOverheadInvalid || candidate.observerOverheadInvalid, + createdUTC: Self.utcNow() + ) + try record(comparison) + return comparison + } + + func record(_ comparison: CombatComparisonRecord) throws { + let deltas = comparison.analysis.deltas + try execute( + """ + INSERT INTO combat_comparisons( + comparison_id, control_benchmark_id, candidate_benchmark_id, + weighted_fps_delta_percent, one_percent_low_delta_percent, + p95_delta_percent, p99_delta_percent, jank_delta_points, + severe_delta_points, missed_vsync_delta_points, correctness_status, + observer_overhead_invalid, decision, created_utc + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + [ + .text(comparison.comparisonID), .text(comparison.controlBenchmarkID), + .text(comparison.candidateBenchmarkID), .real(deltas.weightedFPSPercent), + .real(deltas.onePercentLowFPSPercent), .real(deltas.p95IntervalPercent), + .real(deltas.p99IntervalPercent), .real(deltas.jankRatePercentagePoints), + .real(deltas.severeRatePercentagePoints), .real(deltas.missedVsyncRatePercentagePoints), + .text(comparison.correctnessStatus), .integer(comparison.observerOverheadInvalid ? 1 : 0), + .text(comparison.analysis.decision.rawValue), .text(comparison.createdUTC) + ] + ) + } + + private func latestValidControl(matching candidate: CombatBenchmarkRun) throws -> CombatBenchmarkRun? { + guard let database else { return nil } + let sql = """ + SELECT benchmark_id, session_id, configuration_sha256, comparison_identity_sha256, + configuration_json, tft_package_version, performance_mode_confirmed, started_utc, ended_utc, + started_monotonic_ns, ended_monotonic_ns, exact_layer_identity, + duration_seconds, surface_availability, clock_coverage, p95_clock_rtt_ms, + history_truncated, correctness_passed, weighted_fps, one_percent_low_fps, + p50_interval_ms, p95_interval_ms, p99_interval_ms, max_interval_ms, + jank_rate, severe_rate, missed_vsync_rate, observer_overhead_invalid + FROM combat_benchmarks + WHERE preset_id = 'control' AND valid = 1 AND correctness_passed = 1 + AND comparison_identity_sha256 = ? AND tft_package_version = ? + AND exact_layer_identity = ? AND ended_utc <= ? + ORDER BY ended_utc DESC LIMIT 1 + """ + var statement: OpaquePointer? + guard sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK, + let statement else { throw TFTMACRuntimeError("SQLite could not prepare the control benchmark query.") } + defer { sqlite3_finalize(statement) } + sqlite3_bind_text(statement, 1, candidate.comparisonIdentitySHA256, -1, transientDestructor) + sqlite3_bind_text(statement, 2, candidate.tftPackageVersion, -1, transientDestructor) + sqlite3_bind_text(statement, 3, candidate.exactLayerIdentity!, -1, transientDestructor) + sqlite3_bind_text(statement, 4, candidate.endedUTC, -1, transientDestructor) + guard sqlite3_step(statement) == SQLITE_ROW else { return nil } + func text(_ index: Int32) -> String { + guard let value = sqlite3_column_text(statement, index) else { return "" } + return String(cString: value) + } + let metrics = CombatBenchmarkMetrics( + combatDurationSeconds: sqlite3_column_double(statement, 12), + surfaceAvailability: sqlite3_column_double(statement, 13), + clockCoverage: sqlite3_column_double(statement, 14), + p95ClockRoundTripMilliseconds: sqlite3_column_double(statement, 15), + frameHistoryTruncated: sqlite3_column_int(statement, 16) != 0, + exactLayerStable: sqlite3_column_type(statement, 11) != SQLITE_NULL, + correctnessPassed: sqlite3_column_int(statement, 17) != 0, + weightedFPS: sqlite3_column_double(statement, 18), + onePercentLowFPS: sqlite3_column_double(statement, 19), + p95IntervalMilliseconds: sqlite3_column_double(statement, 21), + p99IntervalMilliseconds: sqlite3_column_double(statement, 22), + jankRate: sqlite3_column_double(statement, 24), + severeRate: sqlite3_column_double(statement, 25), + missedVsyncRate: sqlite3_column_double(statement, 26) + ) + return CombatBenchmarkRun( + benchmarkID: text(0), sessionID: text(1), presetID: .control, + configurationSHA256: text(2), comparisonIdentitySHA256: text(3), configurationJSON: text(4), + tftPackageVersion: text(5), performanceModeConfirmed: sqlite3_column_int(statement, 6) != 0, + startedUTC: text(7), endedUTC: text(8), + startedMonotonicNS: UInt64(bitPattern: sqlite3_column_int64(statement, 9)), + endedMonotonicNS: UInt64(bitPattern: sqlite3_column_int64(statement, 10)), + exactLayerIdentity: sqlite3_column_type(statement, 11) == SQLITE_NULL ? nil : text(11), + metrics: metrics, p50IntervalMilliseconds: sqlite3_column_double(statement, 20), + maximumIntervalMilliseconds: sqlite3_column_double(statement, 23), + observerOverheadInvalid: sqlite3_column_int(statement, 27) != 0 + ) + } + + private func createSchema() throws { + guard let database else { throw TFTMACRuntimeError("The persistent lab database is closed.") } + guard sqlite3_exec(database, Self.schemaSQL, nil, nil, nil) == SQLITE_OK else { + throw TFTMACRuntimeError("The persistent combat benchmark schema could not be created.") + } + // Existing lab databases predate the comparison identity. Old rows stay + // nullable and cannot be paired with a new candidate. + sqlite3_exec( + database, + "ALTER TABLE combat_benchmarks ADD COLUMN comparison_identity_sha256 TEXT", + nil, + nil, + nil + ) + } + + private func execute(_ sql: String, _ values: [Value]) throws { + guard let database else { throw TFTMACRuntimeError("The persistent lab database is closed.") } + var statement: OpaquePointer? + guard sqlite3_prepare_v2(database, sql, -1, &statement, nil) == SQLITE_OK, + let statement else { throw TFTMACRuntimeError("SQLite could not prepare a combat benchmark statement.") } + defer { sqlite3_finalize(statement) } + for (offset, value) in values.enumerated() { + let index = Int32(offset + 1) + switch value { + case .integer(let value): sqlite3_bind_int64(statement, index, value) + case .real(let value): sqlite3_bind_double(statement, index, value) + case .text(let value): sqlite3_bind_text(statement, index, value, -1, transientDestructor) + case .null: sqlite3_bind_null(statement, index) + } + } + guard sqlite3_step(statement) == SQLITE_DONE else { + throw TFTMACRuntimeError("SQLite could not write a combat benchmark statement.") + } + } + + static let insertBenchmarkSQL = """ + INSERT OR REPLACE INTO combat_benchmarks( + benchmark_id, session_id, preset_id, configuration_sha256, comparison_identity_sha256, configuration_json, + tft_package_version, performance_mode_confirmed, started_utc, ended_utc, + started_monotonic_ns, ended_monotonic_ns, exact_layer_identity, duration_seconds, + surface_availability, clock_coverage, p95_clock_rtt_ms, history_truncated, + correctness_passed, weighted_fps, one_percent_low_fps, p50_interval_ms, + p95_interval_ms, p99_interval_ms, max_interval_ms, jank_rate, severe_rate, + missed_vsync_rate, observer_overhead_invalid, valid, invalid_reason + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """ + + private static func benchmarkValues(_ run: CombatBenchmarkRun) -> [Value] { + let metrics = run.metrics + return [ + .text(run.benchmarkID), .text(run.sessionID), .text(run.presetID.rawValue), + .text(run.configurationSHA256), .text(run.comparisonIdentitySHA256), + .text(run.configurationJSON), .text(run.tftPackageVersion), + .integer(run.performanceModeConfirmed ? 1 : 0), .text(run.startedUTC), .text(run.endedUTC), + .integer(Int64(bitPattern: run.startedMonotonicNS)), .integer(Int64(bitPattern: run.endedMonotonicNS)), + run.exactLayerIdentity.map(Value.text) ?? .null, .real(metrics.combatDurationSeconds), + .real(metrics.surfaceAvailability), .real(metrics.clockCoverage), + .real(metrics.p95ClockRoundTripMilliseconds), .integer(metrics.frameHistoryTruncated ? 1 : 0), + .integer(metrics.correctnessPassed ? 1 : 0), .real(metrics.weightedFPS), + .real(metrics.onePercentLowFPS), .real(run.p50IntervalMilliseconds), + .real(metrics.p95IntervalMilliseconds), .real(metrics.p99IntervalMilliseconds), + .real(run.maximumIntervalMilliseconds), .real(metrics.jankRate), .real(metrics.severeRate), + .real(metrics.missedVsyncRate), .integer(run.observerOverheadInvalid ? 1 : 0), + .integer(run.isValid ? 1 : 0), run.invalidReason.map(Value.text) ?? .null + ] + } + + static let insertIncidentSQL = """ + INSERT INTO combat_incidents( + incident_id, benchmark_id, session_id, preset_id, trigger, observed_monotonic_ns, + effective_fps, one_percent_low_fps, p99_interval_ms, severe_count, trace_sequence, + first_divergent_boundary, confidence, explicit_unknowns + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """ + + private static func incidentValues(_ incident: CombatIncidentRecord) -> [Value] { + [ + .text(incident.incidentID), .text(incident.benchmarkID), .text(incident.sessionID), + .text(incident.presetID.rawValue), .text(incident.trigger), + .integer(Int64(bitPattern: incident.observedMonotonicNS)), + incident.effectiveFPS.map(Value.real) ?? .null, + incident.onePercentLowFPS.map(Value.real) ?? .null, + incident.p99IntervalMilliseconds.map(Value.real) ?? .null, + .integer(Int64(incident.severeCount)), + incident.traceSequence.map { .integer(Int64($0)) } ?? .null, + .text(incident.firstDivergentBoundary), .text(incident.confidence), + .text(incident.explicitUnknowns) + ] + } + + static let schemaSQL = """ + CREATE TABLE IF NOT EXISTS combat_benchmarks( + benchmark_id TEXT PRIMARY KEY, session_id TEXT NOT NULL, preset_id TEXT NOT NULL, + configuration_sha256 TEXT NOT NULL, comparison_identity_sha256 TEXT NOT NULL, + configuration_json TEXT NOT NULL, + tft_package_version TEXT NOT NULL, performance_mode_confirmed INTEGER NOT NULL, + started_utc TEXT NOT NULL, ended_utc TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, ended_monotonic_ns INTEGER NOT NULL, + exact_layer_identity TEXT, duration_seconds REAL NOT NULL, + surface_availability REAL NOT NULL, clock_coverage REAL NOT NULL, + p95_clock_rtt_ms REAL NOT NULL, history_truncated INTEGER NOT NULL, + correctness_passed INTEGER NOT NULL, weighted_fps REAL NOT NULL, + one_percent_low_fps REAL NOT NULL, p50_interval_ms REAL NOT NULL, + p95_interval_ms REAL NOT NULL, p99_interval_ms REAL NOT NULL, + max_interval_ms REAL NOT NULL, jank_rate REAL NOT NULL, severe_rate REAL NOT NULL, + missed_vsync_rate REAL NOT NULL, observer_overhead_invalid INTEGER NOT NULL, + valid INTEGER NOT NULL, invalid_reason TEXT + ); + CREATE TABLE IF NOT EXISTS combat_incidents( + incident_id TEXT PRIMARY KEY, benchmark_id TEXT NOT NULL, session_id TEXT NOT NULL, + preset_id TEXT NOT NULL, trigger TEXT NOT NULL, observed_monotonic_ns INTEGER NOT NULL, + effective_fps REAL, one_percent_low_fps REAL, p99_interval_ms REAL, + severe_count INTEGER NOT NULL, trace_sequence INTEGER, + first_divergent_boundary TEXT NOT NULL, confidence TEXT NOT NULL, + explicit_unknowns TEXT NOT NULL + ); + CREATE TABLE IF NOT EXISTS combat_comparisons( + comparison_id TEXT PRIMARY KEY, control_benchmark_id TEXT NOT NULL, + candidate_benchmark_id TEXT NOT NULL, weighted_fps_delta_percent REAL NOT NULL, + one_percent_low_delta_percent REAL NOT NULL, p95_delta_percent REAL NOT NULL, + p99_delta_percent REAL NOT NULL, jank_delta_points REAL NOT NULL, + severe_delta_points REAL NOT NULL, missed_vsync_delta_points REAL NOT NULL, + correctness_status TEXT NOT NULL, observer_overhead_invalid INTEGER NOT NULL, + decision TEXT NOT NULL, created_utc TEXT NOT NULL + ); + CREATE INDEX IF NOT EXISTS idx_combat_benchmarks_preset_end ON combat_benchmarks(preset_id, ended_utc); + CREATE INDEX IF NOT EXISTS idx_combat_incidents_benchmark_time ON combat_incidents(benchmark_id, observed_monotonic_ns); + """ + + private static func utcNow() -> String { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter.string(from: Date()) + } +} diff --git a/tftmac/Runtime/GameFrameTelemetry.swift b/tftmac/Runtime/GameFrameTelemetry.swift new file mode 100644 index 0000000..cb21d7d --- /dev/null +++ b/tftmac/Runtime/GameFrameTelemetry.swift @@ -0,0 +1,300 @@ +import Foundation + +enum GameFrameTelemetryUnavailable: Sendable, Equatable { + case noTFTSurfaceView + case multipleTFTSurfaceViews + case noTimestamps + case malformedLatency + case adbError +} + +enum GameFrameTelemetryStatus: Sendable, Equatable { + case available + case unavailable(GameFrameTelemetryUnavailable) +} + +enum GameFrameLayerSelection: Sendable, Equatable { + case selected(String) + case unavailable(GameFrameTelemetryUnavailable) +} + +struct GameFrameLatencySample: Sendable, Equatable { + let desiredPresentNS: UInt64 + let actualPresentNS: UInt64 + let frameReadyNS: UInt64 +} + +struct GameFrameLatencyPoll: Sendable, Equatable { + let refreshPeriodNS: UInt64 + let samples: [GameFrameLatencySample] + let historyTruncated: Bool +} + +struct GameFramePresentInterval: Sendable, Equatable { + let actualPresentNS: UInt64 + let intervalNS: UInt64 + let intervalMS: Double + let missedVsyncEquivalents: Int + let isJanky: Bool + let isSevere: Bool +} + +struct GameFrameTelemetryWindow: Sendable, Equatable { + let status: GameFrameTelemetryStatus + let layerName: String? + let refreshPeriodNS: UInt64? + let startedMonotonicNS: UInt64 + let endedMonotonicNS: UInt64 + let frameCount: Int + let effectiveFPS: Double + let p50MS: Double? + let p95MS: Double? + let p99MS: Double? + let maximumMS: Double? + let onePercentLowFPS: Double? + let jankCount: Int + let severeCount: Int + let missedVsyncEquivalents: Int + let historyTruncated: Bool +} + +struct GameFrameTelemetryUpdate: Sendable, Equatable { + let status: GameFrameTelemetryStatus + let layerName: String? + let refreshPeriodNS: UInt64? + let intervals: [GameFramePresentInterval] + let window: GameFrameTelemetryWindow? +} + +enum GameFrameTelemetry { + static let tftGameActivitySurface = "SurfaceView[com.riotgames.league.teamfighttactics/com.epicgames.unreal.GameActivity](BLAST)" + static let maxLatencyHistoryFrames = 128 + + static func selectTFTSurfaceViewLayer(from output: String) -> GameFrameLayerSelection { + let matches = output.split(whereSeparator: \.isNewline).compactMap { rawLine -> String? in + let line = normalizedLayerLine(String(rawLine)) + guard line.contains(tftGameActivitySurface) else { return nil } + return line + } + switch matches.count { + case 0: return .unavailable(.noTFTSurfaceView) + case 1: return .selected(matches[0]) + default: return .unavailable(.multipleTFTSurfaceViews) + } + } + + static func parseSurfaceFlingerLatency(_ output: String) -> GameFrameLatencyPoll? { + let lines = output.split(whereSeparator: \.isNewline) + guard let first = lines.first, + let refresh = UInt64(first.trimmingCharacters(in: .whitespacesAndNewlines)), refresh > 0 else { + return nil + } + let samples = lines.dropFirst().compactMap(parseLatencyLine).sorted { $0.actualPresentNS < $1.actualPresentNS } + return GameFrameLatencyPoll( + refreshPeriodNS: refresh, + samples: samples, + historyTruncated: samples.count >= maxLatencyHistoryFrames + ) + } + + static func surfaceFlingerLatencyShellCommand(layerName: String) -> String { + "dumpsys SurfaceFlinger --latency \(androidShellQuote(layerName))" + } + + private static func normalizedLayerLine(_ line: String) -> String { + let trimmed = line.trimmingCharacters(in: .whitespacesAndNewlines) + guard trimmed.hasPrefix("RequestedLayerState{") else { return trimmed } + let start = trimmed.index(trimmed.startIndex, offsetBy: "RequestedLayerState{".count) + let remainder = String(trimmed[start...]) + guard let parent = remainder.range(of: " parentId=") else { return remainder } + return String(remainder[.. GameFrameLatencySample? { + let fields = line.split(whereSeparator: \.isWhitespace) + guard fields.count == 3, + let desired = UInt64(fields[0]), let actual = UInt64(fields[1]), let ready = UInt64(fields[2]), + desired > 0, actual > 0, ready > 0, + !isSentinel(desired), !isSentinel(actual), !isSentinel(ready) else { return nil } + return GameFrameLatencySample(desiredPresentNS: desired, actualPresentNS: actual, frameReadyNS: ready) + } + + private static func isSentinel(_ value: UInt64) -> Bool { + value == UInt64.max || value == UInt64(Int64.max) + } + + private static func androidShellQuote(_ value: String) -> String { + "'" + value.replacingOccurrences(of: "'", with: "'\\''") + "'" + } +} + +struct GameFrameTelemetrySampler: Sendable { + private(set) var status: GameFrameTelemetryStatus = .unavailable(.noTFTSurfaceView) + private(set) var selectedLayer: String? + private let windowDurationNS: UInt64 + private var previousActualPresentNS: UInt64? + private var recentActualPresentNS = [UInt64]() + private var windowStartedNS: UInt64? + private var windowIntervals = [GameFramePresentInterval]() + private var windowHistoryTruncated = false + private var windowRefreshPeriodNS: UInt64? + + init(windowDurationNS: UInt64 = 1_000_000_000) { + self.windowDurationNS = windowDurationNS + } + + mutating func updateLayerList(_ output: String) -> GameFrameTelemetryStatus { + switch GameFrameTelemetry.selectTFTSurfaceViewLayer(from: output) { + case .selected(let layer): + if selectedLayer != layer { reset(layer: layer) } + status = .available + case .unavailable(let reason): + selectedLayer = nil + status = .unavailable(reason) + resetTimingState() + } + return status + } + + mutating func ingestLatency(_ output: String, observedMonotonicNS: UInt64) -> GameFrameTelemetryUpdate { + guard case .available = status else { + return GameFrameTelemetryUpdate( + status: status, layerName: selectedLayer, refreshPeriodNS: nil, + intervals: [], window: nil + ) + } + guard let poll = GameFrameTelemetry.parseSurfaceFlingerLatency(output) else { + status = .unavailable(.malformedLatency) + resetTimingState() + return GameFrameTelemetryUpdate( + status: status, layerName: selectedLayer, refreshPeriodNS: nil, + intervals: [], window: nil + ) + } + + guard !poll.samples.isEmpty || previousActualPresentNS != nil else { + status = .unavailable(.noTimestamps) + return GameFrameTelemetryUpdate( + status: status, layerName: selectedLayer, refreshPeriodNS: poll.refreshPeriodNS, + intervals: [], window: nil + ) + } + + // The first successful poll establishes a boundary. SurfaceFlinger + // returns a rolling history, so treating that backlog as frames seen + // during this session would inflate the first measurement window. + if previousActualPresentNS == nil, let latest = poll.samples.last { + previousActualPresentNS = latest.actualPresentNS + recentActualPresentNS = poll.samples.map(\.actualPresentNS) + windowStartedNS = observedMonotonicNS + windowRefreshPeriodNS = poll.refreshPeriodNS + return GameFrameTelemetryUpdate( + status: status, layerName: selectedLayer, refreshPeriodNS: poll.refreshPeriodNS, + intervals: [], window: nil + ) + } + + if windowStartedNS == nil { windowStartedNS = observedMonotonicNS } + windowRefreshPeriodNS = poll.refreshPeriodNS + let previousWasRetained = previousActualPresentNS.map { previous in + poll.samples.contains(where: { $0.actualPresentNS == previous }) + } ?? true + let newSamples = poll.samples.filter { !recentActualPresentNS.contains($0.actualPresentNS) } + recentActualPresentNS.append(contentsOf: newSamples.map(\.actualPresentNS)) + if recentActualPresentNS.count > GameFrameTelemetry.maxLatencyHistoryFrames { + recentActualPresentNS.removeFirst(recentActualPresentNS.count - GameFrameTelemetry.maxLatencyHistoryFrames) + } + + var intervals = [GameFramePresentInterval]() + if poll.historyTruncated, !previousWasRetained, !newSamples.isEmpty { + // More frames arrived than the SurfaceFlinger ring retained. Do + // not collapse the missing history into one fabricated interval. + previousActualPresentNS = newSamples.first?.actualPresentNS + windowHistoryTruncated = true + } + for sample in newSamples { + defer { previousActualPresentNS = sample.actualPresentNS } + guard let previous = previousActualPresentNS, sample.actualPresentNS > previous else { continue } + let intervalNS = sample.actualPresentNS - previous + let interval = makeInterval(actualPresentNS: sample.actualPresentNS, intervalNS: intervalNS, refreshPeriodNS: poll.refreshPeriodNS) + intervals.append(interval) + windowIntervals.append(interval) + } + let completedWindow: GameFrameTelemetryWindow? + if let started = windowStartedNS, observedMonotonicNS >= started &+ windowDurationNS { + completedWindow = makeWindow(startedNS: started, endedNS: observedMonotonicNS) + windowStartedNS = observedMonotonicNS + windowIntervals.removeAll(keepingCapacity: true) + windowHistoryTruncated = false + windowRefreshPeriodNS = poll.refreshPeriodNS + } else { + completedWindow = nil + } + return GameFrameTelemetryUpdate( + status: status, layerName: selectedLayer, refreshPeriodNS: poll.refreshPeriodNS, + intervals: intervals, window: completedWindow + ) + } + + private mutating func reset(layer: String?) { + selectedLayer = layer + resetTimingState() + } + + private mutating func resetTimingState() { + previousActualPresentNS = nil + recentActualPresentNS.removeAll(keepingCapacity: true) + windowStartedNS = nil + windowIntervals.removeAll(keepingCapacity: true) + windowHistoryTruncated = false + windowRefreshPeriodNS = nil + } + + private func makeInterval(actualPresentNS: UInt64, intervalNS: UInt64, refreshPeriodNS: UInt64) -> GameFramePresentInterval { + let vsyncs = max(1, Int((Double(intervalNS) / Double(refreshPeriodNS)).rounded())) + return GameFramePresentInterval( + actualPresentNS: actualPresentNS, + intervalNS: intervalNS, + intervalMS: Double(intervalNS) / 1_000_000, + missedVsyncEquivalents: max(0, vsyncs - 1), + isJanky: Double(intervalNS) > Double(refreshPeriodNS) * 1.5, + isSevere: Double(intervalNS) >= Double(refreshPeriodNS) * 3 + ) + } + + private func makeWindow(startedNS: UInt64, endedNS: UInt64) -> GameFrameTelemetryWindow { + let sorted = windowIntervals.map(\.intervalMS).sorted() + let elapsed = max(1, endedNS - startedNS) + let fps = Double(windowIntervals.count) * 1_000_000_000 / Double(elapsed) + let slowFrameCount = max(1, Int(ceil(Double(sorted.count) * 0.01))) + let slowMeanMS = sorted.isEmpty ? nil : sorted.suffix(slowFrameCount).reduce(0, +) / Double(slowFrameCount) + let onePercentLow = slowMeanMS.map { $0 > 0 ? 1000 / $0 : 0 } + return GameFrameTelemetryWindow( + status: status, + layerName: selectedLayer, + refreshPeriodNS: windowRefreshPeriodNS, + startedMonotonicNS: startedNS, + endedMonotonicNS: endedNS, + frameCount: windowIntervals.count, + effectiveFPS: fps, + p50MS: percentile(sorted, 0.50), + p95MS: percentile(sorted, 0.95), + p99MS: percentile(sorted, 0.99), + maximumMS: sorted.last, + onePercentLowFPS: onePercentLow, + jankCount: windowIntervals.filter(\.isJanky).count, + severeCount: windowIntervals.filter(\.isSevere).count, + missedVsyncEquivalents: windowIntervals.reduce(0) { $0 + $1.missedVsyncEquivalents }, + historyTruncated: windowHistoryTruncated + ) + } + + private func percentile(_ sorted: [Double], _ percentile: Double) -> Double? { + guard !sorted.isEmpty else { return nil } + return sorted[percentileIndex(count: sorted.count, percentile: percentile)] + } + + private func percentileIndex(count: Int, percentile: Double) -> Int { + min(count - 1, max(0, Int(ceil(Double(count) * percentile)) - 1)) + } +} diff --git a/tftmac/Runtime/RuntimeProfile.swift b/tftmac/Runtime/RuntimeProfile.swift index 5396f69..18b8c74 100644 --- a/tftmac/Runtime/RuntimeProfile.swift +++ b/tftmac/Runtime/RuntimeProfile.swift @@ -1,5 +1,91 @@ +import CryptoKit import Foundation +/// A named, reversible experiment selection. The runtime treats `control` as +/// the normal launch contract; a non-control value must be explicitly applied +/// and recorded by the launch transaction. +enum RuntimeExperimentPreset: String, CaseIterable, Codable, Sendable { + case control + case homeRunA = "home_run_a" + + private static let preferenceKey = "runtime.experimentPreset" + static let baselineEmulatorFeatures = [ + "GLESDynamicVersion", + "Vulkan", + "GuestAngle", + "-GLPipeChecksum", + "VulkanBatchedDescriptorSetUpdate", + "AsyncComposeSupport", + "VirtioGpuFenceContexts" + ] + + var displayName: String { + switch self { + case .control: "Control (Proven Baseline)" + case .homeRunA: "Home Run A Performance Mode" + } + } + + var detail: String { + switch self { + case .control: + "Uses the proven baseline settings." + case .homeRunA: + "Requires official TFT Performance Mode Beta to be enabled manually; requests two reversible emulator features on the next launch." + } + } + + var requiresManualPerformanceModeBetaConfirmation: Bool { + self == .homeRunA + } + + var emulatorFeatureAdditions: [String] { + switch self { + case .control: [] + case .homeRunA: ["NativeTextureDecompression", "NoDelayCloseColorBuffer"] + } + } + + func effectiveEmulatorFeatures( + baseline: [String] = RuntimeExperimentPreset.baselineEmulatorFeatures + ) -> [String] { + baseline + emulatorFeatureAdditions.filter { !baseline.contains($0) } + } + + func configurationReceipt( + baselineFeatures: [String] = RuntimeExperimentPreset.baselineEmulatorFeatures + ) -> RuntimeExperimentConfigurationReceipt { + let configuration: [String: Any] = [ + "emulator_features": effectiveEmulatorFeatures(baseline: baselineFeatures), + "preset": rawValue, + "requires_manual_performance_mode_beta_confirmation": requiresManualPerformanceModeBetaConfirmation, + "schema": 1 + ] + let data = (try? JSONSerialization.data(withJSONObject: configuration, options: [.sortedKeys])) ?? Data() + return RuntimeExperimentConfigurationReceipt( + canonicalJSON: String(decoding: data, as: UTF8.self), + sha256: SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() + ) + } + + static func load(from defaults: UserDefaults = .standard) -> Self { + guard let rawValue = defaults.string(forKey: preferenceKey), + let preset = Self(rawValue: rawValue) else { + return .control + } + return preset + } + + func save(to defaults: UserDefaults = .standard) { + defaults.set(rawValue, forKey: Self.preferenceKey) + } +} + +struct RuntimeExperimentConfigurationReceipt: Sendable, Equatable { + let canonicalJSON: String + let sha256: String +} + struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { static let supportedVCPU = [4, 6, 8] static let supportedRAMMiB = [4096, 5120, 6144] @@ -23,7 +109,8 @@ struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { asgDrawFlushInterval: 800, controllerPort: 8554, angleEnabledFeatures: "exposeNonConformantExtensionsAndVersions:exposeES32ForTesting", - angleDisabledFeatures: "preferSubmitAtFBOBoundary" + angleDisabledFeatures: "preferSubmitAtFBOBoundary", + experimentPreset: .control ) private enum PreferenceKey { @@ -50,17 +137,57 @@ struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { let controllerPort: Int let angleEnabledFeatures: String let angleDisabledFeatures: String + let experimentPreset: RuntimeExperimentPreset + + var effectiveEmulatorFeatures: [String] { + experimentPreset.effectiveEmulatorFeatures() + } + + var experimentConfigurationReceipt: RuntimeExperimentConfigurationReceipt { + let configuration: [String: Any] = [ + "angle_disabled_features": angleDisabledFeatures, + "angle_enabled_features": angleEnabledFeatures, + "asg_data_ring_size": asgDataRingSize, + "asg_draw_flush_interval_us": asgDrawFlushInterval, + "asg_write_buffer_size": asgWriteBufferSize, + "asg_write_step_size": asgWriteStepSize, + "audio_backend": audioBackend, + "controller_port": controllerPort, + "density_dpi": densityDPI, + "emulator_features": effectiveEmulatorFeatures, + "gpu_mode": gpuMode, + "graphics_transport": graphicsTransport, + "height": height, + "moltenvk_fast_math": true, + "moltenvk_max_active_command_buffers": 64, + "moltenvk_synchronous_queue_submits": false, + "preset": experimentPreset.rawValue, + "ram_mib": ramMiB, + "refresh_hz": refreshHz, + "requires_manual_performance_mode_beta_confirmation": experimentPreset.requiresManualPerformanceModeBetaConfirmation, + "schema": 1, + "tft_frame_rate_cap": 60, + "tft_graphics_quality": "medium", + "tft_performance_mode_beta_expected": experimentPreset == .homeRunA, + "vcpu": vCPU, + "width": width + ] + let data = (try? JSONSerialization.data(withJSONObject: configuration, options: [.sortedKeys])) ?? Data() + return RuntimeExperimentConfigurationReceipt( + canonicalJSON: String(decoding: data, as: UTF8.self), + sha256: SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() + ) + } + + /// Hash of every locked comparison value with the experiment intervention + /// normalized to Control. Candidate runs can only pair with a Control run + /// carrying this same identity. + var comparisonConfigurationSHA256: String { + with(experimentPreset: .control).experimentConfigurationReceipt.sha256 + } static func load(from defaults: UserDefaults = .standard) -> Self { - let baseline = Self.playable - let vCPU = supportedValue(defaults.integer(forKey: PreferenceKey.vCPU), in: supportedVCPU) ?? baseline.vCPU - let ramMiB = supportedValue(defaults.integer(forKey: PreferenceKey.ramMiB), in: supportedRAMMiB) ?? baseline.ramMiB - let refreshHz = supportedValue(defaults.integer(forKey: PreferenceKey.refreshHz), in: supportedRefreshHz) ?? baseline.refreshHz - let flush = supportedValue( - defaults.integer(forKey: PreferenceKey.asgDrawFlushInterval), - in: supportedASGDrawFlushIntervals - ) ?? baseline.asgDrawFlushInterval - return baseline.with(vCPU: vCPU, ramMiB: ramMiB, refreshHz: refreshHz, asgDrawFlushInterval: flush) + Self.playable.with(experimentPreset: RuntimeExperimentPreset.load(from: defaults)) } func save(to defaults: UserDefaults = .standard) { @@ -68,6 +195,7 @@ struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { defaults.set(ramMiB, forKey: PreferenceKey.ramMiB) defaults.set(refreshHz, forKey: PreferenceKey.refreshHz) defaults.set(asgDrawFlushInterval, forKey: PreferenceKey.asgDrawFlushInterval) + experimentPreset.save(to: defaults) } func with(vCPU: Int, ramMiB: Int, refreshHz: Int, asgDrawFlushInterval: Int) -> Self { @@ -96,7 +224,34 @@ struct TFTMACRuntimeProfile: Codable, Equatable, Sendable { asgDrawFlushInterval: safeFlush, controllerPort: controllerPort, angleEnabledFeatures: angleEnabledFeatures, - angleDisabledFeatures: angleDisabledFeatures + angleDisabledFeatures: angleDisabledFeatures, + experimentPreset: experimentPreset + ) + } + + func with(experimentPreset: RuntimeExperimentPreset) -> Self { + let identifier = experimentPreset == .control + ? self.identifier.replacingOccurrences(of: "_preset_home_run_a", with: "") + : self.identifier.replacingOccurrences(of: "_preset_home_run_a", with: "") + "_preset_home_run_a" + return Self( + identifier: identifier, + width: width, + height: height, + densityDPI: densityDPI, + refreshHz: refreshHz, + vCPU: vCPU, + ramMiB: ramMiB, + gpuMode: gpuMode, + audioBackend: audioBackend, + graphicsTransport: graphicsTransport, + asgWriteBufferSize: asgWriteBufferSize, + asgWriteStepSize: asgWriteStepSize, + asgDataRingSize: asgDataRingSize, + asgDrawFlushInterval: asgDrawFlushInterval, + controllerPort: controllerPort, + angleEnabledFeatures: angleEnabledFeatures, + angleDisabledFeatures: angleDisabledFeatures, + experimentPreset: experimentPreset ) } diff --git a/tftmac/Runtime/TFTMACRuntime.swift b/tftmac/Runtime/TFTMACRuntime.swift index b2f33e2..6d51bc9 100644 --- a/tftmac/Runtime/TFTMACRuntime.swift +++ b/tftmac/Runtime/TFTMACRuntime.swift @@ -89,6 +89,7 @@ struct KeyboardInput: Sendable { } private enum EmulatorInput: Sendable { + case touch(TouchInput) case mouse(MouseInput) case keyboard(KeyboardInput) } @@ -130,6 +131,15 @@ private struct GuestMemorySample: Sendable { let swapFreeKiB: Int64? } +private struct HostResourceSample: Sendable { + let availableKiB: Int64? + let compressedKiB: Int64? + let swapUsedKiB: Int64? + let pageouts: Int64? + let thermalState: String + let powerSource: String +} + private struct SurfaceFlingerSample: Sendable { let renderRateHz: Double? let totalMissedFrames: Int64? @@ -162,6 +172,74 @@ private struct LogcatAggregate: Sendable { let audioErrorCount: Int } +private struct PipelineLogAggregate: Sendable { + let sourceStream: String + let byteStart: UInt64 + let byteEnd: UInt64 + let skippedBytes: UInt64 + let lineCount: Int + let signals: PipelineLogSignals +} + +private struct GraphicsPipelineSnapshot: Sendable { + let label: String + let tftSurfaceState: String + let angleState: String + let gfxstreamState: String + let moltenVKState: String + let hostVulkanDevice: String? + let vulkanComposition: Bool? + let nativeSwapchain: Bool? + let guestEGLImplementation: String? + let guestVulkanImplementation: String? + let globalAngleSelection: String? +} + +struct StreamFreshnessWindow: Sendable { + let startedMonotonicNS: UInt64 + let endedMonotonicNS: UInt64 + let receivedFrames: Int + let contentChanges: Int + let identicalFrames: Int + let longestIdenticalRunFrames: Int + let longestIdenticalRunMS: Double + let sequenceDrops: UInt64 + let sampledPixelsPerFrame: Int +} + +struct HostPresentationWindow: Sendable { + let startedMonotonicNS: UInt64 + let endedMonotonicNS: UInt64 + let submittedFrames: Int + let completedFrames: Int + let uniqueSourceUploads: Int + let repeatedSourcePresents: Int + let drawableMisses: Int + let commandErrors: Int + let meanCompletionLatencyMS: Double? + let p95CompletionLatencyMS: Double? + let p99CompletionLatencyMS: Double? + let maximumCompletionLatencyMS: Double? + let meanGPUTimeMS: Double? + let p95GPUTimeMS: Double? + let maximumGPUTimeMS: Double? +} + +private struct DiagnosticArtifact: Sendable { + let createdUTC: String + let createdMonotonicNS: UInt64 + let kind: String + let trigger: String + let relativePath: String + let byteCount: Int64 + let sha256: String + let analysisState: String + let normalizedRelativePath: String + let normalizedSHA256: String + let normalizedSummaryCSV: String + let traceProcessorSHA256: String +} + struct TFTMACRuntimeError: LocalizedError, Sendable { let message: String init(_ message: String) { self.message = message } @@ -357,6 +435,23 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { } } + fileprivate func recordHostResource(_ sample: HostResourceSample) { + enqueue { + try self.execute( + "INSERT INTO host_resource_samples(session_id, observed_utc, monotonic_ns, available_kib, compressed_kib, swap_used_kib, pageouts, thermal_state, power_source) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + sample.availableKiB.map(SQLiteValue.integer) ?? .null, + sample.compressedKiB.map(SQLiteValue.integer) ?? .null, + sample.swapUsedKiB.map(SQLiteValue.integer) ?? .null, + sample.pageouts.map(SQLiteValue.integer) ?? .null, + .text(sample.thermalState), .text(sample.powerSource) + ] + ) + } + } + fileprivate func recordClockSync(hostT0NS: UInt64, guestUptimeNS: UInt64, hostT1NS: UInt64) { let midpoint = hostT0NS &+ ((hostT1NS &- hostT0NS) / 2) enqueue { @@ -426,6 +521,239 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { } } + fileprivate func recordPipelineLogAggregate(_ sample: PipelineLogAggregate) { + enqueue { + try self.execute( + "INSERT INTO pipeline_log_aggregates(session_id, observed_utc, monotonic_ns, source_stream, byte_start, byte_end, skipped_bytes, line_count, gfxstream_warning_count, asg_stall_count, vulkan_error_count, moltenvk_warning_count, shader_error_count, fence_timeout_count) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .text(sample.sourceStream), + .integer(Int64(bitPattern: sample.byteStart)), + .integer(Int64(bitPattern: sample.byteEnd)), + .integer(Int64(bitPattern: sample.skippedBytes)), + .integer(Int64(sample.lineCount)), + .integer(Int64(sample.signals.gfxstreamWarningCount)), + .integer(Int64(sample.signals.asgStallCount)), + .integer(Int64(sample.signals.vulkanErrorCount)), + .integer(Int64(sample.signals.moltenVKWarningCount)), + .integer(Int64(sample.signals.shaderErrorCount)), + .integer(Int64(sample.signals.fenceTimeoutCount)) + ] + ) + } + } + + fileprivate func recordGraphicsPipelineSnapshot(_ sample: GraphicsPipelineSnapshot) { + enqueue { + try self.execute( + "INSERT INTO graphics_pipeline_snapshots(session_id, observed_utc, monotonic_ns, sample_label, tft_surface_state, angle_state, gfxstream_state, moltenvk_state, host_vulkan_device, vulkan_composition, native_swapchain, guest_egl_implementation, guest_vulkan_implementation, global_angle_selection) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(Self.utcNow()), + .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .text(sample.label), .text(sample.tftSurfaceState), .text(sample.angleState), + .text(sample.gfxstreamState), .text(sample.moltenVKState), + sample.hostVulkanDevice.map(SQLiteValue.text) ?? .null, + sample.vulkanComposition.map { .integer($0 ? 1 : 0) } ?? .null, + sample.nativeSwapchain.map { .integer($0 ? 1 : 0) } ?? .null, + sample.guestEGLImplementation.map(SQLiteValue.text) ?? .null, + sample.guestVulkanImplementation.map(SQLiteValue.text) ?? .null, + sample.globalAngleSelection.map(SQLiteValue.text) ?? .null + ] + ) + } + } + + func recordStreamFreshness(_ sample: StreamFreshnessWindow) { + enqueue { + try self.execute( + "INSERT INTO stream_freshness_windows(session_id, started_monotonic_ns, ended_monotonic_ns, received_frames, content_changes, identical_frames, longest_identical_run_frames, longest_identical_run_ms, sequence_drops, sampled_pixels_per_frame) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), + .integer(Int64(bitPattern: sample.startedMonotonicNS)), + .integer(Int64(bitPattern: sample.endedMonotonicNS)), + .integer(Int64(sample.receivedFrames)), + .integer(Int64(sample.contentChanges)), + .integer(Int64(sample.identicalFrames)), + .integer(Int64(sample.longestIdenticalRunFrames)), + .real(sample.longestIdenticalRunMS), + .integer(Int64(bitPattern: sample.sequenceDrops)), + .integer(Int64(sample.sampledPixelsPerFrame)) + ] + ) + } + } + + func recordHostPresentation(_ sample: HostPresentationWindow) { + enqueue { + try self.execute( + "INSERT INTO host_presentation_windows(session_id, started_monotonic_ns, ended_monotonic_ns, submitted_frames, completed_frames, unique_source_uploads, repeated_source_presents, drawable_misses, command_errors, mean_completion_latency_ms, p95_completion_latency_ms, p99_completion_latency_ms, maximum_completion_latency_ms, mean_gpu_time_ms, p95_gpu_time_ms, maximum_gpu_time_ms) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), + .integer(Int64(bitPattern: sample.startedMonotonicNS)), + .integer(Int64(bitPattern: sample.endedMonotonicNS)), + .integer(Int64(sample.submittedFrames)), + .integer(Int64(sample.completedFrames)), + .integer(Int64(sample.uniqueSourceUploads)), + .integer(Int64(sample.repeatedSourcePresents)), + .integer(Int64(sample.drawableMisses)), + .integer(Int64(sample.commandErrors)), + sample.meanCompletionLatencyMS.map(SQLiteValue.real) ?? .null, + sample.p95CompletionLatencyMS.map(SQLiteValue.real) ?? .null, + sample.p99CompletionLatencyMS.map(SQLiteValue.real) ?? .null, + sample.maximumCompletionLatencyMS.map(SQLiteValue.real) ?? .null, + sample.meanGPUTimeMS.map(SQLiteValue.real) ?? .null, + sample.p95GPUTimeMS.map(SQLiteValue.real) ?? .null, + sample.maximumGPUTimeMS.map(SQLiteValue.real) ?? .null + ] + ) + } + } + + func recordGameFrameUpdate( + _ update: GameFrameTelemetryUpdate, + layerName: String?, + refreshPeriodNS: UInt64? + ) { + enqueue { + try self.transaction { + let observedNS = DispatchTime.now().uptimeNanoseconds + for interval in update.intervals { + try self.execute( + "INSERT INTO game_frame_intervals(session_id, observed_monotonic_ns, layer_name, refresh_period_ns, actual_present_ns, interval_ns, interval_ms, missed_vsync_equivalents, is_janky, is_severe) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), + .integer(Int64(bitPattern: observedNS)), + layerName.map(SQLiteValue.text) ?? .null, + refreshPeriodNS.map { .integer(Int64(bitPattern: $0)) } ?? .null, + .integer(Int64(bitPattern: interval.actualPresentNS)), + .integer(Int64(bitPattern: interval.intervalNS)), + .real(interval.intervalMS), + .integer(Int64(interval.missedVsyncEquivalents)), + .integer(interval.isJanky ? 1 : 0), + .integer(interval.isSevere ? 1 : 0) + ] + ) + } + if let window = update.window { + try self.insertGameFrameWindow(window) + } + } + } + } + + func recordGameFrameWindow(_ window: GameFrameTelemetryWindow) { + enqueue { try self.insertGameFrameWindow(window) } + } + + fileprivate func recordDiagnosticArtifact(_ artifact: DiagnosticArtifact) { + enqueue { + try self.execute( + "INSERT INTO diagnostic_artifacts(session_id, created_utc, created_monotonic_ns, artifact_kind, trigger, relative_path, byte_count, sha256, analysis_state, normalized_relative_path, normalized_sha256, normalized_summary_csv, trace_processor_sha256) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(self.sessionIdentifier), .text(artifact.createdUTC), + .integer(Int64(bitPattern: artifact.createdMonotonicNS)), + .text(artifact.kind), .text(artifact.trigger), .text(artifact.relativePath), + .integer(artifact.byteCount), .text(artifact.sha256), .text(artifact.analysisState), + .text(artifact.normalizedRelativePath), .text(artifact.normalizedSHA256), + .text(artifact.normalizedSummaryCSV), .text(artifact.traceProcessorSHA256) + ] + ) + } + } + + func recordCombatBenchmark(_ run: CombatBenchmarkRun) { + enqueue { + let metrics = run.metrics + try self.execute( + """ + INSERT OR REPLACE INTO combat_benchmarks( + benchmark_id, session_id, preset_id, configuration_sha256, comparison_identity_sha256, configuration_json, + tft_package_version, performance_mode_confirmed, started_utc, ended_utc, + started_monotonic_ns, ended_monotonic_ns, exact_layer_identity, duration_seconds, + surface_availability, clock_coverage, p95_clock_rtt_ms, history_truncated, + correctness_passed, weighted_fps, one_percent_low_fps, p50_interval_ms, + p95_interval_ms, p99_interval_ms, max_interval_ms, jank_rate, severe_rate, + missed_vsync_rate, observer_overhead_invalid, valid, invalid_reason + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + [ + .text(run.benchmarkID), .text(run.sessionID), .text(run.presetID.rawValue), + .text(run.configurationSHA256), .text(run.comparisonIdentitySHA256), + .text(run.configurationJSON), .text(run.tftPackageVersion), + .integer(run.performanceModeConfirmed ? 1 : 0), .text(run.startedUTC), .text(run.endedUTC), + .integer(Int64(bitPattern: run.startedMonotonicNS)), + .integer(Int64(bitPattern: run.endedMonotonicNS)), + run.exactLayerIdentity.map(SQLiteValue.text) ?? .null, + .real(metrics.combatDurationSeconds), .real(metrics.surfaceAvailability), + .real(metrics.clockCoverage), .real(metrics.p95ClockRoundTripMilliseconds), + .integer(metrics.frameHistoryTruncated ? 1 : 0), + .integer(metrics.correctnessPassed ? 1 : 0), .real(metrics.weightedFPS), + .real(metrics.onePercentLowFPS), .real(run.p50IntervalMilliseconds), + .real(metrics.p95IntervalMilliseconds), .real(metrics.p99IntervalMilliseconds), + .real(run.maximumIntervalMilliseconds), .real(metrics.jankRate), + .real(metrics.severeRate), .real(metrics.missedVsyncRate), + .integer(run.observerOverheadInvalid ? 1 : 0), + .integer(run.isValid ? 1 : 0), + run.invalidReason.map(SQLiteValue.text) ?? .null + ] + ) + } + } + + func recordCombatIncident(_ incident: CombatIncidentRecord) { + enqueue { + try self.execute( + """ + INSERT INTO combat_incidents( + incident_id, benchmark_id, session_id, preset_id, trigger, observed_monotonic_ns, + effective_fps, one_percent_low_fps, p99_interval_ms, severe_count, trace_sequence, + first_divergent_boundary, confidence, explicit_unknowns + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + [ + .text(incident.incidentID), .text(incident.benchmarkID), .text(incident.sessionID), + .text(incident.presetID.rawValue), .text(incident.trigger), + .integer(Int64(bitPattern: incident.observedMonotonicNS)), + incident.effectiveFPS.map(SQLiteValue.real) ?? .null, + incident.onePercentLowFPS.map(SQLiteValue.real) ?? .null, + incident.p99IntervalMilliseconds.map(SQLiteValue.real) ?? .null, + .integer(Int64(incident.severeCount)), + incident.traceSequence.map { .integer(Int64($0)) } ?? .null, + .text(incident.firstDivergentBoundary), .text(incident.confidence), + .text(incident.explicitUnknowns) + ] + ) + } + } + + func recordCombatComparison(_ comparison: CombatComparisonRecord) { + enqueue { + let deltas = comparison.analysis.deltas + try self.execute( + """ + INSERT INTO combat_comparisons( + comparison_id, control_benchmark_id, candidate_benchmark_id, + weighted_fps_delta_percent, one_percent_low_delta_percent, + p95_delta_percent, p99_delta_percent, jank_delta_points, + severe_delta_points, missed_vsync_delta_points, correctness_status, + observer_overhead_invalid, decision, created_utc + ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + [ + .text(comparison.comparisonID), .text(comparison.controlBenchmarkID), + .text(comparison.candidateBenchmarkID), .real(deltas.weightedFPSPercent), + .real(deltas.onePercentLowFPSPercent), .real(deltas.p95IntervalPercent), + .real(deltas.p99IntervalPercent), .real(deltas.jankRatePercentagePoints), + .real(deltas.severeRatePercentagePoints), .real(deltas.missedVsyncRatePercentagePoints), + .text(comparison.correctnessStatus), + .integer(comparison.observerOverheadInvalid ? 1 : 0), + .text(comparison.analysis.decision.rawValue), .text(comparison.createdUTC) + ] + ) + } + } + func recordGameProcessTransition(previousPID: Int32?, currentPID: Int32?) { enqueue { let now = Self.utcNow() @@ -448,23 +776,29 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { fileprivate func recordInput(_ input: EmulatorInput) { let values: [SQLiteValue] switch input { + case .touch(let touch): + values = [ + .text(sessionIdentifier), .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), + .text("touch"), .integer(Int64(touch.x)), .integer(Int64(touch.y)), + .null, .integer(Int64(touch.pressure)), .null, .null + ] case .mouse(let mouse): values = [ .text(sessionIdentifier), .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), .text("mouse"), .integer(Int64(mouse.x)), .integer(Int64(mouse.y)), - .integer(Int64(mouse.buttons)), .null, .null + .integer(Int64(mouse.buttons)), .null, .null, .null ] case .keyboard(let keyboard): values = [ .text(sessionIdentifier), .integer(Int64(bitPattern: DispatchTime.now().uptimeNanoseconds)), - .text("keyboard"), .null, .null, .null, + .text("keyboard"), .null, .null, .null, .null, keyboard.text.map { .integer(Int64($0.count)) } ?? .null, keyboard.key.map(SQLiteValue.text) ?? .null ] } enqueue { try self.execute( - "INSERT INTO input_samples(session_id, monotonic_ns, input_kind, x, y, buttons, character_count, special_key) VALUES(?, ?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO input_samples(session_id, monotonic_ns, input_kind, x, y, buttons, pressure, character_count, special_key) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", values ) } @@ -558,6 +892,72 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { p95_interval_ms REAL, maximum_interval_ms REAL ); + CREATE TABLE IF NOT EXISTS game_frame_intervals( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_monotonic_ns INTEGER NOT NULL, + layer_name TEXT, + refresh_period_ns INTEGER, + actual_present_ns INTEGER NOT NULL, + interval_ns INTEGER NOT NULL, + interval_ms REAL NOT NULL, + missed_vsync_equivalents INTEGER NOT NULL, + is_janky INTEGER NOT NULL, + is_severe INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS game_frame_windows( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, + ended_monotonic_ns INTEGER NOT NULL, + status TEXT NOT NULL, + unavailable_reason TEXT, + layer_name TEXT, + refresh_period_ns INTEGER, + frame_count INTEGER NOT NULL, + effective_fps REAL, + one_percent_low_fps REAL, + p50_interval_ms REAL, + p95_interval_ms REAL, + p99_interval_ms REAL, + maximum_interval_ms REAL, + jank_count INTEGER NOT NULL, + severe_count INTEGER NOT NULL, + missed_vsync_equivalents INTEGER NOT NULL, + history_truncated INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS stream_freshness_windows( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, + ended_monotonic_ns INTEGER NOT NULL, + received_frames INTEGER NOT NULL, + content_changes INTEGER NOT NULL, + identical_frames INTEGER NOT NULL, + longest_identical_run_frames INTEGER NOT NULL, + longest_identical_run_ms REAL NOT NULL, + sequence_drops INTEGER NOT NULL, + sampled_pixels_per_frame INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS host_presentation_windows( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + started_monotonic_ns INTEGER NOT NULL, + ended_monotonic_ns INTEGER NOT NULL, + submitted_frames INTEGER NOT NULL, + completed_frames INTEGER NOT NULL, + unique_source_uploads INTEGER NOT NULL, + repeated_source_presents INTEGER NOT NULL, + drawable_misses INTEGER NOT NULL, + command_errors INTEGER NOT NULL, + mean_completion_latency_ms REAL, + p95_completion_latency_ms REAL, + p99_completion_latency_ms REAL, + maximum_completion_latency_ms REAL, + mean_gpu_time_ms REAL, + p95_gpu_time_ms REAL, + maximum_gpu_time_ms REAL + ); CREATE TABLE IF NOT EXISTS resource_samples( id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT NOT NULL, @@ -579,6 +979,18 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { swap_total_kib INTEGER, swap_free_kib INTEGER ); + CREATE TABLE IF NOT EXISTS host_resource_samples( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + available_kib INTEGER, + compressed_kib INTEGER, + swap_used_kib INTEGER, + pageouts INTEGER, + thermal_state TEXT NOT NULL, + power_source TEXT NOT NULL + ); CREATE TABLE IF NOT EXISTS clock_sync_samples( id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT NOT NULL, @@ -634,6 +1046,57 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { vulkan_warning_count INTEGER NOT NULL, audio_error_count INTEGER NOT NULL ); + CREATE TABLE IF NOT EXISTS pipeline_log_aggregates( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + source_stream TEXT NOT NULL, + byte_start INTEGER NOT NULL, + byte_end INTEGER NOT NULL, + skipped_bytes INTEGER NOT NULL, + line_count INTEGER NOT NULL, + gfxstream_warning_count INTEGER NOT NULL, + asg_stall_count INTEGER NOT NULL, + vulkan_error_count INTEGER NOT NULL, + moltenvk_warning_count INTEGER NOT NULL, + shader_error_count INTEGER NOT NULL, + fence_timeout_count INTEGER NOT NULL + ); + CREATE TABLE IF NOT EXISTS graphics_pipeline_snapshots( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + observed_utc TEXT NOT NULL, + monotonic_ns INTEGER NOT NULL, + sample_label TEXT NOT NULL, + tft_surface_state TEXT NOT NULL, + angle_state TEXT NOT NULL, + gfxstream_state TEXT NOT NULL, + moltenvk_state TEXT NOT NULL, + host_vulkan_device TEXT, + vulkan_composition INTEGER, + native_swapchain INTEGER, + guest_egl_implementation TEXT, + guest_vulkan_implementation TEXT, + global_angle_selection TEXT + ); + CREATE TABLE IF NOT EXISTS diagnostic_artifacts( + id INTEGER PRIMARY KEY AUTOINCREMENT, + session_id TEXT NOT NULL, + created_utc TEXT NOT NULL, + created_monotonic_ns INTEGER NOT NULL, + artifact_kind TEXT NOT NULL, + trigger TEXT NOT NULL, + relative_path TEXT NOT NULL, + byte_count INTEGER NOT NULL, + sha256 TEXT NOT NULL, + analysis_state TEXT NOT NULL, + normalized_relative_path TEXT NOT NULL, + normalized_sha256 TEXT NOT NULL, + normalized_summary_csv TEXT NOT NULL, + trace_processor_sha256 TEXT NOT NULL + ); + \(CombatBenchmarkLabStore.schemaSQL) CREATE TABLE IF NOT EXISTS game_process_sessions( id INTEGER PRIMARY KEY AUTOINCREMENT, session_id TEXT NOT NULL, @@ -651,17 +1114,27 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { x INTEGER, y INTEGER, buttons INTEGER, + pressure INTEGER, character_count INTEGER, special_key TEXT ); CREATE INDEX IF NOT EXISTS idx_events_kind_time ON events(kind, monotonic_ns); CREATE INDEX IF NOT EXISTS idx_frames_time ON frame_samples(received_monotonic_ns); CREATE INDEX IF NOT EXISTS idx_frame_windows_time ON frame_interval_windows(started_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_game_frame_intervals_time ON game_frame_intervals(observed_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_game_frame_windows_time ON game_frame_windows(started_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_stream_freshness_time ON stream_freshness_windows(started_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_host_presentation_time ON host_presentation_windows(started_monotonic_ns); CREATE INDEX IF NOT EXISTS idx_resources_time ON resource_samples(monotonic_ns); CREATE INDEX IF NOT EXISTS idx_guest_memory_time ON guest_memory_samples(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_host_resources_time ON host_resource_samples(monotonic_ns); CREATE INDEX IF NOT EXISTS idx_surfaceflinger_time ON surfaceflinger_samples(monotonic_ns); CREATE INDEX IF NOT EXISTS idx_audio_time ON audio_samples(monotonic_ns); CREATE INDEX IF NOT EXISTS idx_logcat_time ON logcat_aggregates(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_pipeline_log_time ON pipeline_log_aggregates(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_graphics_pipeline_time ON graphics_pipeline_snapshots(monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_diagnostic_artifacts_time ON diagnostic_artifacts(created_monotonic_ns); + CREATE INDEX IF NOT EXISTS idx_combat_benchmarks_session ON combat_benchmarks(session_id, started_monotonic_ns); CREATE INDEX IF NOT EXISTS idx_inputs_time ON input_samples(monotonic_ns); """ guard sqlite3_exec(database, schema, nil, nil, nil) == SQLITE_OK else { @@ -676,6 +1149,49 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { } } + private func insertGameFrameWindow(_ window: GameFrameTelemetryWindow) throws { + let state = Self.gameFrameStatus(window.status) + let available: Bool + if case .available = window.status { available = true } else { available = false } + try execute( + "INSERT INTO game_frame_windows(session_id, started_monotonic_ns, ended_monotonic_ns, status, unavailable_reason, layer_name, refresh_period_ns, frame_count, effective_fps, one_percent_low_fps, p50_interval_ms, p95_interval_ms, p99_interval_ms, maximum_interval_ms, jank_count, severe_count, missed_vsync_equivalents, history_truncated) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", + [ + .text(sessionIdentifier), + .integer(Int64(bitPattern: window.startedMonotonicNS)), + .integer(Int64(bitPattern: window.endedMonotonicNS)), + .text(state.status), state.reason.map(SQLiteValue.text) ?? .null, + window.layerName.map(SQLiteValue.text) ?? .null, + window.refreshPeriodNS.map { .integer(Int64(bitPattern: $0)) } ?? .null, + .integer(Int64(window.frameCount)), available ? .real(window.effectiveFPS) : .null, + window.onePercentLowFPS.map(SQLiteValue.real) ?? .null, + window.p50MS.map(SQLiteValue.real) ?? .null, + window.p95MS.map(SQLiteValue.real) ?? .null, + window.p99MS.map(SQLiteValue.real) ?? .null, + window.maximumMS.map(SQLiteValue.real) ?? .null, + .integer(Int64(window.jankCount)), .integer(Int64(window.severeCount)), + .integer(Int64(window.missedVsyncEquivalents)), + .integer(window.historyTruncated ? 1 : 0) + ] + ) + } + + private static func gameFrameStatus(_ status: GameFrameTelemetryStatus) -> (status: String, reason: String?) { + switch status { + case .available: + return ("AVAILABLE", nil) + case .unavailable(.noTFTSurfaceView): + return ("UNAVAILABLE", "NO_TFT_SURFACE_VIEW") + case .unavailable(.multipleTFTSurfaceViews): + return ("UNAVAILABLE", "MULTIPLE_TFT_SURFACE_VIEWS") + case .unavailable(.noTimestamps): + return ("UNAVAILABLE", "NO_TIMESTAMPS") + case .unavailable(.malformedLatency): + return ("UNAVAILABLE", "MALFORMED_LATENCY") + case .unavailable(.adbError): + return ("UNAVAILABLE", "ADB_ERROR") + } + } + private func execute(_ sql: String, _ values: [SQLiteValue]) throws { guard let database else { throw TFTMACRuntimeError("The telemetry database is closed.") } var statement: OpaquePointer? @@ -697,6 +1213,22 @@ final class TFTMACNativeTelemetry: @unchecked Sendable { } } + private func transaction(_ operation: () throws -> Void) throws { + guard let database else { throw TFTMACRuntimeError("The telemetry database is closed.") } + guard sqlite3_exec(database, "BEGIN IMMEDIATE", nil, nil, nil) == SQLITE_OK else { + throw TFTMACRuntimeError("SQLite could not begin a telemetry transaction.") + } + do { + try operation() + guard sqlite3_exec(database, "COMMIT", nil, nil, nil) == SQLITE_OK else { + throw TFTMACRuntimeError("SQLite could not commit a telemetry transaction.") + } + } catch { + sqlite3_exec(database, "ROLLBACK", nil, nil, nil) + throw error + } + } + private static func utcNow() -> String { ISO8601DateFormatter().string(from: Date()) } @@ -721,6 +1253,13 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { private var windowFrameCount = 0 private var windowSequenceDrops: UInt64 = 0 private var windowIntervalsNS = [UInt64]() + private var previousContentFingerprint: UInt64? + private var freshnessContentChanges = 0 + private var freshnessIdenticalFrames = 0 + private var identicalRunFrames = 0 + private var identicalRunStartedNS: UInt64? + private var longestIdenticalRunFrames = 0 + private var longestIdenticalRunMS = 0.0 init(mailbox: LatestFrameMailbox, telemetry: TFTMACNativeTelemetry) { self.mailbox = mailbox @@ -737,6 +1276,7 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { try FrameContract.validate(width: width, height: height, byteCount: image.image.count) let receivedNS = DispatchTime.now().uptimeNanoseconds + let fingerprint = Self.sampledContentFingerprint(image.image) lock.lock() let sequenceDrops: UInt64 if let previousSequence, image.seq > previousSequence &+ 1 { @@ -748,11 +1288,32 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { let isFirstFrame = !admittedFirstFrame admittedFirstFrame = true if windowStartedNS == nil { windowStartedNS = receivedNS } - if let previousReceivedNS { windowIntervalsNS.append(receivedNS &- previousReceivedNS) } + let priorReceivedNS = previousReceivedNS + if let priorReceivedNS { windowIntervalsNS.append(receivedNS &- priorReceivedNS) } previousReceivedNS = receivedNS windowFrameCount += 1 windowSequenceDrops &+= sequenceDrops + if let previousContentFingerprint { + if previousContentFingerprint == fingerprint.value { + freshnessIdenticalFrames += 1 + identicalRunFrames += 1 + if identicalRunStartedNS == nil { identicalRunStartedNS = priorReceivedNS ?? receivedNS } + longestIdenticalRunFrames = max(longestIdenticalRunFrames, identicalRunFrames) + if let runStarted = identicalRunStartedNS { + longestIdenticalRunMS = max(longestIdenticalRunMS, Double(receivedNS &- runStarted) / 1_000_000) + } + } else { + freshnessContentChanges += 1 + identicalRunFrames = 1 + identicalRunStartedNS = receivedNS + } + } else { + identicalRunFrames = 1 + identicalRunStartedNS = receivedNS + } + previousContentFingerprint = fingerprint.value var completedWindow: FrameIntervalWindow? + var completedFreshnessWindow: StreamFreshnessWindow? if let started = windowStartedNS, receivedNS &- started >= 1_000_000_000 { let sorted = windowIntervalsNS.sorted() let mean = sorted.isEmpty ? nil : Double(sorted.reduce(0, &+)) / Double(sorted.count) / 1_000_000 @@ -766,10 +1327,25 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { p95IntervalMS: sorted.isEmpty ? nil : Double(sorted[p95Index]) / 1_000_000, maximumIntervalMS: sorted.last.map { Double($0) / 1_000_000 } ) + completedFreshnessWindow = StreamFreshnessWindow( + startedMonotonicNS: started, + endedMonotonicNS: receivedNS, + receivedFrames: windowFrameCount, + contentChanges: freshnessContentChanges, + identicalFrames: freshnessIdenticalFrames, + longestIdenticalRunFrames: longestIdenticalRunFrames, + longestIdenticalRunMS: longestIdenticalRunMS, + sequenceDrops: windowSequenceDrops, + sampledPixelsPerFrame: fingerprint.sampleCount + ) windowStartedNS = receivedNS windowFrameCount = 0 windowSequenceDrops = 0 windowIntervalsNS.removeAll(keepingCapacity: true) + freshnessContentChanges = 0 + freshnessIdenticalFrames = 0 + longestIdenticalRunFrames = identicalRunFrames + longestIdenticalRunMS = 0 } lock.unlock() @@ -785,6 +1361,7 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { ) mailbox.publish(frame) if let completedWindow { telemetry.recordFrameIntervalWindow(completedWindow) } + if let completedFreshnessWindow { telemetry.recordStreamFreshness(completedFreshnessWindow) } guard checkpoint else { return isFirstFrame } let visual = Self.sampleVisualContent(image.image, includeHash: true) telemetry.recordFrameReceived(frame, transport: "raw_grpc_rgba8888", sequenceDropCount: sequenceDrops, visual: visual) @@ -862,32 +1439,80 @@ private final class NativeFrameAdmissionState: @unchecked Sendable { contentSHA256: digest ) } + + private static func sampledContentFingerprint(_ data: Data) -> (value: UInt64, sampleCount: Int) { + let pixelCount = data.count / FrameContract.bytesPerPixel + let step = max(1, pixelCount / 4096) + var hash: UInt64 = 1_469_598_103_934_665_603 + var sampleCount = 0 + data.withUnsafeBytes { raw in + let bytes = raw.bindMemory(to: UInt8.self) + var pixel = 0 + while pixel < pixelCount { + let offset = pixel * FrameContract.bytesPerPixel + hash ^= UInt64(bytes[offset]) + hash &*= 1_099_511_628_211 + hash ^= UInt64(bytes[offset + 1]) << 8 + hash &*= 1_099_511_628_211 + hash ^= UInt64(bytes[offset + 2]) << 16 + hash &*= 1_099_511_628_211 + hash ^= UInt64(bytes[offset + 3]) << 24 + hash &*= 1_099_511_628_211 + sampleCount += 1 + pixel += step + } + } + return (hash, sampleCount) + } } actor TFTMACRuntimeService { typealias StatusHandler = @MainActor @Sendable (String, Bool) -> Void + typealias GameFrameHandler = @MainActor @Sendable (GameFrameTelemetryWindow?) -> Void private let profile: TFTMACRuntimeProfile private let mailbox: LatestFrameMailbox private let status: StatusHandler + private let gameFrame: GameFrameHandler private var telemetry: TFTMACNativeTelemetry? + private var labStore: CombatBenchmarkLabStore? private var paths: TFTMACRuntimePaths? private var openProcess: Process? private var logcatProcess: Process? private var logcatOutputHandle: FileHandle? private var logcatErrorHandle: FileHandle? private var logcatReadOffset: UInt64 = 0 + private var emulatorStdoutReadOffset: UInt64 = 0 + private var emulatorStderrReadOffset: UInt64 = 0 private var runtimeLease: TFTMACRuntimeLease? private var expectedSessionMarker: String? private var discovery: EmulatorControllerDiscovery? private var inputContinuation: AsyncStream.Continuation? private var avdTransaction: AVDConfigurationTransaction? + private var traceCaptureInProgress = false + private var traceCaptureMeasurementStartNS: UInt64? + private var traceCaptureMeasurementEndNS: UInt64? + private var traceCaptureCount = 0 + private var automaticTraceCount = 0 + private var incidentTraceCount = 0 + private var lastAutomaticTraceNS: UInt64 = 0 + private var consecutiveBadCombatWindows = 0 + private var activeCombatBenchmark: ActiveCombatBenchmark? + private var benchmarkDeadlineTask: Task? + private var latestGameFrameWindow: GameFrameTelemetryWindow? + private var tftPackageVersion = "unknown" private var stopping = false - init(profile: TFTMACRuntimeProfile, mailbox: LatestFrameMailbox, status: @escaping StatusHandler) { + init( + profile: TFTMACRuntimeProfile, + mailbox: LatestFrameMailbox, + status: @escaping StatusHandler, + gameFrame: @escaping GameFrameHandler + ) { self.profile = profile self.mailbox = mailbox self.status = status + self.gameFrame = gameFrame } func run() async throws { @@ -895,6 +1520,7 @@ actor TFTMACRuntimeService { .appendingPathComponent("Library/Application Support/TFTMAC", isDirectory: true) let telemetry = try TFTMACNativeTelemetry(profile: profile, applicationSupport: applicationSupport) self.telemetry = telemetry + labStore = try CombatBenchmarkLabStore(applicationSupport: applicationSupport) await status("Starting Android through the native Mac app host…", false) do { @@ -942,6 +1568,9 @@ actor TFTMACRuntimeService { group.addTask { try await self.sampleRuntime(paths: paths, telemetry: telemetry, emulatorPID: discovery.processIdentifier) } + group.addTask { + try await self.sampleGameFrames(paths: paths, telemetry: telemetry) + } _ = try await group.next() group.cancelAll() } @@ -957,6 +1586,16 @@ actor TFTMACRuntimeService { "diagnostic": String(describing: error), "type": String(reflecting: type(of: error)) ]) + if profile.experimentPreset == .homeRunA { + recordCorrectnessRejection(reason: error.localizedDescription) + TFTMACRuntimeProfile.playable.with(experimentPreset: .control).save() + telemetry.recordEvent("EXPERIMENT_AUTO_ROLLBACK", payload: [ + "failed_preset": profile.experimentPreset.rawValue, + "restored_preset": RuntimeExperimentPreset.control.rawValue, + "classification": "REJECTED_CORRECTNESS", + "applies_after_restart": true + ]) + } await cleanup(status: stopping ? "STOPPED" : "FAILED") if !stopping { await status(error.localizedDescription, true) } throw error @@ -969,6 +1608,11 @@ actor TFTMACRuntimeService { inputContinuation?.yield(.mouse(input)) } + func sendTouch(_ input: TouchInput) { + telemetry?.recordInput(.touch(input)) + inputContinuation?.yield(.touch(input)) + } + func sendKeyboard(_ input: KeyboardInput) { telemetry?.recordInput(.keyboard(input)) inputContinuation?.yield(.keyboard(input)) @@ -978,8 +1622,179 @@ actor TFTMACRuntimeService { telemetry?.recordPresentation(sample) } + func recordHostPresentation(_ sample: HostPresentationWindow) { + telemetry?.recordHostPresentation(sample) + } + + func startCombatBenchmark(performanceModeConfirmed: Bool) { + guard activeCombatBenchmark == nil else { + telemetry?.recordEvent("COMBAT_BENCHMARK_START_REJECTED", payload: ["reason": "ALREADY_RUNNING"]) + return + } + guard let telemetry, let paths, discovery != nil else { return } + if profile.experimentPreset.requiresManualPerformanceModeBetaConfirmation, + !performanceModeConfirmed { + telemetry.recordEvent("COMBAT_BENCHMARK_START_REJECTED", payload: [ + "reason": "PERFORMANCE_MODE_BETA_NOT_CONFIRMED", + "preset_id": profile.experimentPreset.rawValue + ]) + return + } + + let nowNS = DispatchTime.now().uptimeNanoseconds + let receipt = profile.experimentConfigurationReceipt + activeCombatBenchmark = ActiveCombatBenchmark( + benchmarkID: UUID().uuidString.lowercased(), + sessionID: telemetry.sessionIdentifier, + presetID: profile.experimentPreset, + configurationSHA256: receipt.sha256, + comparisonIdentitySHA256: profile.comparisonConfigurationSHA256, + configurationJSON: receipt.canonicalJSON, + tftPackageVersion: tftPackageVersion, + performanceModeConfirmed: performanceModeConfirmed, + startedUTC: Self.utcNow(), + startedMonotonicNS: nowNS + ) + if let active = activeCombatBenchmark { + let placeholder = active.finish(endedUTC: active.startedUTC, endedMonotonicNS: nowNS) + telemetry.recordCombatBenchmark(placeholder) + try? labStore?.record(placeholder) + } + automaticTraceCount = 0 + incidentTraceCount = 0 + lastAutomaticTraceNS = 0 + consecutiveBadCombatWindows = 0 + recordClockSync(paths: paths, telemetry: telemetry) + recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "combat_benchmark_start") + recordGraphicsPipelineSnapshot(paths: paths, telemetry: telemetry, label: "combat_benchmark_start") + telemetry.recordEvent("COMBAT_BENCHMARK_STARTED", payload: [ + "benchmark_id": activeCombatBenchmark?.benchmarkID ?? "unknown", + "preset_id": profile.experimentPreset.rawValue, + "configuration_sha256": receipt.sha256, + "performance_mode_beta_confirmed": performanceModeConfirmed, + "minimum_valid_seconds": 300, + "automatic_close_seconds": 480, + "combat_only_trace_budget": 3 + ]) + requestDiagnosticTrace( + trigger: "COMBAT_BENCHMARK_START", + automatic: false, + durationSeconds: 20, + bufferMiB: 32, + benchmarkStartTrace: true + ) + benchmarkDeadlineTask?.cancel() + benchmarkDeadlineTask = Task { [weak self] in + try? await Task.sleep(for: .seconds(480)) + guard !Task.isCancelled else { return } + await self?.endCombatBenchmark(reason: "AUTOMATIC_EIGHT_MINUTE_CLOSE") + } + } + + func markVisibleStutter() { + guard let active = activeCombatBenchmark, let telemetry else { + telemetry?.recordEvent("VISIBLE_STUTTER_IGNORED", payload: ["reason": "NO_ACTIVE_COMBAT_BENCHMARK"]) + return + } + telemetry.recordEvent("VISIBLE_STUTTER", payload: [ + "benchmark_id": active.benchmarkID, + "preset_id": active.presetID.rawValue, + "host_monotonic_timestamp": true + ]) + let traceSequence = requestDiagnosticTrace( + trigger: "VISIBLE_STUTTER", + automatic: false, + durationSeconds: 15, + bufferMiB: 32, + benchmarkStartTrace: false + ) + recordCombatIncident( + trigger: "VISIBLE_STUTTER", + window: latestGameFrameWindow, + traceSequence: traceSequence + ) + } + + func endCombatBenchmark( + reason: String = "USER_ENDED", + correctnessPassed: Bool = true + ) { + guard var active = activeCombatBenchmark, let telemetry else { return } + benchmarkDeadlineTask?.cancel() + benchmarkDeadlineTask = nil + if let paths { + recordClockSync(paths: paths, telemetry: telemetry) + recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "combat_benchmark_end") + recordGraphicsPipelineSnapshot(paths: paths, telemetry: telemetry, label: "combat_benchmark_end") + } + if let refreshed = activeCombatBenchmark { active = refreshed } + let endedNS = DispatchTime.now().uptimeNanoseconds + let run = active.finish( + endedUTC: Self.utcNow(), + endedMonotonicNS: endedNS, + correctnessPassed: correctnessPassed + ) + activeCombatBenchmark = nil + consecutiveBadCombatWindows = 0 + telemetry.recordCombatBenchmark(run) + telemetry.recordEvent("COMBAT_BENCHMARK_ENDED", payload: [ + "benchmark_id": run.benchmarkID, + "reason": reason, + "preset_id": run.presetID.rawValue, + "duration_seconds": run.metrics.combatDurationSeconds, + "surface_availability": run.metrics.surfaceAvailability, + "clock_coverage": run.metrics.clockCoverage, + "weighted_fps": run.metrics.weightedFPS, + "one_percent_low_fps": run.metrics.onePercentLowFPS, + "p95_interval_ms": run.metrics.p95IntervalMilliseconds, + "p99_interval_ms": run.metrics.p99IntervalMilliseconds, + "correctness_passed": run.metrics.correctnessPassed, + "valid": run.isValid, + "invalid_reason": run.invalidReason ?? NSNull(), + "observer_overhead_invalid": run.observerOverheadInvalid + ]) + var comparisonDecision: CombatBenchmarkDecision? + do { + try labStore?.record(run) + if let comparison = try labStore?.comparisonForCandidate(run) { + comparisonDecision = comparison.analysis.decision + telemetry.recordCombatComparison(comparison) + telemetry.recordEvent("COMBAT_COMPARISON_READY", payload: [ + "comparison_id": comparison.comparisonID, + "control_benchmark_id": comparison.controlBenchmarkID, + "candidate_benchmark_id": comparison.candidateBenchmarkID, + "decision": comparison.analysis.decision.rawValue, + "weighted_fps_delta_percent": comparison.analysis.deltas.weightedFPSPercent, + "one_percent_low_delta_percent": comparison.analysis.deltas.onePercentLowFPSPercent, + "p95_delta_percent": comparison.analysis.deltas.p95IntervalPercent, + "p99_delta_percent": comparison.analysis.deltas.p99IntervalPercent, + "observer_overhead_invalid": comparison.observerOverheadInvalid + ]) + } + } catch { + telemetry.recordEvent("COMBAT_LAB_PERSISTENCE_FAILED", payload: ["error": error.localizedDescription]) + } + if run.presetID == .homeRunA, + comparisonDecision != .homeRun, + comparisonDecision != .promising { + TFTMACRuntimeProfile.playable.with(experimentPreset: .control).save() + let classification: String + if !run.metrics.correctnessPassed { + classification = "REJECTED_CORRECTNESS" + } else { + classification = comparisonDecision?.rawValue ?? "INCONCLUSIVE_NO_MATCHING_CONTROL" + } + telemetry.recordEvent("EXPERIMENT_AUTO_ROLLBACK", payload: [ + "failed_preset": run.presetID.rawValue, + "restored_preset": RuntimeExperimentPreset.control.rawValue, + "classification": classification, + "applies_after_restart": true + ]) + } + } + func recordMarker(_ marker: String) { - let allowed = ["MATCH_ENTRY", "COMBAT_START", "VISIBLE_STUTTER", "MATCH_END"] + let allowed = ["MATCH_ENTRY", "MATCH_END"] guard allowed.contains(marker) else { return } telemetry?.recordEvent(marker, payload: [ "source": "native_menu", @@ -1003,6 +1818,7 @@ actor TFTMACRuntimeService { func stop() async { guard !stopping else { return } + if activeCombatBenchmark != nil { endCombatBenchmark(reason: "APPLICATION_STOP") } stopping = true await status("Sealing SQL telemetry and stopping Android…", false) inputContinuation?.finish() @@ -1192,9 +2008,13 @@ actor TFTMACRuntimeService { } private func recordFrozenReceipts(telemetry: TFTMACNativeTelemetry, paths: TFTMACRuntimePaths) { + let experimentReceipt = profile.experimentConfigurationReceipt let receipts: [(String, String, String, String)] = [ ("engine", "Unreal Engine", "user_locked_fact", "LOCKED"), ("runtime_profile_id", profile.identifier, "validated native preferences", "DIRECT"), + ("runtime_experiment_preset", profile.experimentPreset.rawValue, "named launch experiment", "DIRECT"), + ("runtime_configuration_sha256", experimentReceipt.sha256, "canonical effective configuration", "DIRECT"), + ("runtime_configuration_json", experimentReceipt.canonicalJSON, "canonical effective configuration", "DIRECT"), ("launcher_method", "/usr/bin/open -n -W --env ... --args ...", "Mactician donor architecture", "DIRECT"), ("adb_server_port", "5038", "known-good donor", "DIRECT"), ("emulator_console_port", "5582", "known-good donor", "DIRECT"), @@ -1210,6 +2030,11 @@ actor TFTMACRuntimeService { ("gpu_mode", profile.gpuMode, "playable baseline", "DIRECT"), ("audio_backend", profile.audioBackend, "audio health receipt", "DIRECT"), ("graphics_transport_requested", profile.graphicsTransport, "playable baseline", "REQUESTED"), + ("emulator_features_requested", profile.effectiveEmulatorFeatures.joined(separator: ","), "named launch experiment", "REQUESTED"), + ("asg_write_buffer_size", "\(profile.asgWriteBufferSize)", "playable baseline", "REQUESTED"), + ("asg_write_step_size", "\(profile.asgWriteStepSize)", "playable baseline", "REQUESTED"), + ("asg_data_ring_size", "\(profile.asgDataRingSize)", "playable baseline", "REQUESTED"), + ("asg_draw_flush_interval_us", "\(profile.asgDrawFlushInterval)", "playable baseline", "REQUESTED"), ("angle_enabled_requested", profile.angleEnabledFeatures, "playable baseline", "REQUESTED"), ("angle_disabled_requested", profile.angleDisabledFeatures, "playable baseline", "REQUESTED"), ("frame_transport", "raw_grpc_rgba8888", "native admission path", "DIRECT"), @@ -1270,7 +2095,7 @@ actor TFTMACRuntimeService { "--args", "@TFT_Ultra_Tablet", "-id", "TFTMAC", "-port", "5582", "-gpu", profile.gpuMode, "-audio", profile.audioBackend, - "-feature", "GLESDynamicVersion,Vulkan,GuestAngle,-GLPipeChecksum,VulkanBatchedDescriptorSetUpdate,AsyncComposeSupport,VirtioGpuFenceContexts", + "-feature", profile.effectiveEmulatorFeatures.joined(separator: ","), "-append-userspace-opt", "androidboot.opengles.version=196610", "-append-userspace-opt", "androidboot.tftmac.graphics_profile=tftmac", "-append-userspace-opt", expectedSessionMarker!, @@ -1383,7 +2208,6 @@ actor TFTMACRuntimeService { "serial": "emulator-5582", "authorization_is_user_controlled": true ]) - await status("ADB authorization required — press Fn-F12 if Android is asleep, unlock it, then choose Always allow and Allow.", false) } else if lastState == "offline" { await status("Android is booting; ADB is temporarily offline…", false) } else if lastState == "missing" { @@ -1430,7 +2254,6 @@ actor TFTMACRuntimeService { "pin_entry": "manual_only", "credential_logged": false ]) - await status("Android is securely locked. Click here, type your Android PIN, then press Return. TFTMAC never stores it.", false) } try await Task.sleep(for: .seconds(1)) } @@ -1445,10 +2268,28 @@ actor TFTMACRuntimeService { throw TFTMACRuntimeError("Official TFT is not installed. Open Google Play in Android and install Teamfight Tactics.") } let installer = try? Self.adb(paths: paths, ["shell", "cmd", "package", "get-install-source", package], timeout: 15).output + tftPackageVersion = packageDump.split(whereSeparator: \.isNewline) + .first(where: { $0.contains("versionName=") }) + .map { String($0).trimmingCharacters(in: .whitespacesAndNewlines) } + ?? "unknown" + let versionCodeLine = packageDump.split(whereSeparator: \.isNewline) + .first(where: { $0.contains("versionCode=") }) + .map { String($0).trimmingCharacters(in: .whitespacesAndNewlines) } + ?? "unknown" + let signingLine = packageDump.split(whereSeparator: \.isNewline) + .first(where: { $0.contains("signatures=PackageSignatures") }) + .map { String($0).trimmingCharacters(in: .whitespacesAndNewlines) } + ?? "unknown" + telemetry.recordReceipt(key: "official_tft_version", value: tftPackageVersion, source: "dumpsys package", confidence: "DIRECT") + telemetry.recordReceipt(key: "official_tft_version_code", value: versionCodeLine, source: "dumpsys package", confidence: "DIRECT") + telemetry.recordReceipt(key: "official_tft_installer", value: installer?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "unknown", source: "cmd package get-install-source", confidence: "DIRECT") + telemetry.recordReceipt(key: "official_tft_signing_receipt", value: signingLine, source: "dumpsys package", confidence: signingLine == "unknown" ? "UNKNOWN" : "DIRECT") telemetry.recordEvent("OFFICIAL_TFT_PACKAGE_RECEIPT", payload: [ "package": package, "installer_output": installer?.trimmingCharacters(in: .whitespacesAndNewlines) ?? "unknown", - "version_line": packageDump.split(whereSeparator: \.isNewline).first(where: { $0.contains("versionName=") }).map(String.init) ?? "unknown" + "version_line": tftPackageVersion, + "version_code_line": versionCodeLine, + "signing_line": signingLine ]) try await Task.sleep(for: .milliseconds(750)) guard logcatProcess?.isRunning == true, @@ -1523,9 +2364,68 @@ actor TFTMACRuntimeService { let memory = Self.parseGuestMemory(memoryOutput) { telemetry.recordGuestMemory(memory) } + telemetry.recordHostResource(Self.collectHostResourceSample()) let logcatURL = telemetry.captureDirectory.appendingPathComponent("logcat.raw.txt") if let aggregate = Self.readLogcatAggregate(url: logcatURL, from: &logcatReadOffset) { telemetry.recordLogcatAggregate(aggregate) + if aggregate.anrCount > 0 || aggregate.inputTimeoutCount > 0 + || aggregate.fatalCount > 0 || aggregate.memoryKillCount > 0 + || aggregate.angleWarningCount > 0 || aggregate.vulkanWarningCount > 0 + || aggregate.audioErrorCount > 0 { + telemetry.recordEvent("ANDROID_RUNTIME_INCIDENTS", payload: [ + "anr_count": aggregate.anrCount, + "input_timeout_count": aggregate.inputTimeoutCount, + "fatal_count": aggregate.fatalCount, + "memory_kill_count": aggregate.memoryKillCount, + "angle_warning_count": aggregate.angleWarningCount, + "vulkan_warning_count": aggregate.vulkanWarningCount, + "audio_error_count": aggregate.audioErrorCount, + "raw_log_byte_start": String(aggregate.byteStart), + "raw_log_byte_end": String(aggregate.byteEnd) + ]) + } + } + let emulatorStdout = telemetry.captureDirectory.appendingPathComponent("emulator.stdout.log") + if let aggregate = Self.readPipelineLogAggregate( + url: emulatorStdout, + sourceStream: "emulator_stdout", + from: &emulatorStdoutReadOffset + ) { + telemetry.recordPipelineLogAggregate(aggregate) + if aggregate.signals.gfxstreamWarningCount > 0 || aggregate.signals.asgStallCount > 0 + || aggregate.signals.vulkanErrorCount > 0 || aggregate.signals.moltenVKWarningCount > 0 + || aggregate.signals.shaderErrorCount > 0 || aggregate.signals.fenceTimeoutCount > 0 { + telemetry.recordEvent("GRAPHICS_PIPELINE_INCIDENTS", payload: [ + "source_stream": aggregate.sourceStream, + "gfxstream_warning_count": aggregate.signals.gfxstreamWarningCount, + "asg_stall_count": aggregate.signals.asgStallCount, + "vulkan_error_count": aggregate.signals.vulkanErrorCount, + "moltenvk_warning_count": aggregate.signals.moltenVKWarningCount, + "shader_error_count": aggregate.signals.shaderErrorCount, + "fence_timeout_count": aggregate.signals.fenceTimeoutCount + ]) + } + } + let emulatorStderr = telemetry.captureDirectory.appendingPathComponent("emulator.stderr.log") + if let aggregate = Self.readPipelineLogAggregate( + url: emulatorStderr, + sourceStream: "emulator_stderr", + from: &emulatorStderrReadOffset + ) { + telemetry.recordPipelineLogAggregate(aggregate) + if aggregate.signals.gfxstreamWarningCount > 0 || aggregate.signals.asgStallCount > 0 + || aggregate.signals.vulkanErrorCount > 0 || aggregate.signals.moltenVKWarningCount > 0 + || aggregate.signals.shaderErrorCount > 0 || aggregate.signals.fenceTimeoutCount > 0 { + telemetry.recordEvent("GRAPHICS_PIPELINE_INCIDENTS", payload: [ + "source_stream": aggregate.sourceStream, + "gfxstream_warning_count": aggregate.signals.gfxstreamWarningCount, + "asg_stall_count": aggregate.signals.asgStallCount, + "vulkan_error_count": aggregate.signals.vulkanErrorCount, + "moltenvk_warning_count": aggregate.signals.moltenVKWarningCount, + "shader_error_count": aggregate.signals.shaderErrorCount, + "fence_timeout_count": aggregate.signals.fenceTimeoutCount + ]) + } } if gamePID != previousGamePID { let previousValue: Any = previousGamePID.map { NSNumber(value: $0) } ?? NSNull() @@ -1539,8 +2439,10 @@ actor TFTMACRuntimeService { } if sampleIndex.isMultiple(of: 6) { recordClockSync(paths: paths, telemetry: telemetry) + recordThirtySecondRuntimeReceipt(paths: paths, telemetry: telemetry) if gamePID != nil { recordDiagnosticSnapshot(paths: paths, telemetry: telemetry, label: "gameplay_periodic") + recordGraphicsPipelineSnapshot(paths: paths, telemetry: telemetry, label: "gameplay_periodic") } } sampleIndex += 1 @@ -1548,6 +2450,507 @@ actor TFTMACRuntimeService { } } + private func sampleGameFrames(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) async throws { + var sampler = GameFrameTelemetrySampler() + var lastBoundaryNS = DispatchTime.now().uptimeNanoseconds + var lastCollectorErrorEventNS: UInt64 = 0 + var previousExactLayerName: String? + + while !stopping { + try Task.checkCancellation() + let observedNS = DispatchTime.now().uptimeNanoseconds + do { + let layers = try Self.adb( + paths: paths, + ["shell", "dumpsys", "SurfaceFlinger", "--list"], + timeout: 10 + ).output + let layerStatus = sampler.updateLayerList(layers) + guard case .available = layerStatus, let layer = sampler.selectedLayer else { + consecutiveBadCombatWindows = 0 + let window = Self.unavailableGameFrameWindow( + status: layerStatus, + layerName: nil, + startedNS: lastBoundaryNS, + endedNS: observedNS + ) + telemetry.recordGameFrameWindow(window) + await gameFrame(window) + latestGameFrameWindow = window + ingestCombatFrameUpdate(nil, window: window) + lastBoundaryNS = observedNS + try await Task.sleep(for: .seconds(1)) + continue + } + if let previousExactLayerName, previousExactLayerName != layer { + telemetry.recordEvent("TFT_SURFACE_LAYER_REPLACED", payload: [ + "previous_layer": previousExactLayerName, + "current_layer": layer, + "benchmark_active": activeCombatBenchmark != nil + ]) + } + previousExactLayerName = layer + + let latency = try Self.adb( + paths: paths, + ["shell", GameFrameTelemetry.surfaceFlingerLatencyShellCommand(layerName: layer)], + timeout: 10 + ).output + let update = sampler.ingestLatency( + latency, + observedMonotonicNS: DispatchTime.now().uptimeNanoseconds + ) + telemetry.recordGameFrameUpdate( + update, + layerName: update.layerName, + refreshPeriodNS: update.refreshPeriodNS + ) + if let window = update.window { + await gameFrame(window) + latestGameFrameWindow = window + ingestCombatFrameUpdate(update, window: window) + lastBoundaryNS = window.endedMonotonicNS + let lowFPSDegradation = window.frameCount >= 10 + && (window.onePercentLowFPS ?? window.effectiveFPS) < 30 + let severeDegradation = window.severeCount > 0 || (window.p99MS ?? 0) >= 50 + if activeCombatBenchmark != nil, (lowFPSDegradation || severeDegradation) { + consecutiveBadCombatWindows += 1 + } else { + consecutiveBadCombatWindows = 0 + } + if consecutiveBadCombatWindows >= 2, + let traceSequence = requestDiagnosticTrace( + trigger: "AUTO_GAME_FRAME_DEGRADATION", + automatic: true, + durationSeconds: 15, + bufferMiB: 32, + benchmarkStartTrace: false + ) { + consecutiveBadCombatWindows = 0 + telemetry.recordEvent("GAME_FRAME_DEGRADATION", payload: [ + "evidence_level": "SURFACEFLINGER_ACTUAL_PRESENT", + "effective_fps": window.effectiveFPS, + "one_percent_low_fps": window.onePercentLowFPS ?? NSNull(), + "p99_interval_ms": window.p99MS ?? NSNull(), + "maximum_interval_ms": window.maximumMS ?? NSNull(), + "jank_count": window.jankCount, + "severe_count": window.severeCount, + "missed_vsync_equivalents": window.missedVsyncEquivalents, + "cause": "UNATTRIBUTED_PENDING_TRACE_CORRELATION" + ]) + recordCombatIncident( + trigger: "AUTO_GAME_FRAME_DEGRADATION", + window: window, + traceSequence: traceSequence + ) + } + } else if case .unavailable = update.status { + consecutiveBadCombatWindows = 0 + let unavailable = Self.unavailableGameFrameWindow( + status: update.status, + layerName: update.layerName, + startedNS: lastBoundaryNS, + endedNS: DispatchTime.now().uptimeNanoseconds + ) + telemetry.recordGameFrameWindow(unavailable) + await gameFrame(unavailable) + latestGameFrameWindow = unavailable + ingestCombatFrameUpdate(nil, window: unavailable) + lastBoundaryNS = unavailable.endedMonotonicNS + } + } catch is CancellationError { + throw CancellationError() + } catch { + consecutiveBadCombatWindows = 0 + let failedAt = DispatchTime.now().uptimeNanoseconds + let unavailable = Self.unavailableGameFrameWindow( + status: .unavailable(.adbError), + layerName: sampler.selectedLayer, + startedNS: lastBoundaryNS, + endedNS: failedAt + ) + telemetry.recordGameFrameWindow(unavailable) + latestGameFrameWindow = unavailable + ingestCombatFrameUpdate(nil, window: unavailable) + if lastCollectorErrorEventNS == 0 + || failedAt &- lastCollectorErrorEventNS >= 30_000_000_000 { + lastCollectorErrorEventNS = failedAt + telemetry.recordEvent("GAME_FRAME_COLLECTOR_UNAVAILABLE", payload: [ + "reason": "ADB_ERROR", + "error": error.localizedDescription, + "event_rate_limit_seconds": 30 + ]) + } + await gameFrame(unavailable) + lastBoundaryNS = failedAt + } + try await Task.sleep(for: .seconds(1)) + } + } + + nonisolated private static func unavailableGameFrameWindow( + status: GameFrameTelemetryStatus, + layerName: String?, + startedNS: UInt64, + endedNS: UInt64 + ) -> GameFrameTelemetryWindow { + GameFrameTelemetryWindow( + status: status, + layerName: layerName, + refreshPeriodNS: nil, + startedMonotonicNS: startedNS, + endedMonotonicNS: max(startedNS, endedNS), + frameCount: 0, + effectiveFPS: 0, + p50MS: nil, + p95MS: nil, + p99MS: nil, + maximumMS: nil, + onePercentLowFPS: nil, + jankCount: 0, + severeCount: 0, + missedVsyncEquivalents: 0, + historyTruncated: false + ) + } + + private func ingestCombatFrameUpdate( + _ update: GameFrameTelemetryUpdate?, + window: GameFrameTelemetryWindow + ) { + guard var active = activeCombatBenchmark else { return } + let traceActive: Bool + if let traceStart = traceCaptureMeasurementStartNS, + let traceEnd = traceCaptureMeasurementEndNS { + traceActive = window.endedMonotonicNS > traceStart + && window.startedMonotonicNS < traceEnd + } else { + traceActive = false + } + active.ingest(update: update, window: window, traceActive: traceActive) + activeCombatBenchmark = active + } + + private func recordCombatIncident( + trigger: String, + window: GameFrameTelemetryWindow?, + traceSequence: Int? + ) { + guard let active = activeCombatBenchmark, let telemetry else { return } + let incident = CombatIncidentRecord( + incidentID: UUID().uuidString.lowercased(), + benchmarkID: active.benchmarkID, + sessionID: active.sessionID, + presetID: active.presetID, + trigger: trigger, + observedMonotonicNS: DispatchTime.now().uptimeNanoseconds, + effectiveFPS: window?.effectiveFPS, + onePercentLowFPS: window?.onePercentLowFPS, + p99IntervalMilliseconds: window?.p99MS, + severeCount: window?.severeCount ?? 0, + traceSequence: traceSequence, + firstDivergentBoundary: "UNKNOWN_PENDING_TRACE_CORRELATION", + confidence: "UNKNOWN", + explicitUnknowns: "ASG_VS_GFXSTREAM_VS_MOLTENVK_OWNERSHIP_REQUIRES_FRAME_ID_RING" + ) + telemetry.recordCombatIncident(incident) + do { try labStore?.record(incident) } + catch { telemetry.recordEvent("COMBAT_INCIDENT_PERSISTENCE_FAILED", payload: ["error": error.localizedDescription]) } + } + + private func recordCorrectnessRejection(reason: String) { + guard let telemetry else { return } + let nowNS = DispatchTime.now().uptimeNanoseconds + let receipt = profile.experimentConfigurationReceipt + let metrics = CombatBenchmarkMetrics( + combatDurationSeconds: 0, + surfaceAvailability: 0, + clockCoverage: 0, + p95ClockRoundTripMilliseconds: 0, + frameHistoryTruncated: false, + exactLayerStable: false, + correctnessPassed: false, + weightedFPS: 0, + onePercentLowFPS: 0, + p95IntervalMilliseconds: 0, + p99IntervalMilliseconds: 0, + jankRate: 0, + severeRate: 0, + missedVsyncRate: 0 + ) + let run = CombatBenchmarkRun( + benchmarkID: "correctness-\(UUID().uuidString.lowercased())", + sessionID: telemetry.sessionIdentifier, + presetID: profile.experimentPreset, + configurationSHA256: receipt.sha256, + comparisonIdentitySHA256: profile.comparisonConfigurationSHA256, + configurationJSON: receipt.canonicalJSON, + tftPackageVersion: tftPackageVersion, + performanceModeConfirmed: false, + startedUTC: Self.utcNow(), + endedUTC: Self.utcNow(), + startedMonotonicNS: nowNS, + endedMonotonicNS: nowNS, + exactLayerIdentity: nil, + metrics: metrics, + p50IntervalMilliseconds: 0, + maximumIntervalMilliseconds: 0, + observerOverheadInvalid: false + ) + telemetry.recordCombatBenchmark(run) + telemetry.recordEvent("REJECTED_CORRECTNESS", payload: [ + "preset_id": profile.experimentPreset.rawValue, + "configuration_sha256": receipt.sha256, + "reason": reason + ]) + try? labStore?.record(run) + } + + @discardableResult + private func requestDiagnosticTrace( + trigger: String, + automatic: Bool, + durationSeconds: Int, + bufferMiB: Int, + benchmarkStartTrace: Bool + ) -> Int? { + guard !stopping, activeCombatBenchmark != nil, let paths, let telemetry else { return nil } + let now = DispatchTime.now().uptimeNanoseconds + if traceCaptureInProgress { + telemetry.recordEvent("DIAGNOSTIC_TRACE_SKIPPED", payload: [ + "trigger": trigger, + "reason": "TRACE_ALREADY_RUNNING" + ]) + return nil + } + if !benchmarkStartTrace, incidentTraceCount >= 2 { + telemetry.recordEvent("DIAGNOSTIC_TRACE_SKIPPED", payload: [ + "trigger": trigger, "reason": "BENCHMARK_INCIDENT_TRACE_LIMIT", "limit": 2 + ]) + return nil + } + if automatic { + guard automaticTraceCount < 2 else { return nil } + guard lastAutomaticTraceNS == 0 || now &- lastAutomaticTraceNS >= 120_000_000_000 else { return nil } + automaticTraceCount += 1 + lastAutomaticTraceNS = now + } + if !benchmarkStartTrace { incidentTraceCount += 1 } + traceCaptureInProgress = true + traceCaptureMeasurementStartNS = now + traceCaptureMeasurementEndNS = now &+ UInt64(durationSeconds) * 1_000_000_000 + traceCaptureCount += 1 + let sequence = traceCaptureCount + telemetry.recordEvent("DIAGNOSTIC_TRACE_STARTED", payload: [ + "trigger": trigger, + "duration_seconds": durationSeconds, + "capture_started_monotonic_ns": now, + "capture_ends_monotonic_ns": traceCaptureMeasurementEndNS ?? now, + "sequence": sequence, + "buffer_mib": bufferMiB, + "analysis_state": "RAW_CAPTURE_PENDING" + ]) + + Task.detached(priority: .utility) { [paths, telemetry] in + do { + let artifact = try Self.capturePerfettoTrace( + paths: paths, + telemetry: telemetry, + trigger: trigger, + sequence: sequence, + durationSeconds: durationSeconds, + bufferMiB: bufferMiB + ) + await self.finishDiagnosticTrace(artifact: artifact, errorDescription: nil) + } catch { + await self.finishDiagnosticTrace(artifact: nil, errorDescription: error.localizedDescription) + } + } + return sequence + } + + private func finishDiagnosticTrace(artifact: DiagnosticArtifact?, errorDescription: String?) { + traceCaptureInProgress = false + if let artifact { + telemetry?.recordDiagnosticArtifact(artifact) + telemetry?.recordEvent("DIAGNOSTIC_TRACE_COMPLETED", payload: [ + "trigger": artifact.trigger, + "relative_path": artifact.relativePath, + "byte_count": artifact.byteCount, + "sha256": artifact.sha256, + "analysis_state": artifact.analysisState, + "normalized_relative_path": artifact.normalizedRelativePath, + "normalized_sha256": artifact.normalizedSHA256, + "trace_processor_sha256": artifact.traceProcessorSHA256 + ]) + } else { + traceCaptureMeasurementEndNS = DispatchTime.now().uptimeNanoseconds + telemetry?.recordEvent("DIAGNOSTIC_TRACE_FAILED", payload: [ + "error": errorDescription ?? "unknown", + "raw_capture_available": false + ]) + } + } + + nonisolated private static func capturePerfettoTrace( + paths: TFTMACRuntimePaths, + telemetry: TFTMACNativeTelemetry, + trigger: String, + sequence: Int, + durationSeconds: Int, + bufferMiB: Int + ) throws -> DiagnosticArtifact { + let manager = FileManager.default + let traceDirectory = telemetry.captureDirectory.appendingPathComponent("perfetto", isDirectory: true) + try manager.createDirectory(at: traceDirectory, withIntermediateDirectories: true) + let safeTrigger = trigger.lowercased().map { character -> Character in + character.isLetter || character.isNumber || character == "-" || character == "_" ? character : "-" + } + let label = String(safeTrigger).trimmingCharacters(in: CharacterSet(charactersIn: "-")) + let stamp = ISO8601DateFormatter().string(from: Date()) + .replacingOccurrences(of: ":", with: "-") + let fileName = "native-\(label.isEmpty ? "trace" : label)-\(sequence)-\(stamp).pftrace" + let hostURL = traceDirectory.appendingPathComponent(fileName) + let metadataURL = hostURL.appendingPathExtension("json") + let remotePath = "/data/misc/perfetto-traces/tftmac-native-\(UUID().uuidString).pftrace" + let durationMS = max(1_000, durationSeconds * 1_000) + let config = """ + buffers { size_kb: \(max(1, bufferMiB) * 1024) fill_policy: RING_BUFFER } + data_sources { config { name: "android.surfaceflinger.frame" target_buffer: 0 } } + data_sources { config { name: "android.surfaceflinger.frametimeline" target_buffer: 0 } } + data_sources { config { name: "android.surfaceflinger.layers" target_buffer: 0 } } + data_sources { config { name: "android.gpu.memory" target_buffer: 0 } } + data_sources { config { name: "linux.process_stats" target_buffer: 0 process_stats_config { scan_all_processes_on_start: true } } } + data_sources { config { name: "linux.sys_stats" target_buffer: 0 sys_stats_config { meminfo_period_ms: 1000 stat_period_ms: 1000 } } } + data_sources { + config { + name: "linux.ftrace" + target_buffer: 0 + ftrace_config { + ftrace_events: "sched/sched_switch" + ftrace_events: "sched/sched_wakeup" + ftrace_events: "sched/sched_waking" + ftrace_events: "power/cpu_frequency" + atrace_apps: "com.riotgames.league.teamfighttactics" + } + } + } + duration_ms: \(durationMS) + """ + let trace = try runCommand( + paths.adb, + ["-P", "5038", "-s", "emulator-5582", "shell", "perfetto", "--txt", "-c", "-", "-o", remotePath], + environment: adbEnvironment(paths: paths), + input: Data(config.utf8), + timeout: TimeInterval(durationSeconds + 30) + ) + guard trace.status == 0 else { + _ = try? adb(paths: paths, ["shell", "rm", "-f", remotePath], timeout: 10) + throw TFTMACRuntimeError("Perfetto capture failed: \(trace.output.suffix(1200))") + } + defer { _ = try? adb(paths: paths, ["shell", "rm", "-f", remotePath], timeout: 10) } + _ = try adb(paths: paths, ["pull", remotePath, hostURL.path], timeout: 120) + let data = try Data(contentsOf: hostURL) + guard !data.isEmpty else { throw TFTMACRuntimeError("Perfetto returned an empty trace.") } + let digest = SHA256.hash(data: data).map { String(format: "%02x", $0) }.joined() + let normalized: (url: URL, data: Data, sha256: String, processorSHA256: String) + do { + normalized = try normalizePerfettoTrace(hostURL: hostURL) + } catch { + try? manager.removeItem(at: hostURL) + throw TFTMACRuntimeError("Perfetto trace normalization failed and the unprocessed raw trace was removed: \(error.localizedDescription)") + } + let createdUTC = ISO8601DateFormatter().string(from: Date()) + let metadata: [String: Any] = [ + "schema": 1, + "created_utc": createdUTC, + "trigger": trigger, + "duration_seconds": durationSeconds, + "buffer_mib": bufferMiB, + "trace_file_name": fileName, + "byte_count": data.count, + "sha256": digest, + "normalized_file_name": normalized.url.lastPathComponent, + "normalized_sha256": normalized.sha256, + "trace_processor_version": "58.2", + "trace_processor_sha256": normalized.processorSHA256, + "data_sources": [ + "android.surfaceflinger.frame", + "android.surfaceflinger.frametimeline", + "android.surfaceflinger.layers", + "android.gpu.memory", + "linux.process_stats", + "linux.sys_stats", + "linux.ftrace:sched_switch,sched_wakeup,sched_waking,power/cpu_frequency" + ], + "analysis_state": "NORMALIZED_TRACE_PROCESSOR_V58_2" + ] + let metadataData = try JSONSerialization.data( + withJSONObject: metadata, + options: [.prettyPrinted, .sortedKeys, .withoutEscapingSlashes] + ) + try metadataData.write(to: metadataURL, options: .atomic) + return DiagnosticArtifact( + createdUTC: createdUTC, + createdMonotonicNS: DispatchTime.now().uptimeNanoseconds, + kind: "PERFETTO_FRAME_PIPELINE_TRACE", + trigger: trigger, + relativePath: "perfetto/\(fileName)", + byteCount: Int64(data.count), + sha256: digest, + analysisState: "NORMALIZED_TRACE_PROCESSOR_V58_2", + normalizedRelativePath: "perfetto/\(normalized.url.lastPathComponent)", + normalizedSHA256: normalized.sha256, + normalizedSummaryCSV: String(decoding: normalized.data, as: UTF8.self), + traceProcessorSHA256: normalized.processorSHA256 + ) + } + + nonisolated private static func normalizePerfettoTrace( + hostURL: URL + ) throws -> (url: URL, data: Data, sha256: String, processorSHA256: String) { + let expectedProcessorSHA = "d29864d1ba3b36855527bb1b0ca3aa7f703cdce338b9680bb922c5c151b358fa" + guard let resourceURL = Bundle.main.resourceURL else { + throw TFTMACRuntimeError("TFTMAC has no resource directory for the pinned trace processor.") + } + let processorURL = resourceURL.appendingPathComponent("trace_processor_shell") + guard FileManager.default.isExecutableFile(atPath: processorURL.path) else { + throw TFTMACRuntimeError("The pinned Perfetto trace_processor_shell is missing from TFTMAC.app.") + } + let processorData = try Data(contentsOf: processorURL) + let processorSHA = SHA256.hash(data: processorData).map { String(format: "%02x", $0) }.joined() + guard processorSHA == expectedProcessorSHA else { + throw TFTMACRuntimeError("The packaged Perfetto trace processor failed its SHA-256 receipt.") + } + let query = """ + SELECT + (SELECT start_ts FROM trace_bounds) AS trace_start_ns, + (SELECT end_ts FROM trace_bounds) AS trace_end_ns, + (SELECT COUNT(*) FROM process) AS process_rows, + (SELECT COUNT(*) FROM thread) AS thread_rows, + (SELECT COUNT(*) FROM sched) AS scheduler_slices, + (SELECT COUNT(*) FROM counter) AS counter_rows, + (SELECT COUNT(*) FROM slice WHERE name GLOB '*SurfaceFlinger*' OR name GLOB '*FrameTimeline*') AS surfaceflinger_slices, + (SELECT COUNT(*) FROM process WHERE name = 'com.riotgames.league.teamfighttactics') AS tft_process_rows; + """ + let result = try runCommand( + processorURL, + ["query", hostURL.path, query], + timeout: 180 + ) + guard result.status == 0 else { + throw TFTMACRuntimeError("trace_processor query failed: \(result.output.suffix(1200))") + } + let normalizedData = Data(result.output.utf8) + guard !normalizedData.isEmpty else { + throw TFTMACRuntimeError("trace_processor returned an empty normalized summary.") + } + let normalizedURL = hostURL.appendingPathExtension("normalized.csv") + try normalizedData.write(to: normalizedURL, options: .atomic) + let normalizedSHA = SHA256.hash(data: normalizedData).map { String(format: "%02x", $0) }.joined() + return (normalizedURL, normalizedData, normalizedSHA, processorSHA) + } + private func recordClockSync(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) { let hostT0 = DispatchTime.now().uptimeNanoseconds guard let output = try? Self.adb(paths: paths, ["shell", "cat", "/proc/uptime"], timeout: 10).output, @@ -1555,6 +2958,13 @@ actor TFTMACRuntimeService { let hostT1 = DispatchTime.now().uptimeNanoseconds let guestNS = UInt64(max(0, seconds) * 1_000_000_000) telemetry.recordClockSync(hostT0NS: hostT0, guestUptimeNS: guestNS, hostT1NS: hostT1) + if var active = activeCombatBenchmark { + active.recordClock( + hostMidpointNS: hostT0 &+ ((hostT1 &- hostT0) / 2), + roundTripNS: hostT1 &- hostT0 + ) + activeCombatBenchmark = active + } } private func recordDiagnosticSnapshot(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry?, label: String) { @@ -1569,12 +2979,123 @@ actor TFTMACRuntimeService { } } + private func recordThirtySecondRuntimeReceipt(paths: TFTMACRuntimePaths, telemetry: TFTMACNativeTelemetry) { + let geometry = try? Self.adb( + paths: paths, + ["shell", "sh", "-c", "wm size; wm density; dumpsys display | grep -m 1 -E 'DisplayDeviceInfo|fps|refreshRate'"], + timeout: 15 + ).output.trimmingCharacters(in: .whitespacesAndNewlines) + let properties = try? Self.adb( + paths: paths, + ["shell", "getprop"], + timeout: 15 + ).output + telemetry.recordEvent("RUNTIME_THIRTY_SECOND_RECEIPT", payload: [ + "preset_id": profile.experimentPreset.rawValue, + "configuration_sha256": profile.experimentConfigurationReceipt.sha256, + "emulator_features_requested": profile.effectiveEmulatorFeatures, + "display_geometry": geometry ?? "unavailable", + "guest_egl": Self.firstRegexText("\\[ro.hardware.egl\\]: \\[(.*?)\\]", in: properties ?? "") ?? "unknown", + "guest_vulkan": Self.firstRegexText("\\[ro.hardware.vulkan\\]: \\[(.*?)\\]", in: properties ?? "") ?? "unknown", + "cross_boundary_attribution": "CLOCK_SYNC_GATED" + ]) + } + + private func recordGraphicsPipelineSnapshot( + paths: TFTMACRuntimePaths, + telemetry: TFTMACNativeTelemetry, + label: String + ) { + let stdout = Self.readTailText( + telemetry.captureDirectory.appendingPathComponent("emulator.stdout.log"), + maximumBytes: 16 * 1024 * 1024 + ) + let stderr = Self.readTailText( + telemetry.captureDirectory.appendingPathComponent("emulator.stderr.log"), + maximumBytes: 16 * 1024 * 1024 + ) + let emulatorText = stdout + "\n" + stderr + let lower = emulatorText.lowercased() + let layerOutput = try? Self.adb( + paths: paths, + ["shell", "dumpsys", "SurfaceFlinger", "--list"], + timeout: 10 + ).output + let surfaceState: String + if let layerOutput { + switch GameFrameTelemetry.selectTFTSurfaceViewLayer(from: layerOutput) { + case .selected: surfaceState = "EXACT_LAYER_ACTIVE" + case .unavailable(.multipleTFTSurfaceViews): surfaceState = "AMBIGUOUS_MULTIPLE_LAYERS" + case .unavailable: surfaceState = "NOT_OBSERVED" + } + } else { + surfaceState = "ADB_UNAVAILABLE" + } + let angleActive = Self.firstRegexText( + "(?i)(Created VkInstance:[^\\n]*teamfighttactics[^\\n]*ANGLE)", + in: emulatorText + ) != nil + let hostDevice = Self.firstRegexText("(?i)Selecting Vulkan device:\\s*([^\\r\\n]+)", in: emulatorText)? + .trimmingCharacters(in: .whitespacesAndNewlines) + let vulkanComposition = Self.firstRegexText("(?i)useVulkanComposition:\\s*(true|false)", in: emulatorText) + .flatMap(Self.parseBoolean) + let nativeSwapchain = Self.firstRegexText("(?i)useVulkanNativeSwapchain:\\s*(true|false)", in: emulatorText) + .flatMap(Self.parseBoolean) + let guestEGL = try? Self.adb(paths: paths, ["shell", "getprop", "ro.hardware.egl"], timeout: 10).output + let guestVulkan = try? Self.adb(paths: paths, ["shell", "getprop", "ro.hardware.vulkan"], timeout: 10).output + let angleSelection = try? Self.adb( + paths: paths, + ["shell", "settings", "get", "global", "angle_gl_driver_all_angle"], + timeout: 10 + ).output + telemetry.recordGraphicsPipelineSnapshot(GraphicsPipelineSnapshot( + label: label, + tftSurfaceState: surfaceState, + angleState: angleActive ? "PROVEN_ACTIVE" : "NOT_OBSERVED", + gfxstreamState: lower.contains("gfxstream initialized successfully") ? "PROVEN_ACTIVE" : "NOT_OBSERVED", + moltenVKState: lower.contains("moltenvk") || lower.contains("[mvk]") ? "PROVEN_ACTIVE" : "NOT_OBSERVED", + hostVulkanDevice: Self.nonemptyDiagnosticValue(hostDevice), + vulkanComposition: vulkanComposition, + nativeSwapchain: nativeSwapchain, + guestEGLImplementation: Self.nonemptyDiagnosticValue(guestEGL), + guestVulkanImplementation: Self.nonemptyDiagnosticValue(guestVulkan), + globalAngleSelection: Self.nonemptyDiagnosticValue(angleSelection) + )) + } + nonisolated private static func fileSize(_ url: URL) -> UInt64 { guard let attributes = try? FileManager.default.attributesOfItem(atPath: url.path), let size = attributes[.size] as? NSNumber else { return 0 } return size.uint64Value } + nonisolated private static func readTailText(_ url: URL, maximumBytes: UInt64) -> String { + let end = fileSize(url) + guard end > 0, let handle = try? FileHandle(forReadingFrom: url) else { return "" } + defer { try? handle.close() } + do { + try handle.seek(toOffset: end > maximumBytes ? end - maximumBytes : 0) + let data = try handle.readToEnd() ?? Data() + return String(decoding: data, as: UTF8.self) + } catch { + return "" + } + } + + nonisolated private static func parseBoolean(_ value: String) -> Bool? { + switch value.lowercased() { + case "true", "1", "yes": return true + case "false", "0", "no": return false + default: return nil + } + } + + nonisolated private static func nonemptyDiagnosticValue(_ value: String?) -> String? { + guard let trimmed = value?.trimmingCharacters(in: .whitespacesAndNewlines), + !trimmed.isEmpty, trimmed.lowercased() != "null" else { return nil } + return String(trimmed.prefix(512)) + } + nonisolated private static func parseGuestMemory(_ output: String) -> GuestMemorySample? { var values = [String: Int64]() for line in output.split(whereSeparator: \.isNewline) { @@ -1592,6 +3113,66 @@ actor TFTMACRuntimeService { ) } + nonisolated private static func collectHostResourceSample() -> HostResourceSample { + let vmOutput = try? runCommand( + URL(fileURLWithPath: "/usr/bin/vm_stat"), + [], + timeout: 5 + ).output + let pageSize = vmOutput.flatMap { firstRegexInt("page size of ([0-9]+) bytes", in: $0) } ?? 16_384 + func pages(_ label: String) -> Int64? { + vmOutput.flatMap { firstRegexInt("\(NSRegularExpression.escapedPattern(for: label)):\\s*([0-9]+)", in: $0) } + } + let availablePages = ["Pages free", "Pages inactive", "Pages speculative"] + .compactMap(pages) + .reduce(0, +) + let compressedPages = pages("Pages occupied by compressor") + let pageouts = pages("Pageouts") + let swapOutput = try? runCommand( + URL(fileURLWithPath: "/usr/sbin/sysctl"), + ["-n", "vm.swapusage"], + timeout: 5 + ).output + let swapUsedKiB: Int64? = swapOutput.flatMap { output in + guard let amount = firstRegexDouble("used = ([0-9.]+)", in: output), + let unit = firstRegexText("used = [0-9.]+([KMGT])", in: output) else { return nil } + let multiplier: Double + switch unit { + case "K": multiplier = 1 + case "M": multiplier = 1_024 + case "G": multiplier = 1_024 * 1_024 + case "T": multiplier = 1_024 * 1_024 * 1_024 + default: multiplier = 1 + } + return Int64(amount * multiplier) + } + let powerOutput = try? runCommand( + URL(fileURLWithPath: "/usr/bin/pmset"), + ["-g", "batt"], + timeout: 5 + ).output + let powerSource: String + if powerOutput?.contains("AC Power") == true { powerSource = "AC" } + else if powerOutput?.contains("Battery Power") == true { powerSource = "BATTERY" } + else { powerSource = "UNKNOWN" } + let thermalState: String + switch ProcessInfo.processInfo.thermalState { + case .nominal: thermalState = "NOMINAL" + case .fair: thermalState = "FAIR" + case .serious: thermalState = "SERIOUS" + case .critical: thermalState = "CRITICAL" + @unknown default: thermalState = "UNKNOWN" + } + return HostResourceSample( + availableKiB: availablePages > 0 ? (availablePages * pageSize) / 1_024 : nil, + compressedKiB: compressedPages.map { ($0 * pageSize) / 1_024 }, + swapUsedKiB: swapUsedKiB, + pageouts: pageouts, + thermalState: thermalState, + powerSource: powerSource + ) + } + nonisolated private static func parseSurfaceFlinger(_ output: String) -> SurfaceFlingerSample? { let renderRate = firstRegexDouble("renderRate=([0-9.]+)\\s*Hz", in: output) let totalMissed = firstRegexInt("Total missed frame count:\\s*([0-9]+)", in: output) @@ -1687,6 +3268,41 @@ actor TFTMACRuntimeService { } } + nonisolated private static func readPipelineLogAggregate( + url: URL, + sourceStream: String, + from offset: inout UInt64 + ) -> PipelineLogAggregate? { + let end = fileSize(url) + guard end > offset else { return nil } + let maximumReadBytes: UInt64 = 4 * 1024 * 1024 + let requestedStart = offset + let actualStart = end - min(end - requestedStart, maximumReadBytes) + let skipped = actualStart - requestedStart + guard let handle = try? FileHandle(forReadingFrom: url) else { return nil } + defer { try? handle.close() } + do { + try handle.seek(toOffset: actualStart) + let data = try handle.read(upToCount: Int(end - actualStart)) ?? Data() + offset = end + let lines = String(decoding: data, as: UTF8.self).split(whereSeparator: \.isNewline) + var signals = PipelineLogSignals() + for line in lines { + signals = signals + TelemetrySignalClassifier.pipelineSignals(in: String(line)) + } + return PipelineLogAggregate( + sourceStream: sourceStream, + byteStart: actualStart, + byteEnd: end, + skippedBytes: skipped, + lineCount: lines.count, + signals: signals + ) + } catch { + return nil + } + } + nonisolated private static func firstRegexInt(_ pattern: String, in text: String) -> Int64? { firstRegexText(pattern, in: text).flatMap(Int64.init) } @@ -1807,9 +3423,34 @@ actor TFTMACRuntimeService { } } group.addTask { + var recordedTouchPipeline = false for await input in inputStream { try Task.checkCancellation() switch input { + case .touch(let touch): + var contact = Android_Emulation_Control_Touch() + contact.x = touch.x + contact.y = touch.y + contact.identifier = touch.identifier + contact.pressure = touch.pressure + contact.expiration = .unspecified + var event = Android_Emulation_Control_TouchEvent() + event.touches = [contact] + event.display = 0 + let request = GRPCCore.ClientRequest(message: event, metadata: metadata) + _ = try await client.sendTouch( + request: request, + serializer: GRPCProtobuf.ProtobufSerializer(), + deserializer: GRPCProtobuf.ProtobufDeserializer() + ) + if !recordedTouchPipeline { + telemetry.recordEvent("PRIMARY_TOUCH_INPUT_ACTIVE", payload: [ + "transport": "EmulatorController.sendTouch", + "display": 0, + "identifier": touch.identifier + ]) + recordedTouchPipeline = true + } case .mouse(let mouse): var event = Android_Emulation_Control_MouseEvent() event.x = mouse.x @@ -1894,6 +3535,7 @@ actor TFTMACRuntimeService { _ executable: URL, _ arguments: [String], environment: [String: String]? = nil, + input: Data? = nil, timeout: TimeInterval ) throws -> ProcessResult { let process = Process() @@ -1903,7 +3545,13 @@ actor TFTMACRuntimeService { let pipe = Pipe() process.standardOutput = pipe process.standardError = pipe + let inputPipe = input.map { _ in Pipe() } + if let inputPipe { process.standardInput = inputPipe } try process.run() + if let input, let inputPipe { + inputPipe.fileHandleForWriting.write(input) + try? inputPipe.fileHandleForWriting.close() + } let timeoutWork = DispatchWorkItem { if process.isRunning { process.terminate() } } @@ -1986,6 +3634,12 @@ actor TFTMACRuntimeService { for candidate in candidates where !unique.contains(candidate) { unique.append(candidate) } return unique } + + nonisolated private static func utcNow() -> String { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + return formatter.string(from: Date()) + } } private struct ProcessResult: Sendable { @@ -2124,8 +3778,13 @@ final class TFTMACRuntimeController { private var runTask: Task? private(set) var failed = false - init(profile: TFTMACRuntimeProfile, mailbox: LatestFrameMailbox, status: @escaping TFTMACRuntimeService.StatusHandler) { - service = TFTMACRuntimeService(profile: profile, mailbox: mailbox, status: status) + init( + profile: TFTMACRuntimeProfile, + mailbox: LatestFrameMailbox, + status: @escaping TFTMACRuntimeService.StatusHandler, + gameFrame: @escaping TFTMACRuntimeService.GameFrameHandler + ) { + service = TFTMACRuntimeService(profile: profile, mailbox: mailbox, status: status, gameFrame: gameFrame) } func start() { @@ -2143,6 +3802,10 @@ final class TFTMACRuntimeController { Task { await service.sendMouse(MouseInput(x: x, y: y, buttons: buttons)) } } + func sendTouch(_ input: TouchInput) { + Task { await service.sendTouch(input) } + } + func sendKeyboard(text: String? = nil, key: String? = nil) { guard text?.isEmpty == false || key?.isEmpty == false else { return } Task { await service.sendKeyboard(KeyboardInput(text: text, key: key)) } @@ -2152,10 +3815,26 @@ final class TFTMACRuntimeController { Task { await service.recordPresentation(sample) } } + func recordHostPresentation(_ sample: HostPresentationWindow) { + Task { await service.recordHostPresentation(sample) } + } + func recordMarker(_ marker: String) { Task { await service.recordMarker(marker) } } + func startCombatBenchmark(performanceModeConfirmed: Bool) { + Task { await service.startCombatBenchmark(performanceModeConfirmed: performanceModeConfirmed) } + } + + func markVisibleStutter() { + Task { await service.markVisibleStutter() } + } + + func endCombatBenchmark(correctnessPassed: Bool = true) { + Task { await service.endCombatBenchmark(correctnessPassed: correctnessPassed) } + } + func recordSettingsChange(previous: TFTMACRuntimeProfile, next: TFTMACRuntimeProfile) { Task { await service.recordSettingsChange(previous: previous, next: next) } } diff --git a/tftmac/Runtime/TelemetrySignalClassifier.swift b/tftmac/Runtime/TelemetrySignalClassifier.swift index 3bcd45e..44deb0d 100644 --- a/tftmac/Runtime/TelemetrySignalClassifier.swift +++ b/tftmac/Runtime/TelemetrySignalClassifier.swift @@ -1,5 +1,25 @@ import Foundation +struct PipelineLogSignals: Equatable, Sendable { + var gfxstreamWarningCount = 0 + var asgStallCount = 0 + var vulkanErrorCount = 0 + var moltenVKWarningCount = 0 + var shaderErrorCount = 0 + var fenceTimeoutCount = 0 + + static func + (lhs: Self, rhs: Self) -> Self { + Self( + gfxstreamWarningCount: lhs.gfxstreamWarningCount + rhs.gfxstreamWarningCount, + asgStallCount: lhs.asgStallCount + rhs.asgStallCount, + vulkanErrorCount: lhs.vulkanErrorCount + rhs.vulkanErrorCount, + moltenVKWarningCount: lhs.moltenVKWarningCount + rhs.moltenVKWarningCount, + shaderErrorCount: lhs.shaderErrorCount + rhs.shaderErrorCount, + fenceTimeoutCount: lhs.fenceTimeoutCount + rhs.fenceTimeoutCount + ) + } +} + enum TelemetrySignalClassifier { /// Counts only lines that identify an actual memory-pressure victim. /// LMKD startup, socket, memevent, tracepoint, and policy messages are not kills. @@ -20,4 +40,33 @@ enum TelemetrySignalClassifier { || lower.contains("killing process ") || lower.contains("killed process ") } + + /// Counts only diagnostic lines that already carry a failure, warning, + /// timeout, or stall word. Component names in normal startup/configuration + /// receipts must not become fabricated pipeline failures. + static func pipelineSignals(in line: String) -> PipelineLogSignals { + let lower = line.lowercased() + let warningOrFailure = lower.contains("warn") + || lower.contains("error") + || lower.contains("failed") + || lower.contains("failure") + || lower.contains("timeout") + || lower.contains("timed out") + || lower.contains("stall") + || lower.contains("fatal") + guard warningOrFailure else { return PipelineLogSignals() } + + return PipelineLogSignals( + gfxstreamWarningCount: lower.contains("gfxstream") ? 1 : 0, + asgStallCount: lower.contains("asg") + && (lower.contains("stall") || lower.contains("timeout") || lower.contains("failed") || lower.contains("error")) ? 1 : 0, + vulkanErrorCount: (lower.contains("vulkan") || lower.contains(" vk_")) + && (lower.contains("error") || lower.contains("failed") || lower.contains("fatal") || lower.contains("timeout")) ? 1 : 0, + moltenVKWarningCount: (lower.contains("moltenvk") || lower.contains("[mvk]")) ? 1 : 0, + shaderErrorCount: lower.contains("shader") + && (lower.contains("error") || lower.contains("failed") || lower.contains("fatal")) ? 1 : 0, + fenceTimeoutCount: lower.contains("fence") + && (lower.contains("timeout") || lower.contains("timed out") || lower.contains("stall") || lower.contains("failed")) ? 1 : 0 + ) + } } diff --git a/tftmac/Runtime/TouchInput.swift b/tftmac/Runtime/TouchInput.swift new file mode 100644 index 0000000..a7eb721 --- /dev/null +++ b/tftmac/Runtime/TouchInput.swift @@ -0,0 +1,52 @@ +enum TouchPhase: Sendable, Equatable { + case contact + case release + + var pressure: Int32 { + switch self { + case .contact: 1 + case .release: 0 + } + } +} + +struct TouchInput: Sendable, Equatable { + static let primaryIdentifier: Int32 = 0 + + let x: Int32 + let y: Int32 + let identifier: Int32 + let phase: TouchPhase + + var pressure: Int32 { phase.pressure } + + static func primary(x: Int32, y: Int32, isContact: Bool) -> Self { + Self( + x: x, + y: y, + identifier: primaryIdentifier, + phase: isContact ? .contact : .release + ) + } +} + +struct TouchPoint: Sendable, Equatable { + let x: Int32 + let y: Int32 +} + +struct PrimaryTouchSequence: Sendable { + private var lastContactPoint: TouchPoint? + + mutating func contact(at point: TouchPoint?) -> TouchInput? { + guard let point else { return nil } + lastContactPoint = point + return .primary(x: point.x, y: point.y, isContact: true) + } + + mutating func release(at point: TouchPoint?) -> TouchInput? { + guard let releasePoint = point ?? lastContactPoint else { return nil } + lastContactPoint = nil + return .primary(x: releasePoint.x, y: releasePoint.y, isContact: false) + } +} From 2123cd0c8f69dc26d3dc5aa476b4b3bc4098a8f6 Mon Sep 17 00:00:00 2001 From: flashls1 Date: Sun, 30 Aug 2026 18:58:33 -0500 Subject: [PATCH 14/19] Add official TFTMAC penguin samurai icon --- TFTMAC.xcodeproj/project.pbxproj | 4 ++-- docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md | 17 +++++++++++++---- scripts/build-native-app.command | 16 +++++++++++++--- scripts/verify-tftmac.command | 17 +++++++++++++++-- ssot/STACK.lock.yaml | 9 ++++++--- ssot/runtime-authority.json | 9 ++++++--- tftmac/Assets/TFTMAC-Official-Icon.png | Bin 0 -> 2662793 bytes tftmac/Info.plist | 2 +- 8 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 tftmac/Assets/TFTMAC-Official-Icon.png diff --git a/TFTMAC.xcodeproj/project.pbxproj b/TFTMAC.xcodeproj/project.pbxproj index ee18295..f1dea3f 100644 --- a/TFTMAC.xcodeproj/project.pbxproj +++ b/TFTMAC.xcodeproj/project.pbxproj @@ -217,8 +217,8 @@ /* Begin XCBuildConfiguration section */ B00000000000000000000001 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000002 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {CLANG_ENABLE_MODULES = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 6.0;}; name = Release; }; - B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 5; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; - B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 5; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; + B00000000000000000000011 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 6; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Debug; }; + B00000000000000000000012 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 6; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = TFTMAC/Info.plist; MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 2.2.0; OTHER_LDFLAGS = "-lsqlite3"; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_STRICT_CONCURRENCY = complete; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000021 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; B00000000000000000000022 /* Release */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Release; }; B00000000000000000000031 /* Debug */ = {isa = XCBuildConfiguration; buildSettings = {ARCHS = arm64; GENERATE_INFOPLIST_FILE = YES; MACOSX_DEPLOYMENT_TARGET = 15.0; PRODUCT_BUNDLE_IDENTIFIER = com.flashls1.tftmac.tests; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; SWIFT_VERSION = 6.0;}; name = Debug; }; diff --git a/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md index 42b8791..d803bc0 100644 --- a/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md +++ b/docs/TFTMAC_NATIVE_RUNTIME_KNOWLEDGE_BASE.md @@ -25,7 +25,7 @@ | CoreAudio software path | VERIFIED | Emulator launched `-audio coreaudio`; active AudioFlinger output, stereo, 48 kHz on the live check, one active track, zero partial/empty underruns | | User can hear sound | USER ACCEPTANCE REQUIRED | The software path is healthy; only the person at the Mac can confirm audible output | | Full match in this exact native build | NOT YET VERIFIED | Earlier donor runtime completed matches; current native lobby/GameActivity is proven, but a start-to-result native match receipt is still needed | -| Release build/install integrity | VERIFIED | All 36 native tests passed; `/Applications/TFTMAC.app` is deep-code-sign valid under the stable local identity, version 2.2.0 (build 5), embeds its Mac icon and pinned Perfetto processor, and its executable SHA-256 matches `dist` | +| Release build/install integrity | VERIFIED | All 36 native tests passed; `/Applications/TFTMAC.app` is deep-code-sign valid under the stable local identity, version 2.2.0 (build 6), embeds the official ImageGen penguin-samurai Mac icon and pinned Perfetto processor, and its executable SHA-256 matches `dist` | | External-runtime permission retention | VERIFIED | Stable designated requirement installed; a clean second launch immediately reopened `/Volumes/MAC MINI M4/TFTMAC/Runtime` and started QEMU without another drive-access dialog | | Secure-unlock display | VERIFIED | Secure unlock stays manual and logged, while non-error runtime instructions are suppressed from the Android display; live signed launch showed no TFTMAC center overlay | @@ -40,7 +40,7 @@ Final release receipts: ```text Verified executable SHA-256: - 8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2 + a860a1d4d888f6fc33af978285439e5ce7e47bf17d024a8ffe33efec54d21869 Live match/lobby plus clean shutdown: 2026-08-30T09-25-17.519Z-1a9d0227-3cf8-4a19-b353-c0f135ccf31c @@ -55,13 +55,22 @@ Build 4 primary-touch/login investigation: 2026-08-30T20-41-22.662Z-4bdb8a3f-813d-4e70-b8bd-67c0b6b5766f ``` +Official launcher artwork is the full-bleed 1254×1254 PNG at +`tftmac/Assets/TFTMAC-Official-Icon.png`, generated with the built-in ImageGen +tool from the requested penguin-samurai, single-sword and exact stacked +`TFT`/`MAC` brief. The master has no baked-in rounded rectangle or outer gutter; +macOS owns the final corner mask. Build 6 derives and signs every `.icns` +representation from this hash-sealed source. + The first receipt reached Unreal `GameActivity`, rendered a live match and the fully colored post-match lobby, recorded source/output maxima of 60.95/60.53, zero sequence drops, active 48-kHz stereo output with zero underruns, and zero confirmed memory kills. Its normal Quit sealed SQL as `STOPPED`, confirmed the owned emulator exit, restored the exact AVD hash, and removed both transaction -and lease markers. The second receipt is the exact final bundle left open for -play. Its live native window was re-verified at origin `0,0`, size `1920x1080`, +and lease markers. The second receipt covers the last runtime-identical signed +build. Build 6 changes only release metadata and the signed launcher artwork and +was not auto-launched. That earlier live native window was re-verified at origin +`0,0`, size `1920x1080`, `AXFullScreen=true`; SQL later observed source/output maxima of 60.99/60.33, active 48-kHz stereo output with one active track and zero underruns, and zero confirmed memory kills. Four cumulative sequence gaps appeared only after diff --git a/scripts/build-native-app.command b/scripts/build-native-app.command index 8c216a1..0d4d316 100755 --- a/scripts/build-native-app.command +++ b/scripts/build-native-app.command @@ -2,6 +2,8 @@ set -euo pipefail ROOT="${0:A:h:h}" +ICON_SOURCE="${ROOT}/tftmac/Assets/TFTMAC-Official-Icon.png" +ICON_SOURCE_SHA256="d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016" if [[ -z "${DEVELOPER_DIR:-}" ]]; then if [[ -d /Applications/Xcode-26.6.0.app/Contents/Developer ]]; then export DEVELOPER_DIR=/Applications/Xcode-26.6.0.app/Contents/Developer @@ -21,6 +23,14 @@ SIGNING_IDENTITY_HASH="$(/usr/bin/security find-identity -v -p codesigning \ print -u2 "TFTMAC requires the stable '${SIGNING_IDENTITY_NAME}' identity. Run scripts/ensure-local-signing-identity.command once." exit 1 } +[[ -s "${ICON_SOURCE}" ]] || { + print -u2 "The official TFTMAC icon source is missing: ${ICON_SOURCE}" + exit 1 +} +[[ "$(/usr/bin/shasum -a 256 "${ICON_SOURCE}" | /usr/bin/awk '{print $1}')" == "${ICON_SOURCE_SHA256}" ]] || { + print -u2 "The official TFTMAC icon source failed its SHA-256 receipt." + exit 1 +} cleanup() { /bin/rm -rf "${ICON_WORK}" @@ -41,9 +51,9 @@ trap cleanup EXIT /bin/mkdir -p "${ROOT}/dist" /usr/bin/ditto "${APP}" "${DIST}" -# The Info.plist declares TFTMAC.icns. Generate and embed every required Mac -# representation before signing so Finder and the Dock never show a generic app. -/usr/bin/xcrun swift "${ROOT}/tftmac/GenerateIcon.swift" "${ICON_WORK}/icon_1024x1024.png" +# The Info.plist declares TFTMAC.icns. Downsample the official generated +# 1:1 master and embed every required Mac representation before signing. +/usr/bin/sips -z 1024 1024 "${ICON_SOURCE}" --out "${ICON_WORK}/icon_1024x1024.png" >/dev/null /bin/mkdir -p "${ICON_WORK}/TFTMAC.iconset" "${DIST}/Contents/Resources" for specification in \ '16 icon_16x16.png' \ diff --git a/scripts/verify-tftmac.command b/scripts/verify-tftmac.command index a9e0143..c536163 100644 --- a/scripts/verify-tftmac.command +++ b/scripts/verify-tftmac.command @@ -30,6 +30,7 @@ for required in \ "$PACKAGE_RESOLVED" \ "$PROTO" \ "$PROTO_SOURCE" \ + tftmac/Assets/TFTMAC-Official-Icon.png \ Generated/EmulatorController/emulator_controller.pb.swift \ Generated/EmulatorController/emulator_controller.grpc.swift \ scripts/generate-emulator-proto.command \ @@ -78,7 +79,10 @@ jq -e ' .runtimeProfile.ramMiB == 5120 and .runtimeProfile.display == "1920x1080" and .finalInstalledRelease.version == "2.2.0" and - .finalInstalledRelease.build == "5" and + .finalInstalledRelease.build == "6" and + .finalInstalledRelease.officialIconSourceSHA256 == "d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016" and + .finalInstalledRelease.officialIcon1024SHA256 == "ed5fd83efa6e04599e82ca00f897b09813cdeac007850f6993efd601a730345f" and + .finalInstalledRelease.embeddedIconICNSSHA256 == "010729a19f165b68edeb1fb44e8c31e450f79b3a988c95b8de090373378f6f06" and .finalInstalledRelease.signingIdentity == "TFTMAC Local Code Signing" and .finalInstalledRelease.adHocSigned == false and .finalInstalledRelease.removableVolumePermissionRetainedAcrossRelaunch == true and @@ -97,7 +101,10 @@ for locked in \ 'ram_mb: 5120' \ 'selected: A' \ 'version: "2.2.0"' \ - 'build: "5"' \ + 'build: "6"' \ + 'official_icon_source_sha256: "d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016"' \ + 'official_icon_1024_sha256: "ed5fd83efa6e04599e82ca00f897b09813cdeac007850f6993efd601a730345f"' \ + 'embedded_icon_icns_sha256: "010729a19f165b68edeb1fb44e8c31e450f79b3a988c95b8de090373378f6f06"' \ 'signing: "stable_local_identity_valid"' \ 'mac_icon_embedded: true' \ 'removable_volume_permission_relaunch: PASS' \ @@ -109,6 +116,8 @@ done readonly TEST_FUNCTION_COUNT="$(rg -n '^[[:space:]]*func test' Tests/TFTMACTests --glob '*.swift' | wc -l | tr -d '[:space:]')" [[ "$TEST_FUNCTION_COUNT" == "36" ]] || fail "native test inventory drifted: expected 36, found $TEST_FUNCTION_COUNT" +[[ "$(shasum -a 256 tftmac/Assets/TFTMAC-Official-Icon.png | awk '{print $1}')" == "d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016" ]] \ + || fail "official TFTMAC icon source hash drifted" readonly INSTALLED_APP="/Applications/TFTMAC.app" [[ -d "$INSTALLED_APP" ]] || fail "released native app is not installed" @@ -120,6 +129,10 @@ codesign --verify --deep --strict "$INSTALLED_APP" || fail "installed native app readonly INSTALLED_EXECUTABLE_SHA="$(shasum -a 256 "$INSTALLED_APP/Contents/MacOS/TFTMAC" | awk '{print $1}')" [[ "$INSTALLED_EXECUTABLE_SHA" == "$(jq -r '.finalInstalledRelease.executableSHA256' ssot/runtime-authority.json)" ]] \ || fail "installed executable hash differs from release authority" +[[ "$(shasum -a 256 "$INSTALLED_APP/Contents/Resources/TFTMAC-1024.png" | awk '{print $1}')" == "$(jq -r '.finalInstalledRelease.officialIcon1024SHA256' ssot/runtime-authority.json)" ]] \ + || fail "installed 1024px icon differs from release authority" +[[ "$(shasum -a 256 "$INSTALLED_APP/Contents/Resources/TFTMAC.icns" | awk '{print $1}')" == "$(jq -r '.finalInstalledRelease.embeddedIconICNSSHA256' ssot/runtime-authority.json)" ]] \ + || fail "installed ICNS differs from release authority" readonly PROTO_SHA="$(shasum -a 256 "$PROTO" | awk '{print $1}')" readonly RECORDED_PROTO_SHA="$(jq -r '.vendoredProtoSHA256' "$PROTO_SOURCE")" diff --git a/ssot/STACK.lock.yaml b/ssot/STACK.lock.yaml index 232de13..3bc3926 100644 --- a/ssot/STACK.lock.yaml +++ b/ssot/STACK.lock.yaml @@ -1,5 +1,5 @@ schema: 3 -frozen_at: "2026-08-30T23:30:36Z" +frozen_at: "2026-08-30T23:54:55Z" phase0_status: PASS authority: @@ -27,13 +27,16 @@ host: release: version: "2.2.0" - build: "5" + build: "6" installed_path: "/Applications/TFTMAC.app" - executable_sha256: "8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2" + executable_sha256: "a860a1d4d888f6fc33af978285439e5ce7e47bf17d024a8ffe33efec54d21869" signing: "stable_local_identity_valid" signing_identity: "TFTMAC Local Code Signing" notarized_for_public_distribution: false mac_icon_embedded: true + official_icon_source_sha256: "d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016" + official_icon_1024_sha256: "ed5fd83efa6e04599e82ca00f897b09813cdeac007850f6993efd601a730345f" + embedded_icon_icns_sha256: "010729a19f165b68edeb1fb44e8c31e450f79b3a988c95b8de090373378f6f06" removable_volume_permission_relaunch: PASS non_error_unlock_overlay: ABSENT native_verifier: PASS diff --git a/ssot/runtime-authority.json b/ssot/runtime-authority.json index 24515a4..a1a3752 100644 --- a/ssot/runtime-authority.json +++ b/ssot/runtime-authority.json @@ -1,6 +1,6 @@ { "schema": 2, - "observedAt": "2026-08-30T23:30:36Z", + "observedAt": "2026-08-30T23:54:55Z", "gate": "Native full-screen playable runtime acceptance", "result": "PASS", "runtimeRoot": "/Volumes/MAC MINI M4/TFTMAC/Runtime", @@ -64,13 +64,16 @@ "finalInstalledRelease": { "path": "/Applications/TFTMAC.app", "version": "2.2.0", - "build": "5", - "executableSHA256": "8b647dd9c5fa269cc6843ddb75793143661e64e6496de008fff9b05afb81e0e2", + "build": "6", + "executableSHA256": "a860a1d4d888f6fc33af978285439e5ce7e47bf17d024a8ffe33efec54d21869", "deepCodeSignatureValid": true, "signingIdentity": "TFTMAC Local Code Signing", "adHocSigned": false, "designatedRequirement": "identifier com.flashls1.tftmac and certificate root AD42350FDE69323BA63D0E0C6604AC347C506F0C", "macIconEmbedded": true, + "officialIconSourceSHA256": "d6ba9ceb76c4b1e44e87f059f775a0ed629f9bea29b0dd73245853d7dca3a016", + "officialIcon1024SHA256": "ed5fd83efa6e04599e82ca00f897b09813cdeac007850f6993efd601a730345f", + "embeddedIconICNSSHA256": "010729a19f165b68edeb1fb44e8c31e450f79b3a988c95b8de090373378f6f06", "nativeVerifier": "PASS", "unitTestsPassed": 36, "rapidCombatABImplementation": "STATIC_VERIFIED_RUNTIME_BENCHMARK_PENDING", diff --git a/tftmac/Assets/TFTMAC-Official-Icon.png b/tftmac/Assets/TFTMAC-Official-Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86a1fe5fb6b8796e12b950fcf4197c7ba52c3d5d GIT binary patch literal 2662793 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 FE~(_hKI&fgb6 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

)a*KX0}bCPi&Kuxu9b6%%g~i(6h2 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 MwdSibMT^h>2MTqhrT_o{ diff --git a/launcher/Resources/Mactician.icns b/launcher/Resources/Mactician.icns deleted file mode 100644 index 3b0a8d369bafabb7fd29cc8c9288e8328ebe9a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288226 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%0D)m3N2SP@#A&5Rx6s8ZHz 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ℑlQhCDhht^jc6yNw>0>mR-UD8_Wh(a?(7(T0 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%0D)m3N2SP@#A&5Rx6s8ZHz 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%0DxvgT~6U=|! z%x=7JXaZx1rf1=yjzL+(XoGxkkIv1)^r^;aqWrGPf|KV~YQd;3!_ zLonUwZ9=rqrwue#71q4YD^@TUXkU>esjsY~%lk$sgzT-XVVIA%2jkABQjAr+)69V> zK=uoRl_1it0!s`Df-y0|IiLxi|NG(SV^?XpN84#Q!Zo1uCJaFZL6DPcJ|FajA=V$N z9>a}>B`l)$uK}!ibKGAeLRS);F{oWXE)MoHgy>{Cpw4+fg+mT}r$@oudQMvK5h?ss zLy8C`B{F~&AR|uNJ^A&SU#$))V1<@fXGBR6aRoAjQ$c*OG5&)u6*n181##?T0A&a{ z0Fa$|P1H2g0r}QU^XRe^yHc6;`i38DY1BYEAy6aTHh(Ew*DY2YV6yn4*rvOXHN_9^ z2lE85Z>b$I*}1Tz0dv^a0+WHFYR3W)Rj=O(brV_=S9d?wKg^tc(Xe#V`jk614&1?V8cTQ z5$O1UP>mlG5NhY^u)&k73Ytolr*lmK1jKU@3E4$9kQU^d^y&zKfB#-?qsXMWi2So_ zlb?5wL4}v9gN+^O(w2{OxYO?u91ruca(bXSLN%*m?;2vegHlpbv&RY0kr5<}AwYt) z3>54zpHR$a^HbpgcWpy?cxQI{`prZloh%`Pi9t^dk4haHp#Ufi)WiiGoWW&B|M4^R zyzK%<;PgcIIp!CK1g!|*T$V9(%3}Xj%JOx7PLOz{KG~-PVmbi@Wn;VqkY0lR*ALoj z2Ei+lq~p`l&1N;N(lLTT976?La$pN`AnCheiZ{$U3+Bg0W=^)iTJ&e`*B^#T(pW2@ zfVe7VmK$9l-@IKO*YUDi&bUT1#rpc-3u7Je&yW^dMf0IhiibT&(s!X4fv*h1_@HX& zTS_u9J){3lXRFig>xSY%tad!e1$>b$e+c(V%WxSy5JUVX1e_0AHX&L!@{89P?_t30 zcw32X|78V~>t6^aChLG1w*>CUvjo+KyoXVNYmMVvM&3UXfT=5!%Dj)arEd+!RRnt3 znIRTKSKo&iKxowncXxLeO|5v_dg$u?i0Dw2BpZFO!1?lMahD3J8|jK_a>B1}XAo~* zQE7;O;JoD2g$C~z>TS#e4)TNY_6xWls2;TT?y99YB))7)_On&6xsX}oszBw zz~zYQ<@J75W6fpndb}u+fQuZ3ej;hl?78R-68%!^l(ggdW0vUjnqtk|d#vcf)Gd%R zsI$)x0L;(!$Nsxum6c@0w2 zn5Nvh#9^nUQ2Zb?c~9fkE4>XlOEh^Fs8S+;zl~w#`7be0Y*62DQiLsGm#F3lJy*j) zta@W3h~xX-GJfsD0?B`oFGuA-SrLsCYuWs3CXw#mioLAcUwCgv1c&b_kj-m=LNQ^# za)bJU+vL5JHD5s}@A%5zw>7zNB0Jcg0VscHLUXR;VA@{b>3TT? zD-Zkm2B-8_V3Gn|Y`Cb;@OUB`=`&V?H3tc5=CVP{ zGs_^PBDCh?LFVv@#xc&)Noddlr|xhM{r__TtPZ+v_J8c?k(+fMMUE{OPVt$IUkXzf zwfNw;syyR@M-5&el%9+vh7hetE-*J)JIyL6g90jGujy{u1W))E6d{d;0L%Wxe=*#- z4ShO*`d#LWeJnkzhMIKyX?u2!1yBg~KJS&mN;Bdow&1Sfzizmysnc-Cu{KEV9~1!C z%b5;8A6(b}2rZ;SQH%`w-~q34lOe4U5h>LDw~a_K&8H1YqdMoo&va@>BdYRKK4X*F z#3v_WR9zo%UBy#h6*!-nZ(d{Cv`4u0o1v_a$EiR|$+cjj18j;fye~JgNC#{LzV?OY ztKz^L)dXJh$9n|5>R|xB=N^O>MP>bLAc1Gw1Cf5qUGn=#M%Tj}Gi5^5SQ>wBLlB&0 zI8`~}$IEa~k*mhlgbu)=(-R*^mVo?bOMj(|15Y^;fEt$SkskSPJjO;yzqB*V&P6AITO|h%xA`j@ z8lZOpxE7K^ zZjma-#V!Hhbng1=1_QcWy`|aX?zAYI&uQWkor%FgF#iF9Lg9T~FxuT< zo_uxWrcl%e8j2HAK%p$%#Cx4U)@RX*<2umQm8{e4y+Edoqy`~?X8T1VUb;IIX6sG| z7Z1<(x#L&t+pp40|j4oLV$l zUeCked~+;yKx6Cp?ymVK7yQB?o)C+l2LPt4nOTA^)}?+_`bOl^R+TWUJt_O5)2Mc* zYM4q_vh!!|t>_->Z@OzC`JkM@^SwdcOr1PkBhnwL)~83Vuq?c#!$8vbbpV^`v;lv; zfN}t{in&HUdT8Gr+QA>LPYKX(3uOnMba~$RQCgeREPsRkkxwSP_|s^yOs%btvQ~3^ z_OL(=&5Kz6+K0>x$6C)X6}q`g&uRHXD6n{qCk=cXaObMws!pUu0 zg05!c<2OJ3W@Is|hjMTO{$7X6FK=$`)-I?J)xIws#KykKCDw(l1^^C~MDW+8xzPg| z7cMU6Em98UR*26i1Ai7f>q$Qz7ZDIe)l|Jftd?w+;b<>GcH8yZSm2O* zTPm`+@b|TrSG$Rc?ro+_>U=jRSI#3H`!8!dJ@Qy zp0pTeGYlKfXyTga=&;gJu#Y(-IGUfo`wbi&?+{0n<^l=RSQeLkfi^gB$}YmABykpM zBZdPh(EIs%>4;SniIi#}Zud5YGKTI#1EbMy#>AW16V;!h^*TAdx$v_M~e}*eu{rNW%}^M<=eow34!f~_vzDbea;Tx67d1^wibVBJU5_6 zzXgn)eWqaMu&Hb-J?7|-Dt5NiY^v@tm%tZG$*9`@TzHv79?OC%f%nuxQVPcc6{ij) zuGRwMB%h(*2c0IE`^g8dD+3K?cj~LTYaW{tXhT;MF&pFY+?b*iYD>NG6j^AdpK(^d zOv(Cz&ARsS)>kLbVBfg#!~us`Yo4^(G(fzN?FpWE#BfKRScM-z7L&WBeB#X1>T9@b zDa&oB0%6TNQSKO_*PN%-L7S432nX@K@)EEiu3x}~6IQ2Vv({)7U`Ev3W-vhLR`1`b zIm_~2`o|5JQR?FG7gUW4l@W>g6ULWH|42Hm9f=X4nx(N@nKjb|)Ml z&A%X{^$Q9M2*JM3#91B%g>SIOuhb=@pPR-S8rtfgvh_tj8DO$_PE}r439K=D%=b^C zghn$Prq&i?=X0B<$&ER#yT6V9DSNBnyazSp?Q`3GmU(ch{OsxRzhub?;gW~#<@l&9 zfSH+)h~WFI3xU|=ivkuOhy`at76hL7E7ZH@*D6o%Vgo!HIdhlScxq8bb?bogiuI1{6Rioh83Tg-H|`RT{TSE}#+l;opltNxgkn%Dm7 z4ZAPwCit&f@1JmhROtYUIOifCdUr`zrk%vjVBy9=V~H|Wx_bt22yDtOm*dec`iVl- zMduF7vms>U()#y2i4Xge{f!$mkw+YpVU+Tk$sw@Fc67~u+uW|;O|VD zWv++()I0t;;r4tHy`HS)E3s`aH+tYZ5P8>5=1ibYUGgOSuJ!u;WBuJUf~1$tW{kpA z*hR#nV|eaYvLKu*7kcd~Cawo+UA&B6Dh3fQV3H$N)I<9p5gm6b^2fVoq8x&< zJXi9JKPP+amHHqreOR%j%0lcuszFH)AifwftD_B!MYJiYS#NKJv1}IgFNcJ zJO49cbs==dn1z4h!Jn{RU$0ym!i(Kc{Lq*tyrpFw?zMWRZ`0F@ok9>p{5KCC{-AmQ zDa7@9ACt_pM)V`v`0^D{!tps8*e?skaeIPRS#TuyagI(38&n*o(R}u3mtP@r zOfTTvk^J-?!p}vj%x{vfgh7}RyT6mK;I=3Pem7HeqwDXyLvtqC9}v$P(9bIQ;=W zZI=?!3SV!K<~Nz0(ySt7T463!iK1xJ6X#Eom&~R!6|jLtoh0nXH$NuGfAic{t@eps zz##E_mNkqy2a_cS$AS=lDuWL)wSV?7H6)0MPfn6u{e(al9qNXQl4lLk0uIQESUYIdWESVz0iGp)}I~e`flWL(tFiH$d8YCW(>0f z<`>PI&DOy;fd4LsStP5k`Rg1808R{|5;@70XSzV`DKHA@e}wwuLRL5aMf#W~iD>_+ z#l75)-QS-47Y^m7-13Z$71dfN0Z+IRAE2dfk; zWaSwU<=qnO^OyYBwZJ%WI34gt=2n^wUF}D1gl*^pL5%L@BlKHvhDq>?^LQ*p^QBTq z3;#Ss6g3-^d;cI8Q_zj)bR58l#aUBBt0ItQ8jq)_98`97A1f3kJ{%uv$gUW=d=UL- zEs9Lr=ri!XIoeW5yUd?P-NxgKkJa!y&aQ9%)8n?d-uH5&D#XRn#q1O(^3)K!=5wX^ zUroEB9 zlNQ6q6}-x?J2GrzA3=S_D_N=i>;kXqN5})^pjgwF)DnX={avT}ZLTcv`ec*<1UFna zyFiIG?sO}+^e&TgLR?PHq{t$nJ1^Z|svlSid62JP7Ca*|4Ae6pM0F#Wf4wX98K=%d z*)CxtD2u+Lk*GrcfYQ^Gu!adbLQgAVGMg3}HT1u}xpsU=cb*d0elohQuKHLpAB%tW z7tg13-3(J<)RdE`-lr$1ku`Z6H}bHtCfIUkR>w5HwRw-B7|&G-acPx;LS)}ucIhnX>oSvvud>GZl;i(KhOo11*x1eDmp&&;A@ z(uHu=9HV`?%n^a%M7daG6^{Zo=)XhgFN7m5oN+gG=+Pg{-yQ{hoZySeeQ*Q?HiS=* zd;at6JLdY)!h|_3?5*Cln7`4IWE?BL3`#C(8X@&jkckvvcTGSm`)84SqD~1u&5K=q zymT{SydnB~ewGi2llTm{n;8`OooKQo0J|_j1Z(BmheGqaC%(^85`W@mh$)1>C^|37 z`|vF3(|AxczS9NHUk~B7PY_w9ezPbp{L8;GBAKWPc!WLdyK=3~Fnr&fd`strz|;T| zFjP4q^@dn%7u-3z%lraOD!D~E=2uE3U~(%)0XZqX89SEzkfl{ZD=ceA78NCm{`L+h ztxUq^!H*z5Rn9e}dP2WBj0&QlmNd+E{r7W7Gf72>M>u}7AYIQ|Hl~Sl^By_EVJ0=? zK4$gB0Fho6+emeq+?wyu^NHN~A289`hSy4QMX4s;LXPNuK?=hIxnweW6)iJzLoITP z@X~J|u?4#CDvLVh+lmMQ4X>Y##`Ptz`nbZ=hX`K~dVP5jk!dfd24a-cBk^n$;ZnBr zk5YMOMSr~RLo53{xEAs$rL5fKP5jyXhH+Y;mA6mmZ)3_|hJ?CGHoG;Vow{sx`7tij zinGc|A|qDB=tf42E9EJVnY%6}A;CITBusHx)m-}zA=U&e_%oY$M#wbeskms4?>(Jx zH4U3orxJF=_p<5&*Qavc5-#eFUTwd!uWoIvu@Rh2Cx7_41WfuiWC#(Yslh*AT*=VU zbt!3g+Tl1`En0m}b=$#uC3f(#ho&(0r_P3xt9$MP=4pdQ-_Hc9)w~_=BI|GTjx@83 zN&el6%a7Thnntz{*7CdoXpV>vx*NkiH|dgZxf!_1l1#t@O++Ym#)?ny3JBP@ z<^&mRX8q9ULVOw{dr8?*NE$Ld3+ayrS`JKGeTr}XJdzNg%yx|cQ$7J1Piop1{b7!; z3!RZRrC9G*c^w_aZ6J7qdiSAaz3QbjuPbY1_sNJ?A*yajWya{4ri|E&+2-AT@%W~# zT*+>pC_tO>Ty2Z=Ch0KJJhAvw-VLAIyN@XYVFb0#xi{jkWnDtI$Og)io}|WH4Jjk2 zd2;SU|F(}ddcAl2Vr$BC?>n9wm;N9vcXG((Yq@!QbgU}Y{!7B*i7P4bb{zHA1>P3B zr*2YmwN0P$pr}DBihi?5?EEDXqM;a~O4c6|g1u#2P4{uS=~~$CdC;Qj z`!F8nmFQjbl~B^4T6T5>cl&wQj!8zt*oUHJY(S-M^=ovi%_gZtwcda6(30FB$^@XM z+xAp4X}tP8CMk2jEP%o8jFa9nBG!zQp_v(x#7jXLpS8CYOpwkg+FST^?9JfvGeN*wtr^FLm6xj$#D!taqKqu zF>+3i=p}tlC_SHNw*O2jaCLG|68TlK6DRTHZs%kpy3a^vieew*MF$_ibjc z^nzj5(HChF5}Mr8w^U|8A^x6r#WneGmkG`iZFLs*(mOE1ad2`H+**;`w{V|=3z3vP zS8Q_M<6Drz$dqLIk!P00s*+8)^~ZGRzkYJ^F4SR0yTX(mQBi)mjVJPhc9i@gPwrw> z&NGighH-y&*^cG%L!-Ck3@)VYVgsi}LgJ|XAAiK_sM*Vd<(p#ZtBpZZq7Oo%q(JJ|)5;T<@1})VxjUfuX z!v8R$M3n0{#WL4EvZbRB@ddurHm$LR%sN&^t+5N zrE6~RDfOd)uzO#>JMRsX3=T6tTEW3XB!qb%?mhL!p!lckV$E9>nXy?5<`ROmQ2Q_o z{)9iEt zwtq|dIpEiryZ8=Izb1hi>@jhcXrc=BHH+%UaL&iDN^7ZYBt=Xr!CxCdER+jR+k~Vw zc2O^xcS3&lQ(cM=$6Qf6ApILv%}_A&*n_~}fqC1t=qB0ouxA9UaKyj_NsaVo`9G=9 zfr;(yzfrl)|K3gFaYo1s_nZtQUU7d^f=wYAUgO%9xub~UYRq~zaV3t{(Sn^35bd+P zTklZ}qu*Vrt1ycGbN6ZNY=;$odC~uNOjBEa)KE=N=jlYixCJ#L5gRMDXZ2B5uB=H! zgWYC&ifHrd)vPTB1~L+#4`2az?^xC@$cOJqzgWWOEBF%W(I`E4_9znhT9xU31E{{5t@zV1rePV$z$#V&5O+T-;RQzGH^ zb@xrz>$%4=)3Y6F=KkSA$mU3%I0~9)Jr0x4V%G=>3)5Z=2hyelWl zJy!kNwGOChjGT!4I$N=j?%`VxTwY^W-+9VI;u;@eOBkkrh^7%*nYJylbPovdl_R2; z9I20aF<;=8drGM|DliqnVd1STBJ-V=sf(5**jt@k4gSV`mqI03_f{&!X*>-5+kI%9 zIx)_>_=G5V{M!iPwYRYJFuw6sTeqlpkvk6N?)b1=dPYrJCVZ^+Y2FnOA1~Jq zeh^~W;{BNZa8ZHm22PN*)9d6uc`$b4>_m0K%55{;G@S&m1Q10kfO8|k1AI?QNAlKJSx%W@`C~Km=bNNwTeF^URIHWG`$9nh*D31l zFuVyxSOzhSfjFTWCtV?8v%&V*9YTi_x`ox)jUf} zr|l#%jR3N8rM?m7RN=#BexUX8VEY8dF!WmyySCkPLp;5b7&Fy72=vBb3i526iSWQ` zgB#AgG(s5t+DEHpGaUM4eUmRn;#P?Zt4xCm2U22IAGKK`8~wIGRRJ8l9(9-)$ zd)WQiV*0%od-8E^Rca%PKWG`bit_Swf?~Iy{7VSJUU6~CaQPkAY5t*jLux_(8Yl34 z%W6)pL0)!&Rrc#vOE|@Rt*c~H?CnQn=PLS8;pdIb&!^ZJ60i7&WKC>#$xGM(ab5mI zb)}039fC<<4BXK+QYCX3EAXJ((VJ~XIsVa?NIZnsU{eIiyl6E$`{d(6htztAd!34!jY|ur0KO|8F|hskiJhBg(G7BXRJL-yK5Dz~JF- z`2pJJkPwAFqHfqHS@7LfY4Sejle;<-^}pU19R4XvKK&+`hjXI3$mS`@#HwAxayH)y z16IWXNlxf@B8N-TCwHl~g0tCHEz}9e2|w|%C{8r+9>|_kn)#wt-uulzIU%$4oje-9 z;Wu<-&R)-HMR(BpU0N~958JU~n7Ew~Ruag_P<|XMggGm_PCP15j`irS%@AAsG z1FF>Mc#60GDgmbmpkVb;Ag!}i64#jVG(}pF_lZ5~{9iVdq!0OYMX1VLeKGr zt>2&0s5@v!=H+r516c3lX;lqR*@rrbxmMH%Bc}qX@}srt9;=9bW!$Dtp#|B;n4fms1Mr>0@umt(~rV#4>%k+%td* z;fPy+4Ud~)JY0cLaJn0T!m_Ge!Q-s2d|6kswN`vK2CM(9Yl*P9ouW4LTi0h?T*zW1 za1Gp7F`4rw-gk9QKe0<)Irbv=JnV{ig;n_#_uE;3uJnrhpE}go-QzehROP38WK9*< z0w2WMi#rR= zO+U1blBC~m;LU_~KxsEh8Nr2rbYe$nu<~YrKM4D@E0zg0>ll3Ir;B!yde+rEGJ8jy``bJ=CIm{(xuJD?3L9}V@V$;!l3K1 z%cDL6^Hp=XYoa`zzs<#(1v{HBe!bGpFl{|ex=c*Kz{oWpp;lEMS1R*B(quBi2B{%s ze?(dyc5LC@?*zlJ1TJ-WG&|6@sV8uBrU||Io~-rvWR}5ZXb2}XsvV5Pmey&^+s6z_ z5D9KfnFq3=e==P1W~aVz^1 zSVqa1WGw$IhB^Kg*;71^LFky&8sPa>tS{@Rc|%ySsXl3&zy9)pyleH#>v)*~ipq!M zcMf%5uq{%Q=ApNLN%ofpM)0fbTV=B4MoAd1vPA;4?z`xKf` zHB4~*2QsCIzv+;4KQ@Pm@mxT*Bq^H${@CjG@2gMaJz7qy`;!Z;H{FJNCN7LU)%)46 ze|gw^je^D_qmPa9{X7B0bs1#EXg? zp&gRCs%a7}k@oYI8hWQ+%Qd(0=bE`ceD^(DdG&~`ai_V6Rb~XT8Jo_-uzX9-C-=0{%~^weE?ge`w#KGq6%A<;r{w`hnV zqO{r3>1a*G{cxtHDmN+?8T7OC8oJ-hJLSlZ`Ou(FuiK!ZK#!cad5!lB|Go1A44?d$ zr~~jUv3Jgn;O`B;T^7(Hs4EMkciEFESTpd4 zZ&Ql8*((Z2E`Pe>=g#8~{1T2KL$Ib>E-Ec<|ME8N>})!t zSM)e9YBw8=m$BPip7R8;jpLm(bar%>^gG@*z=rj+x_mzCdz3wP<}nHCO;ezJE=SBt zo|9hZG55M7B`MiRn^>03uqyvnet*V|HdLbrle*vjj1s->URG*!(0}}Z12Qo=d0cRa zane8!6*osnJjV=tM#P@H&FkNc zKg1WLcq&!QvEo7*9il|BQfhoy#I4!?1j35*!JH)rvrI9ZN6UtPWNR$6JQRON7R%bX zaYK(raUZUnU8Jy&WPgKi5w4k$9d~}^d!%sYKt!L6n=vE2w+>-JY@! zrj}-%8i24I@8My7_Gb#u*zQroNku-!ddH26Hlh<+!;^3icT3>MGg?U>lqC8pJ}~P1 z+#~FJ@Mg_oPqmf20$lNol=rQ_aAzn3`R&Q`$e@cgnFwTxeBQ#4K+@+cW7Npkdzj7| ztSK(EQ$|t!)MKrhxMk(tsk6p@@x!o!qrVrJkeA*jpGG;_9-bj(@2e+b^t+1)fRt=E z!i}AUopB=%aa!tP#+X6n0XXFM7#G^EDwLV2lth;ejlUp$i&bKJ9K6SCx?&zhM##vJ zq}>&xQS+26$h1vmy2iQfM`vDQUsgZuVXW&}o0alq&)V7g0XAws(yNTRYQ(T=11M? z?S)}rA#$tgdGUA3%hP^^G=F+LvM3TG!1_)8Pp5q1ueqs>v~|gfe+zUQ8iQurnPV** z1FnQxEVq}S7?H!&NSZ`Sg9deu>-|$?ayQts5=SaIf8a(dyuzvDS1UKRnB^KOe6{&a zMoO$RK5uO6+cy;y#G>+FM|6)6P3}7lMUTiJu*eE%0Jvx6a!}P5p#otg4sEeT`Z1^-%uEYhMyF zv5vtv0e4q^4^K)-YmwNYTX=ci5%&jGhZRNl*kxDYW=8mJYmqR4U__bVk7hGTKa#_i zQ|fkB@@{4Mys%UD`BZDE!$2i3bubd|HC72~i>guL5p>EqUi zf3DfI&s>;`zFu)l&dNr5POWfm=F+_dK^{XFYw@o~=2!d5MOpF~~zercNwo+^vTP7+Al!S;W~9`^>BtN-A?R-3kF9D>n4LrR1^GP3kC zGWRdk;6Tmf@ru3*M#RYXnjr}{2Ujy|7hr6Vi45+e{+~$2f^rBwq&85#Juic3L!J|@ z!hVo-HT3+Y=#KoK`)BJ>SH`uO7wuBIB{~ne(Z21BkhZi7d=8glR|bO`GzrB1ovy%> zO|ajAKsnlxk|?}PMExIIZ{ZhZ*mVmJUD6HGDJhL~cMH?jL|M?%OOd?jLml2(QL&j%moI2% zG1i9pGf4-E4&FDDkFMMMRDS>Us#GJc*DWX+(GtdUa6wa|=!U5|_*J@?T2lgy5s{b% zX6tuU;rMup^$T)=?n6~V*#h&_g=0IL56huO6m=mK3nYELRfMQJzwO35XJw&=xFt*k zwnF423y!aJQO?tlU%hURgvh0$@`-3HNOyf@InGR<|^J`qs?pp~pBAb#x5?S$EN*7EzCB+0m@ZKN zy==IBYIJV%VoUjGzz<#cy!TGQ5}gxljxs$+8^Cq4o5IzSNE$&z6v1u2pE=;A4v($_ zlS0@?s?-qUgI^mQA8T^K6tu6WKRITM1o%fGJpJXd1SI51A+O=Q1#TXU*r;8|#h2pU zp;~JE&&h$&?$aMd1r(2D}oG_>Nj&CSI zZb@cmCbD>a@s{sx*9w!QQf4WDQm#CO(?`rXu?Pjk(K$SWOCz)-s#@gxJ@IIbCbUf( zjxWs32cuk9toz-K3#~Uhh0bmZKnGlSP%rFT)JY-T_o8iI`Dl`fWP=YyYJ7*EFD9ny zYEmkwp#|3K`0NJZW`vqUbYYR*!`7_yQBIx@TAZkowsG6E+Ra& zg*S-#jfET2ugjo-(?W(1#G9Bwyulo z1r9=^a!9Rp`uYpuG12EMiokc8C1-bL3I$Jt;oLqnlB=S7DS212KL)bb>P&SJDEy$} z3H-gC#hPUo^2vnd*kkNRRPU;^_r$Kf*ig|K16U;9$h{ldiIZi2Hg&1PNsKI|3gsik zV@Z3(gG-Pc*IS$76+H+k(AvTZwd0mZ^17Jib5UxfZ-I%ed48a6nQ?80AJ{NTYnG{Dh6F zoW|J9Fc4*+vr(LSPZ@*Xb$+$x(!S;rMc3s6ou0)Fieui~Q)PKXFh}SBE6c}%EuA?l zeRR(KG`InMYXx4seR(HVjrk0g-Byx>o}cWyi*0gk5RSD$)kNQ-qk@-@IdAbhpLWWdld065~M+t$>y>&j*+k# zJH-h~q)B=UIX0h48+m+hCVU@QwHQapd?EW2!!F@?hz4=C{1RKfp}X~szqMo6RJ!WP zb3=2LMr9-*`fGpB+e`TMv~^F`IeQ=}S`)>afstE>b5}7XMDrStY8pMx1rqd0o?Qrq zwJACYRrmSRuQuKBTggk-16PX_*a}?@_Z+`O+lW;AYTw5E;$T6(4y?7lau6AW>^=WA zEeO+n|3a)S&Wj-aAuf~5zN~)j_4yM}i- z*YJ3yc|C9o((K$`wUI)A53>u=Do|5^m$!-6vwdg(AaM|QHBNXz1>{meOq_)THb{dO zPvu~1p)1p9g%bR^iYfax2g`-*8X8DyK_cb4-3o;5bpR)56I~Qk>Q(a~eJSWY9pu!c z)I;q9#J=YcVme!@>*qU?s@~MIoO-(x9G3p@XQ)Sn*Vasnutr-cIW4TY)46suvM96{ zgHW?cJ?Ff!w5ra@WM6<6CtyT3ZihtGUYUaW3a3@YLj+v|;64y56N=5H+m|bbUaLDN zJN5n>CpGtvCT-|Iwa(UaB?g(DV)t|{E&$!FF8*cLH>U3**{z`R>tDOOSHH(Uc%^NY z-cTu6i7`=|jWgJBD2cgKN=+q4{r!k)y#%_#I1g~L6B>q;<@czBf$qXy^&X|p4 zirIJ!0);Ji$7Re_wl+)l+|UOz>M9EbequSx$Ru;o9)U#IN_~C$V&m9aZJ}~A1IeLP z%_6a*90PMEn*K=u0wov6znGcC!Ai=-ouI}Hd?QCTcjQvvnB3gGj{+j}P+IP!9MHXX zW^Kkqn#uC!(+G%WNc$T+{o;ux{L1OrIqypr&ij_28on+NsF>?xx8a{=(4O7WP~0FU z7-}$KqA1RW_%~KEafS@ju3ZqWy&<<)i#CSHNhv=BK4!uByq)y{(wnHhH&{+NkEjo54uA98P@vS z&j~GZ{oSrUdjv^PnU4YD_dg%y0V(T4>CvOeqY2bc%BW@HPZ3AQ$6JT>o|}f(xS&m# zzW{xRwB6$1|C7k(O#gQxYjxc*yrQiQkDorCs&jmN zCr>qOKiD%jI!wpL`x}Q@1Wc^@_<_-5CPUb-Mf;m!iw@hpWNNb?$AIPrRWvY36`C!? zOr&-q3JqFsn^m+(k=D%C=B3k7<6laQ%;e25!GtUi|5{Tlpo+OE-?*o@PnVU^J*y;_ zJc@!DM>s9hpI*r}K1)!o6hR(I{YK1xPk&_lg6Ks8q>8mj{4oRdv`4XvmXow_Bn39M z^CH^h3UvBe&Ml_}Z#Zf%VzWH}2T7|ki4qh0jl{%tK!lzK3}K7!wd}NuTzCsGMs6e! zp}6>7@UZ$BF&zr0Dx8#vWOIHs_-1bu3AU@1m~VlcY&BN=LG43#9O)&slN2!{2aAGA zwV)9mjkpKn|KNkR7d`U~Y=S#{KH!{`Ba9%O_9Nq62P1e|T{xV4H+1h#kWjG=Xf zl%yI{Mry}hQVDmU5kqt}gsc`Gqr;xMMS6hy`wT&W*B@Wwbk7pRl%y*aL@To*hT3k2 z)UK+1KQkgQN8fp?gK5OI$8Gf=n|5cnN%C(`{oJspIz7NDJFF?I@Ep8Mp5T4ay1rn$ zn+?*_;Mm#Nn{+}BS!StzsPdkHTW3j1p2$U8kE^_T_LJ%@g4^Ry`FF=3bdM8A^`uF- zLTIQte2c8QXPv)IJ?4d1QUZk}c&+WQTZ>0M=v$J++DD=Aod&OF=h9YS!`#z=FLU#JLDlB?)5=&u*$ zFu6p5g=s6>(Hg82b3$BnST_f=;GG?}I=?G0)J%U)WCufK&!1d47Z&_ox_h$Lq68;B zO1Uz^SJP#`o>2K)Wfe~UXg=Q{;Ez1PFJcCSBq)lX{wkY$xb!qkZ`v z#*oo{45PS?v*cCtd4#U**Xv4zo~@F!%70gP0#CJc+eheNLZmpD8&=; zOV3F?kH1n{DF`p&3)gaZ?9pWg=$6k1Zd^P9A+J_0EY`lLGUq@N-oHRn;4W zi$6^qq_&8WLOFI7n2ZJamrA~Ro(^Wc;`tug{2cTLv3NeA508S65B-|UNrz~J=V+-S zGJLq~5mlA*&cr+YYW8XtB=Sw-#u3uSHe~oj-xOJ!X=vn00mDR-S;0$zd)2u!M12lJkA;UqN%T}{lRSMsvYm96-%Wh z+HY^ZH|xOZPAvDi2+jxiJV??+H}v^&T|zv> z`=TV)ntPcha&7X-#>P0wL*XNqZXX?$70>qWa~mzUh9DP^D)hHa$n2nn5(~?NiG|Hy zNqh$=T$-fi=3RSA&zv|= zCMc7Ul~;H`M};#dkkUFDy*zl@t|ajLC(KMWqYjm$6$;0XQ0|ks8&ZxoQo@8#4t(U^ zhb%?}^oS(?H?=3j593E}eg>C_b@$pm8PMgg^CrEG5ejPV$-Cz!yV4->;))-~`U9!B zPXpL&-hHd;z&*aRHz5_bDg2FL`8bh=Mjt?~oRea~{;-PPSo>pNr!iK(!i*twLym4c z<{w42z!h{{E6%74`ue$G?6OW3o@|#!Z`h1P?BU(q{CaUxv7?>?pMA9If=@IZaMhd`R%zT&gR-`+p4HcpSB^a&EwX(5c2S$#*Rf{R_`cgUnyz4o2HPlb zJ#kyJh8PLg*LV{4>TmnH2^VeX3$^O`TyB9ot!OM^d-d}2pdD+oQ%5`X@7zu`=ROen zur`>K0tut!-UNNC?%VHTky8%OJIQW!!EPLRs(theFDg;Gg@iOliCBIe6|BY{b4c>l zTTRIehbh}cq$XvfO*m0DI1{mkl|j-#*@=`URZuO%yT`fo zqHU%!+4E&@=3Y@WyY#OA#T2HHUO3<|XNW>ycDGdFKBC^a`conHd0NTy%v2x%rSI7h zGHA8g<(Vi4ZR=-FurG7?>%Sz##pEfYBcq?$8YkHiO)ReP@gLJ(PbJ14zt)Cds#ScP z6>Rh(q#8{B)T#}qzVvWdqk!qIe6RF32JVgD=a}pu${g0BYo3;fD<6(v)Cf*`Tj7;I z{7e-R0uEgQ@%*08-GVQSX~O(n*fx_GZx z|4OU&V<``Ruym%aRxx>8fv>mBTVI3?{VYtD5=!_EohN^fTrx@ZX77(=onv3YP5JCg zD>)(e1y%Hlz+P`^y%Q_zKOHrrU>QKW2#=@vIU~{SvBuXbn0rrVjB(wQuua2voLG?L z&%i*6B-PKbua|=9K8<66pG}>XGYJfE$^10wTpDmq4fa|F zBP~KA0|2KiaFj5$TOv~Ia>Kc~=8zBQ&CXE^&UOe-2A?NSdKUHumN?K?iDyrFM!z5S zCjYyD00!>bVcJFBaQqVC1BHLU)*I+)j>RJ6)_N$v#owfV1^*a^^L~j`#8_5`?en9u z0wWA&K>e7Lp4T5V&W$?An+tkB-J>A4^~0TxCkK5);IFUxKmt)uUVg(lOVb^a%BVE3oq zWK&-PA3OHu_ofpQQU0K;yrfioYLfMUX>~3rr2$*oCfKC*JFe~Dep5N%?O50p}sBQTL4!K(0VH%~}cL!r}oD#1zj|ODIX@=G*ZG*>+Vy6c-IIDc*Is zJde5=0MSS6FMz9Q%!){Cn}X!M&#>h_+KT;=`23?R+vt<@RkxPeNBPAL76|>vr7DPw zyBx6YF#GwDu9b@(-&>WH@g1(c5t7%Iv*FRU>#AhBSLlrBK)vO+{A7w%%~YcKin(Kp zU2@axKUA6{v`DJf!~J~1`|*m~>7&;Rxi=g)cBiySP~x-eay%lUmalVjr`3$8^Q0m> zjEM;$mT-Z zI5L#>UYZ5UukDooFPj9gmHo|*S7u@-h4NQlUyHrpPT3UW7&WswLI8GM ze<{>nnb#bp4Jaz9`r#!m;q` zLrhJv%f~dN%{|GDKHu5_CfR>fESm#d6>s6Cw-SnAEftNHh2H3LZAy2E&wY^ha_IV7MZW7$+`6XUH_9W5*z4}6B0~M zf=8lCQuRty-ze5A!g2O#o#^fhYI6+W_mhN=GxU^8ezPYwa!SlMT7Q#(?3#Rc1^+9F zgZLjesKK?xUce9bnn6SUf!yvT@@CHsXmm#)GNeK>bl!DY>%TIL@U_kk579KBZz9y5 zCj5NuB9B3Ar&#d}aKtdl;L(gN9R?T|a3|%{x78$w0Pk zyqd;Xiso?ml-GplQ3=A~dCRMARv{FcPtlr(_1<=4R;I^4-vh@J@MpPSS{-t*Birbn zi;QE6Ixo|mY+ubvSIhXI*C+3l9&C*B072x^Z8Dp#TJ2vZfQ(fIBvrd{P29=yeSB?X z2khy!+aST6Lu8~OGmGYODGRIMaLPG=ghVIn+kpIi>6&-M0Bz|Q+=wIM7Ow#g>3iU% z#v;Za$MqHixxk#nqT^Gv*it>yBeOYG*00!+H!doF`pY{d9IU|jy?p(9@RGY{??$@} zTuIf&6q=b)u%9Nqefn{r(rpIYJizT(cgN=dqjA5>lw9MrVXIZ6G}bLBH+AiKJtj!&$r0 z60g!8V{X)(j;#!2?k+uzNjZKd6TdZLQa9J~mUy$>#PuJE)=9xjEvzE#ZhWxTpG_)oqv%lS# z4Ev$Bm0F|vbGDfOrOSvEX*!_*$%==ZwRAL23jHsgr1jSz1BjmB{pQIm8h4o1iniqX zA<^g1|9SybxYx%XZzqBhf5-&RV;ET#9c83tCmW+wbAhOYk(Vk)#Ceyo6PNc~jlfjs z0{GiT#m)vrxBwGUumOBuKF>^OB^TMDOzcXhN(){U#ZsbG?Sd~QBFLyB6zAKXC}TD{K{K6*s)bT_5Y0VXyx<5 zCF)ce3L$NOja(VnYjx;pCh!`S=IiV+h-&y29)>1tO1vg6xK#Ee{T>exLbXlhcca1kW!@@Xd zb(f^Dkofe*SaM&G1-V^$;2?3wMIf(`{<`y*kk}GsXw>5Q^WV?$@HrD*@Z4Y77f)@r8=QuEHCx1 zH+k}*!S8Vei5&)z-)B@gk%uZ3d4IJuc1UeW3gMD^(DZm)wSZieu2ZiDzxP2xM?>!X zm+HLc#^OUys-yZek9F#EQ7W?(7Ccsaw1SB6u+>o|q>E$m4(rK28pjAs=MzKfWIG>| zQ0Go{{7?B=x*td!hitJdy$Lz(NFxM*QGbvJL%493JbDF(#f9|Yv~|@R4x}q!hGYIU zCv7><#^6QSjr;nzR|6onrcm{IxqU{Fm}b8|rb*@Sy;7gI~s{BDyn zyk7!%dalNz6aN1IhEul=S^g}sPU9IiUI!eRvPV{Lm$M^vEFJBNy;u712d$csziLjz z7367vQu_5veq$}*eIc*&tDb2tTQEY4LT*of(bMDmw}yNUaawagJN_en4L3p0;f-x# zN97p-HvDpYEot+*mTVXQ15CQay8*4?o5IoDoxBBTt^$D-d?g(_3?sToXVR-9*9DI# zE*L-kz3v7A&u-|__+*0G0+$cguKoZE#9ev30YgL!4Pa96!-&8mJT89IzQ|u5R~f2M zCV5pSAtTFe;kO6UB$zQFN{#QRsd!qgkV2jp#3H9b281GV;pgB_WkQo$h}JL(Kd^F% z`&@BKMV=#CJ{Jea&nMsZgRQyO{MF$&bP$kDMkApd4Y0;X72JQo8E_^WLkVipJHb*= zH|2NyZ1(M=hNri6A|GnQDZxWacX>H2NCUgGe+r=`8Bu~m|5&=;lRiY?-a`TItIj!{ zHT1+U2#usF=sO#Xfg>Lc)~Is9+I~DepL7LrCNg=M1ZgTK_>EA`0d$az_ zv~+66#>#Ngn%7tVf+_v(7Q%RPx4AhE`1X$$yxq7f^oB)+U1j+6M5DjxE-}l^25=uG zZAi+z;kv~NpEDT`;U|IgIXFW|p+!39gkq3L;^c*@MsyheqXz6ppV<)|tn&{s^!gB< z$l+@r*zJ$gJ^DI#=Q-2$@9iz9OHw`~2RNIq#5GOMn8p>8uE0E4o!79$%XzRUc$bG1 z`AOx$u0c)&F`s@fU+2hy01-V;kUdJw9zpRK)qH=$LDh>RcM_PU6pnGUXdc@_;1i}K zO+jJ>no;>eTU6U-9!@~o5NG6qnKL-l*nTl08%=+^@e%Cff-R>6U%(DV#PQ&7EK=!W z2H!0Fm>wJjXXq7PL=5^;h3b?WPySlEZ7$5m)zl_|7XBnJmeaOO;vXs7;0|;7>Gs~N zSwHkIU(lZw)c$YD#>DCHFb?WIbZ0u@JKgoJV31#;Vd_w$#Rj()~@ zuDj+Eef+fr*~1Kca=MEeQpgIhgKV_DXahkM>0+Ywo(0j$49F?~zF_-MMNR2fD7%ga z=z|>AVND1g*+??xruXHam0jf%??|sWic+&x+^z5F(D_vP_`%p^NLqn8Q}!pY_AALv z>%(%#x#E*y)1xY`?|!OGj!G;cjY$0Sb*Xp=&Ecfxn4e}M2(L+ZUV#LS@GV&v$R^60 zuqXY_YRsz@KjX{t7jb5gBYYRNIStuZbTQIfwLgIw{vuvBN7WF_CQfw)oA#HTbb2BW zC;w~eD(2Sanyg+S++B1ctF6aQp)+J0OxZ~6NA>K6%%rE3-ZA}rM^QTmgh4d-YHvMO zN2ccWDmgd5%y}|)jTsH4p|*-kv~9h==dmZtBR0&m#DLS5i-Y_$A80 z1M#uYtdBPa8R;ET7NUWW?rt@!aq5g3FhQ3GhyEI=)UnhAaC)rc_lu(}W%t^!%NM{L ziWTKo1HJOLtGyF!{SIhy9D^G%wXifu*F7net?itWkT)h_9Iu0 zm}ZEke7&-c5wE_dn9+N#Wa+qWnH;!3h>3b~fii1|N-F<`oKI}Wo!8m|f-euuxcEP_ z>c7fqwCw1U8E^70?4@f@o!+Hn;GtctB3vqo@O;TpelHnc<_sID2V4B7ArjYhf9~x5 z;K*cWkPH9MB{TbH*t9HnrtVquf9`z4M_U)9mETyNc4M`aNr#zK|ypH{}U&* z6v&16j(m`~=#(sL=^A$jtIZ*N6M}gxmqH|jWEFK>rbT!L?>_QyHGD%$a9~&XEn~9~ z+!MrJq?upuJn-G)EqNTIZe({WtV6cwCL18LA+`T9>Kkn!qZ)b{YUcJcT=n*+61>!e zlSav7{TRw!*Z(rxkpQYr@wQv@R_Ck+&;UOO#OWuq;NiJO_(nPSb&yQ*555_L@ERjY z=5V+X#2u@q@{y7*o`9FZn)?oD=ra)4e?LZMa3&v$VOxhBQtr}k0Uf2LOF zHc3JpPu-l~VXXNR;^lIv z2`QAlE;fhqdyV^8<=to=cIWJHyj&8Na$;hi8-?teW95Y=%r2*50sTMjA=rHt@f0VB z>A@RZ4RZ;s!J>(EbF8%^z>79qe`YH5A6yxopnsjO6G%n3wYLR6{_Nl-4<~gO<$pu; zdQ1F2j zPfA5)H#$?6p~bP90I?H^;%Zy_%ENnp!jw)a+(`9aiHNd_bJ|J8Z^{nCbKs$|_3+PS za6wsdw5$b{m^k;C$?#Nlm8S@C@#BYAXb=j$FXEb9;y@f(a1Hk62t9+(4%B;H|6u}6 zff9>lTH_&>KoGsR)4evHELI{L8~m82|IJShJFMlZ#pv$+O`Tx5RQA9|YJ}@b4eBOz z^)R6%O$a*O&6gF7{(phVx>6>D1b!^*?$2K!|CEyhj1hVALD}Twz1{DAUzo$Kk)G5s zqP}6_*(lOAtp7pwF?l3MU*G1(y5lhXc(gYcKWR=O^i*<3_W0%AFJa3_30U?l8D2A% z;9!w#aJWGN()+O8{lCZNG$rb8>8`N=@c-$0>5JWMlZ=CsLXB}diQl!Wc)6bAWAFpG zYwtgKR0)nRm=~kZ8P#E}KQ`^(i^{9+SIv&VamNOQ7vXH`lYa7ewg_EujHLwC6o*;1 zJ@M}T$<^t-XIBxJ=}Uofl#Z;~2cef6Xy=$i3HQ?MFfSd^ilpx_+pkXF60SV>Oq4lz zh#*yIv%QONLz~E8*|>Z(JCL*9eFz>qYa3I zlI_J;dYG%w12y;mZ?~Y`nKg4~Uzw$m^6E)NDKOG@6Xr#DeMgw--uRRsT4d9GNroz1 zb5m`GUh#_mhdsU8kE8#TZj-v5gi%8q9%D%Rqmp>B8hhfbZeFfpyh)kQGA3h{cjQ4Of03|B(MD(aVM_Ph-Hp{|I$G3aU&`)tA4Z)#ILf~4;4pF6qnOQ{iS_T4IWJQw@>H%$wFR&NnehLSK#^ND5+2zCvbogw*V7Vl#Lpk^0GBdFvQ=7;caZEhU=jQob-Zb zpD48~*-Oyt2`Z1y^!k8^6s)Kp50s$ym-yAz@JF<~dwW}&Zy01K=_1JZU45yXWVpGX ze}W$|V>s97qV!i8;Ha0wtbw(G7b!bto}wJuy_<({av@IQXu(Do2Vo#`HFkA|@v7SG z{+6#Sv)LNyC1#lj;j8P#v>`A1`}#k`IxjwK$yL1N`QDj+0{>M{R#~+qOqVE?=rB1k ztA^>ErH2d{2Dst3c5ZznEA!D0G{OAblfK(PqD?YFFzf7ssfeVU z2^N;T7y9ep^FJiXKSf2}u((GTU0mlpIM>W9 zzrJhAI`*b|l0IO4V>tG@H;4YR{xZWU<8kJDJ76Otqqdv8m;PjhG8`X+aBOS=4;|uSj3IzY>1Kf9`{n>XH5&8TqTiYyGmKmz%XM zcv1*EGDT7MN+~?BwVmE~c>bbEv zKyUYjo(}r5{F%LrEx1P%CT6~0@8%2%h_n8Iw1C<_${v(eug_~tSh^EXuW&O<0|Sbe zIbg$k_uDcO4hTcgKR;TXl{`3}GEPr@(+%d#e5WBpVxjRCA<2kfZ8U!Z6Z6a*BZdgv z0$Vhd2^G61XIT)UyYaMGVzWi5OO8y41DaKLE598PyinpkWo3SywL_*z4kQjhq(9BQ z;)lcZHBAWvh>Lx=NP$O9y|Z25StPJjJ!rk1oAZe89c_98={OI5tc+$$WBbmO5n;$u z0;y&A`$@;NkOVRrv|mO(f7{vZY!m9x;&STiswAzZ`N@ca}kl)w$DER!K#;<`n%*f?O#v{k~KJ<_+>B?5mco zf`XAg_I*P%duhFsS0ZrPhz=wg_R zL__eM{qgH%w?Y9iy>I|THccx3!(Ve~Mtlzp~|D|fk{ z20Kn>^gTChsr|CLvuMjkd`)dM>ZX(BLs+5g_?Le|uI~V#PSEcRpPj6VAOZ_VQKr_! zI&IqQaUO9z^yp5S`2bLi25^&g{8FxHzx*9$sg$$)cu+B<88TjlRV*_I@k;=b(x|?Y z`-n0~_gqTK5E$VX-lFL_nkpiGy={SB;aTGD-3rb?evF;3uVL&f{E8VK{=Gsrw&CT< z){YMoGcY_NEb!VMbP_MSFk+JJi%5U&zLxhOFekfnQvrD4Z z%lRY{ShVNY#pQJ!+eNTEvM__R`Z$Dj^u}nTeX}k2R#(Lg_MbPXTARo0oVPyy*%zm> z*abR?gDkdj!HPbNIf8JitO;xmVwVO=oE`{WX`i5zGIq+kUE*Q$Dq%LsF$v~y?z8C> zwuLk&^uU<9@}4I|$YKfV5k%xbe(FcG~8CndJ|Z~+6C&1B4FbIf21D~U=-Wp zZ^PcqgO}TX$o2dt+v#FQ%Dc=0cpkQ>GIyF(;TgcH-ED@`kW7*OUvIv!eE{n7|Nilk zhd(|a=NNHqFb-;IYRVOr1_au{X`9i*D`01BWU_1H#)Mj<{ofkgr+fr-k|j{`Mn6zM)7 zZM;)Nr~5lQ2esHi@Xj;iX3b>Z({@EJ1xV?zfy00qh+Xo{^KVJMLA6CYh61%HFyq50 z+6SuK@RVk!R||0cYoljhcT9)p_-s>V!D%h9QLwT3Y7caf))Py2Y@`2+nzgtfh+5>l zPMj~ZJmdEeBT&Km92(G`nGM`4*Q9Ke&laEhR9~PMTcQ7Xs^b3>Wdg+twD~pSYt3A> z*wyX}^ajE&KRV(;%4f2`WHQcORgU)xShRfvmiEpgL@qu%glY(wwijEc?WK#yM+ zOX`F2_;UY~-6XLU=nv6XZQ6E#XUm5(2pV)?Oop!Y2Z^G@%5|~<|6RZJopk9U#vOcC zdtK&+UJj?J7LXex0J*_{Srs2>H|nM(MOu_G)JvDxIy8>-zO3*>7&kB7tpr^?@(zT0 z;-wqx6Ub1XZ2g=K1@k9r!AaMeLqTMkP@C6tUDz`fms%joT9LJ~`8h#^my4azzg&bf zUqrC=Hury4^Ic_-z^!h14W_!7KOJvP$ur4*rkRs?2#$FkkbP9; zVTqExbL`G@vY%L6fZpWwNT=XZK6&xUu_|0BM0dD>_ zRis>Fxx(#V{sDeD5wCfHSHC}DGRwIZvC+gl_&Hn31sZ@R+O$Rn--*?VgI~R85)izX z=dJGQ%$$f1?uj5kASCEn$*6BFxbh^El<>_zsdqHbxT*I4`UB`s`db+!26QHTd@%e* zKU%XToNk-uq!JvK`h=DZC_*}Zb;Xn(ucm-%*L6jhF=(3ya1FS2mOLOmQS?#@@gVVl z2(0_qF)NEEe83g;vNO&;cL``InImxhu$*1a6Ix=F&?3LUG$N+ zaKh*v$ZzbEx|dm?qW(NIsC9o6O07NwmJ|a}!}tM*ym+jJsIos~-~B5Jwc~pAd2n@- z2OlRtI`zXC2T`QLDZ3=Gp=T1F7Z0CwW$z;qq%cNNvb00Qvj1s6pl>`0tn`~NLQ@3F zgy0fiWeKF$(MD+ELcJY(_$z^`myOcnn~|RoonsG$6pvmoJ02(26?U}pj>&u%O(qur zNL!G%@sgkZED?y}KB=jn%rC& zZXHTls)i7oRiR8i5a3|B9P>*!0LVp$6gd3qv~2pQ1yZs+3wx-Bc$DF#5s8?${G<pY=Rjgos?QD_Oo{l==FgqhmH$1Dm)+iKVC!&I0aT;#U%O^{ z+(c#{*ZB?d+gRqoVoe8}Jk!1`EUgADc3;5U1E?vIh zju0+NLMu>?oDPC_Mwae{-eR_PO*nRO+m`h^W;vkSu#dV%k{uEF)~&6I39(Xg{g!@v zZg|6m6tZxDSd8n{1{y9Y`qeXWpaI`8yfm9}>!wsF9l?E)=xWmTr0OOgviWU9@b;34$(gK}mP@*1lS&(6kveWNw^#K-ZYKk9iX3*RJ_fVs3lj-Z^fTTFpHm5Gh_zJN3`QR5*`F1q^m}BhXd&8Xm9ey^ zOo9E8tmYc<@*Qh_c0a!RoCoNX1g%INd!Vnri@=PVimLoeOwKsQ0OREn&}JJCxjO`c zDa|a|68jm*-NnrPqn80T&!reL00OkXAjaY$bGi_Z?%&iGp?iE z?1+m3;P=({a%0_FW)6J>2*#n+{^a;1Zc1gF(*o-mNNUt5@r~e>jvvr_#?P;k0J5r8 zc+k3hYeuKiL)-YNVQa|tCIu$UrWCk^?w%t2jnj@aCSt@DhRO%IprPw21A`PZ#mXUL zpu_F~_I=H$P`#bkS$1VyE_s~QxXCQ%v{UrmU}u9TCB#i68J?sE^3rVjL5%z;OKu)0 zi43_Wz1U7GxIv@ld!7(w#*Sz$JORq*f?0z`Y(lrebkS`SFLirfmu;*I&u**3;5zs0+7k5MJAdC;lgLt8=U^NX(1IJsdSxj-{Mj+Y z$A-xGi+Dg~AeaQ@C0gH3k~VajX=N&|H@7w4$3UR4 zpTCx`WNji*DrpfaAxpgW5QN(-mGmpStAkFv0F zLZA{#mfFGj;y=+WDZY^;gG^tWC`D)%3 zA*{PFBWQ=0oo+2UKBjjJC&c&a416dw_>osZQq8QU``?g zPOtQLtOEyRHE9zoOx0IuZwGy6PmnrlZN#vB-Pv}M=UXlm1L9xnPeSvgbC?lT#%;I{ z0ao)L{$>NKurQMLD`U`oA0(8dEbZCH0nDlq;Zv7ZNTLqeodd!>##oq`3L~!SOLUx z!)bn8$3GC<#3*Vf{IL3a6HtYVPxno1Q>`1Ix=^6Vg#5ue!Y9;7(`$`fAcC~&e8zzC zkJh;NGCxoQFXADiK@k6A>aE+rk2GhxcpH4Ry-x1&_mabUE(Ih=*75^Wp<%u-U!%3h zbiI7cK#DWuZEhm`DC0r5E-EJVh8tSc3TBXK6MIIBa&|nK9n8D;9uy;X+Xb<4i!)+- zptE?S2+!|`g}=GQgNEwwnmJL)cy~u3GO83Ps0BJ;(67uJ?zeY%S@800Qvqv6gHK_k|4i+J!A|#k@6VnHQCGpa3DR>$U|v6_c7b*9 zXhf;^U=jGa2&HWKNq6ZP@Z==+!3|CdjB*vgGJnvl2G8IJ{42(i+4J@lpmSyCCkGJb)wVJTEXNX zoAR{PD1@aLpga4%D_Z4ZZ+7VC^*%&z?D14&B{zWHZ>N8VUsAh&W?EVNkC;FDolLj! zSWg2sy%EZj{8a>2&--9`pK_@*iNX@GQ_p|J^V#Ja^GHD$ZC_Vs956qwX9F-Ra+e$5 z@iqq%Vn28z{-fzIb-vMdr;*qDoz8_O8+EQH*lcQ0X$R;AK3nl<^4tpq!MdO&ny?T18n}fE$aC0@Y*8PRclN(gtZ&RW-(>m zcwuk@cJxMp>E??JB!u)jg#Y^4lhm;Y5pkHffFMVjiA;BUTKbD zwZS+)ibbw<%-_I`H=o?sQn$S7xsGr;*}?t?>2O}h|Hu5xwo<1<#U<8IrwvZ3eYNJs zF~|@t6kHM-veaAe9=rgg{@Oo+a`QY{rnolOVYDTTsOY|AD32KLXU#DJ&WZqs&>ng# z!^Rh7eeMi9XVcgkSLD6mj_h`w)>e~)#qo6!BYOXnno{q)w4j6YtTY9Vs)NGGcI<9}(=PRM@i|2^zH z*~;WEio#GB_CbO2LHO%!7o`$wt!Lo*FYWWvFSOvkGz7<)zZXA?7Lp*LE3!vc#%?wM zM{i@$)4CUk?!swqOo>u;V6&Qw)4=s9FE%K<$fot*l*C8S?_ zr(TJHrQ|4 zPu>TE)=818=`(_jJ4sm&5;#j%3w3h17CL3ENhaN7de>SvyN-zn7c=sJC3|tX6WLtd zSYYR%V+c&4c?G1UJ5nTTE8PU#J07Bb#($naT++`+f5Cuz90Zk>uL?nzi^E*Zr!=@H zXw3=O*n0zDSZ0m>Gl4xN}HT9JWF0TUC=H2ik9+>@*eNM$UxrZGQ%CSq%U*w(8s*rKW-LNva$^ z|06Db{{ReXPd+#Fj@Sp5o|7%2UQV96N9-Z<&~803EDMgMt;GS3H9(w;31Ro!WvwyM zTJus=_3h0XfTE9MsvPIIZ+3tBZrvX7r$|GsTfmfcagd)^7rx;%1ip67p~%LkR14bZ zPkAmAIMKPjUF<;qKeFCC9?q`q8XhIldrKlp7`+p{M)WR3XM$Xa5-m!!kszW6(TNr< zdMC)pFhTShH4H)YAmY5tVGvS(1 zTfDKcYT=93L4SD|MAeZeK_*~eVi#IoN^69YaKdS@cC!B1W<5K*B{ z_MZ|tlaM^VafO=;o)p$j+|}8&5^OhfGAj&MWk}~ge*N6PQMw>!Nq_jZ>kF;n+rvh3 z6GT_HuS&+p->rJl@ja5bD<#{dci>XM>@r0;WtSH0^fYqoVPtSyhsVL(>V7hkiO3S^ zG`b&bkBnP#-q_a?!BiY;N5RP7mRQly>N*`Hd)1rWB!xbQnTt_}c6MNIzxg3ku8CQ| z7#wbFn2$3NIEJFWewE;oM{=kAW?dU}-FX@9q`mpH=cqcB3@U$~n(7?rf1zsKmwn>w zVDEG#35R{}QVgklva*)-#ZH_HV}>u7vTFCyqGv1yC!Vf|$3EF_&q}bzF}%5cZZiZ9 z|GbOqJ@1Bg*;`C zJdRm72DQ1{?XD}AlPoc2{1!D@r8F^w4H&#~_9DiSGhNgcLxQ?C9e$F61ZVa@d)-H1 z2FBZixuBK!VaG|Lv5yLMi~=N2zHH_z0f#p4O@Sd80uJeP;9zBZwTfo-r$$ z8>x#=ZE)qD)HU0XrU2MeBqzpN{_-xZE<%)-(e0i@dOWv3ykz2_%Hq?Fd-X%8>1k>2 z!d76MpG`jo%3^lG9O$>_k?@bjw|+?Z&F>miW!|-K5=GnO>oU0VhIugrx$TqE_Z5I6 zsJq4=d|4vF-6ma5dcnY`=uYudkcgg-gj)KxdZnupNkNj|vyUx~pqBer)HH+Hpm#IF zH@gQldShB=CbfTo!}nf68KRr&9N3SA@X~e`D`&HRWC_O%L_$}m2`+Zk8#1vwJ!ePJ zAwe-liHgPIT4+t$!YunbRCL9d2r}gn+7~9!EEZ>tuXv2AJ{c7+I*j1JrrI89rLg{x zhP|@0KZhNz0QX3Q5CYFIF6}{E?k{Wa<^Mzkc>U=T?I>rk{KwwD;8wgBaAhJBG*hxN z5jz1VNx{u=g=|Coz;GU6IYF9qF}&{E`P1wCz>Gel7|9AFF7~07g%~?mrxPyfvuqb` znZ3di4)J?uhOWdOf7^FNUJz^( z236ei0C~^>rt=zH{svi3Vh`#&PUlsFw{fJhGm(?^#9Vx?5DgX>4^i$$qU-3eD(_IE zb&4Un9-3gEYJ3;ceQsRC-Hh82Wc;{QB%b z;C{v>5ixY{S--fFlQ)k+Tb;u_`6Jyn`or~U>AE}@#)^bhXfqVAwgzh8N#n~_*FwH> zOp9fu(9W&Vu@fnII|eKg1Z+@*iH^_P4Of%XH>s}UH!g+Dw|Deni1?Y!O|k+NP!ZyU zM5kVuL^ z&#~2*)yi$BFQ^}_pPrqB|I>^wS^eZ5S6`E~T(3y}lDN1(AmVsw-eqeIYKLkGGCWKT zH6#v^|LOrciGk*LGDr)D5ERKBKfxMd;mg7-1liUy1k*L?sgDLa_7REif`1l>6JcJP zjdVokuLOp;ZywTP$;5UbTZ^|k@$s!An1hsjXjRf%=3hs(v4n>;Sh%2B&j$suuY~bb zRMGZu#}$^w!DK=d6HZ;Z>45H{TGyGr@)P~HojJ+&f2gryPTOu)iruupPHl6TXcg}} z?$Kmhc@bj9pZZ^DRF9m`9w)tOv+kI9J$7K~pd+}P5W=j|wFFA z(B~gl{FX7@^oR1mib)>s6bYTR6H5mU>TPq}IP|I)g|it&LiP5mS9d@R=qf@Nswr@H zU8r_A<;^C)+D}xr_$t5^B#(N*Dg}~M!#sF!1Z?IRVI{|19=auK{K!WsYmeQzsIieU zl0rK)*b}f+;-~@YPZ`_#LUrdTqz92$;&2Q6mc^he3JMQ%MyUG#`f)%X;tiZ>JhcqA z>afjFYSzNkQneg@pLgE)R)30@WR{0Yy3yB4`GVdWEs#sw=IcdOmO9BR%xHifR9lqT zrDr89ufZQnzjNEdk4FLy}wf&@e`l_xXuoJD))N8x~5 zK)E4)F9R;tq>N$sk&Dt6@wx)d6B?Y`t<@BZhat#=KJ^X0$IZHEroAu>n)7a6o`2(L zjRmooq%cPD(zf112FbyGjUHlFnM)Z;)4W)|w)%5Q!l0Na=!|&yWKRW_l<{UZYV%y5 zrqCEoB;#A=$>F8*1U%|>w!+%i&X|WXzXx(ZhJ3ASwd6O6kI%#bGb-AtF6(=sxFUq@ z+b|ro<1~+ZoC|czW%}?VO9@X=;*e*lFctU2TPWh$echvHC8`!40Sw!dI6hWpy17^s zm4#w=VmPb_`9d6Sm>;6$(w7yQ!(ZY0#n&|_$oQm-u}fOA(W zycD5~Si)@KlvvBF@t+n)qjIE3OgnN#W&Xl;LXPN1iOcB}YX;Ki2g_fzKD?X^fJ4;% z=<5`NDOKw2JnW;vmXgtvhxV5#AdM!SVZv8u`VES|F(Ei=;FZrmZlR10+40RKyv5Cc zQ->UXO=VrwP05t1S73gU4f678dhpab6843`x%2~V>gE|;_vnYP$cW^ZP!0gQyDDCC zAP>+AS7G5UoNohBh>|G=*8ck)^VP&Ahb#RA4UUmOv#P_=>vI!XqgT%f*^snD0jA!tn3%5w9 zueWa1iHLnkYqf`)NdGN&r(DnUZ9>Zp4|Uq^w|_W4IdaGUP{p@2dO;FSKJniDlQn)Y zySJ#{Nw*G^8|ysfoJyCQn8ZQl(cu=*&d9?czE-SH3O?9HgnQ~5NRZ$8k}$$wws_r2 zPZwFVeaAnX&dWu?@gkMaHd#I|)6@8zLRcFiLhWf08?Bep_hNXeqG+%xm61@f%+&?Z zCk0n+0?yrj;ht0wS%IQYlLSA1x-o_TSWBRdR!8gFZ`uldjWeYiYxhnnc$sh#xe1L~ zxb~!r6p*mtqV6Yl>GoJME!mD5Phjb~4uT~B9Ggz$z{H`w&V)bY?rv9b65}RreRyKX zMG=dz>VI3J)kFLiJf`|@fel2cmiNa(N9#!oLNwfAXrk~Prk@YI&!L=fHhKbMl;>l#Jfl!Ta5WKtxdrc}o`4`L+=3NJ=HxD8d$f5mHCNRzGOnbW+qdSqbU?D2>!*kbWbw*8G(#ZqFeGw})h~u?iJR?_EQz@nJfCTp)aZVQ-xOvO*eu zoMYZY4jj^X*#5!Kesu%jWo8!(7JIf0iLW+n)>D3IDU|=>!F#lwFbfo^AU((FJxiXl z!3;W!4Z`rg@*+j~i)}}UxbV|BZI3xt zBm^r2!=cQ%$k>pY9=|y;T@LqTPH5ZWZ+g&RM=bc?@E!bVogX#oqIhDAPzKq+P|wL@ z`pQdgWoAzaVr1n-7g9#PEkU=2!kUHcpm$=DPCZ?7Uch1T7I4_xJtReU8)d<&At;3! z&yzvLeGC>XB!D;1X>1i|fElf?A_1M*!?o~xWj8QywD`_nx+{b=pnptAClh8y_>{h5 zI5f2HjNLZzaig7k$-ot}BGORIBlW5HhLaw`EdQ?3*QE$eB***zcWK+-Kh{~4_ z_;w^Rvn<@q7aCg$l6)JS(BX|_{)&y09I@z(glRrp{FE=h6&5Ro4 zugwkod8F@3!$Ofpsa0X&K!zhEan-9(61JOl z@g(8kU^5eK5bNV@I#5Es5H{|Zq51IvUqZmRfK`sf&p+9f4wX-ABl?|4pf0*LVq4bg z)YvLZsFlMSQIb;Ta8&!(yiUg$qfgaw3mh0rOnnsW{__-cMS|tx2NI@FCc~HGIyAjU+%j0t9f2 zm|a<#JIH05MXdZ=P@P1Gz?n)ID=1=_OmfE|fEKtB8GqpH7fLzxef`iXo5ctrh^48r zZ9yT?4 z`;C@;zNhS^k)elf)r-_Y(H>SrDYq_H^!f>&IeU-Z4dH=NJP|`Ei-uk(57*jC`J4)o zmg>7Q{-^G)?ZaL;!K{1)M3Bm!sNZN3f6d@HPRuJt5}c0chsBpe8hgOwVhgmcEu>I=2hIwVNCtKVd6{|3v{w900D$)9yF%bE98>a)aet=Z z`3nbj_0;^GDY8*Fmo1^ec6H&`Mc6ZB2`OPDo{k(}CP^Ab_^E(=j>7+!#PKxaxL7qew?1gqcJ2)S~dNk2zLKXH2 z^6ZdqUHsmJ6!whOSZMXydu@;pHR-2}s+YCz-R#n=MLCV0S`)soLQ;8 zm(XCC4yDphStWfyhgE>_as2uqT|VT0$o48#zj!%=?XGe!a<0%^PwE9ce?aKf-XnZ= zx5A(rM@rbUa_#U!DUv#sBSl$`kMw00Z&-$|8KTmtWB zF-Duv9RRrh9A*-;qt#Z|#)21Gh7#?*uf>UdwKa)5!R|IBH+mY2{@ZBt{s3nK^;U`# zbM;O5!;+KxyEHw~ufq}YyP3e*6UwO_D(y=!O5w#3#+ElGNu<#ST`LWUG{-%eJ7gmqRy@^bYeWMnNc`QoIpLwdO8HhtHJ@e*3jxxlWmf7KFj2C#o^XCur z0nb_Yp$ls1q}4v`nHldy3{bo5f-Z0=#LyASp_Y%0-e(ZXj$uzxU=u^uF~3lFiKB_3 zs*@aPsH73w2a|xzQqY=sf=$z@Y;%^SHIF-Xn_s}QI###U>cYV2uv`Fpru+;B4MJaT zKuT$Fa(z*iiMZCa4}1-CxC&2Sx8{vcvr;p`Bv8Mr&cer6jXP$@(d?6?=As84d?3uP zLr>8=`LfofjM({}X%1D(#rSY7d?7HShGTwYT!3IA=|Ln}A<%6eJz>tbY=@(|V|pL2 zCJk0fd)a%<4d`u?iXach$E3;kDR=+Tc3#_s-F5oI+Xq1h`{#^%Hop+$X`_2~s=VD> zsDYN2-Z{WA`$R%%d|O;4@*jg3-wJ$?5y! z9pNq4jH^Bvk>M*RHDtzQO_7je9dRCwI{bmHT5|*ER1L*e;YuG=_DD%J}gZdvAS?xqbhnX{1Pqgvh zdkR>@S3qjhKndlm>M5&n^ln|hX+buD6k6K>Lubq)6KPnvH{XJ>ZZfwhv_UnSG8yES zEBvA(y-+s%T2ofgZywBay0+7{rNSrMe>Z!j>z_s*wza1U{Amr5P-}G;Ey0_ccJ-on z8Y5wP`Cj(kMBFxC8fpGWg&(g%R8}rFepJzT0RSsVJIic<9G!bLm;OR(AFJzpTFKQK z*sqoT-z>lpE%x~8OfS)Ub49rC0f{#7bG^2pgpS*Qg5rka4&q2<^VPV0sOPL6CuzS3 zEH{jLW%-{i9192_+O*(JK8yHRGj2SGq+3qqvAAUaIjFvN_yj0nd(QD?miT2Yna05u zSN$u7@zK@+js=c_Nm8H$mfJjwf-d%c+j<%aQMmN5OSM7^oHC|-RxclZ`L|`OwIF7& z8^|RN#XiE}E5UrykaKs8eL6e+334Jb-upbl<(VM!E&IMMia6ue>pCzueKlyYQrYsC z0bWwx%ikU&&Y7^7<+1O3^}5FheyIy{iiDF7ft8?-Z}>Du%jBZdUp9hO%(71zUd6o< zR-|SFZneGHfF5N=@n_G!+|k3&?1dI97TvBgR+toKu&LB5dE2?l-|~_JU=arc2u5s{ zEj*K00TvQQ79B-a&(Ls8MWO`M0XA#2?izOt1cs#fD}Y9u)IOzbT($+u22~eDL5;w> zUW(yKoHl%UhxYDS@OY&1s3+!_5ZC$OpO!craqjM|bD)4|q|)rOg~7e2NT9+2E7%r^ z5H~sDe#Nw_iIo;pK}I$04~a=$8&)J^{Q;KmC<*H<>SvOKfx}e~51gL9|Ast$PQypC zl6~%}N&DnWAh>M)>(de29P|NVIWURF<$QU)0RHMH4OES!C}dlbwq! zGgNBmIHWGrSa=JE@}*x!_o{kjTcJ%ZujJi49}<7BcjWL%>kW^j#`k<4Qf&lZXmzm* z-){~(yxSfHTh8RPLF;P9+-^PfT+>U`ZplMA`w;DW-aZ@Il?7$x9~GybwBnanfKAT#xC59lv80eRV#7KWGJeNVN^*h3`@^|e4h38Kr zykemy!!J&*Bi%NUNHsKNlz#Mb|cz(SkI={ zK|tCZZ8Ay$R1#Wf;WEH*O#`n=Ng|;w?MutuOy+iuYEMt!>i~JDwCPd%&^q6+|4O25 zF#`WZ;#w~`F9oHqJev6_?j|I---`?%X|ZPe#Pa^hm+%#eW6>(glHBC-p4d-$cRn6m z;4^vZJpBnz0kPQhN8+p|U)>M?#}FhMogDNga>F?55g4z0b$R4gK>yPyak;}o0|Oe< zkho4&)fG}HF_q;Z^G6dOB<7qR=~fcM^CfqdQ+nUr+mFdz;hBC6`T&R2x4r|8T#e*- z&!F4P4o;7~SGK%Ejm`aWAv-Kc!t`?iG~_&w&TO=Up(uCckANh?2X4&EFcY|n}B>AD^_#=hF# zyTLJ@6N9&c+9jq+V!g9d9QS927~qRyZFD3!j+SU?ot9}s(3u&?x7)rF^e91pYt!|o zPWX-QFYdQspr5G(E73&h5_ko&)#|f&8Gou?!qV-~B&vv*72?ir4+?$?tH|D^PyloQqD!M8u?Fw|d1Z zsUl$ViFXX|Hw2Dn9+2Fl;ms)gJ^=;YDpH2wmj9x#N7GZ`FDUaX$&}eKQfNT_@;vmd zW}nDiZ~elhXhC_iHIDmWKz{mGFDVhvjp5|7DLQ!>73Uy=7qSq&^s%=EJ` zQ`XWEl4L@R8Mk6z?E0J&4}%`?tQtQjhNcrI2w}1~ zn&xf(7mV5VKWAJr4;=y;?C1yP)l;i7^g&^gv=q!r>W~_T6gTSAuJ}cQo2Bs?Wj1x{ zKqqw%B#M1OjiL^J4(9@=`|Isz1D?x=-)pL{&QAkShH$X@*CdJQtSRWP;ODI57MDlR zrnVx;rxKo)`%4Snj1A=Tkdp>-)WrX;p2*?IuRv2~t zAi=cB)x<73dVXY3B=6C|pUdc^!vQ2+$=$lQMi1*Vi2s>g7{GV5zt8O(eC=O0Uav0R zTy^(TvumRy*KUU%FnIjd;w-j2g2-^s+o1}Y&yfex2EYBJ9x6A|c%WHX7(mfl)aLmIB;-`1eRCSNF)paP6@+`-|Vo*{*|N@lnz zhK7DfFK+>)Jt4Ji^}4cqYfxiJoe4ua10?o`K4_rJ=y6p~9K1AVD;!VyPFIA|taAwK zs`0%NMqYUEYWYbe^i*==y@_k5?G7h)uA*cFJ_e~^h7%iyk9tljNI-F^0XiH!&ROsU z9KJ?ty`glaV0&w?q(LFZq zO&)_jP=wSglyjVK(WD%$uxW%5Qdx)zy)o}BM!#JmUt=^~zXMpwo%M$dR4v&xL5qJ8 z>zksdQI;b_p5XKFE#uhGXNVLNydnxWM=%D7F2zmJCg-W49|H24&s;eo7YHgGXc{U=(jZt5u_n zI57_I;N(ZE8(*v6MouOTli~z3-!2N#V`Xc9+q-$OyitaS&3$RRf(-jyQbUu_cWl9}rnzA`MkQLoP1^V5Lw7Fn^FE_#p{zP#E5G+P|lVbg6a z4<6>{#lpxbvcNC?bPH!ynjQ5Y$FuEHByX;E2C-vU?D@_CHzdQxs{HNiZ}!}($MF1R zN3;EOQXGf>n;!{Zu5@p#b?nHPeiBT*;w`9G^Jx{x*f1;p2#Vz%)a7gN`7WHIOKIUfX zfZD=mZ$M!to1m>1}cZdp$a!nCE7o$JL-2<6zbV z86RNCun;ABvIMs4abYAgq?c!2jZ-UVKjGkMV-dfEkpn>jqH=%)&EEMUd9~6-s$wDi z%%Wcsk4tc9543cIGb_*q$<&8vhXZ}c%^LG7#D|Hx?hqETKbuNRZo+c&cuw}VDyJ*T z1cUrH+af8NG@b^N;eymoJEx|n-pxMg``B_H(WET*Ejsv2x5S<1jx}0B-KDubtcNo_ z*4s$%+Jg3YS)KpIW@+Km>GdkI4IX63;`!Zme(~+VVb;2_t~c$~u`Zt>x-Zda@b&}r z0s=~C;2$qZhFdJ@jp!kgk&~z7*a1*Lo<{1T_6hGsE6rA)VX5(SXZ(GC_UTgEa&2*F z$@ezxaHq&1Iy*znO?HA_wG0riiu4+r$Em}E6c8c{O43(}bp^9RZePY3z3IvuYSWJUThISd z5hN`8t7h@#ZuneQL7Rcw9U)^=k*@=UyXwzt(hIHk*+!GC(SHWkh@o4&F%d_G@+acS zbc?c`Jv{t`nLbVVI%w;5P7Fw&j~(w-^{y0%Pe-yO3bdZB^(9Ahcg@M(3|}n@Dk5C` zR|=wB@WBP8fX1@}CAQM9^4siAe#C-7(>$BEL?C`mOzbg72%V7xKV2N&t4fC)YDbD| zvdCr)7&DfUFs|oE+j!B+26~##Jb}Duy8;O(bx0?}6uyA2Tph*RCo!o2b`KxmY0#!w4}Pf{c$`Ox^hS z5{IJ8jW^6vGr2Fn!^VwiUQCXJPLjGfdxf&9cUOb9J8$|f{?G`-e5uyQZ*o7!HN--J z^#-bo!?h1%JPRbAs|#s^78G#?I0`V{@$UWn@uX8#6*z4k$cv$rP^D_lulb+gNSL!j zk2U%-R9Sdb-puhy&PFojE5vtAG+&Yu~C3%Rm#J_@!WWrp)Y;yj$-~<} zgTn@0?r|w@*+!!>=Ktf5QRf1}%VOBsdJY+MzHZVCyLUq0iZ^zh+GsquZGO{gj{b)3 zpBxUrdsoi45x`j9ca8W6S6&beYzy$BDjs;NH&cZgeH}9tnivUvbAtVcJUFMI8vh+4 zn-o2Yk81T$w(0<|tBpvFIVt?2ewPH4bT{zhAgcrkHFU$_yA}=3Re($g_L#b@5xoD< z?mgCfoiUr;k}9eHt&2l8PUhg40&J(+(|ti37bwC8Th6^Jc1px zzqVtKccqG#+Xmi~@*IAA2?#ACzh+f|?p`V&?wvBRXxvO2X#x3Cv%>D>%%nB4k1o%i z#ti?XA(bH9*oX~C1yOeyuZ;_-Mt`1rU6+M_Ra(ZU|52BBPNY*z(aFc`i*PY$uyxXdtoP37OyV zB3R~j{_140VS?Iqo8L;k(8CPk7aQD`wAsk-XRpQ|>uRmAS5rbU-XrPOylDFR5&=Yp zik>8=g0>rQbm?fGzVTRaIPX;CCHFAa&C31zV|RN=kr?3y7X0k*h$L-~fr~KUo!kGQ z<~f5^swpCa%q=ogkuk~D!t^!xXEY^)+a zdNS~0gtX(9_m_L(#$P3;fmMfd%+P>Dfg2LdMo9xlJwtVn2SqJpr$N9*RtgGq-t!Hk z3C@jOp2cLJ9pM1GH~f{vn58?i*6S}f2LJky3CKo?-}(TL*301j!^TGJe;B1m5qh*v zG7~V~ZEuJ!rKicANptCAcXmg`=G$ls29CSM|6(&C=e&XSL)z}EZrJBkPz4=csY$yc zaP0dC2NQB)#%|?K%WCW{7|u3N%bzi*A+*tJ8sJbo@%zD|wIN6uh{`r${#PEpEZB)Au|Bl!fNTbj0?9kf|SZ{2aDnJ?CEh%z>Eqh+7l zg~}ZKTU*o~Tu2jS3RHa9GQ2d*BoyV3cv07A?yA1UM)Aq_>UKiE?$g3A<-WBsdF`QY z|AN?LARc=t;`Luh6hE$rk-c+RrEfnr*_a0!n9xQ4@xs(KcP3hD%MR5 zVy`mHmV5mTr32%F!)*6FR;T@bxDrU>SE9=-CuHX`8zedZWyM9t%wPuW+?%rKh{lHs zazXe7LhyW?V%1_EO2j_ct5}>d$D{vfx;><%jDm@)aJ$TtuE`8Fk$b%^5icAEY0gk;NfVcr+XL+erQUy z3EJ2HNefqALI+^@dxS;E0-q&Hg7&+z$84>??*TXAgknLpF_LZUd=tn>04=6{Gw#tB z4@_c_5sxn7Q(^Pa3FrN>K|V?yf_X1_mB_|>WSb|m$Rb^knmUm22{|+*<)|w0ZeqYy znJW%6E51GV`Z;WhcF(*L2@BER?GF7cMr`GYgtYeiOG<*JX8#2& zt%bI7?cO8Sji$~;a-`M8&KYr7m@L-Hzbt=k&L*C0jj~&CeThlf{3gwl0S~CX&MiT7j zni@tgi5;#xFYdUlrv3>XQcO)Oy7>^yW;oZ*WZYb9S0S0@glFW0 zyAfVFE2ZX41NharS&oJ2?;IE*@0@mCF)muHCxFY%6?u0VVy{jPQ&d)B{j?Jsym4gy{Q@^uv`easIt?ICVzsV7cB+2fCfB z3}@>iR4e|on#lx)sm8XhfQ+((O?lTTu*zUM&b+<~uKW;aV>nhv=1pnYbIwO=6p^d> zceN~ZcX(3>U~6-`>h!Mag<8DL+qReX{sDX>0;(&}SU@k!jC-K|E2em0y|Julm~ zlRj=eBpoi>I)X;@8}MW3V%?*|4VdYgxWF~P;E>Ui#xk~77wPXNl(cSjr6!RZB1dKK znvg*^`RX{Zq30WLh$4Yk+td-CGbxZmU`Op=EZo@<1rjS1#P)_ZAQiux*%GO?$nkkF{aiIQmemFy&+wEg>Dj^VE!fiKl1p!d#rraRTBt9n|j&eqen(vNBgUG{ev!+IVIR{!m2 z{2YYG1~8t$?Bs?7Zc=Bd0oTHXms?Gs;k|Ft#J~H3@v-4~l$KMo+_^IDg{8a0jfl<{ z-ga9&ch!T0!}MGSPl<7Dq1d=hHb+68*eL(gQG7O}q2eRJlGwCwS2nC8d)PkkVbxj$ zBXQYkW`|gRwKvSE;7%^QIc9VVvkFc?hJlCUnv+>KPgO&W&JeBIDw`KhhNw`%~ zxhYUMC$W=YJUA_0n1&pTRkN{qAY`S6*=v-J@KHs-u!woR1gv{Ue0F5TioJmZo)53# zG02=X%9dQ%>~rQpyPSnp#7kWE$xUR!Au$MK6D879Qs`DM9Y6-8y~jiJWZSg~TTuZ# ze1wEwni+SbKrzfY2d>dWRsXj;QDuqV6rKc9ZTYNWv8k_T3)s_8tv;H+j}4%0$z7C2 zw;v9;7l$}a==YZMV!Z5>;V&=NUF5~&Nyd(%ae0;bq99)|@0!Li7_OLSP zKBO}S99|2_=$_2b9;%UjBtlZgxc>P^uYtOCZ+1oPgQxPVQoe^k;+vEnoA~iYRvb&J ztNCKk!MT3!K)qa>|L!+Iq=;g#Y|k_6NM%XJj(24wu68eNkjmAQ2f-}|r_bNF;^`@N zzC^M#XZ}9~`eapE3Sb7gkOa6W5CB(f)7^NHpWG7(OP5bU9UK!;0KGsOtufj2L$t7kXiq(Scv&Y@L}x zp1{UETDeyWPy?^Nu3YVhM~9)ja5mX8#jS3EzbXfW&F*X3S1tmH8z!Y>5gFdk z)+rJkf3nh8qnTw1Zdm;fboX6Dcm8)D+=`M$YVu^Ff7+L?8D?fMOeQbAc*dvwDs%)or?s$XArsJ~GXLS*ybhm`s}HPJY3apXbAH7)pb0 zWo8;|fYQ3D28e3o2Y)h-Ef!ZZxiKE~TTxJn!7GpTt7FxmvRGVSFwY%)gG8) zn{_IL)J0skcR!_qE&I%hY)1)yQ@<9*d!i#KhM|0FtB0b}bE?DHjteC?bcMA5IASca00#l5o- ze_o1e%{C+FZSwzG!!(sUJ9Px`Zviut^N!tCyz=C(_VefJEE8cXXgDmm8WOwXcV3pT zhA8XXXIVs8e0b)@%z(vP8YjWY^nV}#fmGq5VZL0*MhU-mwIO9ItNE86E~_q|BBa42 zbx+O{eG`C(Q13_qZ3JTgcV)ODivld-MXDjsmi?{`@nr-IB5m3e%F z)_z15B!a_NDu7&Grg`ZULya_T<0TG}UZ_ru{s}&EiZM^395Gd_W~-B2PB6t_0>3 z66+I3R^zUFHi8@3UF|TGc`x*dns+K6!w4fVPZn@`@Z|N8z$1C&^1YtxjdJ{FS>qS< z?V1GWLIB>>t8D(nlX|n?Rk{s`fnpL2GzSCF!lC%=%%;{9DbY{P9?;@^#Wnl&!FZUg zit4CwUdNRY8>Sl3s5xlGY&woX;&54n#j0Mt1+bOkgn-Szkx4sJ1N3s_Uq7^s3VB1D z&PYy2j%#;JSNJd$@Cr)gfdZFykl^#LHCV$*2$SR5I&)~O7&)IL*JpEYr11! z;7Q>-IR|YC)Yjz&bJ;Z55T9zm*TLONZtLn_)!>9fPJ$Jbz5#mldCO(|?y`JEBrL7t zp(x=+n`j7ytH@|eb1fnL4d4A*$JR1iOJWy2iax(w9y}*1TpUg>+>}Lf(^lhpjwJl9 zhdzE?FEnecQhZ68!f~dR@l&!8&69yUCWG(g3g>MRh}VzxXtwzpbP<64ADLO;Zv1j8 zy&V+*7AhB;p5Oe~#&s@*Hmsu;r42yU;U#$Ow%uj<&z}_+o z)QT77tR8JsxKq?xc(~GGMHzfDuUu_AvG*@-^3}k&kjpEf*w1FIXU`wrNg@siCXEO5 zTihf5=vfy~h?@NBvsy?2 z{al3_{C+&Q0S3i95Th?8B{&v0yt9MYJvd%=bI`08ivzgR2M%iiH9j#(!G_f9>}$D= zFmu;KU%dcIw$<~kFWX@)Ie-tCO}amuA@NLWwT2j)(Pc|mMvd*4J;z^WaMRK&1xL+c z7j_^MqO;zPe{yCnX5q{Iw|OTXkwDckm#viXZ&vfK`}H?qs1MX26Fbuhzlu_X0N4@h3eo_85eX zhyLe&GLxt%br2$Ys65?u38dKhs0|0Z7SqO_IlgX*>`k*l^KAPTqgv0}-**R#JU1g% zM6}n4rl24nfg`UR3Nj3#)iT}b)SMTscuX`X)h|QtrN<2Ge z&%E_I^79v=xg%i<2i08*l+4Pt1^^>v0r2@|&XwEm7zX_WUd;4V)&YfN1d3o`Y~7#=_54shtdR>T?YCeO?7lp0-O%^J4UJH&75o%`$e3xjy;14 z&HKZp5W>xf*IBkp$YJrO(F@S9?a zKND&`F*sn8PN$&^9i%lec^B#}579ft9nscu1`3To>jqdHLax4_n;1&k@j<4r ze}>e>PVd5u9W&)pP94E@;+XxWt*ogrFDK*iDG8(dYcEte*F@_BPv9I{HZ8C4$x24&bniQR~X z8Lpf}1ufnSL^YIPbA-6>6eSI|gbR+WF{& zuaC)l=iMtW$cC>=>+ij$leB-3s-7jwUvIU3lzOd}=r>;xo_a{5A*6%N028{#;-P~$7hgy!O{vc-k=oE1Bl$kb z^|V(uL&Y0F{MSDN!e;PalzwI$37yu{S^OEGcn+c3v23Qp>PA#!{r=(BINy8PZU;jM zOuqXwo_XqSaP0J9AxOTv!O@ZqwCiREIG<;ap@SKOV=oKrK9yNQF1<>+xtzZ_oVJ@< zhirz=;if09aF3M%CFkD1`BE(#JD_%(2RroeVkXbdfBvQppk(D{!Y;X8wTW$g?@6V1 zt@1U1J&mjh!HU8KA~L*QK9SSJ1G1%clAR7!0X-?5vFw0`6Vn8+BrHoVjnV3m1c*k~ zvifc=<7zZdlGlrG!3FguXrdQD$IV2w(6f_nweVY=H->;V+H20x{~bl}EoTZQcw+G>X%$AB0XO@z2Kl5gKh;9|e;8-{Pu1InnY zus^1sBgD(ILkD}2ya42aw_9CItzyZkKK1rcJt0hWDFXp%wJl*ZnQOB`4JvzkFBqT$~r$qjye{SKy?DCD3uZ3_A8#MJQ(@edv%f_jZM|+Sog9cldKmr zpLgoT2^$My-rKA_8No7*1HD;BMm5)5jXfr;`9) zoP>4Ba<;7GT66ovcMt{S`u}B?J#Zj16M7NMPe7HGu?6)sF4t<-bO~IL5PeQDq#bUW zx4xmsBDDMr5Z2M%Ky^34jCO%eroA_`Ld$z{BA`{=Z?NBws33aMcz<8Ryd~6q4 zyCT5k>(pSYCD@QwilJLXs zGAEZaD&?;(;^H&Rqi+CWIgzkED%(QjX{O^|1c@3MnVWf{!m12_E~htqR~g}(100$0 zH}ep#oT(j74{VH*7_iFj%R7`Vth}0jY1;3pwDf|mYYHkl)e zgm~uToX%Jcc${~|ME@=-lU`VsjtHhltu7zc+6PP+Ve0`p^2g%DLvKCb`lT%&bng5O zC=T`iarG8#QATUH@DNHj2udR%N~&}WNH>bo9n#%7bcb{bDiTVAba!`mcMUzjF!Q~- z_deG--#?gG>xsKotpFoK4OD~wKXiwD2ZSi){tcl1*h~!aUT9E;xkKBvk+0Rgbdo1F z@DpREcTD&YEvhyoY16oG_-9|RpqTz(^skRoks%y>`Ook8*qE3u55^fBxW_^=5yIa+ zri8J~{rjTr>u@&Sz$3b%L1a|Qj}ErotFqw~Wa6V7_3#F5o>!HC>0Jkp!J$blmgdV_h2Sf|eFulkUFRlIhve+D6T0u?MkYbcE)2Fl?a|K!J9Zj00ac>mMM+F`dh#H(A0QdK%iVW0!o;thox@N|S zg#fLV;g<|?WTE$N${iIUDv<%IIS1O3~a zBMWzI@hJZ=DY$9BfKV>> zzgx?gW3{!Gqefj&;r|VA=E##|zx=uv+_zZBVpHL#n?cQu3n`)*d#}0>$EI#-^mfBnyz#E_C{5Fw7Ml%oQAoO3PU3z1g|mbk_Hy|DJ2K| zFMMgRH`AeJB!;v7R;G4V118s~d8B=8)Vj&YP=y_lyi zK7klAIRGam#ushyx%kqpd}1*pKPYke@wa*L>412a43hm7*|+xwl6Q+J*sZIm2=od- zX6ht4NBLO}bT5LuI(C&?Ap~JF8M)C5C`veM4*vYk?0qA~!vY5gwIL?zErG-mDdTu0 z!ZA}0UX{lhjjwgkXE2PFR7>&D1Rud z2xVfuZ0StBFWR2uH=rCM0SR?l*N3D$5B&e}97H;jLx5W8glcI9Csekhl>|x6fxA+e zL~$M2(FxL|`P3~Wa7rJcgr{O|wITygz zzw_zI%h|8FVRO{f6#!NK$9U}(eAo6WFrzb1Ww!dJ+V7M2F>PXL77JVtfHKhiXR*sr zm!9fd%l=P&h9wiB_L51wsY0iV6afOv3mu!eGFB8opC=?De_TeNlQ2FqbRQ#`-{+>j zLWyosgY!c1dGlRd>n8@atV{{dh%EC`wu6RgK>5^ zA;Z6X0hltJJRQQn_!0^)hDMAl1JY!{JrYgmvvwQLjE$l$$B*AUy}G-LDC*`&PRhqh z7-MgLUSs!xza*I{qCl^}O+trxz-**=zIrq8ufT?LR0Jf9$o#uhh;BCjMo?YyP6NCj^WQ(isL_!kJuw3*9a1(3B6N>bE z(7@Qb(i_kLn&VpL-oxuW_*o>`*S%B2POH;|{EuRdn{p_azorh09~p~?EA+PbGc@na zBN>!?WI+Dn5ZCL|f#RhrE>|zf!58p1Z1>opLH&2D0ns;bg_jDxEFnKfA303i5fBIj zq12Z6t;F{-mdBD6Zwb5|O}7bDno74Zdn{;pC03jkt;>=7XzxM`(yJ)~MXcC%2fFmh zZ9nf`QZ3E7`pa{`hVK>!_lrn$frEA#C#ONPD~fa~-aaj@qK!nU@jBEzw*SrGs5O&|>@7rD2%+H$%D^F2c;TQ}%}D9`Lcg zt%TAazN%9WL*oDn=gVZ!quRg8Hrx6rVsrPE(chn5V<41RD|Z9xG|;A;57NBkw?^eM zT^mQOKxnc(?;hB&!LcJB_^fqaWR4)bM@)rGqJFMgGZ(v@@6Tjcd@N5JEU$^+mtsE?x zhJ6_+&zZ9Ss3|Q5#o4+fxrRsJxoQ_fqzm5xOuZ=?^e4RGV)(oiWO!8dS*-w8rb@^; zSuK`-DWjAuXth5cLNg#`|A~Y9zUWSqY;x7FXmya?Wav^lM~`JFORXLzY^891^So=h zL6p4VDMW=sDGGRjpuNk@^dmmifFr3j^H&WT4fv=DUWA+m2ky2Tjd$@5V+f@9Vzu84 z3_k%ILaS+wTx|oZtGQR;1CXBGmW$m`i(#%)4TM^o(T2e(U;EFSEHzXd#~er({+BA` zZ(y4q%&ek}c3(4G$~@uj%(i2mE9ZM8oWAPv;6yPU92{%yaYak^ULAF)CDu-bUqq*6 zatv4(gs&~Cv9#bCFBVeJEf6W7%=cNY*bUdySD*{=dR8J;wyy}i#K}i*k@wT=x_gHt z7$<$ikv4gjV#Mu2%mndD;fq7vQF5yTRii+I(d&PhEP$PzDTye3T+g}v={PZ1u=-q? zm|j2OT}(Aw;qo=<>OSzwR0OL866cilN&}3PkWlc_y~a$-IvV^y(qV8qo0+&g(5{sT z{BQR%tz8$17&giW=`|8zxFqz@tqvFFx*Twj+(!iaJL=3&y%057rF7ch^IszG1exKj z$p#AU#BC$if~$W=RlqN_7I7Qf{RBxC$;*VYvqF5!I8OZdO}_l>&x&6G{=Cn#2yR0@ z7wTv1k!cd4VFHat6j7@IIDZC}Iq{;7O#iE+VpfFl&F!MT*U*}~gY#x@tezs&Jjuki zLEovI+`bo*PceIEc$5Guk}*&6A-Zdm<|L59Op>T6^x-J9=;SaJP%ZS&IjnP1Gda>J z&~A7{jG6qF3dAoLd7|`gquCr1ky~-E#Pn2feYG9q14xCVc+I8;)o@H_aJvae4t~!z zd1~KX+`Pij$h^=KG`xQw9IFE~=inQ8Q0J_c`oH)iW=8cpYd-+yeGl)o)g(z^LCKm5 z4v48q0;>%M-40_lze8Q$P8LPX7U^hKG|033pGkHk?IVP=6wt5LU-AMkQtx3QZlSZ< z>!*T4b%BDq=!+rXrh(xOu<(pW2ZW}mCFa-CaVO9g;0=U-)0zOWVaHRfdX@-_gN)I4 zjiUL$qIH*dwAfGv0Z9`oPAF$6S$U|hj!bDy7G@nC%!|G z>gx|ghwc9V$;xW$07R1wXjR>i(D~}D6!gN=E$*w7*SQpSUB^Vr<9h6B82i7wm#p7| zQo`Pp;bXuyU+L_<`ps3*cTEgfJ%6OVIFerHJYrU2;cW_meBLFWRIgAXRmA8pD{b^Z&%<<))Q$b!br0eCdH zI&&?R6M+qKc$u@Qcw%`B{89Ai#BGzqWLfxLc@poEIJ#;?*hmh4G}&4LPlRMua#`#j zL5Ki&u}=}z#r!AWSPusB1gBKsyy_)4}qq2SvyC#^)pmQaAEc6-D>6w@5h5h5)$_ z)mZ7E^{hXbl+ipucl`&+ZQ_!&+ldcz+V52RwTLP@;6M;p;;-QI8(?WhJI>0w@o;Ft zZHae1gpBs|;SIjD%K35U+42WpV7l#U1LQ7Qm-pS#OMe(>BguN48#HLfBjv}aA7%M^ z`kBeOqW>}YSrktB#*;~`-_~7yp!^aGG;qRyR6>#RATyT^n0#c95+#+g9?G>X7)96T za&{wJd(_IF3(V9sxA1ngdYX|mcZ9qs`M)RJOyYTM$`UBX!O6v92s#J^?_arbd^sA; ze)KN>{}3oG_8pQAz8$M%MZa`YQDex8@Bn+o%)~$BZTc4@{Q1b;g$`ksL2!if91K-v#P%Q<@G{+?s|b~J{OB6g*T7J zMb7`oHQ;5+79XSWJ_*R*+ngg(%yk~p#3;6i-)O1Gx}zzNA08@LXWk9}F7!T$lc|7$ z^~t=(-BJ%W0(vg3yH1b@jia9v0Q6V#Y6nd4YCJq{CdHbr4Thw&I{h_FPE|jT#fvi( z#PynaWVIe){$B#6v#XS2=1ZEQ9QLYd@UJB{_=8DI&QE_Px%lcgvoM_hmp#sg#R9D>>HkIM37I7P^9T(IwK?0$B?B>S*ZIEJG;o( z{!5npq90bCg#O~;Wz^g!9w1e3NNiqa=my>^hdP#au$pOR)%p`fsaw{0rDURxsmTsn z3jTh0d1z_$$p7S(kEQb?h=XPGQlEzDD7p|YR_&NevD#6mGz$W{jtW2*k!1tciCH>)VfJaDC103Ah zzJ(5{Mv{cl;gU~T{YQgwlNN_LgLU8`7wHCIV$?+ha5I}aXliT%{|hW6FXxR4BV3{s z0HP2g%Dos14g0pB<3ud#Cm7yEXh&rWT@dCwH~PR30? zdvaI);Ux}om^*{YIB)}olQH_30=RmD??`ihww7)yW4UKtbu5%J}qcf=UYB6?`W0QYuQ>9L#FVb-wJ!b4j1Rh>;rdiH@0 z)aSkap?S+Fcv?#vu%pCIJqG+CHAMYrIo-=Ylx}Vh9r*o1S5JK73}=@gj|GHn8qto< zhJ`fuB-A9djl;&_Y#9W@l16Io4`k&rWJ>H=eKAj5a#RHGS7Sw=UTSb1mGDqY7Xf|1 zzaD1LTV8$y7B-;a!x9q`&XhxEyg7tf1zKT(K2S4~b25ViatS}oABm6ev0r)nW9j?PvS=~VkjgVV?X_o`;LBU`1D<6K^1FL$VO&aKs0i<+pPWW!c!J@<9V8vaxsmh13V-vc6FyZ%qJPeq@c;s#r^K7N6wWsU+U>w(kYTfh) z#7-^@|5FyOmq$%}OzUw6xQIVPxGySXMAL#dq{d2Gsm@Np`To)(?28?N#l!nQ&o0CC zh`;^K29P!6z2MyWVe|H>(Od6U3lCzt4)IqC$gybau1lSnFaC6mT(Uk!HH8ZeC&*E# z=?_uN{wJRa+WvMt`(nH&_x%WcqAAu&9%1SA)fG`rFkD3&i44oVf%fldF&YVwPYI57 z*;NbIKskH&Ns3yU(zg-tQ$vH3QPzTY5!`=aob5gVaw(Y1^nQE@IG_6@TcqQ-lQw>l z$`#0~rCa;6+BrE)?=lE?PKu4+?^&Oh&?NJXHO||tBOJiMFyQHX)a9A=z*#3knUl1F zZzzwN75i-9@NKx6GH9slZxqeVA0)p-7$#|Dvz&kZtm^6y=&Y)e8+WT!TGtEPBPQIO z0F`aHkqk#^aSNwEa({riwAfUxK$GEP%zxOlV5vXpUXL5Ii^_R2uT)490g_E>pM}-G zaRaN+`&SY%(g>Mz>6*_QO0mI66xm_Gb;Mec@~FB$o7`Fmc(M9ErmhO{{h8XoNySc) znUm@3SUA-EUWp!F&@_(a>zBo|Dk@gKJ$dpk0Hm_#7jy!)1 zS~K)%ooEwQp8Nr&0!`>2ynbCr%7I4Quvv(!5Ba!?ud4J9#RgUbRl%sF&xq~xGfQNN zEb5TOLN>Z=>oYM;8M8b3rV>#~cxJuJ4HB)5NZNGWpi31KewM7%)MV_nV9Oo&hhecl zH_xsJ%BgE-O@zR@^QpNd29FbP=b}fTg@8 z0|3B9@nnTX^8b(GSp+B^urY=?d>c{8HRHkE5a%5RHhUkv%^k}Ux6wVduDf2$0`+iy zw0ZDLqkm)n=5YLIn9uXVCtN*C@@2wcrP24PWI+pcYGx{hoQr?pLzq1AnhSbG@xPQX zu}725W{jg;&uEF*I(@speaEx^faBP>tL>B6`eUWs|Z!KPwO)hkI*z~>^-8Ld|PzQ)JwmQBT*s<+z4O4%&fn0bfu;`%8-rilW z_WK9j&lk6{sw)eS{R)O06}=mIss+2ywCHHP8hm&Kgdzd~+3uGu98rj6{Xz#@(^LcXsb!hYw!P(l!-@9kgES1Rxbow zxpGK43ahkFP@o7&{T5XVJTkk+F$w@D+{%`gUiQi(G=#+qRHyNOQ z@?;8resQl2cCYsZ&tOAl%p`2TeEcW6hCana+e4@Rat`!!zgswG(=QgM;LU!CTBESM zHc5~QaCvVe0mv_C%tx8~nkP%fvzvM@+%cP+pS>7e^WQe=KQIJYmh<-jKEF=nItBH~ zG>Awg@ev=h(Tk!`vP3H(RuF5{DF)ZD{FC4)6NluhzL9TXko$qh>fS#(zBw(d3pAem zcXZCsQlyvk;`Px-X@jr+|8E z+L0W#pW?MsPdyI+7@)L@Yn zD&wRGB%B|c2=N0-K47T~8e1X=KN8gRA^bKVj~U}D?9@|-)q9{IcyB<32AoQ>v)15r ze?W0jxW*}LJ~o%3h^k7A!aJw(El)d!vInm5efWss`Cv-20)Y?UT}ln}g)eIG zmNQ&txp@EpN}maHCIv|n`%A#haEyi^zOI*mp|zotEOovKga{!w@)Xiv?z|mgo2e>i&sg7fB)#r8Ed+bDKfIW))J$a~eV$g$r+6)^sG?3Z!{_?F= z*2GgwwsNUwKsQydj10l-4 zDML7(c@ck`mlU%_Fsb@243TyhI|>lkgcrU0PHB3NiDb~%+TS#2Z3<|Cl6=qLs^;~o z&H$_oM1bY=pL@0_rlR#z_Ps~!`!-)a$*e{*>H1QBRT;N+>Lnt9||!Le%n zVABC^ffWFM(El_2yK>%eK3friV`b;8;J69IoAW;dWA5yir+oos7ZW%xkcZR5qfBIa z38isRwn&g(&fEl@Pt9L4Zs||VBXRRqeaIC4C7K$doLa2_S7}Rf)rOePlm{g6Tu1RS zrC$2n&s>^;pa(^^8hfo`h;2z6xT)!cpI=0ZS3EqQ3>g3U>#cx_PE0AS?OY^uUhy1X z5Mg@bO<_&b(M^^zDfp0zMRJ6Av#+~;8ab`6OfuzH5qeQraWG&aMk^j!Br6AVFT28F zVjQ_MM+?XDyV^iTY>@BSp=oMkuFdy=SkPvxKXrH%vvwHNlH&~T{-!nw)qg>I^qHFY z`AEGg1z!pY5LgiLND-B^5a>vKP394xO>Q|+O{~x@tuOD;j)guSov@|8m1yomwpNIC z(Kh{2CjQMBzx-@{bSnevuNDayb=5h@OPWV})7G*v4G=l&?eos?&35m+*R(`SfY0o) z3Xx+X>Fc;j>LS`9fa{)qz8lR3T#>iyt9RQ7KwaM1i?Q0f@&dZ<`=~%>Q-#h9_B$Ux zD#X0VmkQ73b*B?3KDaf8oQ|p3l_18gAwk{}!^0)yLIpKSEV!DZd zB&LhQ>%&Ly`Nw-rtCM8+R1n5~80m#`ID;X1lGYJ&oWWB8_q%*yuvE?xOWRAPj1Pg( zu#umZ@ziW^N_iVX;81-=bw9&3e|=(Ig>XUUa3`2&Z+wao(*4UucH33^qyyv}2?D4J zfG}^RjL*F52@WtW{Imf|vWaKtjR9O~OLfHI?JeU=^Dwu~+XYbAD_;p)Ah$0)uS|I% z%D8?^&;Iu;&g@k^p<&py|Gl%z23Q8rvbAMX6#>kB98>O(IE@UEdZo>`Qj~66&vX>{ zg$kQMhN8jbc@uvHL7X|&JY`-)_)v6hRiDeggjdDL>ceo+>$AS0eOTUA zAwjscdQ6ke>} zRUDyv+W1BiBoH;||Fn>xhyKD-hBzlrR!Rl+j{wm(jNLho&ru4;bM+YRNuqzhg?-7| z;o>Wo_~XBomnWR*-|#8?x!%@J~3{4gwtMiw7uP?NhC((UcO;1dOa>PxXy(3d3~Ax^BZ zF5%GR$hTs$Yl|fLlK%Iy>{-jMgK(aj>1~8_YR&adgDSw3B4!H7N+ZoLzNgKdLp@xgRnXkYT#{P|joR{9{ zH}V?z zSHDm5Q(Z%iZ9#`Gm?NRJ^Jav3qmKAQUjvMM+FzZl1$|T7Z#w&rYgcxd#cdKcW2xoz za-vuqbu~N9;IU%GSgeU#tVd1cH({`@TY>%$xcPncRTa)I#N81uM~ik(*W%&71+^)p z^`LB~EA$gA?CKUv+T)AGEhN;$GZOeJMlH?7Wmm6y4=5Aa)f+@)x2>FdOh>P5-$hpW z0&-M%wclX*Qfnl^H3I*+=LR)F_nxe1SJ$je*vy8-SZCE$izlr)4#b<7p0jjl;*j|m zSRGMPxC5M%Evy)+4BV@b(riE`L<%3uH*l2)6Usr#7}jUPzGBv$U|5>;dTcklI!~{k z-03jKODVovSIcZdAdO|02rB@II2T;eq_jXaA2GF#cX0D%hUXU3gp(yE4@yy%jh?Qt zGLOfyTf&j2_u&g(K zy#xS)_wnn>$~HoZD%SmMvH8^VaTiwt36=86?d|@Ud=@Txwyj0>bxwpI5YzcPBZod} z@o6P@W}$vBS-8CO$hjY7cWDnUL29~8&Z&v3|mqbFWezqR4y=a(+paI>1%^bBY zrb`ZFPadJ^^s@h{XcratS+^w*v9fRnbbh`~)*uebS#yfBM!;#mcJ7evNkH-)P~E(T z-D9}{-p@*r4v3X|G!f0lqooef5pE!g6%wE_nvL>=H^VRvoY)dwcBN)Aot$~ZDk?cu z#q((U%!}$2kl@oJNL&;b0VJd<1z>aI9G#K(`i{30*@`sAY;m^;!9Umq4~p~_7G2qZ4hq0!3%+5=fouw7hcx>x`VO7Ni{ z8=M7dS^`DGCeNY7&@1llg?LZK}0p4#oO9_ zV!e8T=;=`|74jf8c&o|Pjt*(LQ3=@iTUBTF?>QCA??-BRK52BE-S7rKeGRB+Z=h++JR{~i}+qZ{fFSD-Dvx{%I17rbFdOV4_ z3a5ceupnrq&v%0;<`wFJ zO{Xr4}Q`0b~P6nZ0(6E}|0ki6H!OgBMv*nDCJTIb z!vF(#j8wbTA=@cyz8IpX$-ho}S4-Z{~fnI1#~ke-}w;qUm<%9aQQ}^|EY$teFB2YL1vNnQAA*?BWph61o!b1d|H}`rVIB~0 z0U+PYrt87-qbAxPD)x#POl&jE_{IZ@KJ*-)N`Ab!yif@(OW-NfR{^A#Ksp=%^;T!^ z|4x-115)9JIK&l`h>M`)_*EVeF^lJpK1AYOqp{!)nSz_-^K(D-9O&r6Kh&$oG%DGS z;Df+%-EQ(lBI)-Raf_QCXMkW?9oTj%3I`veJlwn}b7&qShmuL8xfA#gfJyX4bV%Fg z6-ti?ohq3%-E!%={f+7e#n#McBe^O9&tg0H4BQiFC>X`moJ@+Is zR>2Er_vU!-Gg64K0-&Y7DWI0`nMQt>)&8imRxBwtGq?E)COj8sV6fBj_Gq1ev&`fL z@xPJHBDG(WVbMeiO$|01KR4IQoo$@cmWkgg&>VK7Y-bsa)KxufBQLW&y>RcA=d=e7 zPLn1;VN^AXzo7QZdS;T@BE%JN<`%Zp{hQXWn5Fkmieid|ek9*RnBmIA4r zS<%V5<>ybtxuUb2fHT$nB?38FmEk1D{w@^+`f_aa!K+EQG@nr{%Y=?bE%~)+AMs6L zZkESz_EiK(t!m!JG78xH?TZPZ%L>+2QD4LQN~K^dg!9r1f4Cjh-yRJ}2={*PRPlvP zHbc7Rpd1b@hJOj$Qq50UakF=h5L#^D2_yjPjRG_tGl8>)fd;^OAHHSu@HV5VP4?um zql;|N-<1rA456Q*?pPh~TMKod`G#wsCH-sL@i(_Uwd_3Kup{TcOe`^c*1@1vz%<^p z%=r1``^U_vFA5J|B!hlB>G=11HwJ_KeWW^c4t;%`&AW|%ovpLO-w0_GNir|VEtpG3v;x7xBkQwqHhD@qYbG9Abvkrq+$wpQf2sjx=4gs`?nPT&S93tUN+#4R; zc~)YfOWkp1Tpib(toTedxYbMQj2OWolo$VWKx?GFG4y0qsfeeuO=|${z1H^9$VceayE} z7S0=dM+}*#w6^orN>^UMhteJT=IRpO=4BjJKpu)dClu-Ra0r3kb{7Saw7m*4$S+s+ zw{<`-T)U~{(*PyeqJxML8tpDDFBy!!u8Q4x?&k1$KyG2g5D&dHtZz&Rzu;v(WuaY< zaEM{AwBs#Ny%Lfy{{D;oU~L>E7)QI-rPlV@ZiOF5@WQIP(1v|wwWaxD_1yG~+wEJm zBRlA;xCauXuAM``c>cY+REFM0$@9*=*6JTn-w@BIZBTx#*HknP=d1pqu%bnJa+W}h zGyC|f>oL5l-+Y+IZa&Q6XGD|r-x5WTHB^lUpz;@<=kgpsA197jSa~JPkRJM(`&~== zHa}V~{d(o*qr1VG_%N$-w0To{9J412mPt5Pf+we!n5It@nte+3QM{K}s%E%~Uvhdz zs9dQg3^{Lja~8(XtmhFO?_y`|E?}!;wyx*WrMb&lreWL>2cztR0IxV4Pd;QOtO)s` zr0z%Pr{@(@@GtsMDP7~f8M&swFMGQuRzy^JOwvdQAtALdI`U2AQBdDn#YKvmZM_zW zLkJl&14)|WC~KO3WG~o@nOCEY?q%aGWaw)+mUqmKKC2YWE`Qe6?4;*X-{2fTHnLow z>1f;pr>S<)P7vy7Exi3;#=(oXHD@tYSr_&^Ya%2hI&G}+S+;;LUV+wP4^(IejXNAn zd!;dd@QlOTymRi^wI=w}GVw3zQ@YhaSm$s1!$Q}aaBz6J^61&g8NnsC?Y7jr$T!7( z<-$hNq`F7k!gU!Ib@g~>_O;K?*G{@te^I#YfvzRUge2HsVsLdJE?lUC_qEfx?5$nxZiG^Lndg5-38cM(gD9~E2wulWx=G1nGKGaTJ%2y^E z-~ahlGWw!O94=t@-XIhCOSa{fx}lHbY^mQm@TVp9A$dmxVI*wO*37>{+0%=1Sw|Wk zbbe`Be6cIgkb9EuaS!v>G~cBr>pA_HGcpMB>fNU4^c6klWICwnS|zo);MlTUP1o#c(UOH>(|Fi%&N^ojZveefC=sQga13c>X zQ-q%n^3qj!NI8%YGS#sdtew1~-|G=~mAJUj?f9c|I!oWY=+)A;=GZpo@Nm-1ZP;^U z^3cU4CM^|GwPZ^DGXcK}cwcE2*Ra~Ku2%-3)7AP8(zTlOiKS><`DxVqW-08rzHJYk zxQD~&Bv+ zD?P{?7XbdK*M6C)%@8s!GOBY7F6XJ>b)<&c`AZ{(&Snn|Ut5ioB#zV7YZZrN#G>>O;bm!1L!w z(3c4Tjw-)6ndMK#iGlD};jImM74(Rjb}Lg#LT4&v6;t!k;jafyu7VKS6Z=yy%_$LACos`o%_BY8i8$^lc=J2@SEB ziVua+q*4c(dPkQE5kn~VnYA1vz}ob*6V$kJ2Qe0D7w7$uwUwRnCwT)u2+Fc!!Sl8q zN9fK3_M^&};&4y)yvk{wC9?)3V>m=LTQp`L0o<3=LB|@;a2=Mif#k)36SCmR%iL_& z6B=IJI`0sAG{e;#S9%2VTe3{Mglapb4so_#3*L)Jjxp0gpczG4UdTj zi`dTtDZ*p-RJ&3%bFSM|R$?TTK!i3k7UHl>xBW_lS|FCc;pA@_s;<1FM<@kK!}#Ye zk+J2M;Gcca<4xMfK%Z!!I_S3}nG~AgY$`!G>8`UBKsIs)@i-j*^xh@6;!d|rLwCmA zztCTOTmj!=_(vU?_*Z7Tp5jlS*SXsUu%Qff8I1G)36vm)COpgetT>3=k*rL9Gx?H!Tl`akHa4X6>ZMLA6x$txc>Wn z1-{q+-i~pqcmR`=S87?yNUjC2AEbdpTqM@(fR_MhFxN*;B51~;SaoGSQ@~9Ky zZAGg=te(%;8D#p((@A$@b-tpVZh3xHT3z%3Oy`0QUQ@^pfF2u@a0{J3%Z5o@0O4V4 z6v~lCaaR|P!G)I%Wb{HC;JbZ9A|1kXnz_XlMm;4x!6Jqb7^(DpDrWJME$6y5-WF!S z@c4|+3{Mt5Xu%BU)bHY0jNi7usDOO6E4g=`mpUgH!uJ=m&`=(cnrOr&kccr+NQ$5x zAsP$S)R{{_i1J=1_8vyGTCB!2qa!b;M6VMu8FdukXe#4;1FywJmsfl9af4M9dy(mw zzKntPK{+|CQJF=f+UvF(qm1jv!q@8;6@J(IwjEd7uI3RCj<@`0|EZx|{XT#0C~8L` z>qcGBEm|NPXz|<5M99;XJ_-lq%g&eYhZQSKbC%{a1I59H{uQ%-zy7lqeWaNn zWq;*Zf12q>e>$~%%w@!iuqpzT27VDk-Xl^|un=ecOuzktF#6pX5qh#U)k@j|^bwHc z6ZO4)B-+~7K^>3X^OOYDu;=X+u~(FS4Xx>YgE9}F_K#gYR*?h}eF$O<`~;bPe<-}X z`uK)(wRbtn{gsK$Wpp^)IV&&c(y;e>6M@pX{SG(&3S!z$AJO`*Kr)5;%>L&qjw|QP z-|f_oSCAR;CStSVald;H>7L?Op?wphI5&_F(p+lFm{V5v=jKQC+S7dd>@kU@I(B(q zTQD+NFuJQDF6NK+S$=r^-g@A3!-tNA#`n@Paw@wn&FK~FziTp}aZkRm=6 zdk3Fx_Ep?6(|{vhYiZgAexZ^Rcjes9N%K$?#4X_xaqN;k$wHTrisBK3a#P00`f zo@lM)k1AqwWX^#2fKGQkA|vaZ$sjx9f+8jv&<{~+*vT}z27cidr*y{a zO-$%4^Qma&`!96X8}>!ZO!}=Yt0SU3toK(zBJeAc!Gs?aay5Ks8lP(t%;Zgya)Gzg zD}%qN?1|3kRAyi0UYWzXZ!xyr!Ig_$KE(#)0#-T_GYwCu$1tbicGQO&vIk?a%c4jX z;krM|V)jkI=??#pWq#}{^LcK)U9@wahA;)TYnjxwDwo1Q&GPWka&jQ?%ayw9)DN0Q zd&+we>MxQvggq`$bJcpBrSr8Iro$Ur~H`NzP%9`XT_T zw&$Gg7~a}k@*C=vm6P}m&l&$6O!NRaAu_1z$1*C5hlkWBf}<0+Z$Y%e3+DWKsGm3N z7gzV~O=x#v$t3pPQu2M<5Osr~fQ2wfD&L@0EDk8^= zbJkC0odMbYsG5Kpm;yV@gv-0VK>+jcdS={ldn_!Mj3O0Qd-c>ziWvbamkw3gZwb+x zY~RiFhTT*d%ycYa6|DZ9<^^$$_?oQs*B?}F;^hC1W6NJpRzK~q6qIc`*uF6q{Th2A zB2rWdJDUK=*6X*p-v4si^7^LBeJAaL3YD_mJ?e6 zZtHsfhnrjfz&4C^k#^-;j}h5sCkT4XaSODX)aP_x{8Dw#s8B?{jjsj!V5=?6sU($9 z@_gJzZUV-|>O&kkc>yE7y!huFXEz4CYddqWFDKf4UujP4@y`bKDU}&{;IX&$x}J3} zn`2^GsSkI}i=KtfVaBupXWHEd*zuJ4^3$a!8IV*37q3CDvN)d7(2!m!78$zI0sec; z^@vvXd__B)puv zZ*Xpm(k^z|>uoFhk6B-!jnb$Bby-4@x8J#Xvben6{IcyGqE0-40OWH63)7rzNG|;f zzKp#UTb+D(z-siFGDu!gt_7dnlo(;DKfISozYs(c_F2T##2uiD~mW zsA0XJSpN~~*T41B`#O>$S}BmJamVXL7+2|_@3L;-E^rqydUckL3&wnKK5{U;rId;) zufXGM>*}>VY%d-@m0K?ecZ)_X^W~PXnID-x;ufka{=DU5SEc2Yl z3Dv&*1|S0bF3|vydi>go90t8y2-Elu+aSm3wMmn^WqGkor|WMUue?V8c@*GP%!*@l zhnoBgc9;+f^C>3b)I9Ik$Rp~Fu=%-Bj#lAp?lpVhF-DE+#5Kl6J>}=S{#`kn5_cWn z3Lu5DEvK2+NBu?o!yM1PpUvK)-BnuAwov!p-R^N2$xl9%5I02N1p`#g@{f`#oF?x} z-)4k3q57%iot&!YVqnxGha8oAce>eizUxU6B%v~T?#OEnUWUVP(JP2p>7#u1#y zED0Xe4D6JK;Vo6IF-qis@6gLsksR&2Tnqm0Jd>ZpIf=MCxcAPL<%s*55p(lrVQ*zmKaq)cxj?GkynABD(R$&6EDcwH)A#A-vB1{$q$GZ~5Gio3+hjjd zHU7%A)M$Kfr(|OS#@XN;6>wQ?rj5Sgz)OjlbpSQWAp+)6=-S7aKIyMNBHX0^cACYT zfZ_1??VrPhjEGidWN>(EIIxZ&`bCyB3lGMij5N+8jptx2S<9GoJ&nO%MU z*(gox0`?6{yIU8n^7@V|;-sdB4zZ+eU>-a&VNd9D4$oqaz%SJnM6YrBw*Q_^h z&SMa0j%)3N?DY{xB9dluWv-0oTk48TdR(!|c`lNhs8)IP)8Fw0^r&a-xaQ1DFzT%D zh=mS8Le)m3Y7KpP+$az4hTmg#)@EyOSWOfw^vc82H!=&99*sCg2zk6^C0-@t%z={< z@ZL(BmNHUQJKVEg{;l%d_JXWK`|G4M)(x%8Z}38l3hsp>@MIAZgT-?8{lY4=>z#@D zleUG=@@bn>=Y4;wvb)dW{ls#(dHLmKW}fZboQg7>{k3!#zxJu4CVfzQW&AVcF1HLg zS`}KG|91tu#vd1Ms6(;-(3d>alNI(y7-mhBXXLpA#A`Y#$Lj+>I0_z=Xn!l_G9tc& zT9~mqyJm_wB(_jA&FoRKeh_wsSCV6uV!A^9)gzJbHMKl!XQP{2X8fP)vu1C@LbREI z!d?(Ro*(apd8yDb!b^KoXs-(lwY&17Xy0Ov7w1N^VfNzIjl+~k*U-%4nqLua88@jw zA(D<>-?kJ&X`)6!Id&MXcZ~&=)?D+<-1)Ux@dog={`NHAF32=Nt!prZ-Ls_3nY*4F z$XINgihiKAzHU?MzC_yg#*G3`s2$!{bG`A5k$@{rK73lYqUO%O&on=+3mZJlPUG49 zICFbJwfz1@vCE_MTJAqrOJkn8uS$HM7|$+4cq}GIMzhcI+0fI zRsn)?>qb+lE)mJ?&}hUh1VS$qdW{yZ5QMh^46d~kN@B=Ze^I|$U|)!;&xL68N{S$Q zXgXI#>%*9E%6Y+pXJK!<7!{az(>S1@-Y1nc1d_q0G`pDz^~4Y{y_%(tg15`7vroTc zpQgfg&(Re4ro^j*?Tpb9kYlf{CwR8Ny_sRFkKZp~pOQ=LF%?(d&yDqi8p0$(v*2Y` zB3F6~bE8|5T%E0d4&1f(a3tOk*t_rw!@rI`N4f$>RJKUXY+&6;%~3mY9$Us=g-?*} zPgmWWvm5&Bd>DV1LDIuk!n%Eqt}*=(2Uo7>!RlzdpI@b^rDzxVy4-j$^y0!DI)3oR zQupfPySSgbufs%vXNhIz_7P-fwK*rWKU_v8A3EQuz>Cs4r&;QJuR{s>&_n5wROb69 zL#T9*ml_B9A^K04t15CrY@PP8zkbmAKJGl94WB}uUAiu@KaD$&q*sz^a{+2dyTP9R>5^;PK)1o0)nz(omm!9FDQdJivpKM zfOlV~f9fc($4CbSBR|dc#5@e0c^Thq`-XxcJ}Tpn7mF_ls(4rRQ#LCD7|y>apE>mA z7YsnJyD>bF=g-YI2nwK)sznoxB-a#OIg1B}(PQ%q-OTPsOBH@uM2`|#rwz%lK{uS> zwyzhp&ozys*89Pr;(ekSm$&}xB7rD31em)~)XQ@!8Drfwv4$;b$j+AM%RgfRa$v^c zf)Kun!T*n@vv6qg{r>)FP*Oljx}>F>fl5hBgNR5;cgK+K4rvgiyL%`N0xF%8k_JZ) z#`fHPzQ5-$*zW7T?i26xI_D6FfOc#M73<9e{Y@#qll|cHL6$E&<{gQ?l3vPJxx5j- zau``Czsx;DFJlZ8%Je1Ac(4Q4vowJ@8nW^`wH1m8U@r>u$UZ^Y$zHkJ$qmJJ@^#LTJ%e=6Z4y$ zJ`9T!Z)Rz+o@+%E?ea$TZ&VUr6|ks@(b=hw1_e0w`6JL%_{M>5j~844AxlVba%u#1 zZi{3``Q`a{L1lWSR@=OD|5>7fo5R*1HFOi7CdyO> zilsvpx)u%nwnUn7!{cesOBm&Lu{&ZhMC#goz80iu(GW)*f^S_0?y8D%Vn1THCuI(j z#(XX!WwUvjYfc5$1fn^gI*yzBLsg1R*hCXX#3-I;sIsShv5U`N7iE}oSy8fc_?pa` zIc44a8W=9VRP}&Fa1ElpnIth-xVx9wWy_*ux}}En>k?-q61@e>0soOsYB-1C@|_w~ zVihkjQ;0+lZ&Se2;SAh%|D=~(fs!ff&(&=}mwwpJXAcfkq%UUhsYxiTce%!!rDpOv`HOmq zh(J$K9 z1%i!GOZB0qV{Ga|)_x8x*>)4mIg}@+sEEDqm&BV~v8$Qgg(0oD8^bF>AlJZz`mx*X zrwq6`1=|{n4KlVyn|h8E`Q*ySYSF=DgE8#fGMni9@&SE!sM1k1>Y-NzOOQ6jX}6j3 z+WO~)!9sg%E;c~BQZUWjI4(KGZ5$)o;sEy1Y zkm{A7X}jq{oL*K*hNc#%744iWcew5dGZ8G2-{b7o{5oGbxA)Tki1c16q|=U*JDExu zQ*F0(ff<{H`;|g1Z)qpyciPQiE-cL4o8XJ#;07SbtDe9O0e3a_*VBKhDwK7jF0?4UUz$e*aS{1*BqLegDK{Q~)K#(L%&Q5K*Eb7@d$5haCv~j1rTIeUb zyT+gKS3EI<3eS-{x9E#TY-pE2bpZXsAD#_~fc}p+=gB0^l`bewR>a2Bh2{}~_b+lY zho#=fmwI%f+-KWvNdxmws1K2M?5I3bQ+7{sIuNGx^E})48qvHFr7d5jN2bG{O`7@D z|6TCQ)VLD~0m5q+FqZM9{_{r=MS8{zAY$bKDhTbX;XGUOsT7o3pBBG1M6YpFcpM2K z@NDqp6ZbSj8hZ}fD7)G_6mXW37rZ|?81`l7KC3@ zvpJm%o7PbOib0ySedwBA@H=B>!NFkmpBk!lZ5T1Jp4HH{Jgxa`X}Lu=OYUjx^?J=j zZBGPGKBaW5&gPsDy@+TyX$XmCaP;}41=Y-xXL{(;-1X**lAjkfZ``s$KG(v~Yo&_5 zL(iqeH@RVl82{WGuCde#e%oN-IFEG2`VVj4^fN2wmfZD4myZf4J@apCe^4OcQ6l#4 zHw1gx4-RCKJ5EBSMw^`;blWwg?I_o@=iZ3dBAQ1Y`@YX^`R4Sr=gsGxBMhz0X*iDT zHySgeMPP95dzTfic$dlRMDtE2ymndJM5U{#-9u6)akwTFPIF=7wzHWW&3lhjQ+ta5JUTzK`l zj``4iKe)-Wt@Y1GZtHA+?%?Q^8E??-Ob3UgEj2%?v>k#cJn}QB0vp`>1b7O z#7X?HGBft=T|1RhvMA2M=T|8UNk*r{aH=gT!kdW^a+x+;qulxkz%ddJ7DfeAJ6)qW zBE*6s!)9}o`i=b)vl7jD+&?WKx|0`VWEkMeJUs;?qJh!-sIO`SOQRkOw8O)n-+xXP zGNq*`CSIl;8>&BLM1!i224|$G2=#r!XQW$aKnC%yyALQ$OT>yRX5xythYQ|RTkU&} ze_0uAYUR^n1w5yHu2Q_f=hIP_YRko|0P&w3==FV_6<}gMFOK=NtC(_|xf}EDjwoe6r*E5*^UVfgw3!O609+o(8`87qr zyYV=PSQ6*tmWDAs(zbY;>L^7Z0>qfl?TPyN z*z_Z-BVD*Ai}Zsga+?K0uV+I#1u}gsKY|jj4plqn7L-}fJR2*51b zc)2P5RGX*I0zmz?o{YO6G#v`%RNy+wiyNs1H(%jAuY%e(o(`-5qVWEnZ9a6&K;M^g z7rX|mUf()}YCOjy+UP=Le8i{>duql!qeC|*U@Zw)Z(@fo&xR?y7nic%4kz~>Wsyrn zidu(Dy!#}r@D|KJcr)~e z{@;fbBM0nOX?Y(g(By>mQ`Ktv8?wt~Qq-Rf>5^KT3C*2BUcxhucnJPxX|W|U5EnJP z=yvS4%!hIjfmY+i?!j_7Px|H(bd@{@syWe#0~ZxGQR8y@H>7|>uvEo?T5}>|9wF9c zM!j+VaMSwacDpK%YM;!xpe5hRLQoIFTChIjxmu1h0U`MisO5aP9x`FBY zn$D3fUXuljz=M2T#oK(YOJ?S0`1>PwH${i+B4FgS%kYHiuMC{OR9b9{)ry_Ko-{?I zQz@1_?l)!X>x#7a0X6COi z3UEgZJ#Cxc9#x3ux?YKbDJnSxAT*=bV+8jSqt1`WD-7mH65=s@NQ4|8DdL!7>jN*u zM0Hlw%FH=pU946!!pQ<~*p}c<`!%fXc~Vd5A0T*QlJm0go0F+C>FT64n>~;3+t6=Q z(xALNFCADnGu;PzDW9-ymasMZ#a)iHvedrzj!^3+b2Uy*YGHW&NUpMS{prpG#u*>R zFi@G6`x4L*Kd-Y8#tZ&~J@9+P7Cg{9d2jM58@pTMKhsU$?40G=?la8av*HQaE$phm z`i@vFjpFgn_$V0LWKvebQDvUvURZOwSu(RgSQ#j21!d_wi8ttYvJubAJ&NW|Ne^ME zh;8It;5I%6z2+1gOC1+pne(#*;~nv3E^5_r*EXJxMaVM;6x@QJT}<0@puLW|u=;!H z$nNjyI->X^yw1s<*9gYFHEM9S`8iFoP0%{>nhEV*dwF@kA$C=5B|h`vRFTSjd4x3S zX2SXq2;%VmxhJ;eC1i0lxRhDQ*vtoAPRw{0zJ*P;u~b4;eOl!SdNckx$k%AIaHO;T zT>KDU3mGFws+$Ej<3MSTU+ghz-&Yf@%lXr~DK$pb5Z=xNNj1%Y@FfvY^$L0&o`JR< zwbVMwSxw6|k2H>!Mm{ZFwSB$`dO$GU?z7t9Z%9`-pGBXXy{OJD9s(#7J<$lWsXca& zct!KIJkM0x3%|3+^KCkZPtooMRd%b?gLNo3g8h#_a-JWPD?6D=x z^gBlOw-$q1!-t^>A$8TiTq zdD&v(rEa7{G?aez;k!?p<2+UW?D>&OY8YwO>d4`=>)jFf$V-w&l;UeN z?ps}wbximy1;}oIWtGkN8ES>s{1s2 z*0@&+l#?dJ+~^#jqP2M6nG!Lvy%>qdpo;gb&GJ6Ii>L(U?aI@z5i5}q`o2fZKASj) z_IcnDa;F3`)1uHv-ITg-?h{GL-?Y+u=oAWCU72=mEHVi)FQ4$y;_!?jr(=L6rcmUA-Hcg`Dg=IJT)0!oAW8~SemHOTTc z0tmXXHz^+bZ=Nn*-Rkr zepqVfW%cK6Q@RAkMcdQ6F#b>FD4#5tv6(oQPs%^dst70bjigO{crl$f{qQmVo|SQm z2q$_j5_0Gm)+&$kS^|Q0hr(CE{C5k))P2Eb`dSkN-CPMK2GR?WuLDE7A0q&W7hMID z4Sf5mqC4%KEIi7v!xZ7&JZF|TZ!i=MQRimNxrs_!`c;JQCe0*eL3pRV(;3&yRrH|js3N+p>1zZxn&(8i!|n{Ux01#;K6nw$gxRue&3jL?4AsL zyN>a7`vsdK079gt)|o@U{arB}dY0>j;vY1Z4fy>y=p#{rZT`N9e5zKWX>}5Oedw+> zotuDr9|-k+09u04Ahd8F<*Z*W4JT3lPb+L^RU>|mJpS&nE(xK#=7*i9GG$3pM6!fT z_6_6iUhIRsK~VwW1J;jIZX7&}$NvkC*ilnWn_DcC`JmO*o%f7)aXd_>Cbk_Bbv_co zXN(98-xe;xow&vS>b4+06?f|lu3Ks8#8|@wl|)c2Q?61iW_6<$zX*>myvzmS)+%-e z9TPM9V$1HAp(>dD_Dd!ChqSGJYAvD7(`48!!)&Nb@5$A=Roa}h?y zASx<1I@b39ChN~oTls~^PKuB6Hv7cIAM$?h+^sd7Qx*;ZZ_*Jflx%6iI;; zPrC&DA`R`f$4=-$+Yf&msjSw0ADQlDskiB3%IL8vPztnOP&xIePp8;a3-SA4zTx{^ zsXm=9$^%lmJXOMqgy63I=aH$aan7bw2E4UDbOSmcA=6lf<#05$vSLl76YJxbp48c) zKkkS0k1Pn*!-4l_U>vXw%e*oC^hX3TBl3YA<8xU;6Ve{Q-q5WMgy;!{V0!<2DDUJ0 zy4A7(T)*ycj-S^7%r5nE0|Ha9*RRB*?#Lh?2L6lLua%J+ZQft?qQU7x^sS<)KCCGH zlNDQ+-x~*(E_TekId#sGM7SYw7s6I8_Cq7z#uzp%R8d~q>D_Omp#)oiWb%-IM%b}Q z-;Z;m)EzS&-#XX)gJ z=s#C%IJ~=!UX_A=Fp02xgqEAXzFWM$bRdLw!3ZxoQC&dtH=Uv+SsrkN|Kh^S_s`$E z(OBC<{D!Ir0Sg z1$#X@uXp5GJ5jxY_Yg@*<^JaAH_K1@D2$*2-qI8KRGyJ|GQs&*CgI8p-!mq3x1^hE zovS_X;;?w*?9lOKVuQ-4+@|d&+fBx-n=CltO&A@a7T;U|+3W_?@wd%Yw!+mcS>ax_ zE94vmmJS*y9uPV5gaoj-v`@jt3`X`*#nBLnGe#3Y_9|1lBL6k1={J=$6&#v2N$*lQ z(0;zf22=@`YWFhV@Zw)zdEI^OAiWfWw`Wp@-uR@7isaDC{TAwdng>E$@4Pq8C3puh zj7@LTMJwOmyiY^Z==L9hTwm(*Nf{*f&Xwy{bXcpeS#_cc-YnO({ds^Gg#@*u=l-ax zXvF5NJV)Na7N;lsq^Lu{Js2{5=~fkAn%GgtKh$bma~bw1)Uml!!GS^W`x2@KyQAN= z{)NxU&@xj&T~O|xSh^7@v>O?O8v%h1!Wt8SSfCL~)Cw?{KgViPxUEqrG@QYI=WP^@bF}?2P*;RVY6P`|TB$%)2{q`m~ z@#!I&{@@Fw8(PWRKizX&R0@#S>q1aug0KO?dV$f>x@{kF(4VGpN5(LUok_FO-Nn*s8JwK}OkM{% zEV1)82&YfLa6H^pq67?xLYQ^i&`d*j>wGtFZ2TYMaet&6I+SA?@{j@(*wu~+`u=aH zvA&Lczox7pyXf*w^S2I6&^tZ34Hh-7B8QMY#0@;h9mp7TwuJ~&Pr1ej>?sU1$;ov` zH6IazrBH70S|Co4(ZuckyHS332+L~A=MLxcQp8bkd-X3$7ppRl{BW-^ALx38;>s4Y56dU2&+$GG+9uQo{y*wZ`6Z!yAq4y)9r9@;!|l>J+yg8 z>%=#L{-55M{XK?y0?Md_-`9JNp}8O*FIHbAQ-BQwd9t9t5Ju}Km-MWUUv%&US?ki& zG|wA!6uucs)qgm;z>e^#AN7=shlgk1IBXG3;6J#_B=|cy5)u}1KaLiQ^(5@bUUT*? zx519QX@mNnJ(y~aOSEdIIWhQi{B3|70{WVG>9A6z1)~Qz$aEpuXh?}Hyj{sjhy3v9 z37}E*zZglTehmd9cI~FICNUSEeWSwTdd(quqGdw3JqY{s^IJ^OuozHrdZ?T9xoavP zG`RyZTv;mpe00&m(E62o<&*0(NlBIoMp{;J7yP3hEGBG3{aD%?W7|A>j7OtRqJ=#? zQY714S%J%t6srs|CBW91EFiAo;$wP|y0uPBHqlu~{P`A$0SLSW2pO(xecNB9X~D$D@VF71`Qf9yK%e9xD6lARX`H z;)7ah^bCDr#L44?Q--ocGat}PE*<@d-#VffCd1_y&-Zh67dU%4YY?3Hbg0U3zYEcf z{GdlMhdqtvbO&~*wkvwx5SLZZ)u%NnND3fDlILyl%L;Ah7l+0iRsTI0bCA$XGIiHG z+u3lQ66tpB_Cjg4DRH2rOuNJEk>C~v*}4Dhw$CPD_Sg7+7x- z{yCx|pEH+~pfr<&M^2R9a~MC=CRI{-4&!_02rTW`936km5YYW108Pw0qaF60(VwgS zD22@4IDCOBnd}0Fa8DDdh*)^s&$!OSHg0dGiS#=o`Q>*D_r|QbE z+cyP^(Dq^d^SmSUCf9K;s@v)10m)k(LIouK81&ZRS)97>?w)aJix990(X5$%yKqYAVz{&q`aI3F+pY+O)lOBWrhj?ex;*}1hS`0xo<`RipP&x9+w03#1T;>Es~v&PAUL!Y?2aN(Oly?A211t7yCbA~5hQr@a96tc9p} z3_{F^2g2xRF5E~>NvWAQlvkYmko={2w5J5}ec89P=vEN{F$U{z)co}OAcb-D7}z;t zi@b~$Gl(o9D$x7@K?xLl!$Q~$8L|WV8xo>lH_x;EwDHp=+@?bv z6LjC#H;c|Ur9kLdcMcB50Qf7~2T=C~pzho;C@$?@(wL!+QW9bAhIAz zA*-9OI<0m&1+&XgQ|Ce0zse8)oZxRM^a<1~|0at6p?}peXK8N!S~PgXG^sC)u(G)z zSg?i2Z4{{S?J>_2UrGr6UJs6q`;!B~fiHZi#PMQ79n?rG-R2hui&YQrg966nuBaBC zu<=-#;wAm|IduHyIR-A|Zu(!I(fhfoN|yV0{SW~c=RLsf_&P;k#9`Q|l4-4;i##`v zG_hEA7-P+mgEPX0gT2paUIG=Yv7p}$;vgF)l#C~p5?Y@P!s~KBJ&htStcAL={LgNq z%I@w+y=ma$Urw(A9t*G%{decgHFF}(RxO14?*h1{ z9%-UhL_Z6|#qnOv9IYp!n2YOlaty04o>WSZGcAn-yHj39omP#(h8v#kE$(azr$Io? zSno(jxmn7;H?#I*W~|-CRU2{4Rrhfx-jW~sR!h&OybhIrv(tSN#f%C%+JgSW68eM^ z?lWPV^llKUfV!_0B*PQ$0r=rjWrC5jDUz^FABe!verTb9)z+tI1ti_- zjN1H({H?F!8UE$6HHQR7bi*6o1YwM>drVd)G}fMLd&QP)1)X*ANXN=Qu&TIfSeEBv zed5H3mO(t}2(|ej)6sairkQAdNC(p9GdQCnj%n3Edo1pCGYKDXJmNg~8^>6169c(Dbgcc_Zuc5YHgz4)zPX!i}RSs)vzX=2b#?)}eZhX?gr-oH6j$Vs(_ zgg)15rN^PMmU>_x?%m~sx$b{)9GTwO)B9qDxqPP4t)NmIOJ-Hgt)t?~E_p#a*1ww4 z>Mjtls^3Bm&}zX9egdWVJmMZ4Z_0L6nkR$|cCr5|H=ojA;qq|mc)@){v5KrEauq6z$JSZ`=B3vKu~Wyi5MN z)#o4aHv`MBisaXHsi)|+Z8zCfqKn!3x5>C%J|d~f+rP(B^V6bl2x4{RfJzdO(cP_7 zwpUayc4wV#p6qlNm*Nio@NT)hwj|pS>1Chu?ook%5a4r4F@0*0QTuMCNyg=fimD9g z`t5w2pE_~T6ZEpkQ!?aLB7a8`%rj7GmG8ipWccX3dkDyYl=P^p>|xCq)TL|GZH=jR zbtw=fNdzp9>vg;7`5$TsUt5rlT6yyfe=tBYajit$bPuBc=>ML$dyhY0CN)T=DVl0C z`!gwEt8>8i2d!Y5kp(dfWqI#;nrc_6^5?1l|8S3N%Qvz%1?`xS@uvdZs8D88&1;7iHXtE>fdtOls>y8OdS%3L`nJ7} zw7}#uvX3YiJ@het@A|qA_7)P^J`FQ4VSkZ(O;kW0-V=h2g>ycTxf_cspXttb`NU4C zdT{iwzh}gYtNzvEy|;BOx<_3U-C2F~p;Yh=Sr7w!+M@C0uCuw=TAcm!QkdIkl8D_# z7KBTxce6TX^2fU)2OrV=X8-*Tc75q2CXvlxgSBUbP(?FPIzF!0YnzBi~s z1toDXbjlb+@=`x*EwSNrxG}iuOpbr^R0VbKZn96LfjkE`phv-uxh0t*+g{us-TgEh zvCEXU;ZG&>xz<(nCx^G!lGtv-NGebe)uU?H<6B5^7|S7}J0}R8aiIy)bzu{`WkNeY z_vb_l=l#Q$NE50D9!AgmE{iT6-*7vVI{SG(tYZa|O93&`B;41#&75D{7OtzKq5H(& z;cntrhZ#5G@1foa4aQG4K23@KYRA~(K)fP#_3@$twA~H)P@gR$u%9nF>dDxpWM-|B zJ32u7@EG}q4HLhg)3$!gSN1X9=8sd4Qd^jU&nsJrVb;J#s6tSiIcpHlXdB@)-5t?G znuG=UMUXa5c{b>^V3S5kc{IVIvxpn!^$%g7yn|uinCV8D>CfKuFcB0mItJ}X%(aJj zR)}HFdhXLDer_a1SGpYSo_+%247w3)%YO4W&_vjJz;nC(n_|{$@&ix%@4=`&zfzSi zV?3U@Cjvx;-y4H%@ZNnG-SOrG?)5D268lyZ{pAVo3w-#A6uh#GWMc5} z409-Y#~+8>R5xo@pz>J=?~@Ez%xvX5m@4u>O$iuLp~Y{Aw2xNxy+wpT2v}*i&-33$ zppbZEmLRq67qj-^nL0iX>?47?_tVzf=07DjsA`R3#^y|f?`4NLQRlxF|1LJ~=E8F1%$&X-C@s zpJg0oK_ORaXAIriI$?@xp!i~jA1(D*d;E!CT+Vd&m`a>&T3``bSM! z;Ju;)^Wja>W%bH|U7Apj`R25>&-|jwiA%MKOZlB)^cSVj_<5i%9bhJc(@%X6*G6=2 z{AK>-n3vT88t0wi!I-JB`X(`S`l0cV7pghO(A+wJK*$jJXR<4Q1p-V&w9- zcO%1XdwcjLF}K*=uTUS?fR47zBe?!vhGIb*QLq{c7kC97wTP^*c8nn7G;NYGa4_8+ zhS;DN2kQ6+fV1NvypsLs`)#1_XzWuNLW49Vkd|{_FxVYw0_Ot=>}cN_^F3LDi94`@pb=I)F{AC5u#Eyq4`?8ZMz8SQ%jmI)@H zTC%P*u}$^z-To)e9}ldR-}&6DUg)i8sfg#YJc9hfnPV0A{CJ&Ic>1{!3)iJ1Lo7ZF z$;i}=(vo*Kdx4xho20wz9L*(rBDN+%Ek*GBy%UsVyOUFXugStkK*wuPdx>sV&DMvY zdk=)KtvO=2)Gp06h7-|5x`^q8bp7%ur}XF22nm^ z94uq1!*^&b6T9r)IB@BWg+$@#j)j_L-27w$fd*-s)U@hgTAG~x#Q8x%lWX^KlZ#;D-M znR8Z>X6Txe-?piTDBUo1ttoWq-~$pEFX-ye9Hz%(I8UvszSRHH1sVzl_;X|hL#cG$ zzkuk6D?Bu1>b^?q-yBn7Nb~Z`@w0@+6sunSG(wwuQ!fX}3YPXthoB7k^FfNAdxzYg zlw%QUi>&DnbD+7uZ<`Muf%f9v#BjyvsqvVxSj4{ptpP?ABTM0jN+WG_@KZ}=H2+n0 zG=%C-eGnQKROQ=EW&*ld+tIxN7a*m1bEQ?ZXjnNAES_bx&7#4+7tgabv!Il6KN^EM zOjlgNK-{t_XC}URYS_X;4k7Ssa1sZq_K)ehX3GfT8heV|&%o&?QjdPLx?lvDKmN7y z2*UhDWW}fe9sfuV#fgh=&JN9d^Y8d?Al`O`*+=*V5FtYvW(uieFRBhO<`}M>&$(%>wVYAJ3VQ9xC{PS`|vAy z*-_qmnV@LX@_O&aZ)BFfb~{?ZBHM+6KU$$!$3Zy29%mwzB=nYB0(A1w#6;+e_6Xvb z;CC221+Cyo-8_9-#mDg@H~-P_injVRSu&3aw=zm~ImRPHV3PG%u{sGWoh@Jd>O7W_ z5l#iSy@N)gkKs^in@8D1m5eTztP#0OXR}9nV1Ag~BMR$bR{C-ta2N{wQ_3yA_`ZC`h~(d{ z;DhPjZl};mw-9X8_p*RrNs}EM4*r8o@O@OsJODPor$sF|z*gj`E|C(TZ*_LqdUbO@c5=NPz{t*XnY-s#??*^z5qk8%lnbri1oC7 zpII0NQ8B=U*q+s=FKOJGDx>GQpbVCk`YaMwd6%a4x}>++H>a4(_s`DvH4xY8FwQ)KH9>J_lJaB>+qHt+$If$2&Efk19C?ul7n6D+jhUx}G9723#_qNTWn2I- z1eVPvm>dH3WJO4E-EW4)UArD`md#di9L1n15-$(Mq`y9Rw0X+OBLwHv*S;1)0JY>kekxwkEjF-JH9P-0Bsvz0Gi*wVyEGu!tDSEQKk2+k*DBcUe{7(8U{{OQ8*j&RW zwSkWGCrbm#KZ(EI{bxyC*yQvJ_r{_ zA=aJobl?UinHhS_@*mY0gBpcs@C+kEXLBcg6G3!mr=OSPoV=nA>MFU_>%RzWp7KN1 z7fIv?1a-2U(jbJ-$O0gD1FsIr+YJkU-+LgQ*3zdi2Iqroz8&Z31l9EdCPD!-;?S_`CJdRl;GF*_ z#mos7v!cw7bcd20TEHTdZR~K1N?(~V%YG8#!rIG&(=`99#B-KMunov3ldrz3nDquF-Kj??Jybrg(JU?2LyrP%I zBMdttAT9O1h9}0~$>srMmzg&xz9n3p3l7P0V`bz3>D5Le(9BT$9GEUsr}`p}T^CbJ ze@E2X_xf+P{OggkU~aCTzr~)WMW%{cP9$FseQF{9byC=w^$5ZB`e4?7FCP@Sij{(v zbMJ`zJCo9WD~#Cv*Z7HT5@#o3@5OWMn3)QZJ7a{m&1r;#hV%qAzYv^RV`^mkzwTV4 zyNeMz+A3E>R%UYlv5h2QsAK${khU;!dRb0WaC4^#pjf(gwjWF{^BK{v%Q;c`W6;+& zMw_toi=Rsl5^JkOOn$uDXr&h`KScNA*KjNAq%_did?5#c?wtMlTC#3}qlZ*6$lXt4 z&}bkcYjOCfBQ69q2!z+N%B!I=F!>4rC$$3{K@vk1s?rO4Hj^+qcR^QV^@Kz9{<_!!LGNpvA$Aln90T{1UY1Vb zOgp*VO&C!qs870Fg6@$n_fj>vQdQ=UeXM#^oO%P;T8Ckz981mI0Ouypm8&g3oL%Jj=Jd2N^Hv1F(PA z3T?@Q47CIWq|U;Y-xr=m!7$I_l?u@rq``KL0!P)zf5Hs*>ej8k2@Ddx=HHN7*j0_N`?CeIp2mYcF#y{If%cvOZ z#^g(VvC48a-#!b?BPJyc_K}44=mL?i_SeBsrH_K%QU{~u_qzZ{Q}gPKan!q3xL*qk zW84^YAmhIYzDl@%NvFR^v=HSKzSgQL7}8H#kiYj@{B3*X`ppyPrh?lyPQM)17$UvtVo`bO|$B#yFzkQvEm4cR{5!G1`OXuQKtdttzUmp6yJarpfG!6KaC*(~x!9e0>UGZB9 zxpqEHEk3{Wpq{=DyFaR-n+#$UF(NT9zyUW*L;rX`mfo+Mp>}YsSuhmIKdGv0Ed27O zw&xju2;7HI6@G7Gs=R|lCgzl=8v>a-#e0sBZvC*HSYZSsA<*6TxWoq&Wa+P?w+)TC z`j8Y;WgIg4*+uEtA@#6mUhzfNIJUqhY$Oq7Mi2ZW3#GeW`iDEp;N^M`_3xjEfpP%r z6IC(KncgV5k=uO&U-Ti;k_F+4jXCW3++;ZFIFLQ4vP6rOBq;4o*jx@HA zWyhe^k+$))E_r>4c!%BNKGt-A1$N_KEPbGXJQNye)n8wGi>bK)EHpuAiP()8VZ_HE zqqL+fBZ(@I)8)QiJju>eO5JR0c_4D;KT2f6h@=GI;p4`hg`%YR&Bh?)?#l8ug)5`@ zLn7}FnJ>Aj6}cWA+!L*dUxf+1)k3P?WHlmR#A-z%brC;pH^G)UOyhsuEgyqG>_E3= z;J{t}iA$Ao;LpxWZBmH+8?T65Hs)4W#MRFkrqose%No$Ok4$_nFz0G3^oPg0$RvFM z%O0l5cK_(odd|t2176jgWg|;QPOZ&d?7fxyjTjvY@nyUJrg1!aiG8-euNBEWSiAiq z4MKLzF@FD6FaJ+jsDadu9jNEw;WEL)_C9DqS#P7c63(OxSwK2tNg!^BU`Qj2){aPp zG_LxU=&$s84Mw`V2!I+&V6=^=I?e0-C|$iW)P5{6uSIoYx&;&}Qu{7GM1v2q0O%7a zRZL5(o|3rdMlz!^O-62?auQLFMO7_1yil+9B#tLv)n7OWdwT2GR1n){zQ{@O3OLvx zz@rstGfMrDTRj5ys6|6eReWfAnF7Bsq#?x>TD78;Uj0&=WV)BF^kQzWO$Zjdny6sf z!TDML`Q?4wkw46c3oP5-`co>$B^ z7hM*J8tSsH`ZXtYt^T)~yg!zPfP3i`;w}8(=NqTs7ooAgCl_&7Wgv8gZ`KE07y@ev zg(cT7HUQ+Toy^(zIi+pgeNVAlEN-%M$#|Yg3eZ~jVztwELd_qd{W=!|Fg+;w)CGex zhA8KP@T*>@hjza%h^o-~j;IAq0iQ2AJe5uuSCtvZX+Vty6w>>-zPEi*;G3WM%Dv(t zt1=oIwl#))7Cg*i6hasN$7~UnW?!oQB|Q8}Nej8z8atKmoXPBV$H8V|~q_bB2$aZTwIHiyV?bATzf%(f;?{ zWia01`{&L`fRTEA{zkz&B=)9c2#G8|+DLE{=2Ak6q_@LtT!O1!G`yiA- z(RcT+bREYfs1-htg8r*&8=c&KI;C#*Awa`8_c#DGw24>a^#q$M&=0iq;gp!$%dOj9 zmXbODq>5v5B~`A;^-~sBxDw+wlqCLJw2lQpaAUO=M=Xy?V1hpW%wPtd%j=UF#?Y3) zie7fw3l>GD8>t}g!LRIZsm<8*=x#-~C|K`5I~kWSDm+It!=uEvO!Fhv)mKge)8)u# zr5|8pvQmx2_=~*Fg^iPe$wQlX#%869;UG0?%``3(M5aG!mfYy7I`fT078uYOj0gh<&qHfT8oJY7;BKLJ{8 z(~6!_I)y%U5JJYy*&lpdKSuCul*j&yXPr!BKfe?xawwc0<1Wsjgca>wp?l@;;jl}{ z1X34!C|~kZwod`+P=a|i2%SI46viG*RP-QFSmVIe>09iynTrSd6m2re# z+7!xARk6 zI5cKZv?%rM@Y1CM5!`FDu-w6iSZ}b9lk4=0WJa<+kvKtop2@@mwljivJ@G;zLYfBz zMWs92)8T>0BwsqcVM=G*%$1)7k+S4y8jRwb4TieYtx13gNvcPCv1ZE_d$Xf0fJs}; zaZmVK24SXEwcOpaIq_8$T2l}J*QC;<-BNJgarK&1M{T`$j`A|2F}PGVDK*dgvUt&9 z3WqQY5Rmajg=qVX(Jp7Q7X1*=gc1@|-RrP5df+AV{~E?$`TlVf992vH?%A0OgetQDMR@S*k|>3@pqOO~ z6OpBkFmygLjH&S65g4F(I;KqcTAPa%%F4azt|cp2<$XalkSgP(ByVs*Aha#SRV*Y+ zDHci)lO0g%l>Rs>f!LN+N~kiv_O^Y zE#(C_r(?Z4IaoLBDmwl&RUlVt{OnCB_E8`!6xJmxpAdXb*gPj?P*{@HNr(q3d>Mg$ zNFX1n42*)dCIwGy71Q}& zVuE6U#XsBEj*X0?+Y8^3+5&LZ6v4A~!&Z`sBTrro$0q6-z2O8ug8om>nyfLL=}-Wa z{-o_LOuKMmIF`my-*+ybb2RY78MiXi}gdB{O=B&onFcgo05$@<4UIjQ*?y zlTVB!wzmW-x8CEo5g#4>7g#NR5rl+WLc)T)-+AIMMF@{vh;5u@3o>t4vjCY0*2!xX z|9w`UwA#NY_;o%XK3;3az#P{L(ro&dlCPZv4@mHJ?{R(!w7{&***7-Szb7^Y>C@>! zTBD;Vn+AhPT*_&9R<2*kkmI!Ir5{WBFomx^(f$OiTVSz|7=B?c5b-w2Q4;iZ*E0lk zZAl?m0J8>WC_S47QFAIiW9^5uqXm;Jl8=&fa7F84^wn@^)21k17BOMv6tq0%mIjr`kh+3;VO4t|h$U%&f(e^L%wF?i- z3%UAVMS)_M0uk|Y25)wcp}(L0c5*vr9c1^Tb{MV7q{8PvU9JfkS2B=bN^i!nzh)@m zue|M5Bb=X(r9QsSXOAb`OyoMN9O98VDW#?~ufCbI3^lArp_Ioxnp2 z%>Dy(U(ar*WHzT$M5XXF&dlv=HLACCkBvL~4W3zIIu#VgGRb} zU!_RGAz*(pi2oL&tK#0X&Xj#%BxBqQ-o0g$Q$M&4%EO`ox7J( zmnGp35%meT&9TVy-{I4Lc$Q5gxtly0{+6YSOtQ?Ow$mO~e4;d(l^Nm%tsjL6K3nhO zB$c_-+mB2x^9y_b!n~k@0ym?tro731U*<3c=>eD*b_Cv068=#V@*0k{?=}1XX!^>y zrr$T*jnN>T(w&m}qq{>uL>g%j5Gkc$qeHqoq(eHTyP1H9bW2F*24g$>pYu7d_WF6g z&#pVJ>%MM>x)Y(lw1BrCmi_ZcNg@$qbDK0#tyHdx&KB*86uH0^v?XqyNjAC@K2;l` zPFBA6RzLoMoUI`|gl0eYh>`(EGxmH$6=Lx5B$HAUG#{QMl5q}f*kXcE!FvHtgGrnQ zXG;B!1Vw)YnfZE~6)g=vvKy~pL=q1AD+PlGKd7F5-WXL^P_+vTzWjZEJ%{W}j>b+2 z#C}Uu+eCnPoFiy8epe@XC32`Vy(qb|zcRyV((zzXRY81ji>@O|4ef4P&z^SAt@CgF zJmXj9xBVFsbnEZ$Jy(mkPoyatgFDm6NqPq zJZV9NLb{s*ycXk=qvC!oq?;JSdP2e4a=yXhPe(&g^Nz|`=;CqMt4HVZ-+g{n?NKi` z`9*GG#pyti{o2T}a6fDSq-lpHK#AH5k~b?WXs-j@d^Zk1_@F%)2 z>TY0jxvFHNcPi(_Mz2-{;(GTQ_A=0VxRBCSf-($fZgix_Z93sBVPPRr-&!5w8|iuX zey)yf*VSziF)RGky>(4mU2vkG?tTMSUd^u9q(Hur`C57@qVFt&M5aa&G2t{esSApkv%Z$ zdeNNHjkDGmq4JfbIKi;f)5z@8Vx`O#2gZK14DhRT+$Gy1Sq79)9oHc4%of-%T0sxD zEYgNLG6>aGd^o5oHfyPnrIT;4kQUH;Fkdolh(ByeY34GUwQqR!8{B@ zBx3z_L<2$?a-Qo7BFnBj`LFLu`7Aj$XeS%bi-+exRe-zs7a^C71|~ z>+?rgUcfdo*&DIBl8t=32p=X$t)+IDh(7&L_g{Wpj&?Hw1$sW10yH?a^I!q&g~g%8 zmS}Up+UHM#eb)oG-RpwbTUt#s@+!u{$FmF6{w9s|4bGc>u0vzDU%idJ4F!eSN8$jo zDY^#JG~5sJwY3D-!0-es2@Hz{=Kyj&y#aiV zSR~Lwz!7U9rMyN;Ju&|&S`s^N^B)GR5^OCMOG`)_`)!qmej8frFT10U(RJWL?Uwag z{=vuvWo#*K+Ly3$sOSs=v=f6;OMzyOUEcWD|ZwSJDP*@LW#o)!+_QH4) zb_!=00*?^&V|ouvljNP&C3D)xiZTdRYn?4DHs6FU9dPaA%0MDI!oZ9PSn>ph(^Ojl z_eHn)RJGdB6ip(kh+ZrueQ|2oG-$5e^RL2;_Zgx5EAk?|-`y8HfwyyDVQC`%jYH<@ zp;f^`Joi@}j1uT+9>bFdLI5u+Y|=<7Q1la4;uCOG37Jb$*k0(E6(`YI@#Aicdx(9> zKp+3WAItE()(gIv15Vpx!kU0)t{kBE=*E#;Z~$&e!5MBMT}#;xdj zq>b>Q(e|)lb}O%nrN$NI%eaf_1)cqLtbKlYpao!QIk&N7p;lWQ9f|zHdel%!z z#GwB*xXWF@mnm$U=?G}iEH60LEoIJ)6d;JpM2Kx4L-3xY-aMMR)4ka(NlgL!@_N)* zu*enu<$6zDazJZ|8pC^KX=$kqhu-5^4L&^Cw8*i1gy9AWr&!iK>B2q&6iv@S@+y)P za4*`UP|6BWQI3XQ9A_y3uPzYMKnzT=slsUV%utlDVWxkZc4<#A!}wN0N>N%^;VE!m z==|`!HEPIsjz6sl`azh;7B75>Q3hw}3sNYueX2t8K?+1M{AgIRzT!Q{|nDh4-nXy|#9iztR~dqnY{UA2z&6(>OL`^A`M3}+}vk+pqL zeJ7nG`yTWP=^T$&%BPcXrwsw27J#a6ed0!wCakF)0iQ2SV$LS<(s z3_q&o6@SJ+iyIRQ73regK1~0L{}g2c;2m>(tedIQmY`P=XBL1TbZF}W^&~+3E}W3` z9a-M&PS$^+76m}7@JJcDvj49I=&dT$8z7GqtI$B^GXFtf|L#jl)lz34Z7Y!v3{Ma< zT&zRAZddKhKu-anXP5$q<+xCUwaiZ@jcjtU$q#9yO@m>&gE}Z}+a$T7tq{QWGj#tSKCS1vd?SAdixPH*ff{A`$kV)2YU-DNY13K z;XMxfcRd&ULb&=p-qfbv%gA?f;1j5!)eo`z$&&N5CEl8uZErTDJHD9iefvL()uCL3 z%O`Ovw6Q$e*p)#q?13{GD!5NQdUrGH&V>?uIU^U4> zygrY*cY1Y42W&`<&PO>uSwEV@gQKZ#b4%g30F}pC^cN@=Y>yXIBl(n4{O14?PD=z2 z(t2WJZ~*>l7T~apHuiLbHT}33hGKFIIdY!A8ecwI6L8FlE<= zkbQl%shp~KEws8hoM)I33i)ddnAGv7t$(9L82XmkQgBQRv738nKMu%%B(Z3bHI$0a z3-bI&sZAr2v9Da^lg_b{>;kQy}rbKe*5=k9;P_t5Ej)Ziy_yaF)*BDrwXGqKhzb&T3?`GwE2BjuMj!v zjlybgv*)wmqrc_dGpY(FK;FcenF+b{+_UuDi_2XwTt754?QLkcg>Ge*a8l~IXUV#0 ziOC5d%rF9__nvV?`8Y*%dt>O5BOt-9el12UASd17d{zz6Y9~#d@CG??ZKgd z{w&K&`CigoBlYs{l<4$V6SUAwoV@?TC(HZYdbJF%RGo12?)nozLwEt_50Y7HJvulS z+C9-*w)V}yoHw>HN<>BRi@$Jruq!)qrepLFJnC5ypyTdWGd&sq5N%AWQ)FWbRzWs@ z1L>K0S(Z*X;!recsVPKyhUfWEJpb?D?F~>Bt{O_1=5}WE@o#2BHz||`=(OQ1NY*Z0iWoZR>a?h#Vj7*RT_qkYZ<)lcp}FEZ z$8;`dsnUX4yy#G{Bskny>Pwwcn+6pls-+v5yz6<6HGXy1WBhGw0kVG@d_+HvpWE~e z3WV5qeox!?e&eD0OR_x2^t221$KbTc$1IoQxLfVop*FotpBa}%FhP740pE~K;A8& zOf*j5``D)1c$ zc|a*I+j%r-lJ>`d0{Fyg1spXxSXPy%IFOw)_{xAM!PmcDwwS6hjd)oxeS+Tiv-W85 z2_{nkip;X>fr|>$`~V>uHMRS|aO(qAo1Z%Kobk68>Fe+XB^omMr2J!CpqA#R**H9n zayESqBfS4c`hp(w_6rIN?)DMJm4G;Siklj#){Vy(Z0G*3YB}EAW2=7=p5xd~ZaX|); zHYJya)Rq+GioMk-X2a*aVKrlh{|T$nEM^3c1V-&|L;yXDI7b@Y2H+=jA?%tT@;AD$ z*SWepITP$sf*SdBuRQV#%c!F+QJ$UPx%ZqAF`y05mRVEL9PPUFr$ucBgMOK7fihz#Xmv7fS( z<&QZmmpFMbTYP?qLT6Q5A4kOF65@o{OG}9=XS5L=taU<;Sc@t! zTfXtGpxC?+n)!^3jeURRvHZ&#X;PGf!Spz~i$QVfEsz*X3zpBI3II~L1|4B?JG{Cu zK^nB2u0iz#u(%V6xdTz!Z4~{%Q~-^-IH!1xi9CMe$Bp@XP#d9t0ndr8c z6hPAYBmr>n4AnME%3N|~L)lO0G&66fzv`hF)ye`Px8UvG!-NRycwSRw!*Ib85lq~= zSlolnHZK7q$w6DQp*x2~wTBTG-NUglPa3ay2fo{Fbv==#@Vg~7^H0#ZLTDgOK zF63^zd$su5+E5qThDodr^@X;a^_MLh+Hmj zwXa>=J|~tG`)Pp01C#-PHSzuTadVzF^#bZ28!BQq->t=H`l{v*UtWTZgiyVsUBUPc zr@=5Yq5XXP$}r77;+=`Tv){}TOb}o=eX;uwkxb$0tN$yKwwfFtcV8cHM$ertDob8` z+2E|b-ovyaKq?@Gni`zQ8z$IAd(WD3LCSX7Wf8ZPE6Wz6CjeYP(7RW0Y()#7P^_sd zWR4JoSc*6(HvD+gAa0`mmci}NvH6X)iZGjwbUAUY@j+rOP2)lCW3e$*SDheKmjhnk z>qs~_4Zz?_*i}kN|8KvUu+qEP;Q6~@a(RBGl*Vrg(0=2T`tyo4zvP#r)MVJqWq~FD zCE2p1>bZots~}8gX!#mRg9y*t9TCO7|tugP&XePNpD$BmR1NA?QHe@KF zrr`^{FC7++;@Fq%$y(zVXP2V0p6fObktH0v!qOtDpG$II@3?R1?bT|9h}O^ z;W2OC_I)6y=4QB%PM|!M+Rc6B1ZXt{CIWEPE?;$e&mC=z0p6wnY28Myv;C!AdfS+a zS{i_r8KBaLFjn#hfgI4sHFgROOL2UL&I~wzB-J>;~gFI7mTET z+7M&hTZ*=@h4B7BLMvtp+4oAZ!6Y}8atnS=B~jl`!;|`K%*gouF(_Ud59EX3I`GAp zKb&*GvZjLC^;)=AwDXwovo1ovsBgyS&_Y=%=FB%AmD7YXm^9cAOEIkoBI6o8B@}y4ii{KVr15#rzA`;i-x5Vr#3#mn23Dt? z*9Z3884s58J6ZCs!O1DZuxT2$goP;I>%FlL-prr-a`@mz6ITR|`esk^w^NK0eWzxZ zb4NAeo6-##Xn^ICJ`VMu*#M3DmekJhq5omDP>ombc6nc^0cu!yZjZDGFp_cWxy_KAPYh}6z%?R*EY5+=^cAeYZOSwn68z+2 zp!tl3duVBs0s~uR0s{qnA_5@sJC(n=LEUb2TtSMp<#@W*C&kHATVGY_pu z;@Ci4=7c8N5g~3IrPgA`q*5AQ4BWL3b7f=@$Lu$Z>P!IhWF%n`zfv6qhA2xSRN1#6 znG>-iMr~&q{EK>=u~n-R2Law2i|tO5?lVjzdnX-jaXU-fq!?E>YZ zd}_y77~MDBxNsYJR9h`6>u!L|uR{U@7#V^gt;6n0&W<-?0fGBrFP1}60%&9-Se8xU<~FuBscfFF z5Y#CE(nt(R8Y9KCm#;H=WyJ|->Q-zlt_5(fwPIMzmg6iA_c1hD=2snr%X*|SZ8e5L zKg<8Ad9;7}=dokickW-Ms)?X1kbx2ETtDe|?s6jKOZ4MPwm??3lrJ*)v_HfjXG`oB z`Vv%9f{#dzByZV-j;xLR9-#b#g~Hf5cq8)VwK%_ElD470pv;sQS7?-d7`kZ#d89yE zu#^0_IpiH&wMguDn&O%mS{6ek6-id`2i;K@3sf%61{AjC-AdJ}h<#hyJ^@!Yp*@iNH?6Dl@pSN%rTgiOJ~j(V*6^njb8&U6ecT7-CS=Ax=&yocpzRLd z^pjP~LB?{fY_VEhQcVx)n>zdb^;d;-t#31n-VklVm86`9HE(=wydVD!L9;R{S}qgF z<*Pcz$6K&S$rBJXH%$(bF}5$W zNm>1#%^_%q7=sEy17!@BWGwa`|CtpHmQXcc9@i_PxQDPjlwepAAOvHpym_h=9r7KP|%Q{sK*Ar%59q?l)S$r8V%j zIH|o@ArjW|Gc2Ehr9A8`pPvJ!i#DkYVET;TuWV`*Z?eAmRcB>=(!n__VkY+=ChQfszmr+`X{(L#Z=U#Eca(?*I-aCRRKtO>6f?~EqZsR+~ zC605ZgLwoKphnNy5H^Y+P@WeRDEen7b^MkKpiYd^6b3}U04P?ueINd}=uK(KgO@fK z(sEw(T?}xrF+T7qH5QUf=qTuDY@R`%S4vpr9wj}emfup+#_uUGC4Wr8Bq8@^x9go6 z3-$cTX3nPRR~)3>_*3>Q@@u2MG>WU6!zcmagDH63KnB6q!)S4dc<1ZIPe)e|pb14t z!HeS}e;Z-)=Ob2)lNUh8l^D(w&x8YH{$y(JX%H5f&smKY%N!gBd3%nS^APSi%Ni*c zC`cacZe^oy+K^m4^%2Q}{$aat9rTh*+J&FX4b53d8`qh6i*)Y~c==v~%(C+Fnr1yA zGZ5)aO+aYcGrK%CsK~UstFF}wd4ryvG0`*Hn+f0weu$`yF6;X|?V~$_*=H-{sF)i! zk>m9>L8d_LO^>7Vt&HU|OpTdnuwRbnJI{P+eYS*n7^q)bZunXZB}q@C`ya+j?wJnW zpQ1S_eH_J~6^j!FQq@pEQ}}GDNC6M+!v}els}a#}+9=UhS2s?3o~!zNj99FY6KVH< zQdAumAPEPbC^MeE0e1xa1^s$qh|UE4)EHn-lLzoqJ8qp;oqjPF&mLg6Jlqn&{}21s zUnNF2{+-IrW4D&0AExlcZ>BO0IeUF!ifYOongG*K4tbflzdb^pADb|&oPtVo{#Ni{ zsHz}?;^ujah;EIhUlr(oH;szvqpNqHNvWCMYH5TtVUn7dgKDE(uFp-l8w6QGBab#CLav*KUMLhxg2rjoTu**<8<{rMCd#$kTQV9|VHlWCSMLmFvEmn7_TVN=qc` zPE-M%N)HPCU?mVl?w)0fK{;V$M%dBvAB6VbJBwc!*jcSR&|ls1#$+uj`^R$dMluJG z7CTC7rbaQG`SImXZwPSZQ_dgPTJrukYks!{u4J~q&`E-NKDKuwt3zn^t?*K(7|l`o zM;G0K4HOjPpLLu(KZu+$Wcat#k$9r;_Li>SGM5CY-usAjX?vEUaTMQXYyT7Kq%sAu zD&CuV(J#obyLc|WkbyI-UdUdA>$>wFF76%9-0*iR>V2^M`SVp9bh zzh`YRa`ncSHKrEN>VIp_|JVCTs#tjZv1QDN_-rgh+FRgvqD|+kuCrd-objr!vg6>A zCM+`g11aCj!w`L^_4QK$p=6YEEg9TL%VyLE#p=aqc1oxx@KyAS2t@xul#>A?MHDG) z{{R*F{*ojZLw(e`1GX-4hB&B5N1yvdU@#vQnDEtY*MENl#*j4PnBAzZSMx}6IZTD= zaO}D`Auii8x!WGIkzlOWn*Ea)pLCEX7C%hjr}odJs+_&Ir!)<@ffA6=|&%!0Yw+HkN%+P3$!9rVH>? z6-n?|139rYTstHPK8bN{Jv#}$da;#UC^0abOEq5z(HD_7eLh}-n=StBXC6(_F{UdX zv#cEt-ySB0gAI$zK|vhAE6%bup5UGt(l!h>FSSvmStk!>qL*OY=n|9%Wdzh(F5mvj zIP6`_@w*q~8($(m!>UkOx6_gjn~$r(05N|bEOAab#Avf=9=T-Dvt_JZ^k|LOHNlSN zQegmACai&qbbp6P_oyX#2_rxCrMn+FLi=<6+!la7ftTo4-L|h_vR{i_m_UOE$@(OR zB>;sVYgU@TZ^33?A|#&4x2K5qj^&CxvkyRVU2Udk1*ZehgDw4-iI@I8t_W6 z%#B0hfpIP60%@cijr3FybBF$UFrQ-c=ydy&VI}|(wb8}Z<Quk$kz7o}zWtyPqkA9i3&F$2L#8g&y6Mk(9H*b`*ksxh<(G0qd9Fgey*P z=P&2pzi=u8hDAf11%8XoH@xs{@enf`Vmdjv58E?aJU!yq6DWy~oNydYEJ(y9pAW|%sxdV^d@mxm#yWYNyTQpkgHmV6X2UU^49}EiRj5nHf-q(+ zwqbDA0?|O$ov{oi9P=S72zXR9V~@s*hu1lXOkNTz7&9HRCGRQA2Ou)HS<7i{J%%T5|5}S!`IC+B~`N;FiZB^zfgU)nSB{rlaC{bk8zzzGxXwo+$H;I zOsI>z<08S_|NMTEr|<9`n6kixfY>?EX!VJo)`1#8`MiqY?pY~_r}<4zIB9T7m)WUhNyVo<8sg=|?amUx-K!&lh<`INeQsC= zb>@}5pKc%35ufIu)qVIIa*x;og@FQ6RV{ysdFNU z^P8q0ZewXbIcZW5K6(#SdzQsg9P(WcFEwV4zcjTDmjZBY%-OCwmsL(Z$Z@lu5^K7@ z3rD|`XIS1-uGf`*at}y3?+s6TDBxM;y0knM*d%e<1D|fiJ2~`hew&>3rxUter4_;=%>-pX_i7KI*=*n7rX*Dr zw5A|73~7l7HMm*bK)zeY$GP?PfBE^a=j}RU{$((m>#wQ@vXTb=LI6434PA03h3^w; z2)m&cy`o;_TYRn~tmLUs`21=*3b#a(Q%D&AsQEFV=j3@XewRjZbv03T#)Zq3Db74q zo<=Tfu#Q*j4mIeR!X?*}))c02^WBkq#(acJ`t&ML4Cwpez9eG9^fkgH9%eoKa3J)3 zZM`u#*qwVa6^E%R_iZA&ppl&C?M--1PPh5mxAOOhkCH-cchap;FSQ+SnG#DmcST=^ zWf@VebLvaXEA@Oj{cSBDdm58!2b<%AMQuEx6LPs^Fm);hGwo2q8jsqOYb`6_(401j zbHskvp8QH=$5KO*yqc0OfdO8+_XRa?%YnsTU+8hN#2-W(pQf1{TlYpq>FYM3Y@_Ky zMKy~JJGj~O==kWX?kMY;gz@Lr7rE<+=WB(cLe~i%ER#q7n5zvFjH>ItgtAPCO z)24^*SXK9{a?rpjhHRwhwdFOJ>bJP9dhlu2;4I>ubO4OwAm_tCZ#1~G6Ws1ohaTRj z9<4P>=nD@U;d||Q4tNob8kLoFqC78=izkZ^o{2l>jD4=lGN!#hqQ-^6wz|;k`#>$| zBiAeVes-@HoZp&d=8Ks_5AB(5R23p%+vutf>!iK(vzq;>IAkn%4}9CI)ma<(aPz+t zp9%2*C=}WGUs(E_U_8HI#Nog2j>us5NlF?u9kOsW_H9;}Mg+%HKv;53^PwKSl z#rT#Ju4s|uH2)&usPoh_(#-AiedVSn+mNe~NIni5Gn+>s%iC0nt^}(c6}Ep4W&~My zB;@3TU1t=m^yHWIiM*bDjIHzp=nv}QzDIR=KDxG9gg*L0)xV#Ak=}$DW9WqHMf@@` z=gubKV!GR!GT%}i5;BW#y<<7l^6E4*UU`S9@<5N=WfzMBcen@#53rONAC6valr!L zla2nMHZ4mn5oRZK>tu(>vzMtj*VGT#&sJGC8M?_CEf=vu$T7{&XW--AYDt-KZZGowuuydG?B<*?8q)Oh)oOymNF_$gj?W9hR%r6NNCp7#WZm~ z+$o2KXza{HTYF;%-s1?cO1a2tj8pY*K7=TcnwL@Qd28`&|f} z3=Wfm8^84rmji!S*ve(q%h%GiMJ zz&3KK-6L}IdvQYLY*9SsR}u}A{Wthhad?b)TEIqqW;v4WK@n!qZZ*j_dRqIA-7-S( zzc6YcvtLdmAs>O=r-=eP3DoWV+@OgVAPBSz*rgS*u^PU`jOg$%ucV|Dx@DF~w(|VD zB_+P6S!LbY`ZT4T5gSd8GWLDvFBmw)_!aLRckdgfbrk#GyZ7(-9I`P(&Ssu$D@d{~ z_H!RsjeqhK$RG^X$rgu|5xH#Nf&N*N@u0b@2>`V7JB{cs7}4vK5kt9u?cR4Kjv8S*N)94b04$!Hq{>3 zT~F9NsT`bi$lsj(QU{W6KJ+mD-I0)eygzH@;y2j9oXPa`skcne^6woH$A!2(9yBKg#y zBn>Pqkn};g=0tHDR@Qf7yVe+Iwldr;_WLfKx&R5$HNBaTq8$Fz#) zajEn^`P${WAtnhIMAU_^&^XzVo>^;xNaF0Pt55i@n&?Td4;}oI{|gw=(5##5?%rIs zkfMPXo~t$Um7O^WI+_AR+^XV!-nNbToVJgFQGa%&M0>;W%Lw|~Xa6pRHU_a!5U7vp zI|U}vG=+24*9Bp8EWfN-C{FlJMrr$rr^5a&IVoMo3*oK0B5 zicmVLr;E|2H)$IO{AAb-yA$oc2yztvA=Q1m{hN+<<7Vr>jhlXn22qW>7#21Wc1vE& z;ZjK0n{rB`t!nLWwRyOrWev;_VTq8r0Q&vkz~x^Xs?queuj!8~?g#U6>og9qrSZw1 z6VX|&qqG7a%a{mtJSQJM28A+pZ73alR6#7*OkXQWgJIdf$QI?lZi5lc55T0~xbeBp z_Tylz=%bKCT&uXfteLn4I{gHs75}Dq_9cT|?W4#m&Xhl1&~P^fA@#Qs!bVn@d9qOV zyL#yEj+Cc)U_iq1`nLCEy(m36m|(1Msvnx>3G^>uX=8}?Sgl2hR^gI(OyglC#R6dI{>IBk+p^{vf!&gp&wN#%*m*{|0%BtOo^WBXXo3z*j< z_Soewti7g*Gc|#$cqAf9X))nPJ(_}?7_=e+BD+^7J^ZPf0R2<~>^uxNc#UiKzUZpB zzs%SMo!7KmI)1fMq}2Q6!52np#6a60(2lG$yWhv4-Ee*!`D`@32EMD4pgq`&pp_3}JsCS@j}z8H$|k&H zCaN~Kg}}V8Y+vvQUxv|0iEV2tS4*8Un|iZ~3-Wzsc{Cxt6R4L?xfFoYH%g>>FCXR7_rTo@!r%R$wX&3` zO4dmIt>|d`Gxo3T>?hCHuElIhhn}_1N%S}Sn!P`3Q}GUL`tA7Ne*LRBrQ=Nb{yDpQ zQ}-!vS-2j?hdxY9yX^5W+>Tpx(kSTon;`S3$zG2S1^I9BE!;z6qw^PRDkdyP8TVSH zRYqah5tA9Gh=N9cfQ67Lt~IQH1nVq1`#;}(^tz(Z&-0dP46pkV68lGs3uETUalr9? zen(O6|9$+@GFxJbe+Aunz?sMujP083e#Q={QCo>sq; zJqa2vvkeG!Qb|l#>$$En>v}k?$m`e$w;+#~N&gLGCLpuu-5UYML=w1KZ!bRZT(|o%E2-DGA8!}iuP``i0VDAwh*cdqwh>^7 ziSDhoQKT7qJJT;cUU~sKnOF00`NfniEYt)>Kcw{C1|#!ACWt*bCwgMp=Gii1qv<0N z2ZVXkU*@j~4EZanqr5&gO8--PGNk;y`aE00Q>f8ZSEoQHc8QQ2&P3MpfQkD}ynfYA zn+jl2QsnS`_d+nqH(Z@>-}zS=y=uVeQ6m9tXHFE>)gI)tEeQeLfGOEFh!&{KDr@qQWp~fAP~bSnIb<7P*gaqX=6i7wBFpS~EgGy&&EPWr zpR$0x-+&A)ptL9-hIuy4WICqJ_?{hvVh(5PB)MgBr;T>OwPv**Gksepe3%l<70zK% z(4fulb9H^Q9R^ES1=F+_cBxtZOMxxL^gSNuUiRL1KlACmwFZROKzpCvZ@qSkSqM$F z3D>6=sN1F+BVN>5<=hlVsbd;dM%dzwx(~&@&QbKOv(mw2E`wzZXVD~ih#Wbj{1L5^ zcAUqz!geRJBP_}bf#RA7ym)l53CzI34B;75B+O7L!qJ*j@kC%x$e<(^_)yM)2lGcl zJOr|JI;<%i2R2BSHDcP4D324DzM5E9s!yw|I=Y2Cud`Ss&<+4TVg7#b3_$bpf3s{S zwDybZ$U60>j&Vw_oEYILIUK;~!maV>|5e^9cHnsoK zOoa};QbGZuaF1< zMu9|5JM-URsq9aa^&zIidQBRSG9-NqY4;J{90{ol2WzTlnB?$t?3pWlO^8XTt$gxK zMIXX&Ve z@Ed0Lsaly-P{j&WKfpSYEAieoZ&)}0Gl{;)-HPAw0e7Ja045}lPNxC#W}?i5bEAb41RA%h`RLo#`+@TBzZOG}sv znPy^Bz?;RPxGK43*;n&8Lu@>TRWoU_j1mKAiP4(a}=d#nC zv{AD#;Q|Smf!5V#?fNMNj${4S;;tH<`Ul^>vDJ4O;r=DQx;x)tHOk1R0S3LAP0qZV z4%@^KUY=Ac&y@vqmUfX?+E>JW!CWtTIl)q&ydk2V zH=Jjk49pAHCbP~#OnDR>l)k`-sSy$Bx!;UiFRiKkr)|jfQx?4Dz~9w(4JWWcf#=w17k8KKFQ^nz88lRAFi5W zI%(*$e@%0s z!e1j83W1Wuk#UZLD1hT&JH!B6$YvbZ;gy1+F+FJfhEe_0m_(aSssFk{@9;&4pAt_p zD`qq}{)Ted5+bq@nBrcLAEZY+q#jR(G6;+M}+Ot{onen%brL4%L2&`Vw|s2 zt&=;Wl~GC4T=#OO#Va*N)v_sdT=R6L9?gra$Y|{=HUC}B*u4ZJ&p4yoh2hP0vHJX5 zMH27RCAAdKlwHYvbX#GvtVEXRJMPxJ8l>r0vmE<`6f~O?dF(4UnT|0yqqX-!7np>P zC12h+S*Htsb8AQizC)CEFMkUe8`Dh)MTn_I!8u}{R|lV7y{U@2$7@(d_ZMWOnacu@ zX7Sc+3;?!DvG2zD{v#Jhxrx?i67~9+n_bKUrOSD+*}XS@q3l}fW3oh-Mj#1=I-35= zhQbN)X~{vg?>kDTtCqNEwauW{eX55Q=XYR(o(O+gC_5^Nk5bg;ikr23>RTILWlz}O zmjDx-L%*cFb5a`nm1S$%BgX<8w6%D`Q_k&lDeYvqW~~64rYPI3-=3Uko(NwzuUA8m zb`&ho6Pu%C-1j0{&_v)mJZSHwZc6@hwpSyw2orOeAZg)SWki<}l$Du24BMO?`%w_5Khf8B}k@SZ@VkrSW?A((u25i%_?RX?L45pep5HiGS z(+*u*5=;Y_n{ZXa)#@fEZ_JgYaDD}#PQL@1deTCRej11T_io^GWXaH&{wMYG55MV_ z(h)vi^*Q=m9yWP6u>cSOrZl@Ka6UJN;jXp1;Az%Bl@K?91Q?HOz;%tJj&Q*bR!&UJ z4&)gH-S2=y7424CMo%aM^F+^DVTH`4%QcwO=<&r>A4#}*Qt*C{rQd^NL?Y{b?1^Ki zyLg%hXB&=s;&Aqcrj@ILo*Iq@`8eUIM$yW#RX64ovB)3Jkjc#==NEm?GG8MW9z09J z>0)o$9)$z%R@`>CPJVcO&l_Lzx}r`|8NTdv>5I>Yf1Udr;JDdO?S}YI9R5k`t!Jew z|Ae|L{#yYNK#95aX54UgH<(d3yM)|8~gfs!$ zOKPMa1^SfgHo}y0;i9b!kgu*7<|a6pvgYUje~r^B(=Yo)o{tLGN+PBy=}G~U+fv~! z>&zEvRD&{wv*fZk?~{(s%^CH>H58{R?lQ|3U=B14aJNh&?k{?HN$c~xg?K93_<;E8 z{EUpZn@8~X7n7>G%9V2LVbWOb}S?5Q8f5%aYK6Ep*rT^On z8{XgSM=nzW_J{l8JNp!g5^(BJjJ+N=#`ap45>L+=S06!1|H^+&l`&49U2O00GIre2 ziO;(I(q0zXjaQYtWC}-g37(>zq4_mO*>?%#&)nD~R!H}Z1*k#4Vx^MbtN5e==8tu< zj|i}de-84~xU1}ZZ(Nh9(+yIOs(~e7K{7N%1izdxi|!T1@$YLV9i0M3H5H_gXO&-H zCuy(W?JaRv{3ONaAre%>LcepGljv_s@;SjFkKU*N%cp1Ep5`}n^OTo3kW>VxY!DnZ z>J@dQ_OIvj4OSp>C4gQnucTEOUFR!uwu?>XT-tJ1b_txK%*i+6|ZPqV!2et(R5Ci0K1oj3bS-VHpWG=SDS4& zRRxjm26T6dkY{HgRT5;U!GRP^^m$P*hwgT*f3&|x+}ve|gS7&SaT6uP_ycK{b)EZ4ziryL3G2uOE#OG=l7bW6t|C6WRPk^=%tcQ*(E(nuo=(hVXlFaiTgcMmgnzI&hh z2j-b`&faUU_10dpBGo5>1o4M?-@O_NsLKFSBme58K`K3fvC$$lT{s2G;8pyk1v>vZ z78QkVzm|)d2@SM>?Ffym@s;!G_7i+yo4xmIL}8oDFvQj173nY3nZ);i^YF-jybsQ7 zsI_9qS-o(iL$59e`T~%a0}KIL{D+2MrM+~-C#{8ct5&K8iX}lCo3p^iF3erTgk;1t zvqJdaqxKJN?yxOu>L`>5K51*A zcG2VuugMqE;qhVcz%R+;{-2wc%CV|CYt2}@31T#-^=sAI!e6h;=}0DSJXPY4U1zAb z08P#?i8M2Zw_GDq(;VTibm9+vbjss*yKe*{n2Mz(^Q}TSgcb*^3Yz<0l$4Qu_#Gic zs|_fbmz@}xDH$X6;LuOsQ-$qpo2Co3^jbJO z78cyCY!%%LqS#P>EwwG>(Fk<0v(S^C;y`xP_Ob-UjMj)z1Kn5{8(t*wK`;eSM;C5W%dgUl9WPWVGJIJz*!c&9^t}Q@!=f1)cIfr z#SyrUk`;ScWNMh>?g)v$Gr52Fr=oaeV1^%euU&BqK|B=Hz=hJ`r`}9NIo?aRMrd;& z7rchp!ZoGUC_oW!VKGk=@X;^Y8`T0EG@A;+fCc_0-pum~q4&&LvxuhdawD+(Gd4>8 z{_KxfdoTiPE39T_br_N{bZC^zm?bR^l9!nEH=Kw_*2tr;yI(W0`ifq)ZKo} z4e>`%G-PeS@C=rJlT=5L-VKex+Q79t_T~Okvz@-VZh{dlV)aBy7_Hd@L|?ZG;d*9@ zY`Fq^Lcb#Ff17Hh=yj6LQ(+n90xg0`D*2{mL!R&K!xO#sJcH?Y&b;=t_|lqM3GBSC z(@uLGYs7BBf*fX}`}}MCprz+&5IbK=K#++)c-*~hRdAi%gwbGz?>^WS5|_;|*)b9REO*ms#?exCahsz~CHtP7 z{8Ymd!6%;RA^dFDxZUrp#y1jtUCv=G8-TH>SJ)fx zu~m22ws~~u^<%Jh@z3Uhja1PZ4luGy_zHpdDUQFrqx}PY#k4)@fU{lb!$MS!K`dwl z!aV?ei9e);1ii2T(VRn?_>_EDUa4^cm^|du%*IenzB3bB(_keYie@A5U#}tmrXm0B zU~|$y@9KDL=3eotR~)UJE-2M8#qgRBu@(DOaF?8L*`14o%`pF91cx4mRdyxZj3aHu zT;`V93EgqKY9T2*jWMEoTB`=YFUcu^+9ImPGiWX3S`X!~Y^qNRh`;`zM<>W8 zS%-Cl@(jj+1#HwVIsbh$dO=gOgK5g!!7;Q~N^?<5u*&p`HhFXuz-_nO__UlhEb2DT zthLMH>)qr+UUnhSmv9@`t^n~4JDXF{^F?b!$QJeD9uxLw zYoLT_!fqBdt!G@@1j6+Z+LQ#^k@B>7I)qYismct%x!COSWiiD~Z1i{r#M_bO^&s?v z?ZGRm<0~8vau}fiJYhePO(_woV@dl)NrvvDm~$EvEaRO@3c@%Yf!kBB70C*;I zPR_gq7}z+Ru|s?>MRvueA{E0JfHuZ^P4(wzm5R>Nh;g`TZ%$jv;s+o5l62}#y0mJ> z*Zx9+a_+jx>9+dm2Yp`?s1_!xE)D;RsXY>Z8D)4Z*mCFP6!qA(k%{Q1*j`eo{3{0{ zyU-6GIeC&%BL49+H=a>@A~Rq??l`6Dmuj^`T@@H_b|cNCZ`kFJes9TYa)*sc3q6A7 z_`vhxnza)BD6->BAcvP=ne(Wp3o40G6V(Kcj1m4ZH9|hfEeFVPnz?|V_DTR6)I?J< zMbSHnpq$I&NZn?@C4NsHrM+jmx9ge_!mXV7_+HJ}h8)#0S9e5_{N@;`a?=wBi}iw@ zmzcr6e2e^?{Gci!^d4i_FFbIa3=v%t##Q zWPxkM(MCip<}aggEPzA1o=eylCDF+AbPga1 zD$<4kE4(Z^a)-%TqjR&a`ib>@G>H>cojxaXY;YyrOc)S!pU;!=LbMmY9pCRd2u=x- z&P@ACoa2G%7dVdSO-7Af08(XfbCU+B2*iKSK}^DX#q$4(2SkV(65kGQw`wxB*2*tne)|E~q8NMcDJ#{9a4 zd*~w^bX;sK!8IO_am($Q29efm~@G_=u^(VOHt8G?rYfFwlk-_Vka)p^jPo znC~~WUUT@f8>|L~i|{-V=Dld8MAmf|Wf2jYEsN!fKaqb04D?o{`Q}6_)dqW)aDAs*&+*N*-z~7EC+I5V4;dT88Kgb^8jb(LjTW zSP0`f@u|=u=~$%k!;vLvgF@1F>}Tl>aMABY)?IMX^IcMQPUIEKyc#~j1cd{)yX9eq zh0pi_4a%y3@1-iNI=asQ>{padN~ zG>k&4Fh@Hn4P1!5>^KtXC6P1%p$4;cXviDq@LVf%X7iRx3)lku-Oy347?$ZS>}X97 znO$0P;A7PDQal%%$jjW4r+Lv86_276LeJ!o4+%-sMqSUZ-=zP$@&l47pZh=x3GFzp z{=ABPQBACQG|Ks7deSxIi`hxJF>5)E0XYyLk7m`!%IpCjXh}1cfm%bfB0N%=974kh zveOmUh?KzsPYQ~^^HN%U_Z~b@R5AexOH1=0Dvq7QOTnle-fCB_MD3W@OI9eWw^%|y z?$Ta9uLd=F<5oV=G6 z6H+Ra0U9IgrGsS@fq;crC=W6F`)cHw|FdvXspxcs&>+a$|9INl=gfU0@a}i30@oRg z7%f3~RB>D4fKOs2mHWs33}k>g+5IpKejictjV-?T31dIxp=@3tJ@&2Z`Q#sCNocfW zeiuCib>;uQGtiQ&O36rP7;*Aws?5E*n300!w4vcGQ|ZRi&8)Q`x5Wuwh_3 zeme3t5O(0IlVsLWhj&;(hrLxR6-6v+c`a?;zUaF2EMpQj-DK99`*1_8Y6iVDE9K{X zr4W8QTV{3#*Z;&r_r%6_q$=p|9MlDAXz;;Es?DT zG*|V^6{K7+rBWI!po%Cs$Y3jzvSVaeP0GV19!kRrH9_Z8priIjy)@41|J-BYIWAb( z?tjn(k$@b;{`yO*KP1?-9-Vy`!J}i$osX}94o$%HQQ-y9-lzkHPHIgSXU(ce2!GIflvqhTyXv!q27l|#XY2h;quxe%ABF(7-_CR@rt8OqEtwq&6^O8p8c0(uh&k!&0{~%v?qmy^H*WO|By@ve zxg*Jj6fPBznSmng_3oqmu#4+JCRCOR!oe6Ovw)8EcF1)rhW}t3t#*3a&__OO`|~By zBD673Ik2Bd8=(>-!-nh)Ood>p?O<+o(d+ZYXRv;=1+kplU<>1s2gm)R4;4Irnerp- z`;R{QxTvad|1^vN#r8!Q?*~pXgN^=v^+w+<{f+C-r>UrSrm>HgMCETUr6!4g&-66m(Y_UBFS}_q#G=CTQkC8xUn>3pDf+Zx z(rmu2`opWTAv)3i^)E%31pS2F7tOtPr8n7>E~y)LZPC?wB|;}gN!is7pDrk(%Fg

fKi+DNxn1n7-wtqP$Y7N^t@PBs7vJR1%ipvFinMPd%1HtU z=UEs>1>wbZqMX z$gmKRFo&fsb&kINF&`~x@2eRW+hw6n)JDpthc%8xljJaaA5;_P%7?p&|6S^a5D*JSHn13c#a5t7U~8gU@1bEk zN9)=YShbV6M?ys*qucyJs!2q*LM4{>sbx1TP+;H`ZY5g|LCk|+y=Y=ubUW84RdW={ zutL8TIpai2hbKh|X45AN@xn`^b@k-qhtIylL~^*jxO%vM_xWdk@rO5WKV5cb zvhIUg6O;H^$|5IS(>|z@`J=ZmSQg+cq1coqb|0A*3+{u4FfVMDk^{3|C56O6^yJxT zJq3~4Ln{ioFf$ABawh8?ojrd3`+x8LC)I4nX3E~u0Oa&TOS_!M6iiaO?==+cimc_TB2YDO$t`a=Cuc17d z26EVyq;SY)jeC3n*|pU&B-RDAU>%$kj$oF-sk16Xliw2qURXOb?DevkmJ){KrV`Hw zQTqn^s(Dm5QQHiLPLX+3Z4kuQSiC7~4Z4F@7EI|;i|TTD4F<%CGf=p416LHanHo>} zWBamwVcj)-HV}%CCV=T51y3v;dng#A`Hv=Wrl#VBnh3NenkW=lDZwhDxB@)*JUuL8 z5E`c>Mx*D#!+`MY0@12n9&pMzOFw);HZ!9813`ZEZg0%mQC*qZ(PCfDt-Un8cOM<`K>JJ+m7306?)vW&ek$q`(c);NF>JZ&#afJKyXvvr;1=3xJ?vm%Zr z5sMf%Wst|SI3cGK8vY`PcU<367knMW#CsASs67vX5$(iknrV37jyXVX8f`Tg#K>;A zX{>~a8T_UVdQjF;`SF||lLU`|Wa`oin2amt8uCgBX_pYAaT)%kn<3GB){%l#!R#~AJ1{kisOHuHoD@ip=J}XPz zqB&j@vx^lW!tll_YkywZVcD?rG|}l+D;p0_OH%5_s=7Qr5fPGgJ@D>=4zFJR z{`KX9r*hcKo*q5>?)|6VU|~6|ytJ8IR_rl2FucxL&XJ2P@IYX= zSiFuvA;lz|rt$I|{+xOh0bzQDG3u;jc|XZNGI3=3BkjA64TXxc2%ZAUz`*R%Ty(S8 zNpm+AUn};8N3+jJ%AZC6F1?&jgCNqkY?_#On1 zljF*egz=z%GVqOzs75%Ku6P|AhQFt<8_|)`$jBiHsDiO#Pk5a)mM%^*k4PT5tdwL? z^Mmpq)M%jz6|C=#-6)ayz@EVomME3nHR6@(q-glCdBGe?hDEqDC~;0NNB=T~sy%B9 zh;+mi^NnbdEkl@@05!&}K zx7Kq->ToGx`=~92wrAO^<4UR6Jr?e{rgT@xht zhDK=U9-~zVH$Xi11932;(U2LMHUk`28biClC(KhS;ew&+5eOGP))>iXh2{jnXWajr z7sr%IJEu#}IZ-=M&6!mQQFWL;HZz-fO=DPFXg1?=PwMBCDNL(?Ltf-(>$p3Dj2SeE zNPpbJ_+jcRN!3PKQ6%z( zrUXiqP&3We`(|CQ1;f?g5z%V;>-v3ip^J{rDL&N#tOkQg3%N-xVR3EHga|I^hG`w3 zz+O0l3_M~u&L;ozm(I3#U(2U4saiba*zk)Ski64yUxp|}Gfvpf27qaqm!Iqfa+w`_ zo@b3mM^*iRy;{rWE=pd|#wNt9w_8GJszr9f`q$;W3D>mHjarp~#Gc zKU0PicjQX3z6ictZhp$if}wY3&%xHYaFiNI_(qF5oTK&(5w!y)s5RhlQ9Z~IT-E)Q zDVr3l$t7XcY+%6-%Rq=txmUB4a5N`MUM5tC1HMEYoho0j@(kX_D!wrdqKCL3HSHe% z9J{3nv=X9w8s0optQ^(l!buhr_T=fzvY6~Q&^32xD#BwAxh#^>Rw6wM#K?0uVL&xoq29ZY4IN;f?c1#OnE7_VX| zAdWdTrNYWdH(<>-#}j&m6!`=!QulG!8iTiJCy7BLn0=zZYK0n9vq?cBxHD)Qo5`eN zVai)BxdJ$jgu}slpoItkvr}0sR@XE@Rx%wP!(0) z0101A3B|MCWTBizYz5YkN||kM_eADD2sxTxq1qx(7^^YFUl>*iFJl)EDdJ3mHTYOd zpS|!JQj=5OQN!1v(}PI`<&aj128@p*3W`5%ua4`0kToYTCR#-nT2_+%-LgA>`22hK zAAY>Qy%V8@msh|2kDvYIj}A9q5HC`VSL^R5U!vf!ZA=4<{tm8<-m1b9rnCJz`-%-S zTMCIyo(?KJv15EX+B9P;UqP40(hnkD*L7LW54T^w_=|sd|LNbj`uJ}zXIFQ(@2?(w z#I(GA@e4WJF3Tb~#ZC6Z2I8*~HLo)xZ5D#(dW#AgLoG~k36UN4Kc+7BZeBY?WTO2d zw&{JDZQSuDpu9Ptk`nI6sH8B84E*ERcm;O7_>94zh$_|bdgPBM|7(Ztt~uAK_EDY zRk10xX6sC`M|ybdrCC5%=XZo#|1;o@PG5|P_#>z_j9RYl^ ztySvt7xwO=LmBWG)oLqH#=fF0vt_@+ZS_WdiVXPr-WldeM8{qS80z4ueHWl3*NlB- z!H=kZml`M4SsTnW$j4Yk zKbjwAh+~5$j?GbC-qa6lgavQ+KN8FP-;j-mS1?1Py=B;u#>v%HHE^Ut?2JT+Y#jwf zv~yA-3`(vWJdiDUU>BQ7#5UEjX-%K1G81QNCgtU68?KPLETpamzcj(#%?OyTqj9q# z^p8;Nj8#MqyR)l@AARrM{ipl8o89>p(cKq6|CjH+_;Vs6S_ZFkn%fInWj!3Op8m~`|LXs= zu7}(AZ!YfLySsk%`v0cDHCSE25TUK*o(tFOX7)NK;7IGl5nqhrsz&XL4=`gLRY>u2BLP7@7$t1(n-Bs3VhR zL|H#7$nCoG5OZB|#hKw&y7hG5GQy%5 z)@m{Z2eho&`(QxU=-p9RV=1_iZff&=|0+5;DlWkTCQ%TQ(d3$@3G8cMk?`mk#sQ$1 zDu=<@j&T;q2aevNlXHF~KM&;;iYcP8+Fq<12m+y))RytrjHREy&^H}}r;}L~GzPk} zRs@0+18vo6IDM;d1qHr7XKKbEg<0kyWt1rg%fgXeF;!^I7on^t7sGEc7v}01N*4+u0zsp7ar~6b?zEI?v{KI}!-kW%OR*q}+uPz> zE)bZkmi_?A;c#~O_~A$2JHPjMe|NoHT%BKBe)02v{^nQzig^(sqSg8k2sS}XbIo6hF(OaFPVVM-u+MoT5@syv0E=>=8H50_8GaZ-x@A2G)sw0j7Jlc%fi^oMngxV)n+YSiQ0BfRA6Ma+&Mg~oAtXxvC<|z znF?tD=pY!SJRxl^{`RHYlb2EymH9G@^eFV&)xNdJ}K&N_DAbx-OV_1@uAU8 zGkmAdoIu;Vjaz2v7#)(%A+%L#c+Zm-oMM^Y-(z^BvLti_d<3`~Jeig+!<)fc zcBAVCgJ>~*kSI}kSW}K$I4E+pwE45i20mq(wUr}AkM zEWs8c+@Cqh5reT5x1ov76*T0Ekoa_PD5u`6*8_H>j4MU6Yg`i^mZ~~mL)SHhQ0c+r zh9!8^=81jyP^CrOqzz}h#2s@for2xe$YVb&%)WM97PrZ*``Jep9yw(4*` z@jt!0{w*(y9=4?%6kg|K8(|WL;#H zMU!C7D$IAJPvf&iRUsB(i7-9JYu0`f>N}u?84%QvvJwp-tC(5M+F&@m5(C||&m!Vi zPmx1p2=2sNapqZonPYY{J|E*$K_e_W2z(d=Oq9{9mwc_M!9>zF+_#o7> zD`vQ?AGvxuYd^4RPS$CG6p{9*Ps;* zA)4LDe@Nr9F7iD27|h9FsAAqiAQKrF9kC5I&(FHCwOAnHtNnvIn77+X8r^2AfEFaP zQMp>YwRDGw$aeHOp$Gy|!Nb}`j4sX$qn1MT0h3IxSTIN-W3CZwYpgZbzOD>%w_+HE zVxuF0ir&on+~}15jEZ)rNTXOo;eY_Yb$PUi|cby}SPHZg=4aG(f8ugpMX~U*(#{gZhd4=~rlLaI)zANpK6*=(IXZVk8`o_u_3F;4@L^Pt$^TTv7{tm~J`~K}zeRt{4$Za);)! zrFBYR_-*-x{R>J0cSRR0%r3go_9DHno!MRta3BFk#0Kk1+vKe+I1g?ZIhwg=!J06u zuDmsNmLnOEiYfL{T%Yu=g({R@A9E9c_ha;M3`m7Iu!ow!SA0NQjE!bo)i;_Pd!v8A z+Sst#Z%j(F6_MOegfCIq<%M`2eW7*gp zTxibAc#JYzt(>|xDwi4#FY1kkZNLhem}EJy`}@G6kCI0@5Kj^+yM=*9&_X<*AoqG% zIO9OhEFzf}a+36!(<%%O14K|k!E+1t9#c(%g)n)v(PIGAQPgLty}Y^*@!_y6XZN4~ z-h=1gm;K%T=Kb#C-u~|87eDzYx9@(#yK|CNR`|iz07#KhxRMyMsDUQuSIVUt-qMyP#!H#EUJg (pLyy|rpZrp{;uriUY#6hwIuUENlz9JrmvaTZd?j->KDV%tv<`4%y zOdSiDNcgZ{&aNJQ{8z3Xed};{D~Fr&%ggs){_?XQ|Do((@$O940}&-`jN%>@=EyZG zoWkcRb+)QZ>XlVy{j@>(YaPE-&{ZTGm^odsldBXClZex5e0ZzUyhezK7N)z;fA)tj zfBo++ubv*{{Pz0x{-ci{fAam^#eG>Vat5Cu45P)~(~C3N#_LOMDHtfRDh^+@~$| z8JmWiDKQwiE2zf>qEscnhG8XTd-skLI5I_7*XmbkuJbDtm-N@8P`{r6IV}&6rYcyp zU{iVrBsS)Drhl40y31^M0S_OhWi1&PQd?+WTRRD$;&^r3Z!g)>T>cU|8kSkC-xxHe z>XUOHELZW0+R)f^0C>UM$VUt{B^|k0FBLk55h#KcaJ-+9c=$wyG*d?5 zfelmB0h=YnHIDO)kD%28#Djrac@YxWO^IZ-E+Z98U?ROGlgTY+(=o&4@ojj3O@eg{ z+;U(*>^(T-QA2QIvWgCsf8f0F-ZsB#&ig#4FY)g}MqOiqAa*02`J-Xdsg;S)6-m z+lhgLUU?yAS!sVbyLj^CTYvNZqi-K>Z`b{L@ACfb>z{u9lYb=pSIh2#)HahI(B_^d@EZC8T;?zVsK_9ir!UllYXKGCw^x1bMg)Q_j%CKbcjGiyye_j z-6`RLNs+#TPETBzEteVbQ7erF+LW{L zSuxor3r7Z&&p550HYa2G?e)n@MGVUx%0CDXG{fer)2?jeb)J$IjR_BY&AdjiCY!Q7 z##Pv5Yd+XW2Iklc4y&QSB+Zzl##Ij(4*a2Zp31xN;{CDhp!(mQcO|&>q z?+f=8s@PqQ|FmT)aS^+<_p^t~>KQXN% zf3;AFAkc*<*HJ6S8!%^RV_4swUwNBYK*7+G3T!*Ud_8K&TFHHm4ed!o75G?h6AtHa zE_{ggR1;l?0ngTTDPM+1-5&TAvG#US%=Bw=hR z95WNqx^^+mwnVVLLz@P>{3b=!JFMQT<-lsA4#SW9z^rZBcnf0S&dFXN#1zIl;ML_E zs0ERYr{tQ?*SKXRtm6@G?#Mi(1=PH^NIQ7MQ`9)H6biEbGP(G#=Cr!AFoh%{0>m&4 zyJ7921grw&ty*wTG5HGD4wzSfGih6Tsu)|X(v3)a*@3!~fLUxFdI73pUI05qhMBlL`dF*&q_ zoiAX{ls7UMYQ|qb7SePB`e^C;k-Z$`;=#vHzVQdUv#b5h+p~*HI^4ec^iN;^=1*6- z;pLp##sQze zTt?*P3*0BFmL0wO{7+u|=znIp-rawEcXzk!uAY4JuUtO)hR{xA)xx1wSZvh4Ay(Rd zq~~BnCYUB$M$E#|o2j4OF-)-n1KEH~s~gLqMeaz-@>Z3tYc@EPSxrv`3S!%B&7S*e zvx4J?lPUaeF2WWwM14+l*5+(poeLP5wh>+hF?z=x7s7Czoha!*vtBH924=12-0&n8 z8^xHhac#H8Uo*EFp94QOF_E}D!dB*=Io_7^Em^?W;@ATvzcJy=&cDgDS#LQ!b0A|P z7z9lwykHmF7>+8c^=-eA^Q`=3F51w^GI37d7w6cyr~6yN}lgXOtYo(f%47 zR;sU?skPeV&>T}3YQ6XpSL!x}73jE7d`ow6r*T3I=3|WY!r9U0SWt(` zt~#)W0=qVI%;`jX-%M0M789K&pWaYZ2@m6RZAV`wp>;2^Ts`^Dvv2+NWq0rH_Wjw# z70dh2fBKKU{PbT6?|C_+bq~wVD9wi~XMF8zE8CsrLGXDN15doR^MK>G-G1j4>g*}J zZ~%t_oe$UhU47^NZ!}m%n}c zK$dgEbEBgf;F{sdI-AN2dTij)=Z_6(@F;A@}Jimj0lqbA; zH23^nO<3m~T8|Be*N242SHqNl5HB^CUepwEr4->%XUoe)+Jb$yV`P}gXNq+)nW~ra zyS(MiA!ClaQ>&RsW86k741%?g$_|M6-4ZO5l7Qi8gbhV_v0=Ge>Bia9@TFHzbRoVG z`HL*EYhV~Fx-rd<^+2>p;cl2A2F5&bw3jKHdaQ%VPRKFJmb%)J6-I?L0{JkEV?`Cf z>$vfB@pT$jCJJnh#MYLQ;%t^)OMDxHO`bPHmf$#feZ>}8U4O%w8%e!kx>e7gh$<$y z($03Y1lO6vS3w6*OWY&Jm{MD;be9Z?&=^m#=hbi=tZczE=1Izm zXkrCxz*NlCJI<)kb{b76WO^|5 z4U-6I=88}X3QtgQG=^BrzP65M0%n4VsxiQBk1@d6nNQ*PC$;s|N&QniH!5~3*%@&*2n z{kRd|J+=*A<$jIq=BQ)kVk}b+Q%waRDA6@EV`mf%VK5q)g`E%~#Lq7au?Wbx2XSQs z4eH&ELcG$t;U@qI413tBh6=P}g&}$b`z0g@N)eC%8ugukZs(>on8eJgGddLg1;Rn{ zdX|y>HjUVL7{e^wIYoJpPvK z5BtO2#r^y1?VI2J@E={j`NeK`agalsiL*^8ZY>dK|FXxf>`;&(84%Vi#2;krg(p~J zAV?l5Mu@M=YZ)H!A{5Z!nBqTnOc|IbtdM%vdDX8HcPOZpb-8q7ZBr)B^D=TOwHBhG{|XM^ww6j!PAl z)u*qUTQQ^LFxH{dE>mtAJK1wl!UpqZ5<18c#U7*>S_sys21lfX^k5Su>t)UH;Ebna zOpYG;4Nmy=hf(CxB75eViaMxCv?LIhD6rpTk}f;F_Vt8!g+h5J$96nKHbxc+4!qQ%td?e@pW@_@AU z#i^T;u|@QYed}=5Oc_I9v2T5YiGd|+o1nw zxvYDz2XXC~@qkuN@29VJ6-E{x*%b}ZL1fU@F@hWe)`!TrY^CgTll+QGWbT5NrmKxk z+hii%JTT-daCAZe4j-ghxd_R+^0Hg+UcLC?|NQFL|MvWR5ngU?-k)DSeEiApUq1ST zc_-`2w2}bAs5ITeJq>TxDlKvj3Th`NuzoI?v^H`msb=q3B<{RtBwxG~ zT7(km{RtF~zCu~Big%7Iw|cf6vyEzy>>t<(hN(xKRw&}}fVzPW5%p~!Ol}%3e$#KJ zoSPXnpx!?kkM8tS7ZlxgqET#gs}hAK&wH7WqCtEvoZVmCf#?!qN+v$%BtO;GOLGF} znCu9W;-hOc?%9ui5#`*l=9BH5OM9*oz?cyw*7Y&inh}CJ6r55t;+a6IX$wk|4INkpfuCOK711SP|4hqG;UOAHPyCb57mMRE@;dNop z*>e{SuPG=#Ms8$iO~ve=VkoSo(&i&__?$*DUXAGiHs{<9aW=}L;xI9{eTu;_t1C7K z^kujiq*GJLY&7LeT7+p*BJCjbGloxghfSpTC^t&kC=xgW>qPAxDjU-eJf_Gg`QxX3BjiYVTys%8xx@=k&3qkfn2QT!%mO`4KSO{5gWa+_iLmE2hs^~OXX zN;H0$Gad>t+51Wzr8t*MM5$+4L-u*VyM=9*}tN-#Ut$SMK-h+>xfBUar z-hX=c{x!*ZcFr$9{nOw4AOCQF{RQvNL=NI%Ik3c$=m%ZffvrppyW@cGexq9+fpM3AX<@1M! zn_Ff&J6qnq`t048pUUB;{c5Z3%y6+90^4MEpT6WA7&>4Mvtoj~O3d>)CzXS6J+TPF z>Qp5W#nkXfj+a+jAjCsv$@n{tM0poe7jOP`Xfz?+Nso?R#Uf;yyR}%@7tv5P5Tz=W z)k{OrlJ^QcnQrw7Y7YrdoIoI2F%PooEfkZHb`cgZs_LY+W-|8G3;HT+Ge$dk-*dDv zXXNhK(VRDIFYsm6plKk;ML!J}?7MY^31~#Q2d(>I5?!eNU|c~kv16B|x$10ztZG5> zAmaj-xn;G>sEVNQD$8y4Dy0WxGGCmELkdeOLm)F2Y|FpkWBqn(I!4vT{5(k znWdXO`z|IR&WuA@B1Oz!!lhh|=IAHRbh5inY!kslsNXeibdZltqdp^OkIt<)qknYwHphI2oAFG0$OTG_X?v z2}%?-C3HuUQrvG@-Mn-qOo)?dj*Ljlc+~y{Y5H`TTSQ(HAuLi{rd{{iX~Iz6wS%&z z=AFj6*02adUO0}o92(SYgsiQ^FmZ zRheV4)t(IxtDfo27BSpj_ti%;rk%bBtp`58_u%8-fB5WshyC5%_50njyLtEGH$VEr zcQ1dqEISgG_Ol&6Lql+I~4 zH+*!g5`X~;ZN`91%Ih%`PJj9;&`^bm@EjB(>f0DS4#ZkL@-Dor>z?@h`S%mZqCoo@AlWPU;g^`?H5FAi~iEzey|aMPdSsHM+17W8B@)YZ4yqjdV|$W1M>kN ztQ_xjOb62obpYUEC9Rd|I8!5_GVIx>!0RYTu-&ogG@A=Y4(qmJnXocg6^l}&5EY(= z7xXwBb)MG81|9)?U`)1;xcHOKiolCG zWNDQ8$n7q^PvZ-GaUsUYioYDH-$6K?(qp*i-_!P~XaMR8whU{hULbi`K17qyxdwsu z>;NVT0A-{TBLa6hmR7?Uro;itx;>fTs(U?dL>xns@4J>fY^rPeut6oG(dk_DWC+6! z1#b6n&sg$VRs#@!htnfBEO8XhI9+RXYxEk-;idEm$sj4nn@(LIlP=#v5bJ`Gng)U- zD+@^*`Y0mCFOboI?U25)0ftCgL)oaJu*5g^W7cBryJ-x+ zE`;ubTam)b%@DE;Y7EBACIwrm1A6FZuME)%Y`FjjNgq&^2|*)fX6;RK1AD}#e?N+Z z+WbQY3rCM0$yzXQsp6=c635nRNcBSI$7tTIO$aa(u!@)lF()g6Jml#kvsjH`1Rc|h zm{xIXMKn49O6}2R=5}^o@)Xj!OS5Qw)gol&-TH*7ziNMW`RLKp@1I>fTKBg?bb0Uc z&1XOQ{1^X>=!TbtMATx3U=p-7IL55-=8JT*bsccVBR6aI^eX6D$L0eNYT_;1ihh@f z<#yZ6Bde^CRYJYFaGMV+z9&`k9Z?*JiaXkb6A#loQWTig>lPdOVW=e}vdYTK8Pop7 z&;FMeKl!KUJK5cPaCdtkI)D7p_wGOa*0Q@Nt1zwO%UnYC{(~?Na}Vt2()An4g=N|4 z*^JR`?O81*#bB`{MLVF+WF|(XmGqBTBp< zv&F3WXnZl@2AaC+6{G()f-(31usQL?u(5A?7Z3bl%Pr-C&JN6aJWm4JH{e->nth|+ zArOgw?8G&R9N$P8L^E94p&BKuH-BE5LFrr zF^pFmO9CBe-5!&lfnZmB*pu1 ziDr@N)~pStA(lJM_?4D5)FF*a?iEoH^vaV_1 zJqs#Q#(+^V#}zI#zOSFclS+N!W#B$}Ml^w`S{^(3{IsU6n9tvgSIiCKBPCRpNmf~x z(L$vLYqgqR34Sy8DRxDV$rfHUODBbgl4qu6VPWQVUDxx==TCp|KVDpY^X~2~%epLl zbMxxmm%qKcc}sL?``UHtsxPDI9B2<=xHw>Q=Zdyn1w!5pHhnDdjP@4f#eY|%M{n+6 z)wQQ&T}Sq`v(!#C*COSRZ)5cXM5|X>K{D5ab>h+06?}?}jkDNNof?`0Ff^WLdE2*e ztTQasfW~Ot+aF_8@d&1Dku|gN&Veo^fkFZwQC(G@U#y-t)iXie_RqMM-pr+!F)Ouz z?^bI)Xm2kC73)ky(ogsW2e?2eose%G1*AjyFxPDp#nxG%G@G`!_h*y>kjJOkj zLoJt2SvOW#G$BjYs^=8Q z)Z{%fCp7_gaSf~pb}6fJFb$oaQ$ARD#_b4b+HU!3ej(@+*?P23RzVsfPR`?GXhYZh z;aSo{FbRxFK89<31vJL9-<@b|LlHsTwD28dMbBt*NCQKo1D2Ux+zJ*PAI;@EJ7gO)*p>H9wM7WZj+LzyI_*S69ythrI}2+`D}D;zwV8 z`mYanU+RkB3TpN%gpv=rW-F+nO#Hgt!p1p4c>3Pjl$nrq8h)ACuE7562hr zSgstJD$-TOw^}V$lc!NACFNdZY^5AUmzv#Tj)-_+W?A<{_n!UW?>_qG-+2G#jqI<_ zFU}8#+qbWNd;8{v(1Dj70#F!{k~vcrDs-w<-yVy{>glYDsT3x(q#otTc~!0Du*;XC zYjHr0xz|DV;j`3fs}&F*8!exfd?qH#Jy(Fj3UR$O1`j0*V}~)BCY1k}>~i{5W=3 zYN%&#qBsu~y!9~BZv9voJ}9%uO)d4y)tFOBjwr z_h;H{4*7JX4}dHYYyZSd$v_B4U*Ld*g?mXSZ4845f~IG}jyB`IPT=Mlb}EqcVPtPg z8#@|gjCE#e$(=8D#UTO-t!m3|wCcm5-PsRejuC9gIslO{mx-H$f(c3T|8QJQrjLFu zFnE^GCow9O4wBjmvNVnm7-9Q``(~bMX(feVz?x-A)8JhSudU`f8dr{yNdYiE3wo~>f{)P;2*F97R_wV8|3^-bfh`x5~GwDu|%Qpt2Eu5&45JQiK zsK^=AFUTUXOgN{6?dA|;k6i^B`TB++M1A&!dB=S7#ZUk77eD=z^YiobtEeJ3A=MO9NVjc1Y(#TK*!}h?ZP?f_<~=13V^60hs=n9 zpRa#?h^fpj18tzn0=VsnH^+js9VjVuT5qF^V{+F*-sWTuhYw@UQDuFd0tUhDYe*Lc zit}V=sF@dSFdkVr>i>LLM~5&yPXK7Xp(VG+`75JKmyv3_aecZu&nmqwcPWDu@rJm^ z`K`7@lXfVl37)ZyF-W@Fli;Jb#7m8jkcT$x)@et=;rO(~;m7z$1rl#i9)_;Ne5TSi-Z!L9~l$RAOeF(aRAgL>&s|+D$cZ zqc59a{!wqnj3#v?Gu!O-4Ls37MnNMT)a!$ySQr6$tIwFixHRcSiZ25tPJOLlS+F1O zZj4CFr_-w#uZ9Q3M5sUC6emqvTe6Y1Ns2vHcvF=kxCtl*!#o{L#Io4dJ6UON;q2dn7_c1A^+rNQ;&urYTMZ{0W1w>oTYCcrSaE( zZn9_NZRp8D3kk`(?9LxN``)u}{Y5~?)IAHaDINVzkB!ki(lSdzakP| zmau|I)&cnAm9ANV8=B7aVxnb6SuE!eK)WuAtsmC&`L_S8=M=iiZAoZ>h>$y0*3{J_ z4x5;k{ce0cw_B#OE|*SGw>!9-OV{f1Hk4tD7ZAoNI%kM=!>p^Wbbbs-aU_p1rpMEm z0OdAuIZkJ=P1{LWr2uuQl{Or9a! zdtgKjOw32!Y%L7kmF_NiWVAEpRtWwIAlNNV$~_wbCXoEo`Bri+8fW1E(idonvu zv$EsrynZ{R5Mws%$W-JXMK1o(6{G5m+%TT&bu6^&CQb>jAH#2!w1<_ARw(qRQqO{vR6l z+F|oET$Mi}+;}NKMGWh4`B7pKebs}L88UwH+Aa~f(sbD7Ig0MrPv$Wbr@Kz%Gea@f zMfvP4B4ow+Q;o)5rCBZrPr=!(Qgp;Re$^07B+KF^Cn7`(C?-(O;gY?Zab*)YS6;@% ztVSt&Ku`_!psSmRB-wb!=Bo?3qJ58Bfdt<9Kpn(N#-)yZgpm>@Zk0j4JnApk(H1LcrZ5c+adwghM# zUOCx545>72OT@f~tu2^mJaTB}hhD*DEVhR!YN^X-l_+~!EJhC9gER6zC}SpGy%NwA z!q`V+1g$IerfU>0c`DsK{R+qkd%1kgkUc9crw~5yJVv~s)_8nnc)v)?rp?9Pe${|m z=csglMQs}%{3H_0Dck}De`jTqgc*U^wsQi+6i)+=!xlSlOlZQaUd}=GX8A6A)2azK z2^cLafQPO71dg%hp$1e<4~pTJ^Ol=!pV(7OW*$td$7cyx2gFDF2xDLio(OUhrXN%K zE76bb)Ujc`C^!wbAtYKIz$xSRz-d;Pmm482lfa=UWq5?55K-oamrg$kp23k~^0;P? z`VxTZBZ7D2q`rcMoD$Z-atK8WUhMoMX_;|2y|Ax_n%IxEhCNL8w|FB%3<{o1WJQTm zpgb`$$4R%?(}BsMX}w>D(ePPknIZ`yTXXO4@`l%TAn5>NV{=u6bulD;M**UMv!G5C ze8goRXTn4K)4*V4IPjQhVEMcYV4K_660#lHs$*dly)m5$wgQn6fl3RENtR7!&RWy3 zh#j5YZz3Y*xKDT?qIDIb-R|Pz{<8vYmwO`fLR z4vi-_qyo$MXs(AOb>WfA!n80Q)^)x2;0I5B@P9kMe0KZ(HHlnaU0z?me*5w_ckf;> zt+cT4(w$fIsPb~oFC{4+x*^twxg+oCOrdG7>=j27ySM2TO%-`H-f!}W>Pp_KeNA!O5JOpfS%KkhEk&yP<)+ra(90yG8!Vomt%~``eAHW9oc&^e2xef$2b4Lwby|u@l0wcAvil zjuAWtxXBUPD9yrT>Ol{9{>Ky{FwQr&B~=`9kq^FxWt@V~jk=A8upc`sM21JaEbVhv zSBx~_Lp+YC|3Svn$~q13|VT*M=`N(xT)t zWJF4sh${kEVV^FKE1U`#wK`mo4JJ39YU&s6kSnrA$8IxdUlSis2nRn6tJxmu1Y1U+ zmiTIai7#zW{K7hR>{TD)^ki`u{9_>#I5=|=4yy8jtXK5?(2?ul$ir~ONrNouw#ns9 zjnA22W3U(*cBKK8v>M?^L_ncFQAx^`41*Ym)zp1Flp~_~4hf_lERS=mm9HqyWM@-} z6*-NQ%HY3BYB~xLdYLf{7lr%Za)#IFSUORK8zQ1b(~{tQ_B%TeZ7UZBA1*SvMrzIW zUJDWP&*kQ@kQH6fkkR(LS8O3=4DH#%KCo<8>yR*ao?Povw`>%iXuP-m}E$3%< zH@C7s+<*MdC*Sz}^Q&h&)W9(+CIHDJmV~sgVRWF&g4eU z1SRL;aDGYnpt;*@NUZ)S)Q@q&>`Tk&0^U|@r(Bl7VfAE4J>}l8YyVhmx*Hmt7=1ai zj5Eqx@g|1yJO&tSHKnZ#5I=1KSrcy(Q+wn#)tqphEzQB9w6z*uCz`4HOk^A-iwynC zo1+j;5R9pyP^HLW%A;m@a{pMl+}?-yK(d@hZwPK9*{xZ*JfxEdQer_Y($~-N^ss5d zy2%C`wn{XpP{{6f!~u^O;`wPq7NI z-tYGM%JjZk#S-tvo5zx}nuil>4HXm~G9JuRu)-8ceGI2iij|E}WdNqF@#Cxt@S8ki zXs-6z*}cpUlv#SZCqyJ7a_{~(AAbA)w7d85*>1PLxjDOcF6-gl>(Ac5{(L>$60c!) zh|>~k_YNQRSS}0Z)UhkBxK6tneu&r>R6cPcb}D9QF5fWr2=c--WuK0QDrb>RinJ>- z-yD}mVPVmGY$8PjlI*^ab&i6h1$Zvc!7JwJyChSQNq^iiCpL`}TpW=2u%ucu^>&$=uv+5rwc+3G)njppjPs~_{^LDlad%KoF$J24N{|eVAnt&JJ_ zgW|{G61R3yFU1g{bzOmW{tuqm$5z~W+r3YgrffWwX%<(b2F$Gx=ui{={bc*aSfaj{ zJER}p)##U!**A^Y{dOZ5t)U9Q1FlgiZ$pg07G$`O?6LZGP)O6gcwtRHlKRvU-4h8C z2f+`Vx*npK=Y(a@A1*|?3_Cd$%;DM<4$TZD@tnNrRc_$&Fx{<_Ge@Dix979URhJ>N zFhiYSN<|3BACf_1tlu)B+y0%&vTBAntD!7;YntQ<7KKV+AvM}ZGa=ht1QZe1*p4t@ z6)h*`YUCj==rRev9A^62w3wB*d%m`T5nOPp%$)LcF`Xy<3*$;)33O`HPo7 z|2MLK$;*!XFvjCQX7iVErF5Yj(QM=)6iqQvrUF%ZD>3uPMYh`wpnOV|DCCh<)+22e zceit$>H^;-3eh<_sg^pC>ai*(F?vd$Z#E62RwAKQ+8&8zIlFoH>E}QE`>%fe#|ODR zyLxok)8QZwpMLxCC%<=b{~6Olw6d%gI-HWR-V+V!ZZ17j5IFlkN)p(EY@iTANNBRA zh-f=kL&%Zh?R@1i@QE7tJgfgZ$+5~dYkFmj+1$#WwvSdN>kPYW|CDR!+v8W&*qCN+ z)k5_Ds;%bllUDO+c55#vWlatxtC38hk70Uxe7cqQKq`TMW`#qQZQaHpcp^URunJXL z0SG#IDWKr(LuOADati220??76B0=Y1FLBB>PMbD54)mVgIk4Mb(zk^mF7o=8PW@VY$W`kE|`?jw67LHVX6}o^tr>Q7X|9uPtgtkVrEZ z)#_`A)6pC4rcVr2ev`&X8^99h)niN@8P)(440#C8X-{nEJmzu!lrcK%_##R%cxyNiI z5Vx|74c5^+&8lu{fFrV;2KgKrnniGX8f~LKp|!=<4d_u91M5w_tKf`8O8XP|FLbVI zo>@d>WnRu7Jb(I)zxMFycVwmg?ale+#o2QB;^+VRiy!|J*}vrFTv|yH{?9aC&DUwk z_SYn+vyg%QI2$69+E%4xY%5r8mf5-zo-o|?x8S;2g&~B=Fb3qU22Q9V(f7($awFAE z#Pb$vTj%t!E0c=mpr915nD0Q4VP=+fUC%B*dG>?<``P7lkyZA$3o)P5`&VDQd;R%g z|E?7cSkYfMs-w=6TPrR_*saKzXhh*aKP}5| z*`e*C4g+98hI#bd>WVD&z$oTe*({MD=)o1F4lCx=;Kxyu#zIhRAuqm2Zhmidd*z61 zj1M&th(0yADvGI^AOH|=$87*!lukdMmO9^PREx1(g(u1$NCBiGrg8j> zcF{h@45c47B{Vplr9;8BTYcpnemN$I+L?yN%%^na-M!DAddQ4qqYZTBx5+!)i;4sX zZ6n!=SpZ1`wvYq`JR!8XG+uQx&ZBfNJS~8TnVdaEE$GV35#o#~-podu?Y5+bOlWK# zvjWHcAE780nXmgAX@WA?v%2!bzg8`PM*IaF1g5e#Ocw$<2&7Tz zP>7g!vhIoa{>T62<4^wPa{fT>ZdO`%%f)`ZefRpeH*dd?^^TcaX~IVEP$p)N_!>FL zJ=q)Hk`5K$Advf@Hrk^oc??48K`I&1koZ&y#HujqKpOMX*h#xEXhbAhV_}SSV;dLX9v>ZOi2|EBB42Bh}=%|T{|TRe>j7K zSP-q^g*5KyO1BVg+|1K1rX)QT_QLPllwQb9?IFlFsFlI-r_>2;Vo&S_$58&h$b<^4KT3| z;gf+P<|UTqxVR8FPOzo=cIG$CHYBn=^A$o9PW$E=JS>x&;!~ww(h;V3M|O}gO{i&V zZ&v$;V5*2l?*T+=|7t#NLBUQ$Hf8lHY&^voy_}swTQ-(c!?Oq3#hhVp1=Z=q6P@@N zMN+4aN74dt`hPf0FPyvw0K0-G9Gcz2$` zI*izuHA(SB0oBmbzM-{j&-^wzVsLjPW@(8siDktr5XZY`s!#QI#F>t+!bB`9Eob*0 zd~)^p}PwhCk7V)p=6Du>ApDwYSlAc-e)~5mHG;|8MHI|;8(B#}5g4JUFCX!b;V!9$`<%ulN zh~rhAY|#X6FrcwJ>Z7DhsBxMw4YcA|Oxp-)EHr(BCIK-0Bf6kKIs1p>!#TJ#<#6Z) z^uNIl^W0>Q(V*-8SVSm!VY;(nrr$S!*Zf#PqC|V*b?BODtXfC`k6=8pi@hi|2(*sAG z_UEpmzzm{LsbR#*B9_=Y?-&xhX|?k~iB!#PF@~6gMHX3EWOx4H;ji$i|kJQ|Fr9CRv(B_(LY3$awi7;wK*sbXDmx? zJw1A7TB2w>u94Qv4JXnB$eq-!icC4_uvFF=>ZV}&p`B7f;Dq*x^!hxOcuD_V3=kym|BadblALX70mK#~CSgrkV*a`|I-AxOS?2<9Lga zR-ai+)v7rwWvH>4Gj1$(x}HTj38{sJq~1hYXJ}*j+&;vlt;Ni;m7$69DeTyhNU$*8 za#?j;Bl6vkH1rzmAT+8-Y>+N5&lJgilFPDYf9SS>Q`?#xlW`>WPmr&tO`UCFnNxYg+xbp$phAWN>58 zdz--^Ym1GJGtk$qx3OXdwf0DYA`AbIodohOez&Q(w+KHjq^^qN>d;Y4!*cQ%_M*sU zmuWd0fR!o#jJyu(WK4YqJ2WugN;IaR2B=joR%?gmM+_2xOm+qyPuz5y&mb&dSZLSw zRkKwYUZLq&6hcN0?z1h6`qjZWU4=6Jv*!Epp^h?0s7mUU#@bFG+Q zP>8c^l(CA_w+?3n2XZ3N*N%c3va+rsx9sxN0uDjd*&Dk7bRA}qLIcumHH_ySQ;o!+ zRl`tHXm0gbgygX7F3zu>Up@ZDZn-$@Z)IK2ug>r8ZeM@;=kLGx_e2NcGm=%g9Q4vX zA?}0!@C(stqW@Sdi&~SSA!pbm%e8TrRkoJanfbUva)5}>%Ck(*HVGEk{h?O|X*#Bc zzw8Tq;43h)U1bER6X;3bNG3$QEX#89=7+!jv!6cv=6`el`Cs3i-{0?VNa)eyPwrhk zynglB&AXS>cCV=8&6@SdCD0oFosL&4fn@AU{LWCqg9jJ+71`5c$|?CMh~SV7y=XRG z{c6`y0;ezOgA*I}k(Dua#mCy#*L{;NVZLxMZ-K|YHT!{{GVmjP+FgU{5uLshL5b<2PE{1+gu_9pXz_*u6Wa{@pI;D)T2JGK99$sDMxj9<9F072LG) zS>kc;4iTj_2_edBhShaEBI{^vGJ777?Fb$F*l+k$nDdM^GTAs*@53PT-2xyhPF;Io z;!;B1fQsG}8}`%}jBhGNEMy#C(sF`AQ70Q=T}(zx~mdzxfk7T+_0U>}Wk~iQp4j+Y4u>UXEA8g=4(0KRU}~ zKg6q#ls!Qa8wA4C?$KH}$Fvofhx+4z$U}bPRg%WHrNb&^7JMQFZ!0Yxl~qh@A7X=O zQXhErVG8rYbXZq8yZ6l}-~I2-A3R?Vd)e=qd3V0MxqkKT)#rzsH`HBZfjmKo+7H(E zB(F=^pGzFND3{tS6vDYlf9J%MuXAadeQ6d)s4fN`GFcVaX2O~LX__UCh5bIxuv&9j zpMhZ5g{V?&uGrDPlO`U>#a0GvNWrrp}2DNEWe44X&Z#6?UbAfVU0jTyz8tvItWXI7(HI)tPb=y9c2nVCi~&Tz#j=1jJP3Mlz+_`=gl)t& z*9CU2-wAGL=!D_}N7Lih($rp%9bv>HW50>vCj;sP<3Z243bd)`4ruTrB6x2QMgwd{ z5SlRq!-!)+8D>0Z22T(b#j!Wg?stJ)7T#G*JvD?dxS5eSs>&7%ElR2NjN|q2Q#u}d zpfBQ2di3EOKmjR|ifwUlbOO@D_@6atffkFs45ljwNfZlz{VpT}+6=S-2y734!QO4j zus!tyvsADOgWEQntdc_EpmwxNyMxFNn4(RY9xO?e?7yBAAw2q`vK~d|V!0fI2pzV% zXt04D9d2f1WPH1@hgoh=cK+bOqmS-gJt5j1?rxX!i*-E^-MswSAK$$F3nJoWC$jds zdMq$bT>GUUVj2uCkrpI2IUY-$=HW!~UNY(Ae$9^F%BMoMST%ZLXgIE=|fIu$2wiTpE znbB;>3Usni!&RYc#6jOXrH+aQBS@hS?KtmXo3`acZ^)m}Y}|ES6^=A{z*_5}7sZY# z^Ikwpwz4**o->0)9;yWy3c0LQ46W^swU#pk;NQBT-ycWm8-_6qJ*`FV9Za&l+JFEG zKQ>E!K-nP?dM=F@!M-ySs0K431AvGCE^NFz+8sJ>!lOYC4*uQ%k3ew0eMES=41`*T zh*A`k(Z}<>5WG`oMiyF$4AobSqP=#=xQt{G-A2Br{hyVcKB}g5@GAJk%JvuU(uj4? z9B4R2<8pa0Kt+W;0>w6mtckq&BC{G28qts|*-a0>F{Tg5fVv6D2^dauQ$SsXbbRa} zExT&O4umR;u&=OL@Uoj}nZf|NE@3Ty0{ zm7H3i8e3b*1jV(TN3!6#j3p}(atKQX-R2>LiFUiotHMoOzu;}q}%sV1^`{K{ueesj0-~aEgp8ww6t*kfi&o9re9)5Ch|IxcIe|!7x%T*3x zXDlW#BfCRf2paS$XGxVhs!QLQ8lqT>%t9k5 zc5FM~c{-<(nD}b`_+~m}c(Bz-*VX*sVgIJXq9ViS%uf(pNhc#2V=Fw<_>bA3BnARN zlovb9a8JtGbW%&2vM!xLlYIDrkOV$SSmnF7X->kBSps4s(f=ZTbS#BZo4ayu)B`_Dt@=8Lbe&(^sW20Hqv+J;CU(xt^#Shp`&=0Y8~4aJ}n zP0Il-wGI)aWXMaQtCKsS7Bi$x$2TW9SJ*^r3Bw74ZCypsrX4ZJAS$aCgFzGmhG1C_ z1>$k2Ta{rA+~mE+UQ$~eOcs6IUJF!D1hiC$8~P<_3O_T!c(nh#Ng40LX*B2y%4P|D-rE>7Z(qn-+%P+ z`T4{B-SuJJ)9&ov#rd1x{`iZZ|F0tNmSwlfnfOnwh98GRJtr`lNtPrb=)I#=EIs&u zYn*@VFFl>Ip!ij;9A@JYf+=5CC&tXYb7ZBJ*WK0e~1 zj%+@qiKLu9IUpYsX{;NI&r*sF8410!bFl~!$$EbI{inbGe>uN=xWALb-Oa`2#X@xR z{^h%upB--At#n{sh~WV7v`#X%r?CkbGe|7D2I60MHK30;$9+p)g`sc~8NE_rW->PE zqv9Y1raqDzH*SiFjruYnFlRDKc|k_Q2um1KvL+JSVY+J9+M(|WK!rv$1kQVYoD0%zV<+*3DZ zA%i_?qrUb42@_14#4N}Hc>g}NH5~pJ&!XTIOCrPOAlV)52=O#!6LW}QROQ0s7|(_z z*jHK0d4Z5r73?}C8H^=AA0KPe3?0+k%hRr`c5&K74-w_no+Nlmk%DoURi^2_m`yeO z!FdTA09d{S?^UZ5Og6+BR)OLmrjm(7WLVjrzXy&JD|4R$2FBr)Cb3XP*{N6@d=MO= zY!^F2+hK0$rS59!qO{+ls6$DLR62j|u>_^F6v+|;n9@Tuu#td3*IH45q{xwNeB^*seb^rcOBlt>MB9wg*Ti5k4?27gx{jKmNwW z)e|Aw-`wt&v$G3%|N67{U;Oah7e8F(K(y0g{^X>k?Z$_aD)98FR5#O&a?mYQD&HQ z>`F01hKjwaDsY zn9AA7Q$`uvvLh~YKce#u6ixkHJm=z57WPyn4PF`+hpJK7hgsS%n>z(-A)gKnSn8+y zGK|ADuQ_ePZ1kaq@NlxxY1QgND~0acDKxfmO297dsLEGy)jF+2EMA!n{_|} zJmvuc2T1HhzIIT~Oo4N!q+}z587Dq~(wJm07Kps$Jtv_7^r`SZOp#3Z;VM9QY%N`y z8=UZl6+)}Ck^=CU&1bRFP&V0r-;>5k1k}bRTqlk*MvfxcCYsb=Ft*cn^W>O*{NNR) zEKkxb6cXxVBanAQAxBQyQ#4!-`?} z+Q`LYM?#*XR0SJ~76_5AP(UmmCh(cUoQ9Z|%G}Ij6^oFpyzI^|AK$zG(dEOBn0SA4 zy)s`txVn4y>c!9g-J8$;j7W$U;)P`GMmx8>(=GCNbUb<`+=ScPvHGNB@ON&f7Aa~ka{94#2 z+fssv$in9jzV%<Q$RC!jmXBSdi{AG}!Wt7??vs&`6QAu{?JE>d4&T2amxD^oV(u6M-# zWoXB5&Zgv3h8L7nq$*ufVr0Q|9h2jYg$UbB7){b{j`U9`UAF&#lMTwODh#l3K|Tsf4miBw-RG}8`tqHJj) z!gM4U1Dgi?JNevjTHsBVXw%XHoW`umtA!0IY3Z1;BBX)hO~OGJwbIhfG;An~0R@C- z0})d!gRmefPzHh{#;Z|s5&k6S>G;sQwM25%K(!L&*5cL^bzHyMu^HBH2M8&mEO!3?@bf13|_dX&CEoEHlRDY*}^4 z@qE}2p)nHhwuT)SkszFD;N}gn2Vla1)Fm8VPj!cityEDUuk5)mk)3_z|9I5(*IeQb zabU9Yku(LtXhgV~HZ2)64zORl-t&&9Vz-O6?X%!`$cQ(Ixs~`id5r+Lrh%kVKC0pk3JE`sN`9hHIfFbb4N<<4a%i})mfblPr&$xCjepOvrs$^Sv}S%ke|4RFkUfrOV1i(=?szB zN=A7KxH;L;oGmB~kRlIOAlxC6h3(WX@w_(-K)sQA`MMX;8r@qos#6}af*g8N2u9|D zvB-$~TPh?d;AGod(CyJFCyD#D%Al*%EZHvhRVH*wISr1)FiZC#s|4M63ajA@#_W3c#*M$SfwMj{2AW{b)Ay@1W?WE-u-KV{}EYC9hy9po*-Z^)#)u32)} zjSM+pyVf-{m!@k_62Gv;JY>ZU*}&A);89Q9Eqc(87QxMx%;FpIy@-l=+{Fr&4nx+V zE6^Y}#|c{6*yvMZ!xX$aV`oJV-SMa&C{W>h4WO*!;*b?Q*W~n3;>6i;V{Tc+o#pPAsz&~^=9al28d2IG14(~0@g(k4;!38X2^cps^&>_|2)Hf%D+N;B> z$br`7?Bc=Yqff3LeoV}A*srplpI@zq+xK7o@XKHQ$$GdZUYHkI4<97*wiU+7r4P6^ zR1dasDj#(K`%0~E(LW)t_)tzt3PJ8s@RIvk!<&i@xtmOMywx1~TD_^iYWD;AEUTYb zxTv^kvNoL=qes4p1SQ>Tp1ka6-HXWX{Q2YG`|r-qKbBR_79pXti?jXy_U6sY_itaU z`)iQ{^CHZI%N<78=HmMBlS1%HGf#Q)w?EdO3T0v+g<2vWKvk?9wKU8#ZlfPZm@xC~ zK<4!0WUcBm{2T%g1PKThfd#&AthaBEa?^m>N6W}kOa-IDf?O$`!qMzJVM;HBp}OM8 z&_*YoZ2M|QervgP9AWTLVVLxBPdnm})#ojMMJAmUwf}q0f~^l*b!H>XjWyUF1A`%W zOi!J;u`~y*1WcQ(=cn_2vJ{pik-CO`x3To*kkzcck@thFT=3xpb@gwhK)oNRC7>p* zdn?|RBQmp4#l2s+#Ndp6qMo0hTlvndvy<>@)j<>Oja%<)tMUa?B5(S3)qquOO z=NNTW1xa8doyz2lxh*NJFnK|)b;IXIio2tArHhsIy#X$oUlHTd0ETjv#9`+je@Mwj zb8hxj{2C9r{NAPEI4U6=tM}%HcR<{EU0(1R>lOtwt=2n)ApUULaxv%ZyfJ)Z)j2350TcVp zR?a)gjv(~k*dl;Kk(F23o!`5B@bT57Z!Bl$>)nA#_-r}c$trJO{^EbXee-i>V&1Ku z2h^?#faOwbkI~8@tB1~6t<3@-L^C^IRkv=v$B>g2>w=Y>aPug^svHk5N;|)kebp8%Sr5Uts10p@2*i%tW*# zyTE`nOufgPfU*eq5SBEn+RBlqm(t@$)I&Oj$uk9t9f<2gI#lgz0tI^`zZ#4;<`nS$ zumIa1VycD}H8D-7;K{_4&qgpL2ROc^3E*`WB=l!JWKF`E*MP={R*0y4&*H9l0rK2{3t$k^f?yq{OI7EL=iwn@)8^O^b>tmPa!Mk zSOtg&=GpF8AXDXs_wp1S>;()(g_wj!{j`LV%MSDuHJHZ;(V72Vx0`*u5d`<}oo&J? zY1b=z9BSJb5$;NsbF9nCn_0895#&(xkqv!d|W}fBt0F9PD?4}2OkwdD@ zYIOB>X@?WPR10Kgl$gZw(MGk|*hdsQ-K#@n2Z61e;2TCAdttkUEY8C;K?V;`MtyKUe@*O z-o16dU+-SN{MDadzy1-E@UpDy8pWxNki(zO?N_*tGy`Rd0&r5;)a7O^YM~9bw>@xH zrEGWRm{ZYCYaMNXiMEbkI)&Wn($=ZRi6y_9rJQhWr!cci`hJ@a$lk22TB~jSN}qKs zt=lI3QDYWn=H0?{_vS~R{`RPQ7BJ_akI@N1r)jX4j4FNcExegE zOJfEi=9Ys`IurWKMe`R2obpWDCyZKy#*q!6KLb&y;nMW1H%{ef78ZV)IVQZBDi;Hg zf=Ra<9(+QZ>LnF<5E?xz3$#&lS_8_A9TIvpjv`LZQY_;+TCzsavZR;|wUN_FRcrf9 zL}y_L*RMD;tIR+t!Deuqg@(XrutZs zN9!suUmJ^Ogo&yh_P@BR3o?*r1tK(b9r93M>*7MSrZ|B@+hhtaRZQPHicCUaX^=-? z58Ug{fc74pw?Q%xt&>kQ@XenR)U#UdCVXD^Y+ z+cxI2Ot4s*^V1N5Cj6A?SLRCfW%Kt2N;LQYM~j}R5pJ|N-GGi)IS}#vkN&Gi-}*0> zvj>O$VUd;A!|vYMy1%`C`}+Os&({4l(Mrsk^_j?ld@)T*+LWfgt|Bp6k~|=PBP*$H z$0A>I9(LxXXrmfb>cb*i+ySLEhJj`_-y>r=<2R~bydu~V&F+9qF??x4q*YwCNxtnx zMSGM}nVFQBDvbAY5@HnKD9H56U9#$^f;ea2*J}rtEbR`1rgh!$gELkaCQEFrQfWpI zA;x*)jqM#%J;MzjVsN)r2}S!~9dToZclu0+g#Fh|F<}rEvgA^|wg(c^1^v{whIwUo zP!VxOB)MGVi6E`Ox+>@Pn_|K2a;8~24o*xc|E;1Q28OAa&1gh|>TUu(2Tft#Wi6}L zS`!#I%m9N@qrr|_S@kV5@<8TXhq>lf6o2w3j}wyJR+}%}rLC>BIz%|U3w@h!H~9>5 z6JkZK;+(9)9)Y+%Y1tpPpB{15d#LLBbZwWiDFcO8$vDUl&QblMIDElDFS734YV4%g zlH+RYS*61v(jw5KY6fK=xdd^!ln$okW*SK4Q&eE=3bomCQ!6EpgTRIyAWGu~1u*cy z4bTr$!yTiTw0ArPwg0>08Z#C6Pn6IKHNOod6^pu-;?8HEvsc_ee#>M4l-a6@N;hN$ zrcuj!v{=SVLVbp~;An1z28G*6iB<&cK2C^4bCUQE;#=W-~cqDjcMOLiDAdn><`Nw=5$Y!)f9A&3D&#LJF|-hKY3?>_(YC*S!$KlteP zm*w)XU)TM9J@A7kpIkkB_WsR_>o+fC|9+K~h%Halj$~Lot61pyb-@+j31lUycKB5j zDvVFF+i#v37+ieIPR*6X{Hjp8`jol!>29ZwL=|aZ%R7yG+$a} zPB)7pK8fOQj?Py9i?$f4%~yHn*Wh#RWtKBJ=b{P38WO-cgM}c{7eGk5-G>z4+xp;W z;1&Q)#!0YExIXcLi^TEYSTeow5oF{*1{x{*eMm}Ds+*kD-!0b%Mm4#%5VJbYiOQZ8 z8yU|f`|ML8A>+iGZt~TxA9xi?`HGG+ZJKIW1b%kv!7{p z#_%8^j8*>7tNr**P{k1pggMk4qmH}V`f@};{JohMzYh(k_2_FqnydhM1Y&zET zh&jbxJI24!Z80|`ClKjmPef<;?%#Xx{OZxOv$KoC?Yh6cJ-b}^aFE06*T4P`Z(jU} zXx;73R@tqG1Ms`4^RM7;U-ddA{Ve+VB-&Db#CxX-8k5nlkX-z3uY&E)8FM;IqCf36 z<0p0js*rtbX;++L&Q}gjO*LAR=Gr-`J0O`OIf}8p0#J@uW9s7>07x;?99~>yC=1Ci zPOERrK3+mgS9*IdMuh3?(YOB2qi_6m+Fjk=-txNAx}M*=x32q}_g}t$^Tm4mZk2;g z==wPfa4I78%^KWab%ns+n0MS(IM6$3GCaP>56|F?5*ZYTtH0V_*CAtBoYqbAlr}aC z2hzCWVlVqZ4C^N4t5LPW$b1*nhdMQ%@PG0VkOhACp{{Wuf{of?^cC00hS_upM_s8y zhch;ZDk!P8*iBgLdVj<*3C^y=7FD3!x{c}4W(sgt0a+bfL}L=;I><)o3>4=+eqxB*kiux&se32t`+mjopxwk z+Z2LRa42hdREv?rMORe?c^4`LI^l9lQ&oC))B?M~N8I}m;h`I%mh~m1-Uy;W0tYLA zNa;P^{!x2#fQ>mvGOZyPJC(uUogzccVRJ-O6e|-HG}LP9pB^FYtJ61q>#M0Sltbn$ zh=LgG3bWR1jWx}TyT1(YdJOBdogFWb(iMl*s4ypJOsWQ;6h=2diNq%d9;~~-LDDPY zHpI;<>b8T#8CDaEUTLO-Nd-r>#5W_t=wSx_#y^Q8IAR)3Ya+3YX)<8g?cKAgt~_5b z>td0K1>6GH;{B&eQLY*5-V=jW1-qQ<%u#VD!6n1`z{2e*)-bku^r)_}w?^R<&^9>>(`$jZr`u#4KvHa`m$trb3y-#XCD%qg*a?exIs6{ zn4Vz~dd2rBS#;r8!W!vu0(Qe;2Sb1y*(`VdxKjgfY`al> zA0&uxuc*K_Gb}LJsl^^q6<{9Dz3avP%`q`5A)S_yqD#(il6h;hZZDvf98fV{POf63 zrgc6xJ?JQ>Bk<5vBXQbx*hpDe$o9qh@-VamEvgE2fMy5F0taBQ1LNV!d+n&l+LYxE z1R{RJkaZ(XF)=iIsx^{Fr$=XuwN{lDyQVsewo}cy$DDD4pCOY=a=}%^e~DH+yI@=$ z@7Y9c_6-96^KY=tE}~+LjqbTe_)1jpd*4k?$+Osn5i*VC!Gpa5}6g5$TF#cO;XlT{OGYAlqOh*xBT_@MBdK?GeY z9{B$7)JUDT9oy}dpD_EpkYuKU8bn+MEU1viLjyWOgI8a*e+Ton;7p(7&i=QNz>_2$#f&4 zzwj_K7Pkyftqd3K4jCSkWiUJh0f^n~6Ed(d*u5D9X&*(S95D&4Lb5J=ad!XFz59>P zE*~;4>*2t%wwG7e_1(LdKY9Dx|G2L2m!+Ks3`;E5v#~YC)*E_DRdQ4k{z*cdcyX8V zgDQ@jX4{{#Lz72si&H-x26rdbg4UBcL>T{o%i5X;z;Xmt?TSuRVz{o`E~_1__(507 z8bgEXSW}-Zc?em|fC~}3lZ+?javw5el_QE`V%9jbiU`s2@Z-Pz=o^1)IlsRiR+jx? zzhBNTNDg;*%^cFO2Ulhyx>%UPwlzgkvt$3iiPo!Qk|BO8go3~}PIOI@jM#}Y_G zQgFhMHO_?C73R)U+NVxmNs(X=EW*ktd%4Zln`RxXDM|Mx zy#@H0&xViVToGtZ* zVaRIi5q4Id=o{@MusH*$~pC&z^NiXbO=dR?HnJIabNt}o9$Q_E4NBqUu z1d*{9@>}kc)wDgj3BGp-%lT-Wwv}a=^I}-wD)2CNl735gV^!*iy_FkG_J|CoY2(i^ z>LNf575tHNh^yYXW*bh1>Ndc3f_5=l_9and*;P6EW;v5p*w9pEVXCRnRfO^~ivdEd z*czvPMp%I0jST{VhaqeKo}QZX`~ECjXGLB4z!|`s(#JutXtU_Pl)Iu^QWrqHOm7{* zEM~+_pk4rwxiAeFtBY%eVx%OGa3r)W=jWG?F77`$yLd=M>tQdl?#?cl_;7gr`qzJU z{pv4>4$JOLghWmC$};FqE<{s}Scw5uuM*pM}$Mq08r2O|K@%ppMm zcytQ4Mv(XSZFaldbg?ziw!4R@b6X z%0(QP$0@T3#*Rv>xni(wfx_Gxs~wE`K4I|<+#*D~N8k9{_dojUe14x-W|H;pZn-#P zTJLV&-Msta=KA$|cTKzs5%Hq_-h}`Tg=pB!)1sYfqQEKm)Bw!}A+fB2Idg>OK`Fy* zlVu7qf#eV{ybgwKV?Of}F)V_AM2?`AxWtBub}f*lNJUJ7GPS?f$q;#twl!)TvKhkP zcbV+Hq%rq$hjP{!WK1u0(+|pk!;jv z^U9%Rogf%&jG?2)+j>Vi>ZKc4YYfkf+-;$HL|P zS>dnH#CUU*J)za{Cg%KcmE@nuR2` zXo6+mhdVhl000WFk;9zTFOouiM12#ytWLd_(gf>i$&}fE0K#Jyg3$ z6RF%;VBgYi*w$Rf)f962FknG4KC|u*VKJ|p7m#jz*&2({g?C7>G3X>6B~K!K$itGf zOt>kl84zXX)lN`<#g@XdA_PhNF<%KCB~S<%golmaanReQy(T&1XaI3?r}lY=UKtu4 zhpg0WpjtzVc9sGc^5$7@72QJX5Y;v@D5n&0$hrnyhrnG0T#DVR-?0a+kHB=1I8v5i z^8Q&Q$C>^;f(n1_T6&6+bw77dV6>M_WhfecQ;>>tjtWyvO+?E5NmHaq_)v8 zgxcD(Z=TUN*ZX5JRbi>#K#vsoBL)xzMDL~e+R8@Ei8;E0b|_m$M1%2i)n(WW+agPN zktv)!J7e2Y!61cCYq#Py3ay45o^q#9l=GMRdKFQwoK(eEK<#JP}fTT>=IhY3mY>#$gY97u6Fqn6N}-(@Zvlq zi&Xs-r&|I;yV247G6ti1gOhq0LbYTZg}NOJ)Q++Vc|XPY++2bPEztW%`~fsbf~Ej! zw5He~Nn@coa;M#-OP1rfN9e^7^9|Av+kzEBcf!iA1`zMzF|26k*P0}pK zL7CM(GrQmATrA1RmV6@&fei!^5W)X{;*kdka0rL7ECD`}e59lAw!1Ukl{|FiwX%9< z_md4ReP?I7tMXQPt*Wj``}W-f*tDf)c`qdZGC}nY?75I-2#o*7IEvElxdh(S>-iUU zQrH&?M7lbF>C*NMCF_pvqWk0E=gJheR=nuC!IpxD+9s_lK)HMSC-WCSdiCX>miey0 z?JNz~8cYmZIQg#2`Uugiph2vj;T&oe}rG{jrf!0MveGbxTTj340NpU9TIVE0#D+umhok zE-XEVM$JCdNSs^WvUPe`i>$woRs4;$d^(rPbll3=_?sJs@y7;LO{FFvu zYzM`-WF5Utm{SrSS@iu(_dZEGZLT7{S(tpZ0Bx>=007IIH$VChufP811(s=^A3i=E z4pRXr6D`Zb)BEopKmKN2FGMRK`m;$*q&E>+VtLak-2Q`ZhMPFV^y<@j%h61N6^q6~ zc_2T}!p5fyZl()q{*#%zPf|@<;ToB?Xg7m(kjyWe7-I#Ukou@$jabKR^XJyO%%AHkDweY!d?@E z9=&1`bx8u^0=1w^MX!0G>8p-nL%k7yWtG(=Gtn#b^ZU@Wzn8X<#W_>VYlC0ume2qs ze=}Cal&hB@-;tLbv)tM+0?=McY}!oGD+F_IZ&HH%?wU_nWxd?wnept(RNzA*We9ca zimPD^$H)}ef~+-0HwOjACnO#{=wYNb6jfk&b;M&67dbgF6FRHHDq^gFwa$nL4PeV0 zt14_BT`bn-AMUUGuqv=*QZYhj&qn?%)b`_Swj~>8J2cgpQG04iU5C>M2f>QOPCuEB zxwo;GUF=lK`UFQx*K0518)HabTzr1Xisql8$3SJOwhwuYDcSyu1dCuP=`YIhk?mLdYPz+6KyqTDTn#)&GFTn)9H)(_{@T^PRTbFaRi?W;HQ403C#H7RU+$(I!Na3d_ zvf&;!*dw4raSLD15m#v$g?JqT0GjWAc=yF09NzwLe)WUn@p%65ahg_yGEG?5^V8Gg ziamk)KhVA;YI@?m!^;2MVtY@rz0HorhP5Xj~>5!exuPZXrgtl-j!X>x(y zsoRY*$#OV)_iKQf97(b%m;JyFhVV@xyocgd^uyFLF5V<|X(4+0kg*XP?o-6xFc;hzN5`>BIW0r@~5#kko zY)P>J6DH+b1mB6XvoPKGZTAk4WM)c6lZd84ArSjz4~NL_K$FT)=M}s9GpL_tt)g?l zM%i&^Y9nl$2OObFB$+NrCYN4Y#&0a$7XV(s`{0I|MEgcu0}R2KDUWayQf}1p{bSDl zVH+a-WuC+X1T0_zzJ4|Cc1(YxzHoapvI0#`-P^QL9uP!fche+jLXhZD6qYrmAP`7Y zqQ7s{%I%oQOIDpr+fxowMyc5&0oY$Ny{4z?Dve^hZ35s@gro+xGYq27nLg|<%sQkd z)CY~-ndY=RDNGyi%j3k)wK!@)FjCyxhl{!_3iPdAeAHA1!8?}7z6C-=rNmuSs*uFz zl}SKrf7lfoGHvD)Dp}93o%Qi_nt5t_#K#a);LeId|4OXTP;SfE&ElmgV%=VmrAi3X zbhtmh`TB78#qoGTgu1NDvf?x&;_3eI{@cH=pZ?doU;Vt+_XyjHtaS+FqE*7Mryt$p zy_RW=xz^40}9=?HJzj;C_x?o86>!^aR-w+H%jk6R&tXK!Xy9|cdfLMVa+kPd1P->~I$T@b z7P=YY+vw}wun?yMiR_@vyEA6uAzW5J@)Ml;j;OKP?2||uXYhDge0yDjfB-5H!89EY zuiqYCeSJE;DTh}?%er3bvL5g6CS0efzW?SY-@W_UJ-+2Ag zmnVIYvyX16$ZnFr=Uw|W&<$-sH0hbZ`^LYUtIwfq5Zgi7KUJIHFVD&b(rj)AXJ+FPUl=wM%A4{R7Fgceb;Zn6#H&uw( zno!z8wh<~BfXL&nXPz~gqq57{S(+$HmE&Fp^XcGl;W3PuSNnYItY|oE%=hP~H$|h> z@CZ6O2V9JF$ucxLya&Jxkfw^;ALl9dF28oiH|0;)+01VQjP|QyHnTjW4%v}L=3o9& zh4B~Y?>ji2vJJF3U(MqN*1|AG0!W8La|Ihl6jZv)*Lpa6##gcn$vQ$+Dlm=3`UDu6 zkw|q_s#$e$Y8iqB!;l%_FasSH69@soW;lqFN15mP*PrsUDFlE7u&$q2jkgygImGZG zG_X$xyInwn)Fv?wKkl?fos@S{u=muoIis{Rb3|b;kq|mIe5;9;O;3@3ppZ8mNA5s8 zn?O{tl*4p*eYpSf^y;g_@eTmib*T$rfy4dX^7M3hdbfP|`w#!{llAgl6D1#7$do0L zaZ(yzLHiOHvU}6qe_g!L;#%W2${X< zNE1MNR}X-0H+dmih8@Me6llvNL%Oy*wxDxF;~ziNoXvg@jmc_)A75h&Qm2c7sypBb z0=qGoILUL(VBjRZtLSP5v0}{^2{c~}nu5@JL z4%?>FJx0foRV_0{&09MA@cCj~>2>3qzvV#$c7?fn+BB!1)dAAa>e9^d^8pdu6w__F6LAMKG2q!-@MEcldLusn-~q_0M?XZKAtY&gaP z7X)6H_N8=_D7j}0JImBcg3$L$y25qL`m%!jYIU^>M`!$Y7imEarpGzO4`^YQox$*86;mfS%*e`jr6FZ0uJf&IINbq zC0Qf!G~o3M3t;0sN>>S{oc05UMO{-+?CAnRoT3gPT~k~cHxdbvqs%UXg0XBgPes}- z`!Q3|sGv~!0#4>cQ$*z)Q|wR7I-#JBJZje7rO~XJstRC61OWK(n5aL-FS%4lo;m~3 zU(OI45*^|%20nTf62i!1aYG&^_#Gq2bZXZoj9BH1FgpVH1vc`7tM=$s%%yxh%KCb% z6`C8$K)$V~5Dl zDb^B(RiGIsX|~{4&l5dTba4>L)4nEnx(z45&j7Z~EFf%l<(W#@x~}$!WYN+)A{S*$ ze{~3cQmyeOz%8^53p5ulM$Azy%t~}CsLdLHbtagv4B@j%R$zA{EOc8EbfDX5Utr&{ z#}?Mwh@*x(c~Qib<$_6KhbXam5#4ewtL==mZAkGzj8>31bBK`?GyBvr;_7?5NznXQ zDTn*R>DBT6i{tS%PN#KQHY=NtN5l!1<-_}5mipV@{-3{EmR|z^mWlUFxzm*lYu#RwAOWfx|~0rKfPaS*N< zM%b%|=@^4~CkZE=KAlMtL48h*_J-Ed6RCFJsr8C;F+Rr%i2A^93SBR*Scj`N$e&nv zO9!7g^-O~yJC1QmeMdI>wTnR9{$(=_{@b~pRw=|MP6Y^ivxt{@!HIz&|3gDelN;xX ziO}qngv&Aq8J+DQ#XfjlO*~g}*=UER07l05|y9LMB) zRmsIAwWM_E;WT}4HXSWp9hAX7q^z~{w(glRCs_f2?sN^JH{a}x86^nP3AKTX6VHYK zXwI++6K%|WF1>!06+mn2oy(N99lhE{>9^BWZsAmr2JS|`^5sT3{2RNCNGBleVPo}in`qY8T>WLqY_*FA8-7}YK zLWW-hmj-eUhKW%8Q*q)_?aSqD#!><;NTI%A@v*?r+A*4#vAz#~gig8)Rr!XJ6-Fa;OUW9RZ96z)Uzh;g(@Sad zyRkE~nh5}a+b@U$0MQBn0Mna)_Lrx(e{#Hkb9tia0PEwW6fB1WB2E)7>-lnixIBJ5 zKfJ4#Gtt^&LqYx>iY(eVb!OMQbHGV&ZDI;GDDXINLv_cxj1*>uyJZtnq8V%+a?|nZ zER;)D7$}cTb@Q;=)@26i#%{?<=AWG=m$#6~9)O~2)qdSh6Rd7|D4^@s2bjQQGhJLd zHlHk)rerl`Z_tN?dx7p=%X5b`3MDOexhpJNUAcS)cco-yHoX@|W|v}n^4x%ka)hYo0yY0m9qMT7>USM) zCx}r<31Lgkocr*ywjAz@4iW(Ht2fv+QI6VQBixo$5E7b|YYuI3{Q4lP<7eL)cBUPZ z4C4UN+|1p9RiS3Y{B9Qk5MY_he40=9r@PmOyEmmAsaBu?G%L&0O0~i?PxB0Q{q+9* z@$m57|Ng7<$6pX!3L;?vC`6SH1icbcudYds1}U}?>1MKl=Z5&3FXuToS-!MnwKS(0 zmty3{*Tr&m0LC<2y}4c6L`|Bk-H09gFRaCbGsU{G46KgC$9~BsM>cRKSOCNNK(k-aoT*X*Zf1%WC75WzGb zzdF4B!Q0>eQ-as?Jgw_GPo=K4Oj9`=h=A&4xjddfeYiZnU!NW;RGa!+sgDvvhJgmKmBL`&4>V9YKBF%T`b5TFc0t$#!~Ap{88f>c&okE{ zr{ZY|n+8c>?Tj5{18G8`K$l1z^vLEtqa6TyQHVoG+wa{WH|@-BHr~L=d0^uaLAUj7 zFtB?K%vk`oG}5DXfizHozKuv=`)@U1p;ptM9gSIiY6J;(@@-gMg+e#fO!&YtqN9w@ zWRmsykcR8~B8Dcp>WazX&SeZOBFCT)qRM4FBF(KB$#3f+8?bP=WDli5T|z-&o( z0}1eLb70@D!psV9$6SzQHccX>$vgtW6wn*l`l{*{LWN886}0RBq{e8EtQ_2|(Mt zJP~C(BJvmv>J8jxT05G4uZTQt-kjYK@3Lqu z0kM=y#M9v0uvK8R0qns&{QL}#q^yvHKOtLTA0iKtv-DC{ z-%e6(i)}0qV^bNE5QJ%0zMcUjv;o)B7Jr(dAQpc0paKAvufF_)e|dQQ{rPZOE6j(( za;ZRs6He2NgaGSuIWL!|^W%s0>0w@{uCnbtcK9__GZRw86b&`cpU)s~iFCXr zu`P-yJ14?qLN@b}^u-d^qK{@i0w}34p%Pb%nnMgm&4d}Hs!w{tvXMzRx^%BIA9Rvr z-2x7)cDoa(mSh5LSojr906TsZhDK>>y;ykJaD^2pUbSZMxqC1K0BAk|B$EyR)QK)! zW?v84@$!x0k+(Mgh%<8DknQngrXha}$}EYPyY0{j(}{QJ9NF$@I+f(tz-oNx*KE|! zdGBPl(kV?{N-Bkwv0LL{fh!puln~#&nZ(8YfX?UiI=>Q@`+Un0e7w{|o?H z>cZf;eV(DCx-UdKGu9H*P)QlH0Ra6$T5CvGjwwpi#l{XDu)tcswN}Am9J}oUayP3s zo_i14bJ;Q+yH8k43-M_kH@ezs9ACrI^scD~vcCk#=P=5<}D(pu?oe^;sE^0-{;-SP77oB#gd+rO{ygn$GE z3({7dwi=adiiY-|uw-T4KBF?dLdghlpM{1iiOkO~S=-;xWrx>&>7`FcH*dkRgR5`p z;BWB(`y|Hfow6Wq8Q)u44z19Wkd|J$;MwV%%R;*@U8a~2Ll7CbqJQFga=cO161;w` zFqu9y-mM3;lTUU@pTY`kVxDU#8;wFo00OqK-5xXL$J6%@U;g3i@BMh8yVL7euo4oi zk5AK~5Mh}nAgJ|nd3s!)K3<+a(sEwwWh0qzb7GU7X?H`wvgoPRX>NN-L=DHmiX2A# z3M8QcRbT{wL5ive>UlZklBry@^7IBLIPK3=RC*ZU^KJ?-TfWt*x&#G)-J8QqB5+nP{@8H2bAK6L%ObVPWy1L7 zRREAouMG|wqU-{gS%hppmeU>9?GOv?MaEzOjs6<}M;F)WDu@oqZ#l7)-QEEM0*Lt& zb!E@S4^Zy*zHW!4Xj9%^fK`gj)U# zvQKT(Exk6#qR&#xIhl9%XrBhHkWJ`d{&-qk$*SflBW!kIFxAa{I>TgWA}JCf^(8A9 zpKNW9%w~2~7PST98^%pCJ>nkYlDIjDTku;Y?{{SkEW)y2x#pEjG2A3-D#7Sr#o0n% zAuDB`BtH;<#^175Lo*5|3FnMAx8rx&keP6AV&iEQUA6`?v8Vwhc5|(T38xIQxdLpB zn|yiL|N0RNPSasN+#l{te7ns&n{Wf+_YFU=;d8Pm{v9R ztz#%mD2hyhRpq{=`k*149b6W8Kc;9s{#8{OQ5hce?De#co?g8P*5~%r3>Fa3-b{Cu zfO!g07GrGg{ff!mzk{w=mNr<{2o*sM``5nMNSH zrl3(}>(C8>FmhEm66I{D-)>fog;`Gvlp9DG3`vQ$=_g&iCz7&qO99<3MjJgrr6%4m zx(Tx#)x|*)LM2?vvNgJ>Qm$|oBR zZCu;)Cj$n8i|MZrBztcsnqvpo)Z0lHcROc!_h!4bDO=tmh$0mDwp^F$sACLz3shTZ zDv~WNN58jybc_6IEh)bVLkSi!6ZR_H50zGJqdb_XVH!n06SpikI9b-EZPfRwD^OeL ze38u$HouogfWCS$E)Hc6tzps`20^+7AZ%FIpKS3+T_^)c3}00++;W_f%22^-I}_bJ zl_1NisyAko{Rf>^+!!=A!ey!7<63*7zWjX-? z5LKvkp)ya0yF0*Amiqp??~aF$AAa-G$KQTK^e93is>~Cr???rA!@ z+(ll-;qsnT|6g#KJ!wiuz|`x~xTFY=dYZ428k|Ggenh}6gObvqar9Xw>j+%nJ0)w! z;kz!Fz{wjAIE!4cO^;B6*FT6mZ(N(6j1<%@3aT#G?}iwH%_d1+ZV8qKbKOY!$Q%H~ zn@eiB?Ety^!Jq!+$M^NCAN|FAdUbxJf|b@wL99e&nm3q4OI@Fq^TXxoVR`yU>*KmC z0F?ltz~=Q_F_7c}!bGdhjGUQtlbvl%Who%Mo5{x6!i5PuF?4T~g29NkfVY_0_>U0D5GlG0@| zjK|nb@97XCe?*}Gj-kY|V{=)v$l;z!(q&lV2VT=a#$3PZI-M12{A$S1g_x1jTTG5l zu@`cAA;lr-s@5hPOKIqp6tvy9zD^r@80N)KA~@D;ZtZb)=uxGCCMNACFi{!C#z`G( zqExo{bV`z0xc6G|H*#g4YcMQ7b<*yHX$S!5cb@wLgq)=-(-ye(#nG`!3rC3(!(6G& z*^(8)rTCrHoepTF)&P6T10+!-1lV#VzN7Xw;>iKa{l7!zXQs?*sSdDXFwqBKhwdgJ zj9M|$?LSIn=K#GlvW0s?vnLwzl64z5jQmBksQS>)1t4#}(gJ%tE2(y)=P;1I16T>M zOl6u5_w(`9d^}C_5z5RCt^&*ih*V2CO{e+c!zZM7PY?e9Pv3s{_V3z+0u};9z?S$C zr9R;WR~s?5$UfZf3|x*`N?5#tKYs8`gY2)`>?d!f1B z{ho4+EZxZ9{)h|-@O?*t?k23Giw63Xk`ln$^)3u!k7&K~h$JuEE)^Pg8RQ8)h2uu1 z<<2NdLLQyjweDV3I>mYEb%o##YkH|K?Mv%6a0CF;biny7&fojJKmOO{@U~E?fKx$Q z)(VxVmT4lW2tZKR<-9&UF6W2K(}%h|taWMr896&81VHn`o=-kabSI%i$VJPU&+Htx zlKHsCYPURR9HSlbN4vdFV^tL9=7uxzDr}OVs*}81lycyZ8%Sd9(&BEUIT++9o%ba0 z6D-Z6nHG%1NV1Qf$+V?OH-w&+Mi2|yJT$P{?N*hOL`cL=2zBq_E=VD>F-F z;5gOxPL2#9-pi@B*6b_>DN!vm&{5O9`lTFGq%+=kk0l(KcU{27Y2U|CXXrB?pjUq3 z)U~vpaCEVvnz>hT0X7C(5Z>trZu}R1hBC&aI^gys#c@T)2yHsneuQ?K=3|-ero(AI z-p%u|%twC9q!J?4ic|l$We#5y$u1kzGn*dR-lWFyH)ATligGd-^mwt!fY=OcNIz5z02t zy}f^rSP07Num9xk>pz=LUlN_>;~l_?btNL8TB#ypnF`ev2-fwyULMz{hvo9AE>E?d zi7Kc0$WxbS*ZiWX*~ny*EWO<9x$+RD!!JCwOo~%^X+&X++bmV-vQnYQEpSCKD#e`Y z#rO&k4oL#o-&jCnFWx?JDkd!2j0k-s)Lbg&g&nz)>P6H^9)QMm+dMdM)Y2%;sQ@&I z4jpXT;G(*+Vwtcht?43pDM|Y1@?=x8s$h8N$tDnfkq-D>I(PM~4?SLxP=um*-O8Wv zH*f)3J9H(huhTknBHDf!3r$PQj&p?J&@q*&?C&(V0$-jN5T%HmYz;=yM(#$x;RK#6 zX<~Ge{=0oe(jkKpaO>iZQtvY)Nzs9@(3DU!U*>R!K{1GY z$qE2LM_ME0Li?i;g(w~PkZ54FBb36^BxbS`3oWj<3BpfrLMQF!gUIq_zCrez;>OXW zLBC`38UdN5xISP@)-0Px_a}7q6i1J4V@jOo;jweT1^afS)CRxcR7yEc^JzZa9}f5P z;e^w%rDp&@wY_?ZIN`LeFy9|O{N@+SyTAGLo4-Gt@ci%&0RRi4oc(J<$X?CmE$pT% zm|bRt*CC`xZvyoKe4lf5djLnx>|@c3WHA7)f!aj^9I-<9sYi&jh^V~>s01`)wTgc1Y$_>5HH;xpG5JM*R3>16V8IE<0&zdC) zAulaiX;;;}ogf>cD0$0Ww)s8)AefF{|HbeB(Z4&d3($PLf4!U+#LIfV04-bkGEMUq z2P&=Wdamo!dVXBaPjz{u^-}8vhzPfg5)q4C=QEimCMk=Fdt?K=y9_t}28T`tB!>yd zL{>dfYIru-q$>k9CGZm;Hd6s*n2*4^8<{nSg?uF8WwV@)2j?`@lCcT`J;LS&QZ>cD-a-pp{sC%t9e8KeACT|=V| z*eu9OS>ogx~!3pr`@jSo!YATPv`J4ZA`Scx5>-pi=sCK>C0;)Cp z1=ZkJpLI2eGD2o7KIiH}w%&~QaSz|_!)Fjf{zFgIv#^Bd7T|PqtN_8S??CptozSTc zhFo)U%JBI@v(TQ=oYC){81y;%`rNBaBwlVL{+1KETrW@~=uJ)&v){1+^!Md@9_26U zwF@EBG%jSYom4~s69N#FSKt5h(-(j8>h1R~>v}q#o-RwF3oW%^sZ_BPECms^x|FDH zFTt+ohvodRE>G)nre&c@fCNB*1rT}5ia9dEB#@eD`IiAg9uUPs{&v%v>k3ex8gRy{R-z-)ceRk_aedO$wBuxamW_D#Jz@tR0>S?cWSz*Dv>x{SVVBK;yKEE@l#F zaibZ(|BV!@n~vU%K8*K(={8zz0*Bk8*sUy$w3Ja3*jFlI13{|gVyD}i4|eZg_PB-~ z4FSNsjDX?!MupLq>=NPZm}G*M@AWI3I`El0_CTC+8fOusvpcZGJU5K%3|TP&W-vO# z=sgPP$tVEG3(_KRQ9q+_<`U;b@g5KWwMj=p0K{o3Wy1L|9}ZT^`O45AW~ae);h2Prm#4e}f6@`UG@QWGJQSW^t$%VL3@c+VifF zUmrE5@zfB&ikK9d&<>N%~|tz9o!UqIq> z6}?AvRk$f_Q3`{4Rj!-J+Z<4)9CGwS2;!EQXGzZ{C;^UKw*wp|na?H31IfU0Om1KJ z_cv&5cgh_Q9A1Bae*NRGe)JcY$EU-LD-pu7o-flpuWQ{>z-jyWGen>YfVHkvmvz0= z^?ZJMSe8dxF11#wEhgZ07IE1mS2mj3B7k$kRsb@VF+WqLZ?q?}!+Oq#CUge>UE zM{*mY`L5d_+rKVr;i$CtZONz02F}eUxZ~PL>2#v&-pxyVAIbw%+Q>9jGRd|#Yb1sh zOXT(y!_#baX2ji%*Vq-x=)^qJ>T_5e+|*^PoY0t{!|`sK@5*#6^IXb-2&Z`hKrC1*L4``Slp_{ItVA$P`1tU2|LWD{@x#-*pMLuF z|Gqr@nh=rBMy(MH_W%S|3z*$o!tb-L-mMJnKI`~dc%NCaUS;-bUbCYyFJ=Try7;>* zS#NKK{P=UmCFBbk4xf}gYiDT!Bzx39y?vaXHKKb4)~9m*T*8s6y_m?Iuo&as%~xM# zr?WwUu--T=?q`uP)FcnB6A1P$8-TVbZCRM7`*mFrkH@z^{Nl&|cCClIyTe+iGL^bK z6{y>rt#!R%DO3ru!1nrVLE5&y)V0=SU6*w^ub0Q={77|`m56PMa+3njAa-;In+rKa z*jLo0o#fPhOM^M8n>g@nhhm4`QLC6W?Gz(0)bztHRXK7?m#3RWHkWfU_g)HQwrF|E ztr5_!4mEmY=b=lV_Pa)u&`Gv4Y!Mg6m1llJ?NlIr$1Rt<8}OV;(p9uZT@EVinSHcm zT1w1#nb!&ZV!b8U5@fSq8#Ii3 zNEa&+fq#@Z@8Wm2c5VWq;0+byx(>}JYvBWy^iqqCH*dZ?(PVN8X<^UqG7QH+U|o%I zO=$w8ItdxIUGs=g*$*QDNfY*c}P1~)bZntL1iET!%9QG#sIz|UF zEd$Wh_|SdOeaxMtq+_?@wmQsnR zR>X3+yQ>wZX@&{~=;7n1)7!ht`Q67~{MV1a`a3Lz>QmTEVEni@X(sZj_q;KC8Fkqc zw#!Qjz1yhq=?znIeb7zl#E$qe zx)*V>Bk_IXzKZIFW7%sTyAg&%*{{abb|BcBLj5bwVAf;7X_1!zDeUmppC8D*iV8)yI#+HMo&9Q#3}vs z3bQ-;dmh6lJ%tW-eA;KLv9U9_Zal{7;nj>nt3Zy@LDIqHodM4%@00HcMibLjj1EyI zhAS?{gH2QTaYlL-F8CyVe?SLq5UsphRSMbtDP z`icBP^Y6C({6i?I=50^WHT7@w^%ib>*~rWiztL{Vmvy8(h`aB_H z-yd$Ngz<6emHo_$Zp+H)2|VbVCCJ{ zLg7Xt)7FOupHF7udij+ns5jia5#Wod+DB&_p!wc8e{Gj?WS(EgehX`x1^$0jvS#pa z8g%2EF|}bnN;BrEQrcQ2Lo&Dl8y=Nn0qaGY-z z8&i>xz9HOe9I)>|4)4kCC7}ecooY|nSY)UZfPH))yO_NZ3};XRs+3!*QYAc7>re;) zpx(Xt@mGKFuMYQbA0IA<)3KD(ROV$Nq9-CMWd;HwTGk7eQp$u_7$^S>4-wJYiddpb zE7g_iT5F|xp>?Ti`){R%YV|vX{PKAxJ`(ejpGow```Is=>P1*&xEHZt>>oLTkIbmkjz;o}(BkU1COH zI-+TNbB+=k?_>Zq_Gwww64xi?FF<8#x6T0tH*)a)VNgo@P1F_ziC}x1l&DTXSPE5y z0(Gre2#MCUmgzK~rib7DiZ1Uy{Pw&1FHRr7`{wce{{dPz7Q6He0gKmRV(vE9;(Sgg zj!w+C`Qd)UZ4~)lJWH-CjjtQiAV7CF$Kg2dB}F%)mz(W4$SbclqVb!-jfx>% zrEs4M`+aY-r*)*3wg8ZWFYf37UMpEMQ|>VBUb_M5*5u=PNN>>E^x@9%Ts5j&B{TL5 z`_P8Kvt0p+8D~MRdpIhfIzhX)LK`hN^KJ|As|%%Fvklw28fM&J1V{stOy9S33>bNo|RgOTdA%@ zmH$s0pOq?5C0e0YqDoLfLLC8_EI&&%y*xEWns(w4Lw=ZwmdC93ts$#b1tDq1VhMQw z-C*{|C*H;w1oHsG_>0uvgxo>y_*#kBkR)hV!QR!lwqHhmqAnTpwGD)yD0x=$; z#WYwuGTKQRoOgDS3Qe@{l=D6B06LuQCd(xr@fn$Oq)4`!xIRpgv+VV0pM}^|bj-RN zYE5UOme?=Q2ab*gQ4NKF;o&IcS|sLC@9)HLLJHi>HfX|)7YVb0=j4aq(I^fgBzsns zfuN=WrF%()!fT(#+k-j~bW-FA%`Sn{iIkKH?i*c7Xk=7^n5wdM-6+%QHOSs{+dd|N zz&**lQQy|I>di0-ts@oaV$e1k?YP`B&1ISZCw`6qWqXEL0H!icWjeH_QJe}EM8vX* z0|5)d_NV~=I3J(ixGkLWuje7~TM!6k>sbmS(OT<5P?x7=K9%#+hmXJd+lTkxltRn- zgANAE%^0ET4>Z24$p+h05$vpwg)a8T+f${%4q%UT2Y!0(q&rS=M&2$>k1_)KX1h>h zuaw7^K_2zJ{R-pQPjAsqK-4e(igJ4Ogt2uAgT1R6(%=aI=V zquJ9gCaU+ZoVX}!Wjks+P{G`KKuroBi|p1L|JXQknuh?qkttu}myLy{WjHw7chetA z2%yr<^$DA%Lw`sz_v4|-xdQ-=q?$Fdjm79oMq4`y8xY;9v8k|V7{OR4`gawSgpgaf zrqs!bfb{L;Ah;f{m=5{&I!9-2JNqHSsTkTuva?lazvKb-rp#3&PO!mDhH^Ldx3a|E z)2~7is%PG!#?{c;>n$sdh3i{nV2S;eV+_r|aIu>g^)agFpSE9j8)84C zW-TcQNldX!`KHLm&wacwx^%h7W3OSQQ#kn@DFpRdZ5BKbgq!VP!7{aIXfP0L?3Z?Q zpZZJ$0H_sUEmOg1GUg_$3o=wxCOk|BfNi_iicsrXC#Z-}%ELE5{V$*1eNzeoP+b=+ zGt~uQsV(OLEVx+^X+6q|sHlFqw~+qQHZ0$?R}3CI07aQHK>H9dK2{L7AeDCAd3uqS zp0q^c?SKu?_w13j@YNY|%ck+h-%x|XHICj-}zvXI$v$_qaO) zS8=jc@ZcLOF$OD!U=-9$hYbtf{6RPOCqB;mH#EdLCIZyXfeB(VF(UQEhCBNtc@fx} zeaaPf;&zTp*PMfp5dheIb&M&fs0Gf$Nl$Co#e5FCl#rwGW)uPv5s`3P9-Rs<>tkIm zSY|9U03Z~CZEY3-2n&?5e)#rp-+%Kz0M10UuFJ*+0!-8Cc$zascuUybC1BIn+ zItWn>F*|k~{cy5n>``O(UFFR!%+m##zS`*v|5ZwLMI$UlvNCJLR70W;ZXN7lJE*L+p+<- z>h6G>(%yOqGs@yuNFTO7VID%{>0qVd(M;TGN-(~pJYo$wu z#C$!?Tf^}FBY-lw!$oHvc_Z--o&OAT9iCuEqkf6Fx=06^B3==x;JtSBE%zZmgNCb; bG=Tmud$&uZJY%;D00000NkvXXu0mjfM=VFD diff --git a/branding/generated/EmulatorIcon-1024.png b/branding/generated/EmulatorIcon-1024.png deleted file mode 100644 index ad5b2d5161f2499981c8b60ca8235180eb46ed7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207833 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%0DxvgT~6U=|! z%x=7JXaZx1rf1=yjzL+(XoGxkkIv1)^r^;aqWrGPf|KV~YQd;3!_ zLonUwZ9=rqrwue#71q4YD^@TUXkU>esjsY~%lk$sgzT-XVVIA%2jkABQjAr+)69V> zK=uoRl_1it0!s`Df-y0|IiLxi|NG(SV^?XpN84#Q!Zo1uCJaFZL6DPcJ|FajA=V$N z9>a}>B`l)$uK}!ibKGAeLRS);F{oWXE)MoHgy>{Cpw4+fg+mT}r$@oudQMvK5h?ss zLy8C`B{F~&AR|uNJ^A&SU#$))V1<@fXGBR6aRoAjQ$c*OG5&)u6*n181##?T0A&a{ z0Fa$|P1H2g0r}QU^XRe^yHc6;`i38DY1BYEAy6aTHh(Ew*DY2YV6yn4*rvOXHN_9^ z2lE85Z>b$I*}1Tz0dv^a0+WHFYR3W)Rj=O(brV_=S9d?wKg^tc(Xe#V`jk614&1?V8cTQ z5$O1UP>mlG5NhY^u)&k73Ytolr*lmK1jKU@3E4$9kQU^d^y&zKfB#-?qsXMWi2So_ zlb?5wL4}v9gN+^O(w2{OxYO?u91ruca(bXSLN%*m?;2vegHlpbv&RY0kr5<}AwYt) z3>54zpHR$a^HbpgcWpy?cxQI{`prZloh%`Pi9t^dk4haHp#Ufi)WiiGoWW&B|M4^R zyzK%<;PgcIIp!CK1g!|*T$V9(%3}Xj%JOx7PLOz{KG~-PVmbi@Wn;VqkY0lR*ALoj z2Ei+lq~p`l&1N;N(lLTT976?La$pN`AnCheiZ{$U3+Bg0W=^)iTJ&e`*B^#T(pW2@ zfVe7VmK$9l-@IKO*YUDi&bUT1#rpc-3u7Je&yW^dMf0IhiibT&(s!X4fv*h1_@HX& zTS_u9J){3lXRFig>xSY%tad!e1$>b$e+c(V%WxSy5JUVX1e_0AHX&L!@{89P?_t30 zcw32X|78V~>t6^aChLG1w*>CUvjo+KyoXVNYmMVvM&3UXfT=5!%Dj)arEd+!RRnt3 znIRTKSKo&iKxowncXxLeO|5v_dg$u?i0Dw2BpZFO!1?lMahD3J8|jK_a>B1}XAo~* zQE7;O;JoD2g$C~z>TS#e4)TNY_6xWls2;TT?y99YB))7)_On&6xsX}oszBw zz~zYQ<@J75W6fpndb}u+fQuZ3ej;hl?78R-68%!^l(ggdW0vUjnqtk|d#vcf)Gd%R zsI$)x0L;(!$Nsxum6c@0w2 zn5Nvh#9^nUQ2Zb?c~9fkE4>XlOEh^Fs8S+;zl~w#`7be0Y*62DQiLsGm#F3lJy*j) zta@W3h~xX-GJfsD0?B`oFGuA-SrLsCYuWs3CXw#mioLAcUwCgv1c&b_kj-m=LNQ^# za)bJU+vL5JHD5s}@A%5zw>7zNB0Jcg0VscHLUXR;VA@{b>3TT? zD-Zkm2B-8_V3Gn|Y`Cb;@OUB`=`&V?H3tc5=CVP{ zGs_^PBDCh?LFVv@#xc&)Noddlr|xhM{r__TtPZ+v_J8c?k(+fMMUE{OPVt$IUkXzf zwfNw;syyR@M-5&el%9+vh7hetE-*J)JIyL6g90jGujy{u1W))E6d{d;0L%Wxe=*#- z4ShO*`d#LWeJnkzhMIKyX?u2!1yBg~KJS&mN;Bdow&1Sfzizmysnc-Cu{KEV9~1!C z%b5;8A6(b}2rZ;SQH%`w-~q34lOe4U5h>LDw~a_K&8H1YqdMoo&va@>BdYRKK4X*F z#3v_WR9zo%UBy#h6*!-nZ(d{Cv`4u0o1v_a$EiR|$+cjj18j;fye~JgNC#{LzV?OY ztKz^L)dXJh$9n|5>R|xB=N^O>MP>bLAc1Gw1Cf5qUGn=#M%Tj}Gi5^5SQ>wBLlB&0 zI8`~}$IEa~k*mhlgbu)=(-R*^mVo?bOMj(|15Y^;fEt$SkskSPJjO;yzqB*V&P6AITO|h%xA`j@ z8lZOpxE7K^ zZjma-#V!Hhbng1=1_QcWy`|aX?zAYI&uQWkor%FgF#iF9Lg9T~FxuT< zo_uxWrcl%e8j2HAK%p$%#Cx4U)@RX*<2umQm8{e4y+Edoqy`~?X8T1VUb;IIX6sG| z7Z1<(x#L&t+pp40|j4oLV$l zUeCked~+;yKx6Cp?ymVK7yQB?o)C+l2LPt4nOTA^)}?+_`bOl^R+TWUJt_O5)2Mc* zYM4q_vh!!|t>_->Z@OzC`JkM@^SwdcOr1PkBhnwL)~83Vuq?c#!$8vbbpV^`v;lv; zfN}t{in&HUdT8Gr+QA>LPYKX(3uOnMba~$RQCgeREPsRkkxwSP_|s^yOs%btvQ~3^ z_OL(=&5Kz6+K0>x$6C)X6}q`g&uRHXD6n{qCk=cXaObMws!pUu0 zg05!c<2OJ3W@Is|hjMTO{$7X6FK=$`)-I?J)xIws#KykKCDw(l1^^C~MDW+8xzPg| z7cMU6Em98UR*26i1Ai7f>q$Qz7ZDIe)l|Jftd?w+;b<>GcH8yZSm2O* zTPm`+@b|TrSG$Rc?ro+_>U=jRSI#3H`!8!dJ@Qy zp0pTeGYlKfXyTga=&;gJu#Y(-IGUfo`wbi&?+{0n<^l=RSQeLkfi^gB$}YmABykpM zBZdPh(EIs%>4;SniIi#}Zud5YGKTI#1EbMy#>AW16V;!h^*TAdx$v_M~e}*eu{rNW%}^M<=eow34!f~_vzDbea;Tx67d1^wibVBJU5_6 zzXgn)eWqaMu&Hb-J?7|-Dt5NiY^v@tm%tZG$*9`@TzHv79?OC%f%nuxQVPcc6{ij) zuGRwMB%h(*2c0IE`^g8dD+3K?cj~LTYaW{tXhT;MF&pFY+?b*iYD>NG6j^AdpK(^d zOv(Cz&ARsS)>kLbVBfg#!~us`Yo4^(G(fzN?FpWE#BfKRScM-z7L&WBeB#X1>T9@b zDa&oB0%6TNQSKO_*PN%-L7S432nX@K@)EEiu3x}~6IQ2Vv({)7U`Ev3W-vhLR`1`b zIm_~2`o|5JQR?FG7gUW4l@W>g6ULWH|42Hm9f=X4nx(N@nKjb|)Ml z&A%X{^$Q9M2*JM3#91B%g>SIOuhb=@pPR-S8rtfgvh_tj8DO$_PE}r439K=D%=b^C zghn$Prq&i?=X0B<$&ER#yT6V9DSNBnyazSp?Q`3GmU(ch{OsxRzhub?;gW~#<@l&9 zfSH+)h~WFI3xU|=ivkuOhy`at76hL7E7ZH@*D6o%Vgo!HIdhlScxq8bb?bogiuI1{6Rioh83Tg-H|`RT{TSE}#+l;opltNxgkn%Dm7 z4ZAPwCit&f@1JmhROtYUIOifCdUr`zrk%vjVBy9=V~H|Wx_bt22yDtOm*dec`iVl- zMduF7vms>U()#y2i4Xge{f!$mkw+YpVU+Tk$sw@Fc67~u+uW|;O|VD zWv++()I0t;;r4tHy`HS)E3s`aH+tYZ5P8>5=1ibYUGgOSuJ!u;WBuJUf~1$tW{kpA z*hR#nV|eaYvLKu*7kcd~Cawo+UA&B6Dh3fQV3H$N)I<9p5gm6b^2fVoq8x&< zJXi9JKPP+amHHqreOR%j%0lcuszFH)AifwftD_B!MYJiYS#NKJv1}IgFNcJ zJO49cbs==dn1z4h!Jn{RU$0ym!i(Kc{Lq*tyrpFw?zMWRZ`0F@ok9>p{5KCC{-AmQ zDa7@9ACt_pM)V`v`0^D{!tps8*e?skaeIPRS#TuyagI(38&n*o(R}u3mtP@r zOfTTvk^J-?!p}vj%x{vfgh7}RyT6mK;I=3Pem7HeqwDXyLvtqC9}v$P(9bIQ;=W zZI=?!3SV!K<~Nz0(ySt7T463!iK1xJ6X#Eom&~R!6|jLtoh0nXH$NuGfAic{t@eps zz##E_mNkqy2a_cS$AS=lDuWL)wSV?7H6)0MPfn6u{e(al9qNXQl4lLk0uIQESUYIdWESVz0iGp)}I~e`flWL(tFiH$d8YCW(>0f z<`>PI&DOy;fd4LsStP5k`Rg1808R{|5;@70XSzV`DKHA@e}wwuLRL5aMf#W~iD>_+ z#l75)-QS-47Y^m7-13Z$71dfN0Z+IRAE2dfk; zWaSwU<=qnO^OyYBwZJ%WI34gt=2n^wUF}D1gl*^pL5%L@BlKHvhDq>?^LQ*p^QBTq z3;#Ss6g3-^d;cI8Q_zj)bR58l#aUBBt0ItQ8jq)_98`97A1f3kJ{%uv$gUW=d=UL- zEs9Lr=ri!XIoeW5yUd?P-NxgKkJa!y&aQ9%)8n?d-uH5&D#XRn#q1O(^3)K!=5wX^ zUroEB9 zlNQ6q6}-x?J2GrzA3=S_D_N=i>;kXqN5})^pjgwF)DnX={avT}ZLTcv`ec*<1UFna zyFiIG?sO}+^e&TgLR?PHq{t$nJ1^Z|svlSid62JP7Ca*|4Ae6pM0F#Wf4wX98K=%d z*)CxtD2u+Lk*GrcfYQ^Gu!adbLQgAVGMg3}HT1u}xpsU=cb*d0elohQuKHLpAB%tW z7tg13-3(J<)RdE`-lr$1ku`Z6H}bHtCfIUkR>w5HwRw-B7|&G-acPx;LS)}ucIhnX>oSvvud>GZl;i(KhOo11*x1eDmp&&;A@ z(uHu=9HV`?%n^a%M7daG6^{Zo=)XhgFN7m5oN+gG=+Pg{-yQ{hoZySeeQ*Q?HiS=* zd;at6JLdY)!h|_3?5*Cln7`4IWE?BL3`#C(8X@&jkckvvcTGSm`)84SqD~1u&5K=q zymT{SydnB~ewGi2llTm{n;8`OooKQo0J|_j1Z(BmheGqaC%(^85`W@mh$)1>C^|37 z`|vF3(|AxczS9NHUk~B7PY_w9ezPbp{L8;GBAKWPc!WLdyK=3~Fnr&fd`strz|;T| zFjP4q^@dn%7u-3z%lraOD!D~E=2uE3U~(%)0XZqX89SEzkfl{ZD=ceA78NCm{`L+h ztxUq^!H*z5Rn9e}dP2WBj0&QlmNd+E{r7W7Gf72>M>u}7AYIQ|Hl~Sl^By_EVJ0=? zK4$gB0Fho6+emeq+?wyu^NHN~A289`hSy4QMX4s;LXPNuK?=hIxnweW6)iJzLoITP z@X~J|u?4#CDvLVh+lmMQ4X>Y##`Ptz`nbZ=hX`K~dVP5jk!dfd24a-cBk^n$;ZnBr zk5YMOMSr~RLo53{xEAs$rL5fKP5jyXhH+Y;mA6mmZ)3_|hJ?CGHoG;Vow{sx`7tij zinGc|A|qDB=tf42E9EJVnY%6}A;CITBusHx)m-}zA=U&e_%oY$M#wbeskms4?>(Jx zH4U3orxJF=_p<5&*Qavc5-#eFUTwd!uWoIvu@Rh2Cx7_41WfuiWC#(Yslh*AT*=VU zbt!3g+Tl1`En0m}b=$#uC3f(#ho&(0r_P3xt9$MP=4pdQ-_Hc9)w~_=BI|GTjx@83 zN&el6%a7Thnntz{*7CdoXpV>vx*NkiH|dgZxf!_1l1#t@O++Ym#)?ny3JBP@ z<^&mRX8q9ULVOw{dr8?*NE$Ld3+ayrS`JKGeTr}XJdzNg%yx|cQ$7J1Piop1{b7!; z3!RZRrC9G*c^w_aZ6J7qdiSAaz3QbjuPbY1_sNJ?A*yajWya{4ri|E&+2-AT@%W~# zT*+>pC_tO>Ty2Z=Ch0KJJhAvw-VLAIyN@XYVFb0#xi{jkWnDtI$Og)io}|WH4Jjk2 zd2;SU|F(}ddcAl2Vr$BC?>n9wm;N9vcXG((Yq@!QbgU}Y{!7B*i7P4bb{zHA1>P3B zr*2YmwN0P$pr}DBihi?5?EEDXqM;a~O4c6|g1u#2P4{uS=~~$CdC;Qj z`!F8nmFQjbl~B^4T6T5>cl&wQj!8zt*oUHJY(S-M^=ovi%_gZtwcda6(30FB$^@XM z+xAp4X}tP8CMk2jEP%o8jFa9nBG!zQp_v(x#7jXLpS8CYOpwkg+FST^?9JfvGeN*wtr^FLm6xj$#D!taqKqu zF>+3i=p}tlC_SHNw*O2jaCLG|68TlK6DRTHZs%kpy3a^vieew*MF$_ibjc z^nzj5(HChF5}Mr8w^U|8A^x6r#WneGmkG`iZFLs*(mOE1ad2`H+**;`w{V|=3z3vP zS8Q_M<6Drz$dqLIk!P00s*+8)^~ZGRzkYJ^F4SR0yTX(mQBi)mjVJPhc9i@gPwrw> z&NGighH-y&*^cG%L!-Ck3@)VYVgsi}LgJ|XAAiK_sM*Vd<(p#ZtBpZZq7Oo%q(JJ|)5;T<@1})VxjUfuX z!v8R$M3n0{#WL4EvZbRB@ddurHm$LR%sN&^t+5N zrE6~RDfOd)uzO#>JMRsX3=T6tTEW3XB!qb%?mhL!p!lckV$E9>nXy?5<`ROmQ2Q_o z{)9iEt zwtq|dIpEiryZ8=Izb1hi>@jhcXrc=BHH+%UaL&iDN^7ZYBt=Xr!CxCdER+jR+k~Vw zc2O^xcS3&lQ(cM=$6Qf6ApILv%}_A&*n_~}fqC1t=qB0ouxA9UaKyj_NsaVo`9G=9 zfr;(yzfrl)|K3gFaYo1s_nZtQUU7d^f=wYAUgO%9xub~UYRq~zaV3t{(Sn^35bd+P zTklZ}qu*Vrt1ycGbN6ZNY=;$odC~uNOjBEa)KE=N=jlYixCJ#L5gRMDXZ2B5uB=H! zgWYC&ifHrd)vPTB1~L+#4`2az?^xC@$cOJqzgWWOEBF%W(I`E4_9znhT9xU31E{{5t@zV1rePV$z$#V&5O+T-;RQzGH^ zb@xrz>$%4=)3Y6F=KkSA$mU3%I0~9)Jr0x4V%G=>3)5Z=2hyelWl zJy!kNwGOChjGT!4I$N=j?%`VxTwY^W-+9VI;u;@eOBkkrh^7%*nYJylbPovdl_R2; z9I20aF<;=8drGM|DliqnVd1STBJ-V=sf(5**jt@k4gSV`mqI03_f{&!X*>-5+kI%9 zIx)_>_=G5V{M!iPwYRYJFuw6sTeqlpkvk6N?)b1=dPYrJCVZ^+Y2FnOA1~Jq zeh^~W;{BNZa8ZHm22PN*)9d6uc`$b4>_m0K%55{;G@S&m1Q10kfO8|k1AI?QNAlKJSx%W@`C~Km=bNNwTeF^URIHWG`$9nh*D31l zFuVyxSOzhSfjFTWCtV?8v%&V*9YTi_x`ox)jUf} zr|l#%jR3N8rM?m7RN=#BexUX8VEY8dF!WmyySCkPLp;5b7&Fy72=vBb3i526iSWQ` zgB#AgG(s5t+DEHpGaUM4eUmRn;#P?Zt4xCm2U22IAGKK`8~wIGRRJ8l9(9-)$ zd)WQiV*0%od-8E^Rca%PKWG`bit_Swf?~Iy{7VSJUU6~CaQPkAY5t*jLux_(8Yl34 z%W6)pL0)!&Rrc#vOE|@Rt*c~H?CnQn=PLS8;pdIb&!^ZJ60i7&WKC>#$xGM(ab5mI zb)}039fC<<4BXK+QYCX3EAXJ((VJ~XIsVa?NIZnsU{eIiyl6E$`{d(6htztAd!34!jY|ur0KO|8F|hskiJhBg(G7BXRJL-yK5Dz~JF- z`2pJJkPwAFqHfqHS@7LfY4Sejle;<-^}pU19R4XvKK&+`hjXI3$mS`@#HwAxayH)y z16IWXNlxf@B8N-TCwHl~g0tCHEz}9e2|w|%C{8r+9>|_kn)#wt-uulzIU%$4oje-9 z;Wu<-&R)-HMR(BpU0N~958JU~n7Ew~Ruag_P<|XMggGm_PCP15j`irS%@AAsG z1FF>Mc#60GDgmbmpkVb;Ag!}i64#jVG(}pF_lZ5~{9iVdq!0OYMX1VLeKGr zt>2&0s5@v!=H+r516c3lX;lqR*@rrbxmMH%Bc}qX@}srt9;=9bW!$Dtp#|B;n4fms1Mr>0@umt(~rV#4>%k+%td* z;fPy+4Ud~)JY0cLaJn0T!m_Ge!Q-s2d|6kswN`vK2CM(9Yl*P9ouW4LTi0h?T*zW1 za1Gp7F`4rw-gk9QKe0<)Irbv=JnV{ig;n_#_uE;3uJnrhpE}go-QzehROP38WK9*< z0w2WMi#rR= zO+U1blBC~m;LU_~KxsEh8Nr2rbYe$nu<~YrKM4D@E0zg0>ll3Ir;B!yde+rEGJ8jy``bJ=CIm{(xuJD?3L9}V@V$;!l3K1 z%cDL6^Hp=XYoa`zzs<#(1v{HBe!bGpFl{|ex=c*Kz{oWpp;lEMS1R*B(quBi2B{%s ze?(dyc5LC@?*zlJ1TJ-WG&|6@sV8uBrU||Io~-rvWR}5ZXb2}XsvV5Pmey&^+s6z_ z5D9KfnFq3=e==P1W~aVz^1 zSVqa1WGw$IhB^Kg*;71^LFky&8sPa>tS{@Rc|%ySsXl3&zy9)pyleH#>v)*~ipq!M zcMf%5uq{%Q=ApNLN%ofpM)0fbTV=B4MoAd1vPA;4?z`xKf` zHB4~*2QsCIzv+;4KQ@Pm@mxT*Bq^H${@CjG@2gMaJz7qy`;!Z;H{FJNCN7LU)%)46 ze|gw^je^D_qmPa9{X7B0bs1#EXg? zp&gRCs%a7}k@oYI8hWQ+%Qd(0=bE`ceD^(DdG&~`ai_V6Rb~XT8Jo_-uzX9-C-=0{%~^weE?ge`w#KGq6%A<;r{w`hnV zqO{r3>1a*G{cxtHDmN+?8T7OC8oJ-hJLSlZ`Ou(FuiK!ZK#!cad5!lB|Go1A44?d$ zr~~jUv3Jgn;O`B;T^7(Hs4EMkciEFESTpd4 zZ&Ql8*((Z2E`Pe>=g#8~{1T2KL$Ib>E-Ec<|ME8N>})!t zSM)e9YBw8=m$BPip7R8;jpLm(bar%>^gG@*z=rj+x_mzCdz3wP<}nHCO;ezJE=SBt zo|9hZG55M7B`MiRn^>03uqyvnet*V|HdLbrle*vjj1s->URG*!(0}}Z12Qo=d0cRa zane8!6*osnJjV=tM#P@H&FkNc zKg1WLcq&!QvEo7*9il|BQfhoy#I4!?1j35*!JH)rvrI9ZN6UtPWNR$6JQRON7R%bX zaYK(raUZUnU8Jy&WPgKi5w4k$9d~}^d!%sYKt!L6n=vE2w+>-JY@! zrj}-%8i24I@8My7_Gb#u*zQroNku-!ddH26Hlh<+!;^3icT3>MGg?U>lqC8pJ}~P1 z+#~FJ@Mg_oPqmf20$lNol=rQ_aAzn3`R&Q`$e@cgnFwTxeBQ#4K+@+cW7Npkdzj7| ztSK(EQ$|t!)MKrhxMk(tsk6p@@x!o!qrVrJkeA*jpGG;_9-bj(@2e+b^t+1)fRt=E z!i}AUopB=%aa!tP#+X6n0XXFM7#G^EDwLV2lth;ejlUp$i&bKJ9K6SCx?&zhM##vJ zq}>&xQS+26$h1vmy2iQfM`vDQUsgZuVXW&}o0alq&)V7g0XAws(yNTRYQ(T=11M? z?S)}rA#$tgdGUA3%hP^^G=F+LvM3TG!1_)8Pp5q1ueqs>v~|gfe+zUQ8iQurnPV** z1FnQxEVq}S7?H!&NSZ`Sg9deu>-|$?ayQts5=SaIf8a(dyuzvDS1UKRnB^KOe6{&a zMoO$RK5uO6+cy;y#G>+FM|6)6P3}7lMUTiJu*eE%0Jvx6a!}P5p#otg4sEeT`Z1^-%uEYhMyF zv5vtv0e4q^4^K)-YmwNYTX=ci5%&jGhZRNl*kxDYW=8mJYmqR4U__bVk7hGTKa#_i zQ|fkB@@{4Mys%UD`BZDE!$2i3bubd|HC72~i>guL5p>EqUi zf3DfI&s>;`zFu)l&dNr5POWfm=F+_dK^{XFYw@o~=2!d5MOpF~~zercNwo+^vTP7+Al!S;W~9`^>BtN-A?R-3kF9D>n4LrR1^GP3kC zGWRdk;6Tmf@ru3*M#RYXnjr}{2Ujy|7hr6Vi45+e{+~$2f^rBwq&85#Juic3L!J|@ z!hVo-HT3+Y=#KoK`)BJ>SH`uO7wuBIB{~ne(Z21BkhZi7d=8glR|bO`GzrB1ovy%> zO|ajAKsnlxk|?}PMExIIZ{ZhZ*mVmJUD6HGDJhL~cMH?jL|M?%OOd?jLml2(QL&j%moI2% zG1i9pGf4-E4&FDDkFMMMRDS>Us#GJc*DWX+(GtdUa6wa|=!U5|_*J@?T2lgy5s{b% zX6tuU;rMup^$T)=?n6~V*#h&_g=0IL56huO6m=mK3nYELRfMQJzwO35XJw&=xFt*k zwnF423y!aJQO?tlU%hURgvh0$@`-3HNOyf@InGR<|^J`qs?pp~pBAb#x5?S$EN*7EzCB+0m@ZKN zy==IBYIJV%VoUjGzz<#cy!TGQ5}gxljxs$+8^Cq4o5IzSNE$&z6v1u2pE=;A4v($_ zlS0@?s?-qUgI^mQA8T^K6tu6WKRITM1o%fGJpJXd1SI51A+O=Q1#TXU*r;8|#h2pU zp;~JE&&h$&?$aMd1r(2D}oG_>Nj&CSI zZb@cmCbD>a@s{sx*9w!QQf4WDQm#CO(?`rXu?Pjk(K$SWOCz)-s#@gxJ@IIbCbUf( zjxWs32cuk9toz-K3#~Uhh0bmZKnGlSP%rFT)JY-T_o8iI`Dl`fWP=YyYJ7*EFD9ny zYEmkwp#|3K`0NJZW`vqUbYYR*!`7_yQBIx@TAZkowsG6E+Ra& zg*S-#jfET2ugjo-(?W(1#G9Bwyulo z1r9=^a!9Rp`uYpuG12EMiokc8C1-bL3I$Jt;oLqnlB=S7DS212KL)bb>P&SJDEy$} z3H-gC#hPUo^2vnd*kkNRRPU;^_r$Kf*ig|K16U;9$h{ldiIZi2Hg&1PNsKI|3gsik zV@Z3(gG-Pc*IS$76+H+k(AvTZwd0mZ^17Jib5UxfZ-I%ed48a6nQ?80AJ{NTYnG{Dh6F zoW|J9Fc4*+vr(LSPZ@*Xb$+$x(!S;rMc3s6ou0)Fieui~Q)PKXFh}SBE6c}%EuA?l zeRR(KG`InMYXx4seR(HVjrk0g-Byx>o}cWyi*0gk5RSD$)kNQ-qk@-@IdAbhpLWWdld065~M+t$>y>&j*+k# zJH-h~q)B=UIX0h48+m+hCVU@QwHQapd?EW2!!F@?hz4=C{1RKfp}X~szqMo6RJ!WP zb3=2LMr9-*`fGpB+e`TMv~^F`IeQ=}S`)>afstE>b5}7XMDrStY8pMx1rqd0o?Qrq zwJACYRrmSRuQuKBTggk-16PX_*a}?@_Z+`O+lW;AYTw5E;$T6(4y?7lau6AW>^=WA zEeO+n|3a)S&Wj-aAuf~5zN~)j_4yM}i- z*YJ3yc|C9o((K$`wUI)A53>u=Do|5^m$!-6vwdg(AaM|QHBNXz1>{meOq_)THb{dO zPvu~1p)1p9g%bR^iYfax2g`-*8X8DyK_cb4-3o;5bpR)56I~Qk>Q(a~eJSWY9pu!c z)I;q9#J=YcVme!@>*qU?s@~MIoO-(x9G3p@XQ)Sn*Vasnutr-cIW4TY)46suvM96{ zgHW?cJ?Ff!w5ra@WM6<6CtyT3ZihtGUYUaW3a3@YLj+v|;64y56N=5H+m|bbUaLDN zJN5n>CpGtvCT-|Iwa(UaB?g(DV)t|{E&$!FF8*cLH>U3**{z`R>tDOOSHH(Uc%^NY z-cTu6i7`=|jWgJBD2cgKN=+q4{r!k)y#%_#I1g~L6B>q;<@czBf$qXy^&X|p4 zirIJ!0);Ji$7Re_wl+)l+|UOz>M9EbequSx$Ru;o9)U#IN_~C$V&m9aZJ}~A1IeLP z%_6a*90PMEn*K=u0wov6znGcC!Ai=-ouI}Hd?QCTcjQvvnB3gGj{+j}P+IP!9MHXX zW^Kkqn#uC!(+G%WNc$T+{o;ux{L1OrIqypr&ij_28on+NsF>?xx8a{=(4O7WP~0FU z7-}$KqA1RW_%~KEafS@ju3ZqWy&<<)i#CSHNhv=BK4!uByq)y{(wnHhH&{+NkEjo54uA98P@vS z&j~GZ{oSrUdjv^PnU4YD_dg%y0V(T4>CvOeqY2bc%BW@HPZ3AQ$6JT>o|}f(xS&m# zzW{xRwB6$1|C7k(O#gQxYjxc*yrQiQkDorCs&jmN zCr>qOKiD%jI!wpL`x}Q@1Wc^@_<_-5CPUb-Mf;m!iw@hpWNNb?$AIPrRWvY36`C!? zOr&-q3JqFsn^m+(k=D%C=B3k7<6laQ%;e25!GtUi|5{Tlpo+OE-?*o@PnVU^J*y;_ zJc@!DM>s9hpI*r}K1)!o6hR(I{YK1xPk&_lg6Ks8q>8mj{4oRdv`4XvmXow_Bn39M z^CH^h3UvBe&Ml_}Z#Zf%VzWH}2T7|ki4qh0jl{%tK!lzK3}K7!wd}NuTzCsGMs6e! zp}6>7@UZ$BF&zr0Dx8#vWOIHs_-1bu3AU@1m~VlcY&BN=LG43#9O)&slN2!{2aAGA zwV)9mjkpKn|KNkR7d`U~Y=S#{KH!{`Ba9%O_9Nq62P1e|T{xV4H+1h#kWjG=Xf zl%yI{Mry}hQVDmU5kqt}gsc`Gqr;xMMS6hy`wT&W*B@Wwbk7pRl%y*aL@To*hT3k2 z)UK+1KQkgQN8fp?gK5OI$8Gf=n|5cnN%C(`{oJspIz7NDJFF?I@Ep8Mp5T4ay1rn$ zn+?*_;Mm#Nn{+}BS!StzsPdkHTW3j1p2$U8kE^_T_LJ%@g4^Ry`FF=3bdM8A^`uF- zLTIQte2c8QXPv)IJ?4d1QUZk}c&+WQTZ>0M=v$J++DD=Aod&OF=h9YS!`#z=FLU#JLDlB?)5=&u*$ zFu6p5g=s6>(Hg82b3$BnST_f=;GG?}I=?G0)J%U)WCufK&!1d47Z&_ox_h$Lq68;B zO1Uz^SJP#`o>2K)Wfe~UXg=Q{;Ez1PFJcCSBq)lX{wkY$xb!qkZ`v z#*oo{45PS?v*cCtd4#U**Xv4zo~@F!%70gP0#CJc+eheNLZmpD8&=; zOV3F?kH1n{DF`p&3)gaZ?9pWg=$6k1Zd^P9A+J_0EY`lLGUq@N-oHRn;4W zi$6^qq_&8WLOFI7n2ZJamrA~Ro(^Wc;`tug{2cTLv3NeA508S65B-|UNrz~J=V+-S zGJLq~5mlA*&cr+YYW8XtB=Sw-#u3uSHe~oj-xOJ!X=vn00mDR-S;0$zd)2u!M12lJkA;UqN%T}{lRSMsvYm96-%Wh z+HY^ZH|xOZPAvDi2+jxiJV??+H}v^&T|zv> z`=TV)ntPcha&7X-#>P0wL*XNqZXX?$70>qWa~mzUh9DP^D)hHa$n2nn5(~?NiG|Hy zNqh$=T$-fi=3RSA&zv|= zCMc7Ul~;H`M};#dkkUFDy*zl@t|ajLC(KMWqYjm$6$;0XQ0|ks8&ZxoQo@8#4t(U^ zhb%?}^oS(?H?=3j593E}eg>C_b@$pm8PMgg^CrEG5ejPV$-Cz!yV4->;))-~`U9!B zPXpL&-hHd;z&*aRHz5_bDg2FL`8bh=Mjt?~oRea~{;-PPSo>pNr!iK(!i*twLym4c z<{w42z!h{{E6%74`ue$G?6OW3o@|#!Z`h1P?BU(q{CaUxv7?>?pMA9If=@IZaMhd`R%zT&gR-`+p4HcpSB^a&EwX(5c2S$#*Rf{R_`cgUnyz4o2HPlb zJ#kyJh8PLg*LV{4>TmnH2^VeX3$^O`TyB9ot!OM^d-d}2pdD+oQ%5`X@7zu`=ROen zur`>K0tut!-UNNC?%VHTky8%OJIQW!!EPLRs(theFDg;Gg@iOliCBIe6|BY{b4c>l zTTRIehbh}cq$XvfO*m0DI1{mkl|j-#*@=`URZuO%yT`fo zqHU%!+4E&@=3Y@WyY#OA#T2HHUO3<|XNW>ycDGdFKBC^a`conHd0NTy%v2x%rSI7h zGHA8g<(Vi4ZR=-FurG7?>%Sz##pEfYBcq?$8YkHiO)ReP@gLJ(PbJ14zt)Cds#ScP z6>Rh(q#8{B)T#}qzVvWdqk!qIe6RF32JVgD=a}pu${g0BYo3;fD<6(v)Cf*`Tj7;I z{7e-R0uEgQ@%*08-GVQSX~O(n*fx_GZx z|4OU&V<``Ruym%aRxx>8fv>mBTVI3?{VYtD5=!_EohN^fTrx@ZX77(=onv3YP5JCg zD>)(e1y%Hlz+P`^y%Q_zKOHrrU>QKW2#=@vIU~{SvBuXbn0rrVjB(wQuua2voLG?L z&%i*6B-PKbua|=9K8<66pG}>XGYJfE$^10wTpDmq4fa|F zBP~KA0|2KiaFj5$TOv~Ia>Kc~=8zBQ&CXE^&UOe-2A?NSdKUHumN?K?iDyrFM!z5S zCjYyD00!>bVcJFBaQqVC1BHLU)*I+)j>RJ6)_N$v#owfV1^*a^^L~j`#8_5`?en9u z0wWA&K>e7Lp4T5V&W$?An+tkB-J>A4^~0TxCkK5);IFUxKmt)uUVg(lOVb^a%BVE3oq zWK&-PA3OHu_ofpQQU0K;yrfioYLfMUX>~3rr2$*oCfKC*JFe~Dep5N%?O50p}sBQTL4!K(0VH%~}cL!r}oD#1zj|ODIX@=G*ZG*>+Vy6c-IIDc*Is zJde5=0MSS6FMz9Q%!){Cn}X!M&#>h_+KT;=`23?R+vt<@RkxPeNBPAL76|>vr7DPw zyBx6YF#GwDu9b@(-&>WH@g1(c5t7%Iv*FRU>#AhBSLlrBK)vO+{A7w%%~YcKin(Kp zU2@axKUA6{v`DJf!~J~1`|*m~>7&;Rxi=g)cBiySP~x-eay%lUmalVjr`3$8^Q0m> zjEM;$mT-Z zI5L#>UYZ5UukDooFPj9gmHo|*S7u@-h4NQlUyHrpPT3UW7&WswLI8GM ze<{>nnb#bp4Jaz9`r#!m;q` zLrhJv%f~dN%{|GDKHu5_CfR>fESm#d6>s6Cw-SnAEftNHh2H3LZAy2E&wY^ha_IV7MZW7$+`6XUH_9W5*z4}6B0~M zf=8lCQuRty-ze5A!g2O#o#^fhYI6+W_mhN=GxU^8ezPYwa!SlMT7Q#(?3#Rc1^+9F zgZLjesKK?xUce9bnn6SUf!yvT@@CHsXmm#)GNeK>bl!DY>%TIL@U_kk579KBZz9y5 zCj5NuB9B3Ar&#d}aKtdl;L(gN9R?T|a3|%{x78$w0Pk zyqd;Xiso?ml-GplQ3=A~dCRMARv{FcPtlr(_1<=4R;I^4-vh@J@MpPSS{-t*Birbn zi;QE6Ixo|mY+ubvSIhXI*C+3l9&C*B072x^Z8Dp#TJ2vZfQ(fIBvrd{P29=yeSB?X z2khy!+aST6Lu8~OGmGYODGRIMaLPG=ghVIn+kpIi>6&-M0Bz|Q+=wIM7Ow#g>3iU% z#v;Za$MqHixxk#nqT^Gv*it>yBeOYG*00!+H!doF`pY{d9IU|jy?p(9@RGY{??$@} zTuIf&6q=b)u%9Nqefn{r(rpIYJizT(cgN=dqjA5>lw9MrVXIZ6G}bLBH+AiKJtj!&$r0 z60g!8V{X)(j;#!2?k+uzNjZKd6TdZLQa9J~mUy$>#PuJE)=9xjEvzE#ZhWxTpG_)oqv%lS# z4Ev$Bm0F|vbGDfOrOSvEX*!_*$%==ZwRAL23jHsgr1jSz1BjmB{pQIm8h4o1iniqX zA<^g1|9SybxYx%XZzqBhf5-&RV;ET#9c83tCmW+wbAhOYk(Vk)#Ceyo6PNc~jlfjs z0{GiT#m)vrxBwGUumOBuKF>^OB^TMDOzcXhN(){U#ZsbG?Sd~QBFLyB6zAKXC}TD{K{K6*s)bT_5Y0VXyx<5 zCF)ce3L$NOja(VnYjx;pCh!`S=IiV+h-&y29)>1tO1vg6xK#Ee{T>exLbXlhcca1kW!@@Xd zb(f^Dkofe*SaM&G1-V^$;2?3wMIf(`{<`y*kk}GsXw>5Q^WV?$@HrD*@Z4Y77f)@r8=QuEHCx1 zH+k}*!S8Vei5&)z-)B@gk%uZ3d4IJuc1UeW3gMD^(DZm)wSZieu2ZiDzxP2xM?>!X zm+HLc#^OUys-yZek9F#EQ7W?(7Ccsaw1SB6u+>o|q>E$m4(rK28pjAs=MzKfWIG>| zQ0Go{{7?B=x*td!hitJdy$Lz(NFxM*QGbvJL%493JbDF(#f9|Yv~|@R4x}q!hGYIU zCv7><#^6QSjr;nzR|6onrcm{IxqU{Fm}b8|rb*@Sy;7gI~s{BDyn zyk7!%dalNz6aN1IhEul=S^g}sPU9IiUI!eRvPV{Lm$M^vEFJBNy;u712d$csziLjz z7367vQu_5veq$}*eIc*&tDb2tTQEY4LT*of(bMDmw}yNUaawagJN_en4L3p0;f-x# zN97p-HvDpYEot+*mTVXQ15CQay8*4?o5IoDoxBBTt^$D-d?g(_3?sToXVR-9*9DI# zE*L-kz3v7A&u-|__+*0G0+$cguKoZE#9ev30YgL!4Pa96!-&8mJT89IzQ|u5R~f2M zCV5pSAtTFe;kO6UB$zQFN{#QRsd!qgkV2jp#3H9b281GV;pgB_WkQo$h}JL(Kd^F% z`&@BKMV=#CJ{Jea&nMsZgRQyO{MF$&bP$kDMkApd4Y0;X72JQo8E_^WLkVipJHb*= zH|2NyZ1(M=hNri6A|GnQDZxWacX>H2NCUgGe+r=`8Bu~m|5&=;lRiY?-a`TItIj!{ zHT1+U2#usF=sO#Xfg>Lc)~Is9+I~DepL7LrCNg=M1ZgTK_>EA`0d$az_ zv~+66#>#Ngn%7tVf+_v(7Q%RPx4AhE`1X$$yxq7f^oB)+U1j+6M5DjxE-}l^25=uG zZAi+z;kv~NpEDT`;U|IgIXFW|p+!39gkq3L;^c*@MsyheqXz6ppV<)|tn&{s^!gB< z$l+@r*zJ$gJ^DI#=Q-2$@9iz9OHw`~2RNIq#5GOMn8p>8uE0E4o!79$%XzRUc$bG1 z`AOx$u0c)&F`s@fU+2hy01-V;kUdJw9zpRK)qH=$LDh>RcM_PU6pnGUXdc@_;1i}K zO+jJ>no;>eTU6U-9!@~o5NG6qnKL-l*nTl08%=+^@e%Cff-R>6U%(DV#PQ&7EK=!W z2H!0Fm>wJjXXq7PL=5^;h3b?WPySlEZ7$5m)zl_|7XBnJmeaOO;vXs7;0|;7>Gs~N zSwHkIU(lZw)c$YD#>DCHFb?WIbZ0u@JKgoJV31#;Vd_w$#Rj()~@ zuDj+Eef+fr*~1Kca=MEeQpgIhgKV_DXahkM>0+Ywo(0j$49F?~zF_-MMNR2fD7%ga z=z|>AVND1g*+??xruXHam0jf%??|sWic+&x+^z5F(D_vP_`%p^NLqn8Q}!pY_AALv z>%(%#x#E*y)1xY`?|!OGj!G;cjY$0Sb*Xp=&Ecfxn4e}M2(L+ZUV#LS@GV&v$R^60 zuqXY_YRsz@KjX{t7jb5gBYYRNIStuZbTQIfwLgIw{vuvBN7WF_CQfw)oA#HTbb2BW zC;w~eD(2Sanyg+S++B1ctF6aQp)+J0OxZ~6NA>K6%%rE3-ZA}rM^QTmgh4d-YHvMO zN2ccWDmgd5%y}|)jTsH4p|*-kv~9h==dmZtBR0&m#DLS5i-Y_$A80 z1M#uYtdBPa8R;ET7NUWW?rt@!aq5g3FhQ3GhyEI=)UnhAaC)rc_lu(}W%t^!%NM{L ziWTKo1HJOLtGyF!{SIhy9D^G%wXifu*F7net?itWkT)h_9Iu0 zm}ZEke7&-c5wE_dn9+N#Wa+qWnH;!3h>3b~fii1|N-F<`oKI}Wo!8m|f-euuxcEP_ z>c7fqwCw1U8E^70?4@f@o!+Hn;GtctB3vqo@O;TpelHnc<_sID2V4B7ArjYhf9~x5 z;K*cWkPH9MB{TbH*t9HnrtVquf9`z4M_U)9mETyNc4M`aNr#zK|ypH{}U&* z6v&16j(m`~=#(sL=^A$jtIZ*N6M}gxmqH|jWEFK>rbT!L?>_QyHGD%$a9~&XEn~9~ z+!MrJq?upuJn-G)EqNTIZe({WtV6cwCL18LA+`T9>Kkn!qZ)b{YUcJcT=n*+61>!e zlSav7{TRw!*Z(rxkpQYr@wQv@R_Ck+&;UOO#OWuq;NiJO_(nPSb&yQ*555_L@ERjY z=5V+X#2u@q@{y7*o`9FZn)?oD=ra)4e?LZMa3&v$VOxhBQtr}k0Uf2LOF zHc3JpPu-l~VXXNR;^lIv z2`QAlE;fhqdyV^8<=to=cIWJHyj&8Na$;hi8-?teW95Y=%r2*50sTMjA=rHt@f0VB z>A@RZ4RZ;s!J>(EbF8%^z>79qe`YH5A6yxopnsjO6G%n3wYLR6{_Nl-4<~gO<$pu; zdQ1F2j zPfA5)H#$?6p~bP90I?H^;%Zy_%ENnp!jw)a+(`9aiHNd_bJ|J8Z^{nCbKs$|_3+PS za6wsdw5$b{m^k;C$?#Nlm8S@C@#BYAXb=j$FXEb9;y@f(a1Hk62t9+(4%B;H|6u}6 zff9>lTH_&>KoGsR)4evHELI{L8~m82|IJShJFMlZ#pv$+O`Tx5RQA9|YJ}@b4eBOz z^)R6%O$a*O&6gF7{(phVx>6>D1b!^*?$2K!|CEyhj1hVALD}Twz1{DAUzo$Kk)G5s zqP}6_*(lOAtp7pwF?l3MU*G1(y5lhXc(gYcKWR=O^i*<3_W0%AFJa3_30U?l8D2A% z;9!w#aJWGN()+O8{lCZNG$rb8>8`N=@c-$0>5JWMlZ=CsLXB}diQl!Wc)6bAWAFpG zYwtgKR0)nRm=~kZ8P#E}KQ`^(i^{9+SIv&VamNOQ7vXH`lYa7ewg_EujHLwC6o*;1 zJ@M}T$<^t-XIBxJ=}Uofl#Z;~2cef6Xy=$i3HQ?MFfSd^ilpx_+pkXF60SV>Oq4lz zh#*yIv%QONLz~E8*|>Z(JCL*9eFz>qYa3I zlI_J;dYG%w12y;mZ?~Y`nKg4~Uzw$m^6E)NDKOG@6Xr#DeMgw--uRRsT4d9GNroz1 zb5m`GUh#_mhdsU8kE8#TZj-v5gi%8q9%D%Rqmp>B8hhfbZeFfpyh)kQGA3h{cjQ4Of03|B(MD(aVM_Ph-Hp{|I$G3aU&`)tA4Z)#ILf~4;4pF6qnOQ{iS_T4IWJQw@>H%$wFR&NnehLSK#^ND5+2zCvbogw*V7Vl#Lpk^0GBdFvQ=7;caZEhU=jQob-Zb zpD48~*-Oyt2`Z1y^!k8^6s)Kp50s$ym-yAz@JF<~dwW}&Zy01K=_1JZU45yXWVpGX ze}W$|V>s97qV!i8;Ha0wtbw(G7b!bto}wJuy_<({av@IQXu(Do2Vo#`HFkA|@v7SG z{+6#Sv)LNyC1#lj;j8P#v>`A1`}#k`IxjwK$yL1N`QDj+0{>M{R#~+qOqVE?=rB1k ztA^>ErH2d{2Dst3c5ZznEA!D0G{OAblfK(PqD?YFFzf7ssfeVU z2^N;T7y9ep^FJiXKSf2}u((GTU0mlpIM>W9 zzrJhAI`*b|l0IO4V>tG@H;4YR{xZWU<8kJDJ76Otqqdv8m;PjhG8`X+aBOS=4;|uSj3IzY>1Kf9`{n>XH5&8TqTiYyGmKmz%XM zcv1*EGDT7MN+~?BwVmE~c>bbEv zKyUYjo(}r5{F%LrEx1P%CT6~0@8%2%h_n8Iw1C<_${v(eug_~tSh^EXuW&O<0|Sbe zIbg$k_uDcO4hTcgKR;TXl{`3}GEPr@(+%d#e5WBpVxjRCA<2kfZ8U!Z6Z6a*BZdgv z0$Vhd2^G61XIT)UyYaMGVzWi5OO8y41DaKLE598PyinpkWo3SywL_*z4kQjhq(9BQ z;)lcZHBAWvh>Lx=NP$O9y|Z25StPJjJ!rk1oAZe89c_98={OI5tc+$$WBbmO5n;$u z0;y&A`$@;NkOVRrv|mO(f7{vZY!m9x;&STiswAzZ`N@ca}kl)w$DER!K#;<`n%*f?O#v{k~KJ<_+>B?5mco zf`XAg_I*P%duhFsS0ZrPhz=wg_R zL__eM{qgH%w?Y9iy>I|THccx3!(Ve~Mtlzp~|D|fk{ z20Kn>^gTChsr|CLvuMjkd`)dM>ZX(BLs+5g_?Le|uI~V#PSEcRpPj6VAOZ_VQKr_! zI&IqQaUO9z^yp5S`2bLi25^&g{8FxHzx*9$sg$$)cu+B<88TjlRV*_I@k;=b(x|?Y z`-n0~_gqTK5E$VX-lFL_nkpiGy={SB;aTGD-3rb?evF;3uVL&f{E8VK{=Gsrw&CT< z){YMoGcY_NEb!VMbP_MSFk+JJi%5U&zLxhOFekfnQvrD4Z z%lRY{ShVNY#pQJ!+eNTEvM__R`Z$Dj^u}nTeX}k2R#(Lg_MbPXTARo0oVPyy*%zm> z*abR?gDkdj!HPbNIf8JitO;xmVwVO=oE`{WX`i5zGIq+kUE*Q$Dq%LsF$v~y?z8C> zwuLk&^uU<9@}4I|$YKfV5k%xbe(FcG~8CndJ|Z~+6C&1B4FbIf21D~U=-Wp zZ^PcqgO}TX$o2dt+v#FQ%Dc=0cpkQ>GIyF(;TgcH-ED@`kW7*OUvIv!eE{n7|Nilk zhd(|a=NNHqFb-;IYRVOr1_au{X`9i*D`01BWU_1H#)Mj<{ofkgr+fr-k|j{`Mn6zM)7 zZM;)Nr~5lQ2esHi@Xj;iX3b>Z({@EJ1xV?zfy00qh+Xo{^KVJMLA6CYh61%HFyq50 z+6SuK@RVk!R||0cYoljhcT9)p_-s>V!D%h9QLwT3Y7caf))Py2Y@`2+nzgtfh+5>l zPMj~ZJmdEeBT&Km92(G`nGM`4*Q9Ke&laEhR9~PMTcQ7Xs^b3>Wdg+twD~pSYt3A> z*wyX}^ajE&KRV(;%4f2`WHQcORgU)xShRfvmiEpgL@qu%glY(wwijEc?WK#yM+ zOX`F2_;UY~-6XLU=nv6XZQ6E#XUm5(2pV)?Oop!Y2Z^G@%5|~<|6RZJopk9U#vOcC zdtK&+UJj?J7LXex0J*_{Srs2>H|nM(MOu_G)JvDxIy8>-zO3*>7&kB7tpr^?@(zT0 z;-wqx6Ub1XZ2g=K1@k9r!AaMeLqTMkP@C6tUDz`fms%joT9LJ~`8h#^my4azzg&bf zUqrC=Hury4^Ic_-z^!h14W_!7KOJvP$ur4*rkRs?2#$FkkbP9; zVTqExbL`G@vY%L6fZpWwNT=XZK6&xUu_|0BM0dD>_ zRis>Fxx(#V{sDeD5wCfHSHC}DGRwIZvC+gl_&Hn31sZ@R+O$Rn--*?VgI~R85)izX z=dJGQ%$$f1?uj5kASCEn$*6BFxbh^El<>_zsdqHbxT*I4`UB`s`db+!26QHTd@%e* zKU%XToNk-uq!JvK`h=DZC_*}Zb;Xn(ucm-%*L6jhF=(3ya1FS2mOLOmQS?#@@gVVl z2(0_qF)NEEe83g;vNO&;cL``InImxhu$*1a6Ix=F&?3LUG$N+ zaKh*v$ZzbEx|dm?qW(NIsC9o6O07NwmJ|a}!}tM*ym+jJsIos~-~B5Jwc~pAd2n@- z2OlRtI`zXC2T`QLDZ3=Gp=T1F7Z0CwW$z;qq%cNNvb00Qvj1s6pl>`0tn`~NLQ@3F zgy0fiWeKF$(MD+ELcJY(_$z^`myOcnn~|RoonsG$6pvmoJ02(26?U}pj>&u%O(qur zNL!G%@sgkZED?y}KB=jn%rC& zZXHTls)i7oRiR8i5a3|B9P>*!0LVp$6gd3qv~2pQ1yZs+3wx-Bc$DF#5s8?${G<pY=Rjgos?QD_Oo{l==FgqhmH$1Dm)+iKVC!&I0aT;#U%O^{ z+(c#{*ZB?d+gRqoVoe8}Jk!1`EUgADc3;5U1E?vIh zju0+NLMu>?oDPC_Mwae{-eR_PO*nRO+m`h^W;vkSu#dV%k{uEF)~&6I39(Xg{g!@v zZg|6m6tZxDSd8n{1{y9Y`qeXWpaI`8yfm9}>!wsF9l?E)=xWmTr0OOgviWU9@b;34$(gK}mP@*1lS&(6kveWNw^#K-ZYKk9iX3*RJ_fVs3lj-Z^fTTFpHm5Gh_zJN3`QR5*`F1q^m}BhXd&8Xm9ey^ zOo9E8tmYc<@*Qh_c0a!RoCoNX1g%INd!Vnri@=PVimLoeOwKsQ0OREn&}JJCxjO`c zDa|a|68jm*-NnrPqn80T&!reL00OkXAjaY$bGi_Z?%&iGp?iE z?1+m3;P=({a%0_FW)6J>2*#n+{^a;1Zc1gF(*o-mNNUt5@r~e>jvvr_#?P;k0J5r8 zc+k3hYeuKiL)-YNVQa|tCIu$UrWCk^?w%t2jnj@aCSt@DhRO%IprPw21A`PZ#mXUL zpu_F~_I=H$P`#bkS$1VyE_s~QxXCQ%v{UrmU}u9TCB#i68J?sE^3rVjL5%z;OKu)0 zi43_Wz1U7GxIv@ld!7(w#*Sz$JORq*f?0z`Y(lrebkS`SFLirfmu;*I&u**3;5zs0+7k5MJAdC;lgLt8=U^NX(1IJsdSxj-{Mj+Y z$A-xGi+Dg~AeaQ@C0gH3k~VajX=N&|H@7w4$3UR4 zpTCx`WNji*DrpfaAxpgW5QN(-mGmpStAkFv0F zLZA{#mfFGj;y=+WDZY^;gG^tWC`D)%3 zA*{PFBWQ=0oo+2UKBjjJC&c&a416dw_>osZQq8QU``?g zPOtQLtOEyRHE9zoOx0IuZwGy6PmnrlZN#vB-Pv}M=UXlm1L9xnPeSvgbC?lT#%;I{ z0ao)L{$>NKurQMLD`U`oA0(8dEbZCH0nDlq;Zv7ZNTLqeodd!>##oq`3L~!SOLUx z!)bn8$3GC<#3*Vf{IL3a6HtYVPxno1Q>`1Ix=^6Vg#5ue!Y9;7(`$`fAcC~&e8zzC zkJh;NGCxoQFXADiK@k6A>aE+rk2GhxcpH4Ry-x1&_mabUE(Ih=*75^Wp<%u-U!%3h zbiI7cK#DWuZEhm`DC0r5E-EJVh8tSc3TBXK6MIIBa&|nK9n8D;9uy;X+Xb<4i!)+- zptE?S2+!|`g}=GQgNEwwnmJL)cy~u3GO83Ps0BJ;(67uJ?zeY%S@800Qvqv6gHK_k|4i+J!A|#k@6VnHQCGpa3DR>$U|v6_c7b*9 zXhf;^U=jGa2&HWKNq6ZP@Z==+!3|CdjB*vgGJnvl2G8IJ{42(i+4J@lpmSyCCkGJb)wVJTEXNX zoAR{PD1@aLpga4%D_Z4ZZ+7VC^*%&z?D14&B{zWHZ>N8VUsAh&W?EVNkC;FDolLj! zSWg2sy%EZj{8a>2&--9`pK_@*iNX@GQ_p|J^V#Ja^GHD$ZC_Vs956qwX9F-Ra+e$5 z@iqq%Vn28z{-fzIb-vMdr;*qDoz8_O8+EQH*lcQ0X$R;AK3nl<^4tpq!MdO&ny?T18n}fE$aC0@Y*8PRclN(gtZ&RW-(>m zcwuk@cJxMp>E??JB!u)jg#Y^4lhm;Y5pkHffFMVjiA;BUTKbD zwZS+)ibbw<%-_I`H=o?sQn$S7xsGr;*}?t?>2O}h|Hu5xwo<1<#U<8IrwvZ3eYNJs zF~|@t6kHM-veaAe9=rgg{@Oo+a`QY{rnolOVYDTTsOY|AD32KLXU#DJ&WZqs&>ng# z!^Rh7eeMi9XVcgkSLD6mj_h`w)>e~)#qo6!BYOXnno{q)w4j6YtTY9Vs)NGGcI<9}(=PRM@i|2^zH z*~;WEio#GB_CbO2LHO%!7o`$wt!Lo*FYWWvFSOvkGz7<)zZXA?7Lp*LE3!vc#%?wM zM{i@$)4CUk?!swqOo>u;V6&Qw)4=s9FE%K<$fot*l*C8S?_ zr(TJHrQ|4 zPu>TE)=818=`(_jJ4sm&5;#j%3w3h17CL3ENhaN7de>SvyN-zn7c=sJC3|tX6WLtd zSYYR%V+c&4c?G1UJ5nTTE8PU#J07Bb#($naT++`+f5Cuz90Zk>uL?nzi^E*Zr!=@H zXw3=O*n0zDSZ0m>Gl4xN}HT9JWF0TUC=H2ik9+>@*eNM$UxrZGQ%CSq%U*w(8s*rKW-LNva$^ z|06Db{{ReXPd+#Fj@Sp5o|7%2UQV96N9-Z<&~803EDMgMt;GS3H9(w;31Ro!WvwyM zTJus=_3h0XfTE9MsvPIIZ+3tBZrvX7r$|GsTfmfcagd)^7rx;%1ip67p~%LkR14bZ zPkAmAIMKPjUF<;qKeFCC9?q`q8XhIldrKlp7`+p{M)WR3XM$Xa5-m!!kszW6(TNr< zdMC)pFhTShH4H)YAmY5tVGvS(1 zTfDKcYT=93L4SD|MAeZeK_*~eVi#IoN^69YaKdS@cC!B1W<5K*B{ z_MZ|tlaM^VafO=;o)p$j+|}8&5^OhfGAj&MWk}~ge*N6PQMw>!Nq_jZ>kF;n+rvh3 z6GT_HuS&+p->rJl@ja5bD<#{dci>XM>@r0;WtSH0^fYqoVPtSyhsVL(>V7hkiO3S^ zG`b&bkBnP#-q_a?!BiY;N5RP7mRQly>N*`Hd)1rWB!xbQnTt_}c6MNIzxg3ku8CQ| z7#wbFn2$3NIEJFWewE;oM{=kAW?dU}-FX@9q`mpH=cqcB3@U$~n(7?rf1zsKmwn>w zVDEG#35R{}QVgklva*)-#ZH_HV}>u7vTFCyqGv1yC!Vf|$3EF_&q}bzF}%5cZZiZ9 z|GbOqJ@1Bg*;`C zJdRm72DQ1{?XD}AlPoc2{1!D@r8F^w4H&#~_9DiSGhNgcLxQ?C9e$F61ZVa@d)-H1 z2FBZixuBK!VaG|Lv5yLMi~=N2zHH_z0f#p4O@Sd80uJeP;9zBZwTfo-r$$ z8>x#=ZE)qD)HU0XrU2MeBqzpN{_-xZE<%)-(e0i@dOWv3ykz2_%Hq?Fd-X%8>1k>2 z!d76MpG`jo%3^lG9O$>_k?@bjw|+?Z&F>miW!|-K5=GnO>oU0VhIugrx$TqE_Z5I6 zsJq4=d|4vF-6ma5dcnY`=uYudkcgg-gj)KxdZnupNkNj|vyUx~pqBer)HH+Hpm#IF zH@gQldShB=CbfTo!}nf68KRr&9N3SA@X~e`D`&HRWC_O%L_$}m2`+Zk8#1vwJ!ePJ zAwe-liHgPIT4+t$!YunbRCL9d2r}gn+7~9!EEZ>tuXv2AJ{c7+I*j1JrrI89rLg{x zhP|@0KZhNz0QX3Q5CYFIF6}{E?k{Wa<^Mzkc>U=T?I>rk{KwwD;8wgBaAhJBG*hxN z5jz1VNx{u=g=|Coz;GU6IYF9qF}&{E`P1wCz>Gel7|9AFF7~07g%~?mrxPyfvuqb` znZ3di4)J?uhOWdOf7^FNUJz^( z236ei0C~^>rt=zH{svi3Vh`#&PUlsFw{fJhGm(?^#9Vx?5DgX>4^i$$qU-3eD(_IE zb&4Un9-3gEYJ3;ceQsRC-Hh82Wc;{QB%b z;C{v>5ixY{S--fFlQ)k+Tb;u_`6Jyn`or~U>AE}@#)^bhXfqVAwgzh8N#n~_*FwH> zOp9fu(9W&Vu@fnII|eKg1Z+@*iH^_P4Of%XH>s}UH!g+Dw|Deni1?Y!O|k+NP!ZyU zM5kVuL^ z&#~2*)yi$BFQ^}_pPrqB|I>^wS^eZ5S6`E~T(3y}lDN1(AmVsw-eqeIYKLkGGCWKT zH6#v^|LOrciGk*LGDr)D5ERKBKfxMd;mg7-1liUy1k*L?sgDLa_7REif`1l>6JcJP zjdVokuLOp;ZywTP$;5UbTZ^|k@$s!An1hsjXjRf%=3hs(v4n>;Sh%2B&j$suuY~bb zRMGZu#}$^w!DK=d6HZ;Z>45H{TGyGr@)P~HojJ+&f2gryPTOu)iruupPHl6TXcg}} z?$Kmhc@bj9pZZ^DRF9m`9w)tOv+kI9J$7K~pd+}P5W=j|wFFA z(B~gl{FX7@^oR1mib)>s6bYTR6H5mU>TPq}IP|I)g|it&LiP5mS9d@R=qf@Nswr@H zU8r_A<;^C)+D}xr_$t5^B#(N*Dg}~M!#sF!1Z?IRVI{|19=auK{K!WsYmeQzsIieU zl0rK)*b}f+;-~@YPZ`_#LUrdTqz92$;&2Q6mc^he3JMQ%MyUG#`f)%X;tiZ>JhcqA z>afjFYSzNkQneg@pLgE)R)30@WR{0Yy3yB4`GVdWEs#sw=IcdOmO9BR%xHifR9lqT zrDr89ufZQnzjNEdk4FLy}wf&@e`l_xXuoJD))N8x~5 zK)E4)F9R;tq>N$sk&Dt6@wx)d6B?Y`t<@BZhat#=KJ^X0$IZHEroAu>n)7a6o`2(L zjRmooq%cPD(zf112FbyGjUHlFnM)Z;)4W)|w)%5Q!l0Na=!|&yWKRW_l<{UZYV%y5 zrqCEoB;#A=$>F8*1U%|>w!+%i&X|WXzXx(ZhJ3ASwd6O6kI%#bGb-AtF6(=sxFUq@ z+b|ro<1~+ZoC|czW%}?VO9@X=;*e*lFctU2TPWh$echvHC8`!40Sw!dI6hWpy17^s zm4#w=VmPb_`9d6Sm>;6$(w7yQ!(ZY0#n&|_$oQm-u}fOA(W zycD5~Si)@KlvvBF@t+n)qjIE3OgnN#W&Xl;LXPN1iOcB}YX;Ki2g_fzKD?X^fJ4;% z=<5`NDOKw2JnW;vmXgtvhxV5#AdM!SVZv8u`VES|F(Ei=;FZrmZlR10+40RKyv5Cc zQ->UXO=VrwP05t1S73gU4f678dhpab6843`x%2~V>gE|;_vnYP$cW^ZP!0gQyDDCC zAP>+AS7G5UoNohBh>|G=*8ck)^VP&Ahb#RA4UUmOv#P_=>vI!XqgT%f*^snD0jA!tn3%5w9 zueWa1iHLnkYqf`)NdGN&r(DnUZ9>Zp4|Uq^w|_W4IdaGUP{p@2dO;FSKJniDlQn)Y zySJ#{Nw*G^8|ysfoJyCQn8ZQl(cu=*&d9?czE-SH3O?9HgnQ~5NRZ$8k}$$wws_r2 zPZwFVeaAnX&dWu?@gkMaHd#I|)6@8zLRcFiLhWf08?Bep_hNXeqG+%xm61@f%+&?Z zCk0n+0?yrj;ht0wS%IQYlLSA1x-o_TSWBRdR!8gFZ`uldjWeYiYxhnnc$sh#xe1L~ zxb~!r6p*mtqV6Yl>GoJME!mD5Phjb~4uT~B9Ggz$z{H`w&V)bY?rv9b65}RreRyKX zMG=dz>VI3J)kFLiJf`|@fel2cmiNa(N9#!oLNwfAXrk~Prk@YI&!L=fHhKbMl;>l#Jfl!Ta5WKtxdrc}o`4`L+=3NJ=HxD8d$f5mHCNRzGOnbW+qdSqbU?D2>!*kbWbw*8G(#ZqFeGw})h~u?iJR?_EQz@nJfCTp)aZVQ-xOvO*eu zoMYZY4jj^X*#5!Kesu%jWo8!(7JIf0iLW+n)>D3IDU|=>!F#lwFbfo^AU((FJxiXl z!3;W!4Z`rg@*+j~i)}}UxbV|BZI3xt zBm^r2!=cQ%$k>pY9=|y;T@LqTPH5ZWZ+g&RM=bc?@E!bVogX#oqIhDAPzKq+P|wL@ z`pQdgWoAzaVr1n-7g9#PEkU=2!kUHcpm$=DPCZ?7Uch1T7I4_xJtReU8)d<&At;3! z&yzvLeGC>XB!D;1X>1i|fElf?A_1M*!?o~xWj8QywD`_nx+{b=pnptAClh8y_>{h5 zI5f2HjNLZzaig7k$-ot}BGORIBlW5HhLaw`EdQ?3*QE$eB***zcWK+-Kh{~4_ z_;w^Rvn<@q7aCg$l6)JS(BX|_{)&y09I@z(glRrp{FE=h6&5Ro4 zugwkod8F@3!$Ofpsa0X&K!zhEan-9(61JOl z@g(8kU^5eK5bNV@I#5Es5H{|Zq51IvUqZmRfK`sf&p+9f4wX-ABl?|4pf0*LVq4bg z)YvLZsFlMSQIb;Ta8&!(yiUg$qfgaw3mh0rOnnsW{__-cMS|tx2NI@FCc~HGIyAjU+%j0t9f2 zm|a<#JIH05MXdZ=P@P1Gz?n)ID=1=_OmfE|fEKtB8GqpH7fLzxef`iXo5ctrh^48r zZ9yT?4 z`;C@;zNhS^k)elf)r-_Y(H>SrDYq_H^!f>&IeU-Z4dH=NJP|`Ei-uk(57*jC`J4)o zmg>7Q{-^G)?ZaL;!K{1)M3Bm!sNZN3f6d@HPRuJt5}c0chsBpe8hgOwVhgmcEu>I=2hIwVNCtKVd6{|3v{w900D$)9yF%bE98>a)aet=Z z`3nbj_0;^GDY8*Fmo1^ec6H&`Mc6ZB2`OPDo{k(}CP^Ab_^E(=j>7+!#PKxaxL7qew?1gqcJ2)S~dNk2zLKXH2 z^6ZdqUHsmJ6!whOSZMXydu@;pHR-2}s+YCz-R#n=MLCV0S`)soLQ;8 zm(XCC4yDphStWfyhgE>_as2uqT|VT0$o48#zj!%=?XGe!a<0%^PwE9ce?aKf-XnZ= zx5A(rM@rbUa_#U!DUv#sBSl$`kMw00Z&-$|8KTmtWB zF-Duv9RRrh9A*-;qt#Z|#)21Gh7#?*uf>UdwKa)5!R|IBH+mY2{@ZBt{s3nK^;U`# zbM;O5!;+KxyEHw~ufq}YyP3e*6UwO_D(y=!O5w#3#+ElGNu<#ST`LWUG{-%eJ7gmqRy@^bYeWMnNc`QoIpLwdO8HhtHJ@e*3jxxlWmf7KFj2C#o^XCur z0nb_Yp$ls1q}4v`nHldy3{bo5f-Z0=#LyASp_Y%0-e(ZXj$uzxU=u^uF~3lFiKB_3 zs*@aPsH73w2a|xzQqY=sf=$z@Y;%^SHIF-Xn_s}QI###U>cYV2uv`Fpru+;B4MJaT zKuT$Fa(z*iiMZCa4}1-CxC&2Sx8{vcvr;p`Bv8Mr&cer6jXP$@(d?6?=As84d?3uP zLr>8=`LfofjM({}X%1D(#rSY7d?7HShGTwYT!3IA=|Ln}A<%6eJz>tbY=@(|V|pL2 zCJk0fd)a%<4d`u?iXach$E3;kDR=+Tc3#_s-F5oI+Xq1h`{#^%Hop+$X`_2~s=VD> zsDYN2-Z{WA`$R%%d|O;4@*jg3-wJ$?5y! z9pNq4jH^Bvk>M*RHDtzQO_7je9dRCwI{bmHT5|*ER1L*e;YuG=_DD%J}gZdvAS?xqbhnX{1Pqgvh zdkR>@S3qjhKndlm>M5&n^ln|hX+buD6k6K>Lubq)6KPnvH{XJ>ZZfwhv_UnSG8yES zEBvA(y-+s%T2ofgZywBay0+7{rNSrMe>Z!j>z_s*wza1U{Amr5P-}G;Ey0_ccJ-on z8Y5wP`Cj(kMBFxC8fpGWg&(g%R8}rFepJzT0RSsVJIic<9G!bLm;OR(AFJzpTFKQK z*sqoT-z>lpE%x~8OfS)Ub49rC0f{#7bG^2pgpS*Qg5rka4&q2<^VPV0sOPL6CuzS3 zEH{jLW%-{i9192_+O*(JK8yHRGj2SGq+3qqvAAUaIjFvN_yj0nd(QD?miT2Yna05u zSN$u7@zK@+js=c_Nm8H$mfJjwf-d%c+j<%aQMmN5OSM7^oHC|-RxclZ`L|`OwIF7& z8^|RN#XiE}E5UrykaKs8eL6e+334Jb-upbl<(VM!E&IMMia6ue>pCzueKlyYQrYsC z0bWwx%ikU&&Y7^7<+1O3^}5FheyIy{iiDF7ft8?-Z}>Du%jBZdUp9hO%(71zUd6o< zR-|SFZneGHfF5N=@n_G!+|k3&?1dI97TvBgR+toKu&LB5dE2?l-|~_JU=arc2u5s{ zEj*K00TvQQ79B-a&(Ls8MWO`M0XA#2?izOt1cs#fD}Y9u)IOzbT($+u22~eDL5;w> zUW(yKoHl%UhxYDS@OY&1s3+!_5ZC$OpO!craqjM|bD)4|q|)rOg~7e2NT9+2E7%r^ z5H~sDe#Nw_iIo;pK}I$04~a=$8&)J^{Q;KmC<*H<>SvOKfx}e~51gL9|Ast$PQypC zl6~%}N&DnWAh>M)>(de29P|NVIWURF<$QU)0RHMH4OES!C}dlbwq! zGgNBmIHWGrSa=JE@}*x!_o{kjTcJ%ZujJi49}<7BcjWL%>kW^j#`k<4Qf&lZXmzm* z-){~(yxSfHTh8RPLF;P9+-^PfT+>U`ZplMA`w;DW-aZ@Il?7$x9~GybwBnanfKAT#xC59lv80eRV#7KWGJeNVN^*h3`@^|e4h38Kr zykemy!!J&*Bi%NUNHsKNlz#Mb|cz(SkI={ zK|tCZZ8Ay$R1#Wf;WEH*O#`n=Ng|;w?MutuOy+iuYEMt!>i~JDwCPd%&^q6+|4O25 zF#`WZ;#w~`F9oHqJev6_?j|I---`?%X|ZPe#Pa^hm+%#eW6>(glHBC-p4d-$cRn6m z;4^vZJpBnz0kPQhN8+p|U)>M?#}FhMogDNga>F?55g4z0b$R4gK>yPyak;}o0|Oe< zkho4&)fG}HF_q;Z^G6dOB<7qR=~fcM^CfqdQ+nUr+mFdz;hBC6`T&R2x4r|8T#e*- z&!F4P4o;7~SGK%Ejm`aWAv-Kc!t`?iG~_&w&TO=Up(uCckANh?2X4&EFcY|n}B>AD^_#=hF# zyTLJ@6N9&c+9jq+V!g9d9QS927~qRyZFD3!j+SU?ot9}s(3u&?x7)rF^e91pYt!|o zPWX-QFYdQspr5G(E73&h5_ko&)#|f&8Gou?!qV-~B&vv*72?ir4+?$?tH|D^PyloQqD!M8u?Fw|d1Z zsUl$ViFXX|Hw2Dn9+2Fl;ms)gJ^=;YDpH2wmj9x#N7GZ`FDUaX$&}eKQfNT_@;vmd zW}nDiZ~elhXhC_iHIDmWKz{mGFDVhvjp5|7DLQ!>73Uy=7qSq&^s%=EJ` zQ`XWEl4L@R8Mk6z?E0J&4}%`?tQtQjhNcrI2w}1~ zn&xf(7mV5VKWAJr4;=y;?C1yP)l;i7^g&^gv=q!r>W~_T6gTSAuJ}cQo2Bs?Wj1x{ zKqqw%B#M1OjiL^J4(9@=`|Isz1D?x=-)pL{&QAkShH$X@*CdJQtSRWP;ODI57MDlR zrnVx;rxKo)`%4Snj1A=Tkdp>-)WrX;p2*?IuRv2~t zAi=cB)x<73dVXY3B=6C|pUdc^!vQ2+$=$lQMi1*Vi2s>g7{GV5zt8O(eC=O0Uav0R zTy^(TvumRy*KUU%FnIjd;w-j2g2-^s+o1}Y&yfex2EYBJ9x6A|c%WHX7(mfl)aLmIB;-`1eRCSNF)paP6@+`-|Vo*{*|N@lnz zhK7DfFK+>)Jt4Ji^}4cqYfxiJoe4ua10?o`K4_rJ=y6p~9K1AVD;!VyPFIA|taAwK zs`0%NMqYUEYWYbe^i*==y@_k5?G7h)uA*cFJ_e~^h7%iyk9tljNI-F^0XiH!&ROsU z9KJ?ty`glaV0&w?q(LFZq zO&)_jP=wSglyjVK(WD%$uxW%5Qdx)zy)o}BM!#JmUt=^~zXMpwo%M$dR4v&xL5qJ8 z>zksdQI;b_p5XKFE#uhGXNVLNydnxWM=%D7F2zmJCg-W49|H24&s;eo7YHgGXc{U=(jZt5u_n zI57_I;N(ZE8(*v6MouOTli~z3-!2N#V`Xc9+q-$OyitaS&3$RRf(-jyQbUu_cWl9}rnzA`MkQLoP1^V5Lw7Fn^FE_#p{zP#E5G+P|lVbg6a z4<6>{#lpxbvcNC?bPH!ynjQ5Y$FuEHByX;E2C-vU?D@_CHzdQxs{HNiZ}!}($MF1R zN3;EOQXGf>n;!{Zu5@p#b?nHPeiBT*;w`9G^Jx{x*f1;p2#Vz%)a7gN`7WHIOKIUfX zfZD=mZ$M!to1m>1}cZdp$a!nCE7o$JL-2<6zbV z86RNCun;ABvIMs4abYAgq?c!2jZ-UVKjGkMV-dfEkpn>jqH=%)&EEMUd9~6-s$wDi z%%Wcsk4tc9543cIGb_*q$<&8vhXZ}c%^LG7#D|Hx?hqETKbuNRZo+c&cuw}VDyJ*T z1cUrH+af8NG@b^N;eymoJEx|n-pxMg``B_H(WET*Ejsv2x5S<1jx}0B-KDubtcNo_ z*4s$%+Jg3YS)KpIW@+Km>GdkI4IX63;`!Zme(~+VVb;2_t~c$~u`Zt>x-Zda@b&}r z0s=~C;2$qZhFdJ@jp!kgk&~z7*a1*Lo<{1T_6hGsE6rA)VX5(SXZ(GC_UTgEa&2*F z$@ezxaHq&1Iy*znO?HA_wG0riiu4+r$Em}E6c8c{O43(}bp^9RZePY3z3IvuYSWJUThISd z5hN`8t7h@#ZuneQL7Rcw9U)^=k*@=UyXwzt(hIHk*+!GC(SHWkh@o4&F%d_G@+acS zbc?c`Jv{t`nLbVVI%w;5P7Fw&j~(w-^{y0%Pe-yO3bdZB^(9Ahcg@M(3|}n@Dk5C` zR|=wB@WBP8fX1@}CAQM9^4siAe#C-7(>$BEL?C`mOzbg72%V7xKV2N&t4fC)YDbD| zvdCr)7&DfUFs|oE+j!B+26~##Jb}Duy8;O(bx0?}6uyA2Tph*RCo!o2b`KxmY0#!w4}Pf{c$`Ox^hS z5{IJ8jW^6vGr2Fn!^VwiUQCXJPLjGfdxf&9cUOb9J8$|f{?G`-e5uyQZ*o7!HN--J z^#-bo!?h1%JPRbAs|#s^78G#?I0`V{@$UWn@uX8#6*z4k$cv$rP^D_lulb+gNSL!j zk2U%-R9Sdb-puhy&PFojE5vtAG+&Yu~C3%Rm#J_@!WWrp)Y;yj$-~<} zgTn@0?r|w@*+!!>=Ktf5QRf1}%VOBsdJY+MzHZVCyLUq0iZ^zh+GsquZGO{gj{b)3 zpBxUrdsoi45x`j9ca8W6S6&beYzy$BDjs;NH&cZgeH}9tnivUvbAtVcJUFMI8vh+4 zn-o2Yk81T$w(0<|tBpvFIVt?2ewPH4bT{zhAgcrkHFU$_yA}=3Re($g_L#b@5xoD< z?mgCfoiUr;k}9eHt&2l8PUhg40&J(+(|ti37bwC8Th6^Jc1px zzqVtKccqG#+Xmi~@*IAA2?#ACzh+f|?p`V&?wvBRXxvO2X#x3Cv%>D>%%nB4k1o%i z#ti?XA(bH9*oX~C1yOeyuZ;_-Mt`1rU6+M_Ra(ZU|52BBPNY*z(aFc`i*PY$uyxXdtoP37OyV zB3R~j{_140VS?Iqo8L;k(8CPk7aQD`wAsk-XRpQ|>uRmAS5rbU-XrPOylDFR5&=Yp zik>8=g0>rQbm?fGzVTRaIPX;CCHFAa&C31zV|RN=kr?3y7X0k*h$L-~fr~KUo!kGQ z<~f5^swpCa%q=ogkuk~D!t^!xXEY^)+a zdNS~0gtX(9_m_L(#$P3;fmMfd%+P>Dfg2LdMo9xlJwtVn2SqJpr$N9*RtgGq-t!Hk z3C@jOp2cLJ9pM1GH~f{vn58?i*6S}f2LJky3CKo?-}(TL*301j!^TGJe;B1m5qh*v zG7~V~ZEuJ!rKicANptCAcXmg`=G$ls29CSM|6(&C=e&XSL)z}EZrJBkPz4=csY$yc zaP0dC2NQB)#%|?K%WCW{7|u3N%bzi*A+*tJ8sJbo@%zD|wIN6uh{`r${#PEpEZB)Au|Bl!fNTbj0?9kf|SZ{2aDnJ?CEh%z>Eqh+7l zg~}ZKTU*o~Tu2jS3RHa9GQ2d*BoyV3cv07A?yA1UM)Aq_>UKiE?$g3A<-WBsdF`QY z|AN?LARc=t;`Luh6hE$rk-c+RrEfnr*_a0!n9xQ4@xs(KcP3hD%MR5 zVy`mHmV5mTr32%F!)*6FR;T@bxDrU>SE9=-CuHX`8zedZWyM9t%wPuW+?%rKh{lHs zazXe7LhyW?V%1_EO2j_ct5}>d$D{vfx;><%jDm@)aJ$TtuE`8Fk$b%^5icAEY0gk;NfVcr+XL+erQUy z3EJ2HNefqALI+^@dxS;E0-q&Hg7&+z$84>??*TXAgknLpF_LZUd=tn>04=6{Gw#tB z4@_c_5sxn7Q(^Pa3FrN>K|V?yf_X1_mB_|>WSb|m$Rb^knmUm22{|+*<)|w0ZeqYy znJW%6E51GV`Z;WhcF(*L2@BER?GF7cMr`GYgtYeiOG<*JX8#2& zt%bI7?cO8Sji$~;a-`M8&KYr7m@L-Hzbt=k&L*C0jj~&CeThlf{3gwl0S~CX&MiT7j zni@tgi5;#xFYdUlrv3>XQcO)Oy7>^yW;oZ*WZYb9S0S0@glFW0 zyAfVFE2ZX41NharS&oJ2?;IE*@0@mCF)muHCxFY%6?u0VVy{jPQ&d)B{j?Jsym4gy{Q@^uv`easIt?ICVzsV7cB+2fCfB z3}@>iR4e|on#lx)sm8XhfQ+((O?lTTu*zUM&b+<~uKW;aV>nhv=1pnYbIwO=6p^d> zceN~ZcX(3>U~6-`>h!Mag<8DL+qReX{sDX>0;(&}SU@k!jC-K|E2em0y|Julm~ zlRj=eBpoi>I)X;@8}MW3V%?*|4VdYgxWF~P;E>Ui#xk~77wPXNl(cSjr6!RZB1dKK znvg*^`RX{Zq30WLh$4Yk+td-CGbxZmU`Op=EZo@<1rjS1#P)_ZAQiux*%GO?$nkkF{aiIQmemFy&+wEg>Dj^VE!fiKl1p!d#rraRTBt9n|j&eqen(vNBgUG{ev!+IVIR{!m2 z{2YYG1~8t$?Bs?7Zc=Bd0oTHXms?Gs;k|Ft#J~H3@v-4~l$KMo+_^IDg{8a0jfl<{ z-ga9&ch!T0!}MGSPl<7Dq1d=hHb+68*eL(gQG7O}q2eRJlGwCwS2nC8d)PkkVbxj$ zBXQYkW`|gRwKvSE;7%^QIc9VVvkFc?hJlCUnv+>KPgO&W&JeBIDw`KhhNw`%~ zxhYUMC$W=YJUA_0n1&pTRkN{qAY`S6*=v-J@KHs-u!woR1gv{Ue0F5TioJmZo)53# zG02=X%9dQ%>~rQpyPSnp#7kWE$xUR!Au$MK6D879Qs`DM9Y6-8y~jiJWZSg~TTuZ# ze1wEwni+SbKrzfY2d>dWRsXj;QDuqV6rKc9ZTYNWv8k_T3)s_8tv;H+j}4%0$z7C2 zw;v9;7l$}a==YZMV!Z5>;V&=NUF5~&Nyd(%ae0;bq99)|@0!Li7_OLSP zKBO}S99|2_=$_2b9;%UjBtlZgxc>P^uYtOCZ+1oPgQxPVQoe^k;+vEnoA~iYRvb&J ztNCKk!MT3!K)qa>|L!+Iq=;g#Y|k_6NM%XJj(24wu68eNkjmAQ2f-}|r_bNF;^`@N zzC^M#XZ}9~`eapE3Sb7gkOa6W5CB(f)7^NHpWG7(OP5bU9UK!;0KGsOtufj2L$t7kXiq(Scv&Y@L}x zp1{UETDeyWPy?^Nu3YVhM~9)ja5mX8#jS3EzbXfW&F*X3S1tmH8z!Y>5gFdk z)+rJkf3nh8qnTw1Zdm;fboX6Dcm8)D+=`M$YVu^Ff7+L?8D?fMOeQbAc*dvwDs%)or?s$XArsJ~GXLS*ybhm`s}HPJY3apXbAH7)pb0 zWo8;|fYQ3D28e3o2Y)h-Ef!ZZxiKE~TTxJn!7GpTt7FxmvRGVSFwY%)gG8) zn{_IL)J0skcR!_qE&I%hY)1)yQ@<9*d!i#KhM|0FtB0b}bE?DHjteC?bcMA5IASca00#l5o- ze_o1e%{C+FZSwzG!!(sUJ9Px`Zviut^N!tCyz=C(_VefJEE8cXXgDmm8WOwXcV3pT zhA8XXXIVs8e0b)@%z(vP8YjWY^nV}#fmGq5VZL0*MhU-mwIO9ItNE86E~_q|BBa42 zbx+O{eG`C(Q13_qZ3JTgcV)ODivld-MXDjsmi?{`@nr-IB5m3e%F z)_z15B!a_NDu7&Grg`ZULya_T<0TG}UZ_ru{s}&EiZM^395Gd_W~-B2PB6t_0>3 z66+I3R^zUFHi8@3UF|TGc`x*dns+K6!w4fVPZn@`@Z|N8z$1C&^1YtxjdJ{FS>qS< z?V1GWLIB>>t8D(nlX|n?Rk{s`fnpL2GzSCF!lC%=%%;{9DbY{P9?;@^#Wnl&!FZUg zit4CwUdNRY8>Sl3s5xlGY&woX;&54n#j0Mt1+bOkgn-Szkx4sJ1N3s_Uq7^s3VB1D z&PYy2j%#;JSNJd$@Cr)gfdZFykl^#LHCV$*2$SR5I&)~O7&)IL*JpEYr11! z;7Q>-IR|YC)Yjz&bJ;Z55T9zm*TLONZtLn_)!>9fPJ$Jbz5#mldCO(|?y`JEBrL7t zp(x=+n`j7ytH@|eb1fnL4d4A*$JR1iOJWy2iax(w9y}*1TpUg>+>}Lf(^lhpjwJl9 zhdzE?FEnecQhZ68!f~dR@l&!8&69yUCWG(g3g>MRh}VzxXtwzpbP<64ADLO;Zv1j8 zy&V+*7AhB;p5Oe~#&s@*Hmsu;r42yU;U#$Ow%uj<&z}_+o z)QT77tR8JsxKq?xc(~GGMHzfDuUu_AvG*@-^3}k&kjpEf*w1FIXU`wrNg@siCXEO5 zTihf5=vfy~h?@NBvsy?2 z{al3_{C+&Q0S3i95Th?8B{&v0yt9MYJvd%=bI`08ivzgR2M%iiH9j#(!G_f9>}$D= zFmu;KU%dcIw$<~kFWX@)Ie-tCO}amuA@NLWwT2j)(Pc|mMvd*4J;z^WaMRK&1xL+c z7j_^MqO;zPe{yCnX5q{Iw|OTXkwDckm#viXZ&vfK`}H?qs1MX26Fbuhzlu_X0N4@h3eo_85eX zhyLe&GLxt%br2$Ys65?u38dKhs0|0Z7SqO_IlgX*>`k*l^KAPTqgv0}-**R#JU1g% zM6}n4rl24nfg`UR3Nj3#)iT}b)SMTscuX`X)h|QtrN<2Ge z&%E_I^79v=xg%i<2i08*l+4Pt1^^>v0r2@|&XwEm7zX_WUd;4V)&YfN1d3o`Y~7#=_54shtdR>T?YCeO?7lp0-O%^J4UJH&75o%`$e3xjy;14 z&HKZp5W>xf*IBkp$YJrO(F@S9?a zKND&`F*sn8PN$&^9i%lec^B#}579ft9nscu1`3To>jqdHLax4_n;1&k@j<4r ze}>e>PVd5u9W&)pP94E@;+XxWt*ogrFDK*iDG8(dYcEte*F@_BPv9I{HZ8C4$x24&bniQR~X z8Lpf}1ufnSL^YIPbA-6>6eSI|gbR+WF{& zuaC)l=iMtW$cC>=>+ij$leB-3s-7jwUvIU3lzOd}=r>;xo_a{5A*6%N028{#;-P~$7hgy!O{vc-k=oE1Bl$kb z^|V(uL&Y0F{MSDN!e;PalzwI$37yu{S^OEGcn+c3v23Qp>PA#!{r=(BINy8PZU;jM zOuqXwo_XqSaP0J9AxOTv!O@ZqwCiREIG<;ap@SKOV=oKrK9yNQF1<>+xtzZ_oVJ@< zhirz=;if09aF3M%CFkD1`BE(#JD_%(2RroeVkXbdfBvQppk(D{!Y;X8wTW$g?@6V1 zt@1U1J&mjh!HU8KA~L*QK9SSJ1G1%clAR7!0X-?5vFw0`6Vn8+BrHoVjnV3m1c*k~ zvifc=<7zZdlGlrG!3FguXrdQD$IV2w(6f_nweVY=H->;V+H20x{~bl}EoTZQcw+G>X%$AB0XO@z2Kl5gKh;9|e;8-{Pu1InnY zus^1sBgD(ILkD}2ya42aw_9CItzyZkKK1rcJt0hWDFXp%wJl*ZnQOB`4JvzkFBqT$~r$qjye{SKy?DCD3uZ3_A8#MJQ(@edv%f_jZM|+Sog9cldKmr zpLgoT2^$My-rKA_8No7*1HD;BMm5)5jXfr;`9) zoP>4Ba<;7GT66ovcMt{S`u}B?J#Zj16M7NMPe7HGu?6)sF4t<-bO~IL5PeQDq#bUW zx4xmsBDDMr5Z2M%Ky^34jCO%eroA_`Ld$z{BA`{=Z?NBws33aMcz<8Ryd~6q4 zyCT5k>(pSYCD@QwilJLXs zGAEZaD&?;(;^H&Rqi+CWIgzkED%(QjX{O^|1c@3MnVWf{!m12_E~htqR~g}(100$0 zH}ep#oT(j74{VH*7_iFj%R7`Vth}0jY1;3pwDf|mYYHkl)e zgm~uToX%Jcc${~|ME@=-lU`VsjtHhltu7zc+6PP+Ve0`p^2g%DLvKCb`lT%&bng5O zC=T`iarG8{O@)2j@Ccb;6|B>1`7MWQUq9S^6~oE5TVdRy5PEOaaaDs?aP$umyZ>1M3N?4?D#wN`cUTPd$Ku09ecH>x$uVoQM&p+ukzn;_+L}5pe5S*n8wz z87G=ya|>qf=GYj3!Z08)7^8eR%N@C*POhu%Gkihre4GcI(WNYdgA0l2?c^%S7Kv$WZj zmyI*dtYpaPLG=Hz8vrr?12)mtYx%O9H9T*7@$ZmK0L)@swwKY>7|CDsO_X)F>wc;1 zI?}(+JFxV?m5dGuN6kCF6t55heio09zf3H= z<+%-aLEqL*63K}^C^*4T5fZ@4o39?bb6JS+=c~^T08Gk|qxL z2^AOOFM_zWk7B&c)%!iD z>6wO;WJQ-CIXyNcD*HDXD=A?34>y+Dj-nt7jiyKFPVZ2x8B{biqd?&s8}HdI9FP7D z$ETSpa4B}~A8V<3;j_0l{kOL#DQyU2q*6e0C=g2!1#yX`tNryn@g&~wa#V;Bn2zz3 z;RD#muD(H7vUva}B_R-FU|we@| z3xA~~`SDd$cMnK^Ciy<<`<*pQ@?IB1*@E-vX(A|kj`9*H$>h(rdhIql6&z?Vb}&$T zO6W{yvhOLKc6Zb>O&yrpjXt7Ow%FE=)>Irpkvv0CJ(^dT(&8;evgy58JB|=> z&pQXU{_T&Cp3mkKgwN5?)B;rbcjHwK#E#u%P-ah|>TJVxga1d#L%O7@Y*vIm0A*kX z%;Hv~FFpBWBlkb`8IEkE`g3N0ll3?Gz|+B zH`POBtclm(u5bszpOei{8zd^M;c@CCq9f@~wMjd7VoR8uIV$gc7Hl?pMd-@Lf0T{3 zpt;O{iZzq1u(4BCYJ8uj{DCXnv&gyd-v22r=Oy|@Gk=2g@wsYT?&|!mI9H{fnzg(I z$F^rSf5B*N@oyZd<~$;8fbC>|qqXNda?=gdw~sq_hOmOm?eIT2laVDbESG-=+{9W5 z#9~99wD1?b87-Iq&2c4r=jnYG@-&Jf=g+ZWkM(h4(Fcjv4S6)|(%<_P4~)em6$d&3 z7}~ezQ4A{mvY-G-h}+fiaK+LkkDIsj2pi(ni#uG<$fq~3z?f@<;&Vkm*3fU`4;+8p z5)lanqy4D#Ur88Xs)?hh*c5s_o?#oL{5!+e?4hvXr9?$~j2>6PgFolmkO3{R6Xc3r zUy$pd{1#*1l3G>XfR^v`ghmqJq(gq} z_k#~V*-0sX7pOnxGBgf+>~fI;dhp|Kvdz{fG>N&px|sYYS6E18_PU+GCQXdrE_>aCDGf`rJ7rQ>GocoKOg$)AEY&txrFs}R)tbpYy{Wd}Wqp{gYB%xl# zrF#unJRSEUN`X6d_d#2FESif=WlAHT5TjZzLzJt)9$cd>1@t|l<$Ua{3S@XtZ?0Yp zuT~@Go@$UNx{y^)5w_l)45b}@>+q3__pba_i((4qUk)4LG#R~+$Y%~o%Qi&`t5 zT{HGBw}?}=Jb|ckDMtf05Onprn|>gq9(E$PVad^?)kKV&5Jbvra^Y{e)B03wGlfDb z&S67lV8jvF@T7sx$jvUOp@DY=F%0S7={VmBvmE0&)yuINLD>njK`|sQq~b~Pp&=7T#dj3(F~aDz4PPgkdQbV&r3RrcN*xU9dY)m zf?~QIQxm|tAbMrlfTNAjWLrqZv_z(YvfgF8;kH~&UxLmho7qX!UgRM4lcpZLM%_(w z>iyX#!#Wxyjj}DYk|6C8VIfLTj#wP+iK6az&M($1eY!mz)iD&QAdjl7BLdxWBh;%7$NULn0TWx7z06$|k z(M_m%$*0Ue6j~%0*g&HZNB+=62BEX==~iBKULHVaG^y zFA9k*P(HP@dwvP!Zx)|S&q`oLGUiL!$8>AcngUXo$&$20-XDaOAMK|Bs)eCB$2D#m zW~XP0bnBjx6DDPEg9vNH9x1}g-PSq#vg!r-ysIQl_ohUK~n2uPX;=KcoCwXHJ#%{}iIRD?LcOY`+!B6mA@?%V!lH;#T9poKXpC^ zh261c8{t0-JJH-YBWwML4YYxHuSAB2s(dOQ6>VqVNA68nKG@bA>;4ylD{Oktm3SBr0eV?6}O6a1};pp;ZVAH}zkuG>Ke^^$zHuTqpMm`u754EZI) zMmL-?FKXVw@T|3H@aE=htN{&~#*y`hl1jrDm=2aX?vOYZz_G7Ary4S_pb53PM6>N0n=@7Cm?spzPRg)S^CaE7e&$U(xOQ_8Kp2m z^B~*L%im1i4fDIfxAF+8S6<8#Lv|h-!!;K;py4CIgUZLL_p);tfXPShAW2#|`@TlU zl1Y4RE^jB&tzW&GQD~;Iy@S6O>SadO-W|$T`F~HiS)}tiRFx-Kdq?Msp_m{LVrb>s z>G^mJ=fRtV|3jd3ICM)p`gOx7%1iaq&|@je2>^S=%&&jQ+jJ=tg7N3=xh`>)4^9YJ z77@SoWCeD=_}tC-AUx0=7_ z;`u2W@@my0szIN)=r4iN(_6(g^Eq8f9v5aBQo8g4ac>fv_bq@~KB3{&EFACurB8T5 zfP%jY=oIJwt1xQg$A88Ie-cuuf_zB zTI8Zd3=Uauttw5Rb&Ml~vZ#R-4mvwSqjF?DBI3Gg=wTPplhQG59z@oo7i@D;oI0Tc zf69sd$o2{nWhFhG0-{+0u=@w(9tXK>9o~yY&a->?rT*h zgj5v(L?Ojg2Cx=dcI`liNjNl*uzbof4yqS=AuPA<^yaNPyY9;R?2P97^t}8$=FnG}&4jg$iU2+s6=!7Xq&u2{>ln-Y^h=PyhIbPEZC{J0P! z0V^HTSq8*?Q|=n*PLRLxc0ZVIqwkxqf94V75)a~;Qk*V7ZhWaMlWwv#ukH&3l!^DK zqRxH(;e7vP$JMF~ED_=m8kK%5Ak&I2=F-BMt~hC@|CW%(R#0o##KF$6g!8D2v^YtB zz-;_a_~358ELcA*$dA01E0SW%8|Ue-rKT7j?fzq+r!$cDL*scNAZSFH zLNv=m7+U#&NEE((2Y{gAkW@+`ojOC|4>*T_VRs|}>m9T#hQ=2agrO=q`Z|fFJkE(2QjtJDF3X02*O6 zr>0*6N4GWapW~s%cr&SugVy1And1*11D~Go8}foOXtK%1mHY|+n_>CV@)#gX#u@O_ zjrO5xpsC>*q#M95rBCR&I9opH&2r6*jMY((%5}BfmMQu#tIvepk(9w|W>$ zF%be4qMa_11omp=M8<2*y5LZVm>(Ct6V`Y($vqScJkV3G&uP(w-N^a_5eogJ=3-LW zzYA=jzVANmTXc+rr?qteJ4)Q|hk!q%kz@!XuW$LQ^7YNWqo98n?8qwUO&kTo{wJq;5jHv>5V7cORe?GAP4jyx6` zVv>WZsaD)zg~gB*>A#);z_&4+2wmp7hHko(NO{O(H@^JTC z04oe{_)nGOM(ot?Ejo^j)ZX@)s=l8%GShCP^ zgc?6F{VI+<^vIm3^KZvVt-%TuK`e;Ku5^*rs}9{!{gT zlZw3(3paDlM8t{5oiaV5xNQ>0#qXqi2ZE#Rd0B}!HH*eo!nUV|C*v1boF%37WnSHM z4R!Vqv}))J{naU|GWGR@8uaVa-piLwpid>VWX*2r+bYGW5LwNx*C>om5*gDqgI+ak#A%9hTbr@>f*o(r zcZS8GfsWZy|og!?hLBm3=n0NjUd6kb=1Orv1K=1 z?$*v)ga1G1e!c?AuAw4CQ5pg{D1YHGm$^5D3cf#)=&TlCaP&KxoZP}JJ92y z1a*Xkr8;TA&lx?^XP4Fizi#yRiyRx%y3MsLjYyuxmCLXPetAtk)s>RX`f1ij3^A_B z@0br$x4qQ8dY?uhZ%P&dEu!FMX)ybKEbwob)~xia;!T%WkK4F}upkhdEGyuTSSv*r zY5IdMBh%buz+Ptp>~(%GW^C?_nMg`3jQisJZtdT|_wT)3WNd4RyXm~wh(M|;fc|LX zx?PZn)#F*0SFCgRd7P8#>gl$l`1v@%t`WSQR8K1ILkr<~^6{~HTs4_9_axByrkFZQ zJ~YPslPia2KyC>a%a{VzzUGV;V{J!*p2qArMa3m`B38JH>ANJI+<%YSklnvstL`y} zhJ!omB4hnkPZK_cEQFTKD)IAHegALSe3wUM^?-Kufy$cyLL&~!$OHKTl=LNz`I$0M z?xq4YjvoC+oSon4fIXW1z%#gz88a!n&maDYu1}s|WBkFS`FsZSbN?FzcUvi|bI8V! z)DNTZ!cJ+BD)8}MO9PN!@Pw}l?-gIRtXCh+T!d3Dr66Yorq;i0G+=lXvMe9q2|T}U z)Y@a3qiGO{YSIG%79+OuFp4B=5q1!J^f4CCn8KrwXcNbj%fX*t!XbCV4>f$gc7JhR zSQBbJ`tRtRsV{(wdK@J7E>AZEqT!@?JBGA?kL~&)4mLN~y6I+|>rbvJt4~8wq8ffw z_Fh67(DVa&Tz{o2=l*6s05I+&532hV!HV#DarDT`ljPm3Gm1f6%$q1)RUFrO3P}3F z;GqGFtxy{$N1_mdxFpE0CzQihDxiraqKE@wEnng*N<20z zGNs7gGCu`;+i4pytU==gHunf)&SPDtfqL^bx;xw?7l1vAFPqxeJu>LWJZ^`N7#hfK z_dQ`P<@ z@_~>wUsNDmPrXUM%u7qyA(_?u7e>kZDx8FfY$M9wKacHt%Jd1CRLY4g*sc@%yj%$Gv(U!tiY+OhQt@F{Id!)!^Pneu^z z77B0(n^RW2tF z_o%+aV`ln!Yk?7gY^RLIBN#kFw4Hnl&$!8jB#KR9}k_FAfa z5CyFj@1<+|u0mSIl(77CZG1Bm=dTtC7)UYhCj$h>b3v!k2U; zOMuVpp(=?}68X#cDVlP+QGn~7X55K+0em8_*I>6>NI+fQGk^sfSYbO^^LtP%yP^8b z3|>}57#(U+?ng~v`?ALwln?@qrF_O*;YJke-jb+eAFQZb8z@5Z6Nr){0`j;46FKoa z57KA90+X4~_pkOJyc3)pFl|Vd`=g39_Q%R7nZp|iEtIy2l;;ll9eB4R5Drh{uC%hd zV9tCWbQ1pan^gkM3j~#dEirJY%+Wng@hx5++0-LlQF*+H7P;#mV@34-vXOoE4Zaxw zIY)*BssbR)Td5YX=zW9-j0@jvfs$G=AF>A6L?`^L=zD4fGj$_~iw z%P6c?S%@}np3rwFo5h>GY$i4gzY4f>aa{+?0$R4tTKLb)-Xw#UbovBp6WVm&$;!7~E`U*ueM%rGGhV zgpbCLGXTRAxuZ*HB|`yGg8@%Ui2CWzy<|!A3gzCaqJI}6`GU1G$7LR^csSRL<&iA@ z_g6SnuI?{#xF#I_t-O2@%>TwzI+G%CqrdL{G^%)>em_jYHUfC`J>9BS?)IX2zU3pN z5d$BfY8fbVFnPX%z1Jj<>!Rep1*jY^E8pvp{D-HPmDWwYqjcgI>Z&$C=sQviQ^(Rt z7?bxe=U>k09-63T+<0K45@T(M+~GifM2N}m1MVG|Gsfa(j0G|=ZI zJP~f3iC)pLl&IGda;uAEMbZIxa-7-AZX*c3#_27jOIqXAc8eOol%i&SKJTb&H{Se3 z=_GBr%+UIO&7+Tyl0&J^yELL*(&wEWkLU8J*Bq`P2gFf;V@D!KekbMc=ex$+^8!#6 z;W+$n#hoA9cY)8yMu1AAwz@$QRD} zg^ZG)-lz<91w46;P{=QJ8TvgQD{uGqM?hS?Sp)B{us&B^@!AJZW1uT2k}H<*!n)=Y z%1mc5%dJz3dlMXh?J4`xxTx;?8tCfw%{YHIyve!g1fFLq6KKjEGvlFCr)c6!_o|Y$ zO^&ZS4##2n(}L7jC&qT5eKwY;lOOYD#D(Kdgd{nEM!sDfN2|eK)OXuX|Kr+~8)J2! zg3nlKJ3s$bA&CylO*eR`R67x8;vVPO81+RItmj_*=_|tGuHmvCZwKPxM3ARV_ean2 z{=WsaEfl&}J<}WZ5gvYdgCpbl+42SwX5tkE{1l^(_KNCDj)6U@Buk=YG@i zOS?Bw^?raH717{7QnLh&BDz8nGJ37k5cU0$6YuSvl?|U+x18vyzwGd$v%rJ+kkWHk zjsDtaIRsWmv{c?emlR8DCTatZdX&ryAQK{00PPF7-jf+^FLeUPoOrN;eLDo6F0&Tb z$Em?L;4gnX#`XNIz>S+#E-{eCvO|Ish(ewTuV_(OqFeklwMlSv_hUg6RM19HB&CeJ zrK%o3US(&QjN`OIppFUsgNir&4h`A#Fz;|6S|k6If^hjL+Zh;ndFj$oushdU%Hnk& zxdlA?)n6|GfZ%<|Sy|aazNL=yI9+T%_IlXMlSoFba&&XEJE4$`kC|&{nR}HN=?}zo zmSyJAM=w69 zjw}Q4=yp_@*()#Jw>+}iYOROt9e_pj=IoCNMZMOT91Ftbtfd1CN_Br`|Apc{x7)y~s{R#h{&-0&)cPBA?*&`SJOl&i z4lgXwJ7at0K@OCWTF%dho{0BS^Pcuu@sX;CcAw18cgh*WpKv!G&U4O9DE&h`ih+>5Vs*dNPJ>t(aj0Y!m#8h9Zn@p!< z9k7c_|E}kIuyyK9eGEwO>5*ivN{avzQlAR2x$#aesJl;2H;;3bXpLXQ-yns*;}+j5 zA;v8x3zlKkhpLOQNh1K0mn)tTKpZl#*L@o$Ss8$*W88YYD|dN)z`_I0VKfi9wW@y?vd z0^clF#Ll__7H}D<4%9K%IeWeWqOT>mMtAAl{P_CDf-`DP>>l%)5YoMVa?LO6LDjjw z4(zs;_3@F!RcY!%ZVH!1!zq>OfAyfmwr zsx>>S5%D-oNZYFk?o8|}%HP{(KqThx^gmnMTS)ewKZl#zN!C=)TjfUX<-Rr_?f%MJ3CTwCmtV5P5As2)dA6eDDs!y3zwsT-y2_d zOZ^F2<^cg00P;O=yBeuEXrue8>Y#+h{9=ZM(0EwMm!9im^sn; zilcQda6V$eAx;B01dBfjw8CDzu@RJ-DYBLdS>(vR+e1k@$i59e{(=rUg(K_3i8|2FZfw_!5s1RfLy#D0T5*$~sWHX*agr8AqYKw{uYaGyuGh_*rg6baO~gupB4A*%)Y+IO zro@W^q;MD_IGro>S&3uvGH-Gt1Ge*7Fw9{=*<6iMC~4qI+8>}V)B9V6n2uhB;ozpW zu#SmJ&541+H;lot-QX~w9=6(BcE>zhjta{n7zd{0sb$nl5yJKHZ?l&=P|yFaE>gZH z$LB=txXA;@PF3vxDU~>=?bN$^%ScWp|4T%*XRlKXxobISfdFT9NQa2kZ_({Dph2rF z0n!|uaa(*T!^U?f;+$&e-uJKALjR)^1(jvUjTa3)?Gt%HN^O`pQX$f;tI`@|Xj1Oh zf$sQ|C${2gUZtOzVO}({f~(IKnyWjDT(G7?o&CbSRT!mZ@ZsMFNRsT*;@)2Jc^$_1 zX^dXLZZ+>^KN3!e^mg>Q0D;9ae?AP0T()jT`h-WWe(27l1Gqtt?Ec8TkG>&MH)Z;1+Q$rh%t(*jRNkNsNpxml!N70EPOq`8eAUt7PgPN=V zah(op@!RcL@u{X|#z&GoG1<<*nQH$WiJGd2*m#w&z&xWh6+we%{t98rb_CDu_;&6>aLHbHWF!-ojal=VcbY^Ezp~J{Xn~ z9mwxd^@C5fLwe^YfCrgY1xjMsriZeC!_iThtBmINXD zNH7dAjkhf`nLmH`kOiHsWS=bs^vzi}V92L61RUV|wp(}K&)3DG&$#q-jT7-oM6+C) zVevU4qa3RZuv2}DYJ7njzbXJ)?fP9f^w&(rLdn)x$4oq9$@sa=z3;8AO_BwuJ7L}0 z!~f_!@5z~EJ43r0Tg7<*it|};gKknFBXw+PMLp>SqO!kK#HN=7 zIlnt(0H-_+9YgEr5c{pQ4+K`QEShST53&H^)nl33la5sJH11CH1SrZ=y6cYcS6>}XuMnoBM+xpsD3 zpStiraby9>Kvo40&T0;JNtZGv%v3>pXCllUf9GKDf)SN9_-7J0IfDb%uhUgh3yNIoY9vePq5$E0D{-BQMNPj0`N|;mX7v`d-Jq=ACA)UENmGiy;Dip78mK3+}uS82OXblEW@Z* zLzD8Xw#s|LGmef`=YHI2fzSB_Q!h)2Q6-{&Pp9rp^sWHxx^w8ZL;u~l))X(-A4yb{ z#dpW1VaF!p6GmjFrJ^OE?)zX@)&QK8sUB5C@{^{^aiUKw?@3^lS}6W2^a929Fte4&+WoH;%*6Q#Hs?N@YcKVo#qEwt$|$7k6Trm%9}IXc z_QOTCG1w!(beFU9dsJ2478`R4^7`=}!-=F{kSQR}4fj-*u}!(eZFku%2Keh6D)p&Zg>?^il^bun4dO8LRVJ2{ zta2ctX9gpp%hapOJ;(bgEyD+B#aTo?Q+yarT0Bczj3~}^g97ln!-#bvbA$Sf@o(FN zbw($ll^GM1u!%smFnK*jC!UlbTKCI-KZ1v@m~$_^B|c7;yCY_c8;f6(M3}cdZKSzx zR`24cS(H)0?xe*)?!MAI`TahX4|Aw7^5e+akJ6l1{HL?>(AaRnu29L`*xv(;aDKgC zPhrA{{9kV;Nms>xT+-nplZZz*pYRXD4rN8YCPhr(MM)h~6QzCkQUwh9-P9jEm^`P|?0 znV22s6@8#mW^r~LJ&(3Z;P&=Ox|mfz`~y7_Ph&dv1L}10D~+n6b9OW>a2T{Za+7to zY}V88;qiIRK?B!K2alOV3|*I#;H`2$h7=SLlek{-_9k-g9YRfiD$1h5TKDf|lDVRV z+B!tmOf|!naklAJa&w4-;paLE7Ud32ApVmEheygX2lhbL zwa-kmkJhWzpC7}h1AHJe;qb-PmJaX$%u&0 zub9&uP-GdUr0d+r+h)SHuHWDyIRqX#lXZp}oCxYn5r2>|=+r%VX}DfJW}7@sbee|q zbS>C&3MJA#iK>x|bD;JI(w+Ym~@=-mowxL7?iz52TH!K@bRb_3TU0B9DLQOg5Zml;t*sx6?iRIsYG3hYmc+3@Tn5LPN7X-hvJJ_LwvAmmo z8HPH^;Am?6%-YXPt*^;~n=ZC$Nu~qU+maI!1MajR@C=~>hqWJ7OQ*JftHph5peV+X-dN3}TUqmU2RwJ?JzA@kSn_D2P)2oK$HG3#nv?NJ6Co7sf}YR^?IqKLrDpNs^L zPtqulhbV9NL=!pgU+kdC;Hx6hR$X22n7H-RNn*0muB&+UOj|PKxq4v@r@M`{c?+QT zSPlg1PU9zwFINd@;MzyeZ?J$vZ;HQ*iCxg|#H%kWA+}9Z`;z}Na^dTTDa4q{1K{pg zu2+bAb&eOwDgmIxLpemg(xWW6&md_81b%?F`e=FJL8YwJAE}dZEbiC-{+!3HL zEhfP|=;wd(KiTSKLb|nN0SV+p0RrO=>tp9xI&Wy=F^h#~9N@c1cZO=(%h^JYsdwWl z5i)X|iP$RlA5|;QT_Kc9A`mQ(pDSgtPLr<~&c>bUZfdYZ8tJa9c(S>Bi9e!bDX5d+ zHm=W2n@J$-`Zv>}KT2trj8^ZfpFDWzN^?=--A0(W20XSxFFh*dbwnR$N#x-s=Hp<- zFX3^azj@~5>NNtS9?qW8u-0dAersEY`G2ZITUoq|*6_Y%1Pq_{&~% zGSKGSTro-&6LpNlGt;c@_~}^3VIn@my;PJy@^|7CpBcvjL*V1I{rHp2?o(b0bU~J% z9ung}Tx!i+`z|~`pj1VG_Vl8rHZK;=K@vFULq|Vmr?B}UT^5D)xt(gx3kyW@mIXzy z8)gtUFCv6~J8YIT7ti=iFRSIwR#rYJI}%#%p67Xf>o0J3@$F!?>R^pKS4)GuPoXY2 z63Snn^g{P(IW^J&zu5t=8aPKlpaM7=bL<_JCo@#499>f<|GT_ZVKy!+OB*-Wt+D)x~IsH;? z;4ct;pzRRK#JN{`*H{XhLX&rmFSF1LeA;>h`jfBc>WYqOvHrwlV(qcq7B+F2536iI zfiIZT0kiAz8)jNJVA$NNE=J(3y)j7C2?}h=Pgw;c# znQ_<*d2in0-f_%?iAV%^XJ$qktt#QDBocz35kg&k3>i^Aeui!5<&tf0|F+T0$LTvJ zq4XJSuLbzJ?eD)f^};@~s%DXH6t38(*WI7m!QP$`9TZ_0t|r3V(J_V48FsISQht(5 zV0?SXx~-r7tKa{t?NmuV7m7~2F`QehPVL(VGI!mle7{IhCuSJ_ak1Bb;)0iU*H*mg zz=Hl`(ck)EywK0(gg~X3jx;bU6PV9-QiJ)vy7x#Nx+$DU#D`xg{A7S#WSh3CN zgr@aKazg)D8;RpA9B(*sweA_e)_mgRMZE6Zoh}IbhqdC}GCjL;O}{ zWZ*m+509`gTF|S=j2?DJU;I_lFxLS)Y#4IPEU2eg8| zq`4&7Gv-ZPKqw{!Qi6lWcs~hxHw-WKU(xLs&n6hRK=1D_34Y`=Am4f29#x(1IGe2J z^iVoA&I|0*Vb)%ds+`9&3@wOfa|PUK_KF9JG{^m@&11>=4SjEUp1PIlamTw-{#|RP zV2$M?SNkvh&I8cnrJOl;bWh!>8`AC^P?85G_MTprit-iVX^-u}PO1SA#(R>cdbH+J z{z7=@DvfcA`ZL_6O*T*G;(~}~h{$g$SIGOxz)c2urhg9DkgNP?ZPBU1AcByp==Cy; zJwI0$GKqUANGT=!)6AIy}l>5;`{jHO5>_6+S0}pQf$x-5qm${3l1aeDyxrD zjO`UpRK2JByzi<(GjNrGm<6UeiZFNd?=)zV#taLe#djPN?e>f<-I30;j9a?XF53*-%+k@pD8*rPamZh-wixSyO~*YX&O|;FAbCMZQr>m9;6p} z>Or-G7uKrzB%+TASydUzqD*`$AVN|h?9+F$2`vc18M#iXRJ60c=bCNZp#q+pAf`MB zr|e94HmROb!Zzs*cCyetod3!tx*8|W5*CC8x$h-aJuv%|WV&B;w|L=JKcqaP+(MIf z(y4Typ6E-};elYJ-ez4mJ5X`oI`N;qS+t!FCE{I%9mS}HE{+_FE<-tfkwUOva`Vf2 zUavk-EbB;6;9fJ$eW14X(xk~}`f@pQuHT=q*C5B`Plpfq@$pBU7gW`2AonB$Mm>f^ zV7_8mOLz1$76}QMkUkU9D*os1S&0jgP8MkZjsQ;)%P;tk98 z0i#gdMK&gXmjnjA)WHmY@aieS{A=?^L zg9N=a^JSXhy(vXKx)IYLLvBLwm+ZBGzY^^>Zd79Pm$6h0*_Ww8SF#Bx!cdaLd4nrs|Q=5JSb7stO_>zjo;TkkGeRO9T1A6^9rkYr5fmMW!9SbQ5Wu z&=Yp$Ya%z9KizlC$WX-KFHSc#MxZoBY=Rp{!(1_LxKBpz9Re(;aE~da{xIupUe^>A zpt%x-Q$M(YT3-D2urdK>k#)tL{IXuL%IC%(6AhZ2KY?qC$0G!IML=IFR2taB!xj5> z*~~ep(dd`|H1Uvb{OkpX%q^}@5kuZxB`JnMy`3XNd0IQ;wo4#j+1t>e_k~_WdHt+! z$-2i?V7+&gbQ~Ldt)xCo?Vp7%YW?kn*Hx~oBcXS$sKEQR^pn(1y_o zWqcJDR8Ykq{Pt~QA#_RnDdKxm;Y{(u$93+0aI-1=ob`HQfpWqyO>o&DtN-~(Do0lx z+QX$Us?-OIpNO$l={nd#OL5$+*T>J{VXF69P-2>@^kG+2DKW&-tgPYQ7)8Y_tX&(d~IQQ0!)Hi7OwrFVq|exACj$&fuhL&c*AIx1{BClFJ|W^ zwTMG(`Z0Or$q&Xaxvu*qZ>?X;!41OgmgdH39a!A+^m!4x8$Ox*b7nb^?1r18I?*(O zAfBPKAv$R*c{Kn`w=|<>5i&Hx#eZY66L+~0!2nKsG_ayA(T)` zM7m45L2^K)I|Kv)0qO2$P!Q>qZb3SwbC3=R=^nZ}2N-6)|ft#w!~ zYbqG^cc)NICki4q=BuoEWIsk>s)xTY=w3IIzxivY7xi0L)(z8rI15=h6rI>AXTjP^ zTtb8D3p|2v*996P$4pG&`TeA}zLm^KjnFzi%rhrS|6otI3ouEC&#C_{*Y)$e*OpXf z+@W4Mubo`AdTQ%i6T3*o{mN;3zt6{2#@ozX-XTR84cCKR;vg{&CXbyVvaePW(J3GG z&#bcx)PDg~;0%(QaOm)Ian;PyhEf!;>(TgZH+=gm#X#%V)^cbmN+Jq6xj}5N&}~)g zIq0%=AB3D;d9$J)KFxRBLLO{Gt0WqVFAT#WZS}XFA;gfF3_xz^@*|~PyQ=jngSjX; zLjV?1E5v=qvkoW%(|cEImGz5lqhRhoJ+Shl$w`yd%2TPUNSAmB=+*qv;b08%%=r51RJ@7m|hAz{Cy|zfn$wM zGZ=esk%%z=Zw)bO98m~&c?KbZ25@zsNG34TBilJC$HUsx<-Ha9@$WpbP_Cy&n-sWv z@^eR%4<2j2%MZkmjEa_1vdIT5W~9O!gip+|wJ(cSolss+PSO2Vcb*&y&{5Gos(x!K z_$E0w!E>$G`CDu2^S(6VtE1{!e|?U*C&MoK)I@g{w%Fo?eZ%4#A3e`M3tnZxU(}k# zhiNhJCd{V#@V@-J=pKFC)E3+rCiVnE)TlAUtI@IA-+iFnjyLOtZNXKHK)wP6bsQd)it{NgkGVNFm(@3oTlJ`B!;!-hK2t}*f=>O3*+aU0H zb{zZFQxZV5aE~g{Z^!~|xM4PJ+HB7#=l12O(JAJC)=LM==P#aMf263S6PN99j zDpG05C28wjIdZ}|{1u)LWI7!UFCB>$E^Iaozm1t|Xa78uH{LOS&;b;SqqWyYd5W|o zTldE^nqG}BxzCCo%S7M^oZXBk?|5&l8fw~~cQ*lY9hK9{&8UDb)d>*|XD?xj>yHvY z=Jk^|mGz&Nb0;(4ix^2Z6g}Wx$P8lYl!Ho84H?OM?(fQ2SR7OFHRTv zR4(*ZIJ!KtHz%d={vm9mExMu(C6)E6l8wY?kXg^(B>1=F3~!62_X&k&RK((BFG?0M z17eI=Pyicv8MlPPo2<87|C->1NHHDh`2zmM(a>-+4xnPpOEqfhJziC(F|XXv`G<40WlpgJa4Nbm?zpfkd@JAwt!L~r(xEzZ;T&t`RR=5d4#EyPv#@_+cB z9JL^Z4BIB&*XBQGHs+aplgJbTYV*4c$gI3+P2K*ScgMPXnQgy9t2#DBx4dvP0x&i)qIcH|1PJmnRF`mOWRyK9~*R6Z14=?mL)vuVB9F7S9 z<#9@3g_dU0@JH1sWB37gaj?W}VRgo1k@u!OzOCU<`;i=phEC$)a+2fMYtzrDtq3rI z_ou!`ueST=cj1%9MEsjpp!8~mBt-fJa`Y%by#QrUY*ONJBZD6FzuY8h;6^AdJX zhfd5@FFWyk=9U9KDF*Ie#Dd`ojS#=NQf@g|9%th|ZzZzdBPAtY8=a>5WIuYj*-~k^ zJXoJxOgYeE;G4>s=uqL4Yw*4yTZwGK^M2WO03TOu>zET->kCFZt8BPEuNWGuH1z}x zC>T-}=&pu0NM>F$EC%8{^1R_a54cQ%f4yDShF+JP-3G!}s&3K5fbz(v!7$%CK;XcooKJe$&Ste3HnNq`O`WUjPSF%L$F0@dMCwQOC%e5lW zVxlDZm|=Ljfgu`L<3Al9^W`aYFha{>Oczg<-)10A*e$Vwa0g+7HSL%C`yGj|SkWBu zWc9Q^2$BnkZ#QW21G#|!NNM!Lc*N}Rc%R;Ny@gjiv_A+8@&A1AMAH~9263P`D2A$v zvsQ;>T;fbUZ#uB@A2-;yMn3rl?$Hd~SJgUNt0@|v<==^8W3jSsVW7 z{nd_SYu8Cs8GWIUbS;g?vo*(?ElHImn+szX@mrRLj6eAe`x|FP%b@rtRR5qOcY(Lr z1wIIX1FvZXzC1VJ>mZ%4|Gdle%gWSrS;Qxr1_!nH>0s+*TM**r&vkG6*#9W}=})ydtNA5t#t-GV6P9a!IgcsdPJD7x_$IGzLvKZRf7R#%o{U^KI&aks|X z`BmFNM?Yq$7QIeB=?e_BzUeifuVB~DFPbJg&@lc+PaJRB96Flv>QFL$5CTXspl>%q z?4PIE$S6NhMyW9{;#?39DR>xNwMZ=f4KX`(b(ywK%LT?yr)*3!?d_w(YgzdZg?{*l zfuArSxhK%*u+{>i{H7Fp*OI9D9KOJt3WPe`P9N|$g#Z+1P{`H}ttbhDEJ@--RZnT= zO>B_xl!p9#*)X~}@FtAwhVmZvS}o=Hygjas*!*u6e$nl>@rqJf3Q@oc8mt)=B(W#g z>2FE27fW~rKhwe7V`?8V#qhLUAiw!C`{~VY>KdGur1Igj!J`zY#in1#~zXl zqeXC`^~oSarGB)&QlHTj38n&HV|K5~vx0kBOPU2(JC1dVM)@ahocf0w;E zZR&xBU6|}R%@XCniOuN>c{W;A5P3=DPGo(cQ7jewS;p5Goh>+3C_vW1PsZ<(c95L42|lSGiZ zt_&al?tahm9N{Ht#PX^MXydt_u_iz!CRXJVBtqbuQf&ybMm6M!QA&#Dn>>?cs|-Ur zd*5lBt}G7G(O;fPx;do(mj(D-Jp5G|=dTXpUlrWpuSnXm%=o41R?Wn6{et62C1~OC zSrz+e@@(=SuB^dlH%leFmH44hp^aY<+A~SeeZPlFyqGf1XhN+5K4t4K zTWZOBvxvs-lt{a|;pBJO!-!`Wf{=G@K6NI3{Uree;95-NYEAibRw4-FtrK$pHLy@~ z7n^cDE?&Qu5`T)mHvh2mlecE6xa*zkhi=B$0t~Xnnm~i)WKD<&oMg^hHj`b3&6u)X zg+MhSj!+zOc53p}LE~j;`KPw_lq6xs%yI+2d3v= zw2z;ydZ(4Y1(x%~*kMe)x5u1PttR_{%o~LcRhsb_>e7?mGII+T$(Fx0m|h52Zv3y73laqAgYeQ(KHOhrtWVuI9?lN6tv zn>fL}(yCn8;vm}BY4FyCqC}GcBm(%bZ@^nU^)j4Ru4rRj@!51?IH4ES`514$cPVTE zqNZ5fn)p%ROkShOk&AO>Pt0^qYddmqua32&J4pGW z`yX*!_J8{03MBm8yGj0)L6|!j{mki6T{yJ1oU8|$SPp+RHdZ}o$J)tnXjcC+1;d?g zdsI}i2>H!)_r|xi2Ji-en^3~kvubZEGOv94OdK8I<7buElfIb)D!)+v;HW01cpM8C zxxo)(p=DrGl0l>;xIZks3x&0?gf^F7+yG&Yc?^*~?Q$E51C=5)Eq~mlHaN&Br+reX zBr!K}B_sg19c-!&3^)doYkD4c#3=9oDn}x}HtCs`Mj3XFCPkcY5Jz-4wrOunU!uRf z5t@1RGxl*c#vF|Ckmn+#2bMalnOx=|OTm10lbl3jmC=RM$@QN5-xB-s!6s|#S&Q)+ zd=RouNjP3u@SVr(zy56$U9U)y${=jsMW@Y|$rY3AQL~_}kbZE0Yo1S1gh)VHZ++hY zO3Y-#%uOp^FX?&4o<};%=LS*y@-tx8HqC8Tm5h4v1`(tk32W&)JgNlN|8!G@vk?LF*HQTlGu`z>kqlxn zDl)saE_i?P#9zFZ?gZBFMN(=m-m1@MXOhY4wFnxOSuh=iso;A)dJkq8|jt^ZrS{nJSfZzrXBZKYL~DM z9M}qq`}}<6E`D`Dd-wNnzPfLUvjA`lrB6i&A+&}8g#X=Ft8%FlAt5j@iRLh4Iq;66 zqGJ)HFt^O@2TqJv?+K5&M3Ti#>GmK0s;smTx^lu?cS;fJld@baycofm>FNvWRRK-! zf%Xx1OxHz+?8`@L*Dg>lF|mwQ)=m?nu+RU+xDwJ4PTAzdX5~qBVL_E?JSnVuB5oCq z2kvFPB%H%Gs3@YD9(kn2d)s+|Gj(M|nfGG^GXJSM*OecUAW?_?svNRL_IfHld-uTE zDS#F%890*PEqLe-@nSe>7=;b%j_o09!hq};t)bo>g zW9|J1KS=sNWxFS}>&g1kp~s7=@2rp52cc$-sO{Pm_1hzJb7+G$J$OeMmVH^EC3wXz}vkf215FaejRC#OK=B1+r%bYc2TnVY}s zh=c!jcB)1(9BS8IxtnhfU^6F1!!gX4)gL%(zNcWkrz37vKY4r48KS~9K38>>vg9&*Il%?D`DEq?a>M@V{!XKI|Y_{hv@s%qfp#xH#CQbxw}&0wv$u0!rwU$NpEEp=D`{qexHQ%vGwKiGaahQc|to z5)qhS354ctS&j!%LhVuG=~~f!1}vo^ORR^@!{U*QjnXgU!XjbY!05ksi{(ByyN@z= zMzR@2rdYE)RBE5AeSFE>jBAWpimQqZn&AzpTvw(EgB!fC_?(Zp)>x;M326~OM1vg%|i3eXhiZ- zRyq;+`XaLHFM)GYjikPMj~SkB9G7YBD51AR%UUiP>EiVohZP)MXRs4PV|!9 z`7E}TpnlJj_`$v)9`auI!0*ft(E~96QUD(TO^TuN6L3dpy3q?GvG5D^trR$aN z@d=C}#W$JQ78=y~b^|C#mSy}B^X`z=ie(L@7iEir6q&D$zJ|aE1kPp${qI-Bn{;Rx z4>(GAR8oM{oxRkq{a`2wC9)!|4l648gBKn0TG}GrXnw8=4{Fykm$~k$?Sx;Fi9I5X;=0ti(Q6LV=LA$n=3@i6?m@k=+ieZQic5Fr$%X*W2lI;f+t zp;n#2B}?Sm?hSYZHr>JTWOX7E}S@GeD%~@{Pvee02P`+_i`I?JfzGBfg=l z`}y=*;HY4ubE5~+xPgTQ$zs?VOo0G5&jBIP(tvqaappYQ9( z&epUdMqpm5A*p{=0W$Gh!>>jjpi3=*g!K%!zLouu8o_7W!l`>9Pxdf_EbJOl%3F@8 zAM8Gi(g{ehJ*T)CA9JX13o%3!dG+WtNggMy!9b4~l8sm%k$8ZS)_61mZT08;J^>D>>)40u>oFGJ~&*_$RPfpl5nHlNd{!tSQ(uOeD3#RtG+ z0neJA1_9!VZS)g0q#r#}w~Ut4w* z?`{v#a%FuSj$0+_ffz)Zv^b^U7drY}lEG z&YohD^sKQz)-M1WUY8aI%`kt>g^HI9g+ZPt5O=B|L{~U~K=E5n1rCXQL_-sU}Qt`ui`(Z{NG_ap4{o z)T7r_Ak5Wk_I^=Dj`w=ApVQO-G7Nu;50FQFuRl`&WHI3J`|uB|B^d&biIv1e_;R8$*$xQQ!| zKcbTOvNJOuvX=mndiUwSsRUnHqjy+33+=NP8&3L{c-1|lIQo{e)dR`zR5B13tZyoK zH@tee(xuL5VSRy)=j3nKdDaI>PJhayS<)jV+)3q79!wBUr-w0MMbnxD?#m*4GI1T( z9srk`{*Zm$Nf~zJlgz`2Cxeh2gy^fWw$t+y@PL0;B<6VU?a{tj81KMhJ02?Ow+yegvCY^4WAQ>;?!Cw|u-(jgZQHL_Q$A+kdM1S~x}>lJ?!)ivS1ud@Bzq=3wV z0i3wO((j0TEV8N5@QaU(xhhT5rmOB`eWr5s`^Am&!oNSmTrXYm0OOyXn9HNMulESO z0-&6W?v@h$R>>he#sYv<=->=W#YTF=b{AeJSfWj_A%>ua-u~+Zbk+#UT~c!9_4Ij-}9RQ2&NJ5Yj)MN1-waw7%EUvIXH^_Y;A1(efA}XXLCLEKOPG? zlbu&?n%?up z`6Zql+CRqFYVe^qfvYTa*gtysycj&ov2OF75{>^=^!1_`;u>x$d`;{T(o3L@=!Kg! zzlM+4mgL-JuN1wJC}0fkF*RkpHuup!sy2MM+dF`tuD_x8Kph~6o=J_nqvGr|lydv3 zik(@sXn2`F(MUEEU;gF4Fu>n{Wy%yu+ zM|W4urxPp%Iuv@x02@+nC@rW2w#sIIkZVAWyG5z$$6|PFI@&*0q*mDFdD+-sv^b~k z&K|O~F=j;Xzg8**YrU0!T;j6&detMxh5@0JJrB`+uiHxO`LAY&1az7|_*coKB~UZ zXLX7{t+rQ&-Nb$xl#K2dXI}FhUaO}x4QvUa_^ET{qUP$FCLo(Uv1j{d%#-n$1SSCur?e6=pioI4SzGid&v9yc@x9Q0-@?~6G2z>y zO+#_nocNB@+UTueO@Um`xM$tfjXBYpx0`m!k#o)O?sip+$c5LB%IqJtCT{`9LtXXN ztl&-k;rC1@wMBVM_7sfW&D1aV-h~^JYfhT|cGZ?SFfPE~Jvq58(J%pj+b+H&!luRSm zKWK0IYVTokc0DSlUnTwTW3L3-l^cFa)x<}@zs*yOkmSA4SdV@vGFOZa%R3^AL11*I z$2iA}#F9uF+n;`HK4bmQ`43!nPxU3wWxQ(9@7r{7w1`s+pSQW3<_YShwSN=a_Q@## zat$&s^Ip6Z(3g%S>zA~TM(m_C@lsu}3J)+f4nD|)ClNx! zkpM}nTeNr6_$ zKkwJ%3A|Yqrz>qebPNd)iMg6gx&bJf`Z;a#q@t7kx(OzcF$|@vH%P=+M}6l9i#=wE zx#;3^OWta#U3fXM7zVWqctwl~1eQC8naMZGS=1Bi=kHK);%IPfesMJW_V}sYV8lJn zUKV2PwC@l^C@olt&qHTGY(4uig}79oVQGK&g}*%VV8rAD9SvT=*p8agWaY^$5oD2M zZe!B%aF*jN#SH46Rc%bQ8mERg(TKLea%({7yt9sPEbcQBjCs;m6S#khBoNg)xZpI@ zIzP1=KREI?d5(_V`Hi(|{nV8czb6m2^Y*3#@I1NBeGDDUx} zkVK0}&w(_ss?tD8e5I=SMPWE|jzTWzv*Q9lb^yn=CfS7~*^>F!lNgX!@gTG*CW8W^ zQY?Zl=)T7+|5rZ@1(1O!UMi{K&`9$ye5+$LKA6z@n~<4_v+lRYtW$e}sSiuP-R3^# zs~G14j)4XIQ_NMZILQ1BSEKkDLG82(Lfi=Ynd6zT_r_;nDK_)`$He{jy}-!(w5OK8X!=uMAy&z@AhCtf#LrXz_Py- zjO+B|pjvzo{Ax2dE!N>dd{Y>q*B+o{k{7WIkjoPpmHl&er?lY!&WS&i_t6-}2dH=Q z5*++t&`}X9Jl4*xL7ee^x0C-Z6Zy{nHps+fBSaFIMS8G25-0Lp$PW`32$T8CY!;xE zjOBNZ_!X3qa&HJWsL+6)EU_RE8iBn-=G%Wo?SxltxJAl`e18+rKuE-W(F-tKnUvQv zXS4^ibwcAT4&G3}Q9CZzRHAV#Gj=LEm$H|BX>czVltG&6-U&^6SnWt4sRK1%XyD+hLGUlTTzM4HK;^U|<)9HqQ5rm!avS;n z2|n=fHN??2CDG*05m>z4CKmFHR_8FB)_u^f#=hLS>yzBRMh9oi)MyvjDbL}L!+TKf z-zT~JdMSScFZz5omgm%`{`S>{L0{gN9Eu^USWz!xE%cs>TIndfz4m}3*CJmHk8w=1 zBxZIKS6wvD@6#NEm!SuYeA-96^vm{23W&kyQ&Ar#$yY@ED zX2MUgWMNRFjsSBot&hNu?w=Wtm04vJ><@1~qu*eL83`{{GMB_WXZH&Z+&knpC8Y)t z4ei0%?>$*9?qWbmY+~n5A{imzQ2Zx03!Zy+HQOpos3T6GrRmerb3l+F`tIBx0z5Hs zm)tbDfnf70u3v`7x2D4{rQrqsmlDJWl>Cc{X`L&Kli+s zWQ}uXrm!ObZuDV0TVU+R$EOdmm}9?{8)b+M8K6i4>1%H*04j@peDo^6?Lemj#oC-e zG^w>*Bamd!m|(g<7H43ykso_5j7B|k*n%l=wgb39(r=@x)*H30o#-*7m#c*b!1F~9 z2Vyrg++`@QwWx6y1Hkbn~xL{2Pv;VSz9!NG~Yea4D&WG_yc!32HzJ_P184! zcOkM*4C$aqug-Nvw%CythLN@!SPxxdfWiT)4F64Q6>Dgn7ZxvgYY0b!WxA{FJmF3_&(~HBJ_55ewR~NdOr#F!eKPhEFz1eeQz%W9IRo}d)Z|688)nc!W z-a?KQOHV`0f=;#1{`Z=jr}Ox`RAo7 z#LcuWv@>IW7<$XTfxEh|Fe=J*;hp_=%?Dv3%TRogD!(YXdcd1h)Mye?Lr<6S+$+k! zYVtw2l5$A!g{J5R?8v`Ck^`4-H@>n1(BkEwb2ylW^&tr=GLgXbRf^kQJ%}(W7D4c% zJ3Sy!&xr5y%Hen3l~6O^n4s5xwZzZWhtx8w{4HoKcnly^xeR-NsilE{1KD)&`v4l$ z@CHQq4--GB7Iw5sVEe5p^%)LU!dQlC0AfJ8^y|F6i zWYBPW+Ekhe;u{)&74AbTYFW^I2vYcRCQPO6iaF+d{|)D``AwU1RH z<@Lu<1P3*WwP-@o^Dhjh0?H?EH;ohNDRmEY3IJN_63p7Z^3`4B6Fs9w%0JwC0kuyQ zKW?eH!3QXf3s z8t2;ry*Hx%0zbGaWJdb7vjA2(9$`tt)5!1|9R}NTZ~;;`q6~uBa_$$3_;+>KN0SVV zd=JO!twvY{F6jE4(OUNRFYl>6{%nH90Neq57tz$lGek@box!M3{MPA!sf>>a!RPL% zK%~6yE(V-?X<-o3d-pRJ`TLA(Aq$kqECd$kCPFB;IO(mt^6Hk^(a2xNI`vOYU|Y;C zcacLG`_g0e^OKK>8FZ4jv0M#yevObbA}Ohd8|T(?GG&O2L;u_W7&M;5V|P9}iD;yF zrx&xIBU+!R!RTWcrfh|O%qr9CfgY8ZdJ}Ih=L_ur6<|RY+Ps$+7q@guK$&$z-FEO$ zQ+>sV-%OAjG5qQzLnR@n!^Vmp7&A&(Mt1fa%e}2?2_m}JZ2tsJ(VBf7 zmWHsi@JvMB{f4>^IrZt=CSl@}J3YiK2!;f*AX|ex!G8jMwa>&wdiJ~gwKCtS1u+<< z5_jhL<7-A^u67@EqZi322>S~O8$lU__qVOG*>`V^g~b@e5?oj zbXlQ8Q3>jObLg-n(VADM6e@m}(*-oVShBv7kwJ8SVrD@WJlQv9Imv-_X4Q&_4{DgJ z2q`bd1Xf&(za60kUR*<8AMF3K0OI(iFn0wQNGDigIj6&rT&aUq`n%a7Y^Z2vEk_dn z*2F1v9_FL)FS!57jMYWR^iT9SVN8(o`3VbD?d{7MM@{mA=;%vf2=~~lS`$Oi4?;*g30oLM+c5L|cK87j!%!4{ z)+XN9;7s?h@F|*K6nNxi#oM2>T5DN6Pd23tuOf4!G!<+Ey*QQD)IgD6UdlGd-k2gz zs1}2c7;dqG+Vk+pp4>5_@G7=oF3FN-G1Zj~6u(;IAm`(U*}8`e{IWDjOf;4=W*n;5 z-WMcu5oJ>8@7En}RnO3E_U8gisBw+XmCvFv_gTT71+^}?dR2WDkpyR>dl~R$I}@AU z=J*XqN<>NbL*ZTP-fjxqEAi*pd~?B-Gy-ik5eQ2E?j5l{$Bo*OoD{bVZTKyk#_!L0 z1QK2Ll2aWmHIbN3q%A?+m`N)>;CBg4d{YsU+mZw3(bsmSRn-UK(NTb8a z-jh*5)SS8E)LNq2LETyVgB8U|>2YcL+N9*nSif#j5r+jn56N9-mU8-Q={jMhgtXw( z?cbA{o6}nT=h+U7x3rTF)S{_d0)kQ3HM&;$syEG4LJtI$j9D7Wt~ofXxsnl|17CL? zpzy0LPgqQZHXH5cJg_>$48m;$4fw?0mz8(dp^{Cx8#M042iJO?o+Zp<)1xTWRCcZ& zj{ar6-|45Q`#;V1P-${IV+-^-KUo2KH(=D@E~&$sz>YPsyk(`xY<*Am&$wtKxv#bi zzxy0q7QJd}BauCBT7fojJ4u)L2CZw`Kelt-ji44E>o8vp zGW{-z_LvT}F-;Vch9CuI#dInt?+Q}XG%$9KZBMULBtQ9#aN>5U5l)2A;?aAJFIhMU zgP1m}<1qpdDu^Nl#C`86_gA*{-Uq9Aj!_$7BGjvpfF|>Y*Y3OH(eMMii8-^uWIBy^ zS6QxY^{68S;L!!zvi)5ZwodFzs2`boo!}(@m(+Yn4SRYtDAc@DufuQt*H1xlG|px$ z22{Z2DJfB5zBh9N@~3kjkl<$-H&Dsfv@_VVtW7{%#G^t|Dh{Yba?{xRN(5!vRiu+` zSdtdoYjR$8O9mSB0Fw0ow9(STD2Fl&C!$~@%hYg) z)p=DCc?x_uVFm2-sQ*Bmh$;5bot0o6o>Ag4m1o56qD+gEYmS=xW8Mrmp*qn1MM)ND z7X7NAm#)f$;oRh7pyu1d9~eOfP`TxSsD&on$`}yi?JTZ)8HzxoR zt5|8(hOx`9_Y?sm!Qs}Sr%_wX1^oWi;vs9?lE~#)2}GPKF?#PB?`ztrVJ;8TbX~v;4LhAt5GE(N^S6s^ z5U^9FT;Y+a9HFT|qg+S$SIOnR%p}!?JZQX$jIZh> z2Nw|f$0Vyu*1vt@SBCG4-Ot0WS35ARz?)->JyD*wkioTw~tmt zy}3VccEsAic=VSrCOInC5}#AB%23!7UUuN1j&m3x9?y+la8fX;+?ArsS@Ho*;0)%u z4z6f)YIJE4{T)kSe9kaA9-1+G`;F*Y=Kyifip;uX!+Z(^3|Az5@kwtr(FX%wFK1t= zBR5!=*`q#RvNCM5InWmup)TkgRGB^Z-EG|0hJK>wy}W!YN=?VmW!!BP;8PS0TvTxM zqiA&VLw7+4R&7s||1egIDA<@_T!?F-7omZoW&g6jwDsIDoCtI~V5R-1oT< z-TD_HMrjw*<=RqYihQ=(Xi%a1Phz^rHO$?O-iWDK^$K&jCqN%v=sXeO(|82N)c_y%<*ezC`g_b}{S8%>(i#(*69L~{86R+b+DMeqvbu3_eq37{cN%4Lju(+~uq zz~q^Tzv5^?eC;pA&Ux}B7tHf*@#$Q5Gc@nTOFT3VA`6tQUK5_}DSQ-y0&wtpz^Zy$Y$57~KtdrQYef97_i28W@t_{ek&5M|`>rYbfoPcMsC)>X* zI+y1texu&k$ufMQD!EjC)7m{YYPm0R1C7q)&R0Cay4#uNkvJZib2L@Cl(}oifj$;S zKbCaMc`ucH9yN+~hRISQU9%4ki&@g0{gT&gFRfNYc=R<{pp%<(G#eBsNAMacpKmVm zpI+52UYy6gD)P)Bh)8Q~$dw1C(R(Z?I*!SA>Vtov4ANJ8ws2O~1o4r-ue9&338Wu= zl%i7;4$-!3YhZ6$RPH4MA|P-ls1xB&@)<^_G&JYU8X%TD@t7^tL# z`_Y;hbN8N~wt_dkaE_K7S8t|e^hH=Z--b26>rp{!0|}%MGybStXpFMnInSFT?15!B zL-M@T&=9av&M)KdEP3;=aX@;o-Wci034w@mNEO^}zLfH)1r!?cNleX{l!Esl5HL0- z>s;_v0HoB z!LOnrt)kRljBT&@GLRz$jf|^?c8uf&Ph51Vld|h~sK4%$)hy41XZ-z|qjKqw_ZsI2 zsj7HrXAsGlh0(NDQKU}UZK2Q(IF`TTl^t(;WWgkklU`4`})%GfO=hq{MkX=B@c_W1i(0IjHqBgs`B=9>}t@ki! zo1>6ro298AYm}v$sTgM^%AqrQQsi{)77x*v#PiNnxIaTwVx$;CC2E%0e*Gl$Hyeda zOC-CWt!f_@>B-vl{DI8Geego1Y5B6|Ic+PB#*jAeVyXBWkJiOqbN&j4ip3LOJf>IF z1`T2MhTT2+GP}cU`Nia8a7hN)EY{1lopALX^annsv(T7eUzfSiACwhe{I?Cz`X_?Z&o3L^hD2 zx<8%hwkka-tjwqk)JPKd^G!LeHh=gt8`t!dX$?QNwUT#;zZz(nIv zl1V5|$5%x^#Ba*o7jv_bsdz9;6%|#oo_~?iw6;0ISP4x!%O64>4S%Aiq z-!3uczV&12eAekPk_|GoHQzob{wv>G!by$j#3)7MoBw_{S=6T^o1tS`*oB1DM z6=lg*dSV$TPvL4iJbo#P^TFXPlE-}uF+jt%lyUha%4p|Re4=o=mNu&8oSsh>o!#;& zb_}Q@n!=rV+eqX(BO~UhE0Q3)&k3@2Q~GOHZmu;RlI6w&H0FM4DIoarRi}UIg$fdn zTvi;mget63l$3Tts385M%PZ3b_T<-uoSZdHKN+Z4692S;l_|`qEqFUckExTfRsF)& z`a+FXiu{7FGcV)c0`Y(~9b2AM9Nz*QrJ*GvaccRQsWURIG6u498R<@CM+H!Nc6_2_#eRAuVWQ5hKb_xs3Mv?ux%yyr2y%=6|YI6PLI}C!681&Db1N|-umUYlLKEQwISsqqD zof#ZE+d6O*5q$4YIjp%mwqCUR;ICGhM1b zZEujP9>SUMe7t*4a+LO>G#p)qkP5Ay_~SI(&JF$Pd4w2SmhTpyDnNcd>Z{BV0Ra(O z>RYeiA;u4#)8x{i)N2LldO4JLI6N}C1nbPHuJs-3kNL2Yu;|@mP2u~VeR8a5vp=>b zifO@(t~O(H&N` z0XshLuOPZV*GEBIU`J7O1?&UYM4=FaL%G#weK757Mf zeU(Y1t6moqo%ixU4{0w9Xj@wRVg65VdShx96J)jtd88KDFM~XK`yuJWALhGZfv*BGY9bZimg8HQo#i=9HB`=edIw`Dv_9T=tBDkHp_>rif5w-~ zr(DBlUNdFdBIiO13*E_ib-?pO>5Gwkq$KO0rRL)e8(=ELags8H8r)-0-)Bf~l6Sf% zWXMMPb*_X!u7&#YH=80&^4=30?MATe@#;P%Sro!h7O1y?))kb;_xS;BVG=o}d=92* zJ*otyJolgorK)et^(5G}MC)Ndf+FHw*i?_l0~^E%%NY>OI-}S+VmFG`H$OvvJ!N3P zcEcNHFnslb%qav2N2n-_E=tT30eLD{=l23C^r7SjBdveF`=`n zjTUjXDBc8=4Zw*9YJMAHjrrQBVzei9Pl;q36n$X3mPPc2mi)dspna!Z{41P~KJv?@ zUPw-2fZ8WfK9c@!0nPkzOy!s_`%`G8I4<*}Zg#2T9gWAIe+2MM@XLm-d)a9$c{*|Y zSZTxZaFSzM)ETBz3@b0%QnePx*w63whyl%e(p1LJZ%LXx-SL@o1qs{%ib|KOHOAwA zr1CzUT}!dnUQAH%gxE+h&tIZ zud7=yX6mgt#2?oFisqgfAsU|}m98Uri#~5ZYB4o!N+|F}mwik{JSmLPhV#7}!)CNcEum-e=kxZy`?o9A2%BllKEGzM;$Cax3% z)Nw=MdCkJNfv3PMMLOe_Ozr`qT(wWG=utQCj=K3psFgtn{%;x6C4o?I6b_>sCfote z>L*)-JCD~nL~if#%5G}^=*0(l%u;XFthduT55LeRmxkCs*kXp0Xs?ud+`X59lXHj+ znwDED$eue;)P3Bl#sn)jGCll1nyxA?$}ieZ(cO)7cSs6@ba#mY5>nEgGn9bR-Ju{Y zN{A>ibP7mGcXyY=aOZ#T?>?ND@9~^(@3YU^YptzhG*CLRZ9qs8ZeIrIBw<>~roSq9 z+c;L^qrNNf(*Bcx9QRqXyQL&6GwCAo2}1}K>~_}5ruT~y%b^z8F|R8Ai4HQMc~lKq z+fuM5$j*3YwL=xKbNXwUvL|wRNIm(H+cYGS6jr<(9Fyjg#)vt?go>*7q)<7KTHDcq zdqouu)(5=6!NVjb;~+>sukwwJa%N_8FCPvE2>&<+b1z11VPo*tJ%NfB=v(A*)A~0> z!htm$YuZQl@~SOJXqZa!Gw|<#w(^oN!dkIKnsE`GR^ktGG}~Dxvhoeb1_1yDSPHx7toq&_u!2F#UOOu|+`3bZ)D}3|QbLVq+78LQqi_dDN z%`ej_K0Q)=tCBUBI&=%XvDn+c2w2l8?WhKw3E_{KLse-PP>dVR$V{8gvt=K%F}hQ1UTZ`Hk0 z7E8zb+nItF7_P#pVRU$a?O5g=e1}^PV+fujjY{4EgeE_F!hzOOvq6rEm_6ud7RB^} z^hoXN)?gScxR;|mjT*1g+uvZIt@Qw#HFJ&wuC`?vaaKcpNfeW(mA5Yvt__=1zBURE z(-kEBEMTep&4X4$Kk>Cty9#Ae@SBUTulHv1aR3}MIAoknPdq0z7_?IJ0HKG6#t511 zgrC-739cqRd9Zl->Sc2-*@xQ&U$iS&qSmU2d}qQZDp~Jd#B3}KejVqtZ$X`V3kF4I z48n3E&KxoOZjq885tHUSB+7y2_HBC*Q|nu8^CMX%z(7FSmm@0Uzk54TqZ5Jc72 z=Y`Ny(c<}xY{*inKS+%BzK`iWgxlN2aAV)a`(X7WQL4n7rzWLV$4X*q-#00oAba`1 z>E8xB)o=9C1sMVzSHpieWg+x$(%ou z42WTzWLnX?CuC?<0ley-I@mUAmL&Nd^26>JiS_qzr?9>5ee73n=Ma*~sCyZ4rNPY( zY+lZ3(?q-HmO8yVJw?JMqbyu;&v;e;X|g2NysgLeBU}~}waWlUlm@dTf=+qA%>S-G z5}f~TfJGw0GXrvi4ph~WwY)M)AU;h1R+~qyGuQ*Ry8NTbtaq;-KGkvd#deI6bI{G`b^mU#;qR@w`{y<>mHAle z$vXPaeGN#;S3;P|ymTsboX1n{_c>i+J}6mTh8Uf#|Mu{O3~1tS`naC5eNlx-ad^hUI&`hU!bk`IXnFN>RfL^fe!Cmw*0DKO(tY6(w&k(3Q}MfH7% zJIkMSU{4X8?~S;1X#K;V39xGoRsJ2?Fi|pk9wZMnk(}WjYn`QQGmo z8jBbT_|*Egd04t^KVMJ$t6lf2!3YX_aO|D}TgZJrpdvfT3UP)C`3qO^X!n5>q$zXc z>>9z|+Z(-0O_V(s&jU8;kx`0Mn7JJ>(-=s|?YNwv{Jd^4WtHIh+|$ei%(DVyC(n72 zcYRWQ%J8iSz(o6EN2x5EC3|}K8X%O(N;UImQ1_!Fk+)bI+2UO1kOJ;=OVS7Dhu1pO z_5JG=T@!vKe;kaY#cny;r>1_x&g==Qw1H@4|FdPw<2UPquhVZ>3-voBkt8VO8LVp~ zxJbVz5xw1RJ@SNoXv+Pno%fR`j2)y3sRYh0oQgifgd+psa>G7{&kUKBA&!sHjb{~_hPIc@j&>m1HF)!oS_n;fq#aeTjJ zU~*a_$VjZxG`RJT=TpSj|9M>TS59?|8gH!vJtHDW{(D*aDiPf=yh{GgW#yFE2W zHWxh)TYAWi}bfGqyu zhYz_74~f0hQvZ1Iv28066@UJ7ug>p5Fc@o*S&tC^Gy(o$4pOFV=aqXNtkUIw#_{2^ zrbK?pl8$MEKvWpr^vx?mmw~Yi!p;BZ0I&`JvRzevcrnmW5zIg;ec_cviFh`^DTUy1hIuXLt;AQ%JX-1M+rSplTt9^ zJYrVVL~<(G^aBPoA5Fkk`G;XJw&1+R)_Lw)Ey3^Hn!o7>`+X*Qh9&e3Z*OI`IT7|= z9=87EY;KE+NqWZ){WM#$6SsdSN%DM+v%w0jREj~Hwa@J7vS^T(H2ci{by1C#Czd@e z;Wz=IyKU+@FPXk+#aA!5lF-})QOWDMMh{C&zal>i(aNv?=vwz3)4EJlp7-iJ%AU@u zh#1;6;42(i{6nmSKtT17HxbX|_&Ui;kkRB}i*>7!ORzS-t$%1`AkfxQ@E>EBWpzrSBudu9FR+e0-=w)#U~lS{mMJ zAvXqmCja$yN|gTOPki~9-7b^{3zj<~itCw+?I0fBOs_$+)Tes??us(=J6!W&4O5HA ziMxe6t30u-$v@WZ9YsQ=TmWTYxbac2cv+&qFtvM0i}Z5R+T?|l!y9p`vX8J%24=`} z-(`;$p5!58yy<1X_;3g(bXtnVC>Z2)172l46nX8wz&-PX3^+wIBrB`JCvfzzQmrr^ z#wOM6B{DPwHRLYd)r}qe*t0@O6=99`QO=LJC4)bp{qz4FX8p1M*MAw#z=DEO-?`iC zC&OkE4V#i)2;&Dm>lz68vue+-E+}!qTYgK%`|(G2hxD}|uLHK7QDYO=JurTZg-aJw zbq(ZVI98?`uF`~PBobELJlRw#yyfWFvXl?>)UB_t6&R57C)aCPAzGm-KKwwu|19i> zXvw^!-Wr71Jq@~PF&fsg(YueB!3isVp{=|<-1KO#W>sVA2&Wga?j~5zPpE{is-)JyDV1&@%phB z_3!mVmIFW`98k{?E0f0Qt@!XK_mr(&l!hJ^F7# zipjxgN-7~y+ll;d|Gw-Z4b$ad&u>ug;kqb)pKw$dY1Y;ucJk!=n_?%rjwcz~{8sSi zN!QyHBv)F1P8XI@rBedcF{1rNp!!`%vykL(hE{kUv2iLdjCdjume9s6p?c; zQ)XPIcLsZfMi?b3)*x-khHmNodPmnpeaWm?W|+?tWrq><5eTxP{UYH_J}PW^-Yl?Q z)8H`&FRd=A1fETAuikL+IZwrHn~GFM5q2P z*-hxXnnmib1KkotshI>kMUlJs?)?^pwnBS?cX(`$2}pnHp%*iI_= zjRQRW&!E;Hye8#zP*gRA7|9f6tseJT(xN;CAb_ID@kyF-14cmJivmWy+~58v_rnjW z;{I>7j&_1UZ?R{=W;)X`i>)pGb3YsKHzK;TE>z2qqJE?V%8{Om2;0|ck7_+#e2Q*K*rSY}Q7R!tXffwWM|LZXpD*csK;1l((?!%P%= zb87_YtPAH8%*W4Ye;O$8dH2(NZ&CRB-w#8~_cfQNJMlxWys$sSyI*!Ayq*_QFhGWe zB4fOs_tk$SGyHPkPj(!hdrMOLs#aw&u^Qqb^Q% zbVdxb$j9mISxJ@>M?)|dt9xAaON#&cv`|NZjq>B6Qys`Z6U@?JT&HyVt#~P(nVSZi zn+K8a+4n_fgNqP84Yxecb6rG)u@m?3@EpMC7;Lm}kv`+Fl@h{!Cb(a_U8vX^>Q4Np z^`%a-VN;6xStu~<(nEM?>^%WM^ULUYmq`^pioJIXXQ2MRFLOB-zX|*?)Ji=7yA<}0 zf@CKY^a@xf<7=$l=^%wYR&hLWHk#uT&)Tfn$XR!Bx&<6fgq!?W4b_*%hm1we`Ws3E zjihOCWQxB`hbX>wu&8++(CTK=Ap~~;wL(c3Hq>3D(_UTX1y6*ee zF5i0e=BVR(TFp+zF8)qFnkyex&L0(-eUlNCXNPNWLIv^x@F5btZHKL-3DRYOH$8bq zCe0}Z|BMc=iN4B$Elw*Rq2IaR4vAoHA~?X5Wig)yQva5Ngv74F(7>xj@QQS_`j4!5 z5f?HvDMat^IHMXZT2gHFzsC#Nn|~rj?2&dc#`q->kM;3^7{(pL>}|D)9)tMz^mIK^ z$LqoN{y7|@n{J7KdqCc$U!S*9?Bk0v17a9QX?43Oe5l}h_|-$@iyJHHz6KUSMfF>n zsy|_JKdlbe(x@81lz~m00DJRiU;v;#)xF`lgggm+;rBn%5VB=2!=ig0v<_DI{g~d7 zVY0*3d{}X|z8bnCp#-;i16`x%auD6D$O3KV?`ATPeha7kZ(?lDcEg5K#SlkQMdQC0 ziwb%&VA`Rc(O15UML*1$R#u^ElLLkeFZl^h{UAbn%>u7ll7P)ifluM>q#k}C$!XS5 zqoD<5o$bM_3$7Osc>{Y;BFW1-`*ljZbKB zklnbIlc$#(YoHmkeLIrfiL(HY<)9@`j*bHHS7y8@ndYyYcJ}>Q;Fjp{Hwb35>~Io# ztu9e`6}ohjKlID5pz7-1bd~Y-2%7kogwI{v4Y3eGnBj4i0i`>_meeOEyyvDPMpyp-v5TJxKIb^y{iy{GVx zivMGl$SKyoTknLUkGFv#r+VN3->KEjmkwQW>eUm@kLgKonhaKR*Js$d=kz;QGx9t3&)!a=`1P#jgoBR_|0P zzdqSclQ)in<2uw4d}n-G7Jyi;9!+P5&XXcoL0S=j)jY}afAGl(DWNf7b~6}vZU*pf z9I8^p<8&(tWzvLosektnkAxK~0>s!g(Ni23)>huLf+mVXB>(J`*S>o3qH@}ke)J}e zl1pS!3dJhIWXkXS*6+3!N8Z{UV|*<&eF9Lz2euvnh05vCYRVR5sncEK873K4t4Dgk znZ;ZL%f@AB^fY3w32X8}BsNFbY9+yCt!fyZK50nC?G_~~o%ay903XjH5`SA1v#aHXroyYciRmVsns27Af@)2=E z9!py@Pa2XZpuCwX-Fa!zphx3CQp9M8I&U6e=evpH)0Mrjhyibus^!CdP5bK!j72y3 zN(*4|*nPDqs*e`n=D$RYox)0$j{#qfGx_l4>d<|@cYCi)=SwHQ=5*Lb8rFDJgpnOs zJ@k5|R9r6F$L5!x1+?lS_3`_ZDBfNhR;2x$X4=$PYTbgMSooc>-}K4!suk?CV}T*S zYbDeM%KgSfki}3wSp$OoP{>b0+?YjjyvW)2vdi04l%-~cPMK|?*@Ambh-#auoBebjZ z*FP}yNfF6G{mX$DG0SU7;s^&k)RMpYDIYk!i&>o;x+eQ1~S zr|?h>aCx{`8f;XJ_Dgh7?HJF3l}v5_vt3p8_Fc#SXWxKACYN`)W`6mp2Z43v6-o zQ7K|Qk?V{j2|#OQ#;7X8(fb2io0(*pyDw@^*v2Ou(K273JfG&*&$%BqUR`PB!rJ6d zY%UFdaPWNvucxI2bAU0kWz(}$dR4K?5 zaTU)L5l^v8wLNDutuvt!Rqr?c`TaaDG`T!JKqLK6UX4hvwDxGwxZA1~eyWch`(Qu_ zuCA_ZtR~hMqAnK_cyAXsYwNNX@^qa|*>!Cysg_s%SI8bUNmX zZ(_8|ty35%DdCX@1Pr$&(?q+TPb2QMvt&v5Ddq9u;$rSbtIUcWmOJ ze;r=8<$MQ9rEzezX?~Xa{(owY2c2pW@eT5>z>57fh~CuEo5^Q~Uyx*^5z$TK;6~lz z*@8WZgJ0g)4g+{1i6})^4R6*>paaG0QA&^5-^Qb1+}{F^di95b3FOL{!Z1M>T}DO3 zPOB@dn3tx(T!;>RrX5Fs*~|`?P&X|T8xXl8dh!>xgK8*CCdR>00|*J7>)F}r?)(hTJg2B z@>(!5wvka?TScaFfgLfdt*BRvvN)|WAs$Q=l;DBou2^cd z$#X>+g5&zm)ggK*@hE+*1tr>*NA0GH;l z4#7;G_v1VgBgRCgf!}SWQ5_EWV*(8#8olKb2UD@>6(eEBgn3s>w;QjI#)W2%AnApG zBVxT0t7gAETT-n(x|zWnt@5bx^?p?h+Bc~1xF*M= z5wfM+X57QkzX>$xX@-&A9NY+g`8@97~*^`gouS9=?SLt3StVGTQ z@HH>iWC|3l_+cR(G`&|>+BX_`Qswg+y?*D~FH};pHPHwCLdo57BCsM$7qsrF8Kdft zIFEX$BGPl@i|g*dTn5F7BXcm@Eh;C2XCSVL=3}LKBBB)OH^kiMaF)<8d4q#GDQP(N zPs@@<(zX&P8=N$p)nqGkWd64`v$33lUubiC?4{_}aXCP|F1YhMT`c{d*Z)+>7!7J3DHm@p(7eV0p{KA8N+-tG~U)-@l%BQ6hHw09Se`MA_|0 zk=V=B^>4tVpM@({hppy5JAEzyHzQysOi+1gH}Sre98dgC>{Ew7o31n^;Kd6ZRHWC{ z%H@iA*xP6IOsn$T!{avIWLif}Al|Y0$z>W-PrD(MV0=!@eC6+Op$(ZNaH=QT`Y+W;X$UUK;b=#c+~e3g zM}S=oIb~;+_H+4cFWQaOJse%u}!6Zm#4LQ^r|bePx5E2FR^ zjK|NgS|sQj@t7_yp`{`qX70=L_54b#Uy08B-_s#*VqaF0bG1cB$zL0gIcd>l2JAb& zVk4aaRPDhOkiw(8`zh=>fIg+~<7S5PXYT964rT?TG;wolKV*}^bG@U;sqKdz;%{

v%O6^6R%OnX~L%=9O^o~nfk3*=Ixw&g8n1Ui?Tc5Yvv z)Vs%Dk(&tS0HvxI00MByr)$FkfhJsv85ye{$waLn)@oPXomty@YO50K1zF|+(`+$v zWbH}fMv{u5#hRC@Jc@cwFO%wESp<9QNaUq+yvjefrc9=gh^TAmWy(ajuQ)pqto;Cx zXY-+p5ePEnR)(o|TagDjtiZCoORIHKeR>RjARQWh(K2ZZ1x=BGP~E(1!)buUd+=r2zafz|k2k(SLUGUz2Ta$z#l zCcEV$Vlk?i%L>C)t%83d3{f|lm(hPHe+FL7y^L0?$TklfV47-Y?Umw^c-fiGd{-Lc z1z{kO7Z>ZV+@8Ca(Tob`Y_5e(k&e?9*TR_M;Ep zySPB+lb`RpIia*gCjz?;a?ILqqqWkg0;5K)*Wo6t0+)69k06G)&6#yM zfNCB*A&_;XT2Jj5*oHLfo_^p;$i_jWXpKVwqITDqt<_85sskgrG zph>Vz;DB{b=d9)S@4k!TDw_*{wFM5eytULC*-i6`G_Z3b-6rLZ`R%q{3`V+Oiwomt zs5yFsWkUmpQ-oyDioVq-m!qYSUmfzmDxQHZj*L2Aih(1?ygYkhu;4_;S* zwNCr;`RBg$hoAoP?>%|^bVX+DpS}Gz4?g_G^08=*Kvp6hQfm%|=Mb^3m?<9(6Wsci zg~a6B6*B#zYSIgfH*7wxOX%-rrB&+P1vlmS8HWhUnVH#DojI<^ zcy`p4Hwvuh(m654_?yAQx`sEbC6M2%YvUlQOBDb z0Z{{JiQ4#IptQQ2GFE?@hg&hM=r51Q`HrU+j2G2Gjs*kwu^txtz z7_T8hpN6T)<`oRcdOwONPSEDzVRWG<2-&^EE%k6uLaH$eXZKJ|jlu$=TV+PQdumnx z%m%f#R*kR*;fg5b;P;9jWpaS)wdAatht@3zqi+zBA&>ei7XeI7y?$ujC-E+O42`)m z1CoGY+^V_NFog#r{#S^dqCI4;U>H^eE0}X2Ls=o0TFO(=kZpib`INPG3eQ7#pqFZe zJRzvhiW=e4i2HFMVpB^;VAmI0{_N651^q*Kvz*y4NsOsi)-r>D!gIGe3m>Fkjj@(z zmtIOJ_FjFD3@fcB2Z*F>qu>5vxaU$blI=$n2>F<0Y){&0PB`Uz3@ z;iGqd_Vc%XbaCtUX`P-w$Jf67PhS7bZ(UwKU+cu1doB|DAtaeszT_vbx%Kd);P`?| zZfv=J*4d|Wdj zAK$uj=a=ui@$N5v5+}gBI)zMq^ha;u3BGu$?4?!VI!Iu}W+oBZD582!S}M2+lVup=BoQ2{uC;4A9a%u94bbN>W*` z)Ev-IZUmrqN^~L#r+6MM8Ci@48MV?}DH3CI?FhP!EIf)sNp@z>2a-(5oh|HXO3>${DNmdc-+CYnQ*>)m{o5vW!Mo*!i>p|`q=|2bqspME0!$Q z;%bgAK9u#gW`yJ-R_1tasSG!Ij3s~?U%z@pGvuv50$?}?zyhV6KE89V!ZS+)_`fCx6XTc zr^!@(Fv}FP>Y=P`7d!2tLaVf%9Vei7Kh6z1g~uJPN;XHBsU~-Vkxe;QXm;F7CXqPc zhF)MEsh4evs!(MN!BluGL@cl0mN=r<2q`E18r_kyp-84sL+ewC8*}G_GMIpt;yS5< zJhBEai!|gUO0Dk|n~v~7zZIug*L9uq)B z9)+OUT7;oq>*WTzV7A|}!@oq>y^ao}eB3BxF50>drLQYh8x8dCnA*ThWqU8ZGT1s^ zYpedyLrCtd4hyuW+lW+C_e&+A2*!sbiiVJsSZ`8Fx};M5D7rJ81mAz$HiF@~1>mV_ zvBL<-qzDhuE)uyeR$#yL_TT;Toj2~h@~O*b8@T=5Km4=TUjNFze5ShLaq0iMpR4+B zFvm|Yl>O_OA48eUx*YSFb8V$Sh8F1Ykk)2d_HErVqJY%a=m z4-jO;_;7*#W^5(P)92{9E0sfzs5T5bqQf0^*R@He`Z=cPVM(jZbHY=WUPw87s45ps zxj&F@uM%40mIx;Lk1l%^tQ5T@N|PKbd7#Wn3fs?hh~NU+99y4O+1QjIy$Duvt`kc_ zyL!Vm5PgiH?$x#;sU?T8R@Pg#J{(JSkKRLLU7DzxJ;=Jks~;Y;9AjA4_^pX+-x8`9 zB@kmRX!ezAl#Lup74)b?jl~ZuCj8O5#kB7Q!h67`&7U4-K18yi8 z>7pX`5LG!}V5pA|`}9SjLwI6E?$YKP~x^R&ksMX;E`a}l7ethVdC@|7Z7N5AW@8+Qm09aZz#giLJSbN)L)B9Qy?^2^`+ zC$GHzjVBL3x_$T7v&+Z7`03wWK6|`Q7mj_ll|F|)p##T>GwBSgI;f5My=fMD8Zga) zh-!rb-asBi(ySWuu8#ypKsrGQpz6=Y@(7-B7BuuME)hV)hRbwmJ3T;R!A3yrU#)}z zM0G`_&T>)>an>wF+z_=e;nQiLMXmPOT2G;VRCf*`5n)ZM9CD{Z|5~!iL@t%ALS&LB z&eZG{&4$wA)MO4e4t*f0MgqG+SzqRLgI=YGS-Sv{fDbjvxQTir2GZY%j|%ZeGOW0x z&190xNDJC1xmrJ-=h3cj?-xKFpw9XCe22tse=2w!6HD@pg^W6GL8nngG41NdjvwjGiV{~0%PG3;=_w${*@oG3S$OA&I&0WF z4byG$qJU6=6V%oEy2iQC$x^MPthKoAmVv-pUZq23y%q}ELc&l>q~x2Sh%^p{v|Ftu z>Jf<{>*yb-*6j?ZwCNnA&R!u#Mfj0yy{I6!j|*190X^{A(r!^4F^Z;0aWw@o`=O;Y zIZTKIA+psAO#%@-Q9GrmQNkRETqxTAn-GSY@ZwvB5{<;=tkVJlimA%>`81uXV*wpN zRgzl7aV;X&-j@tL{Wv^XnOy|3*663%Nt0O|y8DWiTA3G`wZvV#&peZkVrcDZ2rH3h ze$7h^Y7)|!BVk6cbZ;cEj=*L04;IS z?YIS5@3pH9yx~wUA}63Dfb`lQK7<^xmJZ8G zN1uXL`k6ox0C(i3+^hO=0vRF8iRRrlJ15%|oJ`Tftuwl87s0(GSUYMXj`9FPF@W@b za4Jz}Q}88C2^G6fw{BfNeelyC{rR(J5ANQ-_u=~=-u=wizV;jc^Sr!_wXnRWe(-tp z&oRdKk2vI^;_%|1Jpbjq?W=vwPp-Zo>J$73*Kh7Gu6}ewJ7?EUKZvLkZl7O1|H7C4 z;7i~9&!0Yhx^M~XpTG5kr%ygQU7ToJq_)}nUL(3H1IIK0PZBrlt_@Y-8jnY9y+>76 zwHQDkzRB2RPbsq|#wcCWm$4YW6z)}A2|s`6D!YS(()+HOi`x-DL2F*jKttTT7gi|G z-pI?qWWOt7Q*J6*(JX~#t_8wfV!&-gjH_9&U&47^H*lq89;zZsn1kL+#vN_ib^A*N zTkSPsze!A~$3H@QQo;p8FB1UVj_D5IL3(KQy_n^SHUcJtMXICg+bR(DDpT8A-KXc6 z$a0+P6?@CtWkUMl3a`t2MO+n(Gk~43Yl$ci>N3ANo0{&8Zdf75N*+HtU|Sy1W=1ns zcdAQEc!!LoG?v-{dgwtbZI0u z&&nk_F6%LXkr9QLEp#)d3WZ9=MuZ;+Q(#I|>QDDOg}A?GA#7*bcO#Sgbm zgOLZyrB_MPHON(I3K!yKUosEUNN2gxue@z8XI6E?I6 z3{fTn7o2!7{Y^Jy*27euV$!pd7Hvubp~SV}D<{eike914a*IZc`K4DR*kTOGHTp&L zs#F^kg3(*bjtKA4OPNQQ=)nNlpctM%Rcsx#xt3ZqX&Hy(zRT{U4bd;ecGyT! z`#|au@K%M;OYRxki8axiURG@#sQ_OxKKY2ct>wBX&RL&-# zlv=JA$C>TS|CMqsFQ32m>2H1IyZ`Lj^Vs{@#hr_vzx{U)KKRAyRC$>nhH^+qJ4__E zcZpLra49pep+wa>FoTxJ4EgLxlSFar_nJa@w!zJq2*t=wlQdl>P>c+f)e@waFGwgbeNt%eCek6Q+ss;3hh2|;oj ztCUS7OIL#m45BG!nTD@H1Dd`dc>E(5f&`=8{)FvTTq;~=nM68)ldJ;CXTVUZ4e>Px z;nd2MJcYs?1ouiZt{ zksN=tpj-`PD3%NqE{6I*TG&5hQKLVT=eF1xD%;mmF9#92M7m-fG4<7~A$6yoIsfa=ok(Cj_h!hgX@wfzRF({3LvI#JGQUl7NwO7s%5hg#96eMCL}da_ zR`uOX75zMGEoRv=bqu(a5dm&2O=~1mFK@E1^(4n05jcFwBlD9S>!qMqVPB)3Q(manKy%Q3sx*K%rG56B0F7C&C;CQOQJ9qY|Q! za(ITiwAcfXcgO6DQ>$4ye=XY%4NHAEif1QF#a9jzsUFr)h5=WMx zoBm2%G<=s4yXsj^%aCDW%*i@yF%SuUx24HdlP^GK0R-BJuoMN9Cf#;KTN!O`&=zVn zZ9bBENf!sYJtEH+D92nq5!id{qBcf#N_RU0=GdHu92CcSVxP~~ibRAKrIo5O0*jbn z7O$(Xnlz7Pe(BGKlrxm*CTk;8My;8^I!4we#rY0}l(4Xm-K6y=t(#nKRwtB4QpfC# z#99y5hwuIBx4-&Nuf6ta-rn5e@sIxbzklVmxAOK{2lhs_$;$^vzx*c#6^E>4R>gm_RJ#~qt-bfKX6M#DO7(CTn#c25#V}0< zF82VuU4`r=H}Pg|FRw1nb@E zQ*in!h_WFh>S;}D3_&KXYjFFTJhhNoa4Z+7Mvy>lK_p5!5^w&Yc#8S0ft773<-n16 zN5+Cn4dIuElFh1_-f5M+GS$fidjGI9tCL)sueH4&ncCsx=#~}|(xo>v_mI6+*oYy8 zIRsA_HGi0tLX|RLOx#DmV|EnA1Tk&`q|jx^@ST3v&9Z^;ni_p3faM1+gjf#U&yp1K zT-LSSNsNh>)dBC3O<@Pw4}V|-H7rK@PAy4*^dZ{xhGLyf&yHiDLc9co^p&dhTR}ub z$lYkCA~D`L4V7%d2!$d%gr-zmHm$&s2rH5rxMH5hL_}?))l<%`yusQ6kePckaGV8{ z2bS8=9&1T%dx;%^-Zfp-)nx8F1)^=J=>wA<8N*OizDV#*5HZyNWljIBzUK0d8-2P` z&t*uJH9_M?d3qZrphz8Pqmu(A2QP#yB*?}d5?(z9NQUq={Hyb!N8upSt4?h72VpF{% z)Q&RG-c4E%^>jG6k`l4j#mz-Xtbp!obv@p_VXzp7I~k077wY8zCs{@@;gRyRB7&ZU z63w6pm5QSTxP%?86GN;Lv5Dj?MqUU7rCFUx3YtjKY`mRH-#CYf?d{^?U?eiCBF@`z zSn1Q9py&k&G{vydXb}>Qoz^hm27X0oKdV`Zfay@Wi+BSxsh2>BffhN8_j}Y)hwcL3 z@MOqPKBrbi*0h$lJAKICbCq>oI9hJJtoh%&+4Br$ zAOOe*Klr1+T93Yd{ruT0ufF>1*~jm_{STSfT+Qae;lv41ZcRw)!C95LI@v15S)?0z zK$g~%r;jA9TJfcz2N0?4E%lssw&Lb;NoWpvTEQ&Qp!nHi3JC|67fhJFBrEm1Kkw2F z7&M|$bu1#aLIk_il=PeW7+S*0w958HC4ZhEoI5me$(wlmPj~{Z_{C! zNFc7G~t_oobjPzM5DuElBY`b__m*RN_fj}yR7AXa5F+! z?@=g+@_X?0i?FOw%{P-8uG=QjLCMXTTB5Vea5mHgVhh zScWs0AVI0mi?*#y-Jiqx`h13-x|Ge`ElmnX+{w2Z(v3p*CWP_M8P#E>C%Y-wN)4?t zQAagTT*9$C%uY6*6=KczS}v2~IbqX6=NP^}cXERl>%AB@PqG}aqzW5Df+ke#qH0sX z$Yd@8GEV5ZkO6X-+POjyQBh%xJVoCve34_Q>CQfk z-X227mQCGz=U`E*4Z$`DJZcNO?$UH1gW>EtapnX12sZD{MAn*hb>W^j7Pj%AK=x^k z9MeTbb5=;#oSff^Q;W_q`kR*3(Y><=GGZI}3Wh*UesrSRGQ9QvnLtoL=ZMozjgfqi zcuylWINr2|a0$+|+_^=1ppAaH{U?=R>Huv>7?_B*KXUpiJ*GhqGNVEz+dsUkZnO}m z_oL`Y>B$TwQq=_d2!NLe&}^1&sCk_1x=m&!gX1tAX;lM8llPFy4x=3d*@Z$KM5Uyq zO%cI%6>)O%D3%@yVS2=C;K(YQgl7q0@!bXt)$T+1j-%-~Y@4EW_0nyX>;(}P&_zYBbU>Thk zMd6d%oq%4yF_kfRqae!ZWAg1*)AddwVIe?hF=*N`?l(tMWf4E&rg}U|2}xs5X%AC zUtKnGesp&pIXUU#=gUr6?_9W-3-7t$=*s+ZM9IrexVUPpwQl$R*7yJGuYC8XFK(V) zt#y+(@BHTPuAhI#`z@;)y*eLftEE{UHUQ@@=vNZpOjtXXdD# zI?9QwLUNEeAKon&GkJy5k2?p2vC!{E5?cDMH-~XDCRTzg(Hg#P#S*FIV>+Zf!gu|sR9J;gP z2g$@8p&hK5y_}pGe9o6$mbr6hgtryh5-FCpDMOymT%MOUsjzU&-9X~-M6cC3D@ce_2#?o=d+ZL59!|P)MBBTcDS0EZXR?w07teMK5F~sTV$Fx4 zim=C)t8cV4;7h19Q?d>?Uw~_2|JnZ~xt=pS&Mels0hcom(~~SNTs`;+t|^kf=`ULudB>?5cu4uPF0o?4UVn(J_oijrj3F*CD zl3z!oR+g3Ia~QT7+$tQLhNGXg`KO8d$gWhYWKtNBX^*>D)|=Uv!wBKi8vi{!F~o2aOF6OOj=z905ZqFB@wUJ{{xTr2ub9 z(#P(e17q$x%7N^rk8Z8L9T#l;hh{nw&*O-Qx`n4cP;IK?$KW5?AAy3p5fh#yFvaT1 z&>|AjL$zXQcR;-#PUdX$$e{w%VPeaj>A`v1Xmmuh--C;ZHFr9&5`6{r*4s*k+Mrv8 zPsfQZ3jKF?J7vO%aZ)c8tN7E_hR+<=;E}wFwnGo{nIVwq6}m}uLec0mrp!|dDzCJ2 zI|yo$Ufe|Gcu#<-9%NzwfLzBLXSFn)&fQ4xG0UaYlqSb=P+x@SLfbc0ctU%hI1BaZ za0(N505K%RWY_6nwbP110PfUA$Y0#XJX~r>kK|H^xDeYHpQq&PP8?_UzXSC{DwrmY zUU||?KlE1Qu!gEN0{2hEkcYnoodRU%|2Y0DB=C#~-IdTsM{j5X_@?T%3BB1!ACn-! zaIS7UEhK>48QUAgnp`SfvQ7&DemJYj8{sgq91<9!*C*|kla#}q_JtMb*(?vvjdI#d z4NgTRlWaos=K#qG(AE1SzA{5ugm}@NqlYVLJML$g7cVI9sJcBpKH<}z`JiWXz z=Gg7scUG|HfS=TPbM@3S|Kdh;`V+k+1cjnR2&W;7MVZhfLc2 zvv^+kvh69hnToGFKM~lRuXcWJGba#N`SFLp{mrlb`oW_Id*8mee)y9={|~Rd{>|Il z8$KA;J3j6cMN@`_sR|)uY?zw+|ma`RL=fKmOo1%qem_x}eJ6XN5J>m5mxkIxR^|6fl;mY9%wg zR0-Biy`3bhe~CsMG=WmhZB#(Ti@YUa3B3?*KB_)ah`ok!@|uwai+zrY(~gpYIq^H<>q*)z5UOdKJfS z5g0kVyy3n5`j+p08y8@X2&lAY-&de6U2OD01!s+=R%G&Gy_fyW&^{+W@WU_L0CI1? z=NnoqMJ}%_Nj3qsYoz85$Bn6A8I==)q3Z*EPX)`xnVPd|*&;#(UKe%iy}3YMBuIOUloX0II=VQz;K1U4 zEeN>eSm$yvH%yojv_@Nu_H^}}n^vkU&!;AG53<(q>r_W~$19E0pWC2tk2Q+wrEu&O z1c}C0NZTe(uB;FroSZX8>^TqLJ*$JYDuL7@;r3gM;6HsaV#8#xb0f4;G3j^wo_97k zMiFo_<{%hp!FoUo;3LsT2(#b9FC0Q61!}%pCukDs2m`ql0l%Xr2H8qfv=;YszhqBm zG=en(Ug3ixxUJQ$7dm<-AgAh=X!eIJ8GA?NB0?QHp-Gw2)qrJ61^XO z*dcqJ*_8rRC`c~(eIg1b$*5#k8GvdKzBSnKm=orQ0&;I;Iz%!Nht2bWT?pulj9WlyN$AI3Vo6y^zu;D%CAb& z#pK$)qV(ADlj;QT(3JClDp>4oO+f;eyj9%0;HkSwsHIcyh}N|%{`lD6OhnxnN^io` z)D#c%qP{=8%~Hc1T;MROK*_ZfZu5`{Q7+AfYK{a&3Ru=N#73@ZpaNj5z;dFiAuOj4 z5>i>IQKyVl4=Bludd`JdDY=GRMWfugYnx}0U%RQWtZPqQt5KWg>1UG|Vg+vAfBWw~ z{M~OJKYI20`ufRhU;U$h_J4Tz=oRYk5}`D=aDM)epyEztyeceV7tV34C@1dsdIL@bpB69G!<0ZMC%IdWhS&Pl*R|f(;M6 zN)?g>q)ycE>>jEIi*@=!b#9Rb=4jlJP`!2hf6J^MJ5aAtTah+RRr!-5e{(o>v7Oj4 zUQW2&2i3pX!ouu!UoPZcnzRFI@|=Ilblu@fUCS<1Jrkk5b$oPla@x1rwmczwuK|4h zjz79ddAE1*fN@6cbJ+Z{+YR$3-&V8yUPiRp74d>_WPi&4*3&ZBba9rx3SW|TmZ0&I zosGa@c%7u1EvrDmx7YcOvDQpFGk{unh`L0Ws{r`XG~}{+Xv_6LxaPZ)#ve(>Q$JC8ch$KIs-Sww#q>|-ghZ1w1ytA z56M%B0b8l;plQ;DscEDf0V8**!%bQ|c6d*#aoS=z;&N7{ks}xv-wfX@OmxZZ3+HWr z9AhvO%VYyXjklce_IoI!(UKllgNFg^hCm1L{3Q~s)lUdCV&t;@{(R};U=EGWgjM39s66!&c_!2^J9H}Z^4 z9$x7Ss*JgfJA06+cG}gn=&j*&oG)5&ATeGst#EJ65UV6Ex+=h(n39~fG;?$=b(_{) zYk?a_gsGyL5Sf?ZBUBx0H?i^JlR>r!RQ*C6RWc-&_M(7oXZmFqdX_vg*SfmBefrLC z{`$p>PhWZb%4Z)xef*Ulf9Hq)YVX@MFnUJ|{+Io^bNSD^mvyFGpMLQ_r=fgLfw25BwYqi*wk`@HIMG5 zX=WphAB(@#zFy22$YYhQtdj#R*_Nd^qb?Peio7lO1_Yk*t7eiq2ZP6vZPmb1Ad}Dx+$_*$}Qn%EJmN zxgW^n&AOAhW@#W*#|}e6Dj{-)%z+uGhx~vRgOnlDSbe?47@pgOJI$kZS`x_=g3x5$ z`Xt-tbqsqwDKp{uR>e$1sM=q1_vFC$7^X}kLXy}C@9;S8&jBNoUnrsb_F<0;ZMu+t zA}9B)I0_7Hq8KbH$%d{cQzr=rAQ|vCZCnq##8oo=+OCA^a&lSf7m1H*l~y`ws>kSW zc_QY>vZv5qNXSG~#-enaG(alX#T*XcOu%JYYq)}L&JK1?;IP`~b%O0P=vQIJT@?<8 z!LFL}bi8K*7S0LZ#?ahhAo9+vX+ouw8n*u5^SbJ7-Bq_U>h(NndgtXrJP{gj=#J`W zNGe>_zb3hhsMpgIqcd^yNDZ3LG#}?4clg&830ug;N>j}Y#IAiOHg6c9$-AK&5zxcC z$xe`+;a{`qspz%^0FPSirifml{Qc=k>QRe1wmA~O>pum-q_LL@s8Y8gAe9?fyNyR30_aPL*Tm)>;~S_!ejcO z@q(e;A+gGI==M8mGgF0$CVve%f;<7%So@_E0JNYl;^bY`e3nT>M6B^1X0l6&t9sJw zf{UyNei?#gXY25ZW#K!ngu|!8!3zM5pi~F}UU5*fR`N@^p&%3@0l8Wk+R`OPLQOUT zW-r%;kA#?so%O`svE5QGgJD)ilITf~(MKxe7yRODpfdD=Jg$hz+TK}XA(|?`*a;zv zn&^m`9JXcPaLUkBzpmEvr|-Y>+rI&D6%U?2yZQR}|KiE3-@LuO(U!x3zq>zozA%Dc9Q&sq1i&msY^A3k~Wr+@K(eDKQG zZ*QJHdi406cYpcrZ~iXxT7ij(sM%l33v1@=o+-FfI))6F5& zvAM|4QZjRXpseEw1T@>?z<0eKGnTZGdrHFVlr~T!eK_QROyKmTV;UcFH$>{lIp%D5 zNqgnRxo8KOUHby2Ye%Us?mMSFI- z;AoHeO&+cZ-=(vKwz8Jzz0l4t@nbBj8()j_5UF0lS{b)nmDh;J9T9yS5D!o|x^L!) znEU*gJJqblLhmeJL6aC70n(omV`{+v7?yHC*}T3i zvC2D+bBt9Ou~$s8Z6;)5#q3cXC#gLQ9*OkB@4A^tzl^m3Cu(@N;8r|A%zwCqoAnV-2iLf3PWdB4kw@R&7AZVS1=}?(y=u!k&7A}MFf=fH5f5xXC>ty9~|f# z#kA1m`D$k|CaI0Exi~cEEcwyX#yBpVer1s?M{28aaCik14Cu`p2hy1HoXW0sP`iC^ ztWP`mxUgwIRIuPQ#b8v-IIB(YI`?t1fA#W;dX$jMzhSt;L7{87$Ac&(0i-@Es(7CfrC3uiw)d%&i2P7OeVqH(?l0-2# z@8xkPLaP)o;@S&2!6TK0#Fhc3RIq~Sb!{2I&>GYpI*~CxdAVasCLPxj+;V(`ac&nS zGA(z3!AJHtfugO>)4`1_Bovi!l=L*-?4xy&on#w5`wW`5qs6M>Cf`{-88Y@c-y`R1H){maOczX44J^kRX|JVQb|NZvnGhkK!?oB6nS)P%l!pM2~ zA(+O!)A+roj~%vk)Sa<@-p}2GM+=uiVmbDY+D|j z9DORZgW*!SVf%Qd^WKpmLQHLWXokpU)Ba2y&V)xz=h}3G>$6j1qbi*pWz3F^&`dBo zDVGQNAH}D*g`HFtFZxo>L%f>WadErs?s?Pr@fEA7kSfzFg2r93J_>T2fZ}A9oH;oZ zMD^8=EjZT?@7dNW0Y^o?!*IVM$bMwt44>JolBt?U!#HYAmB~nTE`35Uo``h@RrIAL zuP~_)W0bO1a>+BgpU_FenbjIX3X1L7&dgqGuxeu5x-72Yf1Jif>c$+Fkz%C!qRfFh zkNZS`T4yj}rM7U+$*nZ-7`HIcB*rY}tw_qC zIo1GY;`0Qs<~6!>t9cpA)@3$ymy?mui5m(sg zvSq5^Tr0D7M<*f0n{?cED~kb-RN1TWG|MY>L5-_#&NdXy4Fi*v^l3b0oQCLtahX83 z-!rJn-Ec|ES%P383dRJR{_y)$I;n^oe*iD}6j15l} z*=-_rbbB9`M{ijtF0RM@+uebBSwK@55L|y@c$$pm0*I05TjTC1KWkhXjHiGBGObwy zvAPePi(38|@3sIT%cS4rC&Md{mH1=0n+XIGe#u0sq%W*GL8wh@q5IKeNB7R|V{CB73YOk_X6%Gki%Elq8e9N!>)qz0CR0uI zZS!&Rd#BJO0m>}ww_sRu<}g9J|e8Zw#dpB066=wF-mHn?4q)k`PLzp4Nu}-ucnNB&cYd zMy;$QoY<|>C8Z`_?JSzAbUhcW<&;EyHqU)HaPw` zS|lsFRu@t~1#^aIB9MEivOr*Or-76?!7U_^AVx3rVH}nWqsY4DajY<%KlgnGh$ZF$ zqkYJ-0*6O6bY#OK2q$TjK4B7=<#K`1HKtj|>HJsoajj7I5E_t~s;(>s6!gG{sHI5| zM6#y`|nBiolPR6 zpHFKEBJ)(jbiF{(k_pYD@~&MK+#+}M4l3ico)OS5)T+ee6hII`I{*vUmW@5kG%JKM z=Ah|@lRV*M5!@L^e<^lCk)9ail+Bg&k1*tWV5AR+n7KT6#6NseeWu4dQ_`1W><2xqRY8PP_}|-;l*Ty_8szcurGVb;Z7W$m7{;0aB1ap_eb-eX9MD$ z-ZhYkwU)gb(YwzSNarjm6TrURUwPxZKm74O-y0jZS8@H<|I`2Nqxb(4;z9Cdm(4hb z=U(!mzq&ukz3h04gF9clsW1Cp)_Z^A;_tlYv%81fJBIpl1#b84Yp;Lz`#<|{H`dLI z=j$roef#e|`}l*tNs6PHwFS~>`VdOP0Q?kCB%i)@W^lgItNf5x zFXoF8)RJa{4o)M(6J03Q{f2rcQqwxosMnDCvpPzX;A287^!laJDMMO%HaR+gp*JNa zWsk~Io~78q*}eDWH@yvAFN=GA68YCV&B`^11=%M%A#4%lvjw0{P>t_ zea2%5@3ADJsBxZj@EW>SV2VB&P_Xw!JF0Op`{z6o!8^6;+KW3l^*CM`b}zP0%xcWcvBTF zP+3MF!o#qxA#Xutu#Nr$C4&kvS9X>6j+lyWQ|&iGnu=8L)FaT1Xwj5}6I3~qi_%j- zn$&+Wd|aF#=XT*AR&|0x{^W*@< z0Eqfy(Iv;7%!DzRHjGk98V1u4A$?}H(L?SJe+>aM*H_Er(y_wIfjPKlNSm;Y?wy9z zZqx@B-bXe`pXL{@3hJ5l&_K~eA(NzMt{*9(NgiB15VmaJ2Gp=ZbZx8M8pz~A1dofJ zpk_yE)4QYxgFs#9g$rEk3ZH!V_S?Vtn{{<{dwsheJo>>;|25)qy&2eXbnj2T?2DIw zmG^!X=MgXYdGPYfecsPYy5Ah?aDC}O?`tn&tyn+!lmFfA&6DTPK6&NUS3msto%i4S zO~%%$i~KiYW-cHI{YFWD!LmislYIptLul|Yf<)v9nZhJo7h{}=wF0VTIjz^XVYfS1 z=iuDK3{%v$A$gu3?{e6#TUTk;KJiyfpB!_YrcSEsS(`67cn#Q0*8PEu51D3$O-z$f zNL|#ABK+jZ(dAZYeZi1-y8paN4!6R6h&rxvT$dv?Zl!!B6}8iya1E==x81m2SJk)C zu@Q_Rj4gp(>aIH=)&Jfv8Oo|QuUN~Sl}CRJBLx=}N(HUDf1sD} z<_$?xHl7r7*7GBByun%hgvTb)@nkR8M8?g;;?b<)a~dWCXmAh z5tjfnmktL+)GhI5rw(w1OhwkM%dhHdOuIF^ruNzp@4VQ?KIlRt*eo4Zyn6frKTh6x zZOJW0bzPM^cgR!>8In+^Wp^3b2EV8hwBSY0BIeOLg<8%m>}jtES#Ig{FP6}%VWvwR zGVE9$k_QD*CJu*HK#RP>P35{CPAK^%6N&P&Q=sw21T<4EI&16SmM2o#CXX0kkd9>R zTnbyU_s%~&dF?A-d*iL=&px?&@~t<& z{pY{?_5ZjYT3=u4Pq#E9UiTOs3Cm z!6ha_|FUB4uxd6TYMh4zCow4kero|v5TlT-zDb?b(F|{gkAx;L2+QDfa#r0`fh1|h z33gA+qzqVOE!!>u`Iw}sLNj-mx!q8vi<;21h9isfsl%a1)`VpXnI--1j{_5jb9t!} z_FKc9oEzwAnZ?2dB6Lh>4in~v3mEacm~1LnsDgD)bel=6+?;wn5*bm*un+xO6@(s#XIBSF4$D|13E)%TS)d*en};E{7SOhe!*=fCPlp&N2f}e1e(u zwBrSQ&5CRWtE#^41$FSKT0v{crcrRF8!kP!D?Bfl?uIHHc5BU!IHP5BkFgh-On|kL zuxeNlU%Ss2;Q+vRL9jBqqo(D>SoSi`LG72qseqpVu-PT4z!ZnZL1Av|)V8#$b}%%V zl9?U1nOM+ZBQkRx44j#@nKbPt@r3Eyge>Y6b7o@PC!A(u4n&-Bd|pnW1Rv!bp{YrN zuwVRiXm=H~hDVUAHtSEK=TDr!H=a{d8GXe@w83%Hv`eFELMsIkHv6 z4WU5=5?VV|ViO~U9TyszC=X831L0thjs!7gdyL<`sawLV0Ou7?X*5qSUsk6Uatu$* zhJYSzW(yYXJ&2T$h~bQ8Nc|ZG?WjMv4(!4~N^}q!K(p4ce)Uj7=ni|VzO`ZYBXo&g zebAE?Vj-$dFRrz}WKd z)FUR8--XI%*WJzqy4i8OKUaTxU#7n71Y*8DGdK4Z$SZmeh2l={S2AtwIUdO49ak;a zd#YP4u*pH8_3?_lz1@#rd-I2X_)l>gJ9g|(|Cj&Q|MkVQchDJRu;&GpVmhTriTJvB+=(tv%n=nOo(F(!r~)9Fw- zTvnB47DZX8PE=J(BdUk7+m}L?QcQK$0UN$F^!>3g(WDvSub>DE$G)N^v>624og}XW zd`|#XWM8+&n1<~b5uz)p9&%Lq=d_)sTl__3=#xWolw`oTr5hWrLX>T(U~J&{ESVy^ zWyT21dEtu_XxR@u=r$pb$!Noia<|K@>Qib#hQ_CPPwvQws5;IvVr2m~o>Yf+ZV!*Y z9=S;7hz>4cbcRDTpfFNx){b}Xf16IPzqmtFnbEz{5#<1>wyyHn!Y1kqw;H2tUb44& zfXAwU9c?P03gveBAlP9Rs7R$IZC=4ZAM+E*qehdcPb4(?(5{$#mBVF98!UNZdd+nt#KSwP+ytXb`hOjWC#x?G@RnFLo~UXT|3O&pn9O|di-EDl0pwG2{j*i zD4!X z{MiSey!zT}pMCQ7um1l3d%K?}D|W#`q$`WnZ~#dEU7Xm}qLBV=>ABRIdXC)E`sng8 zL|#z|di$dK?AlPLZqRO-E(0XFUkF~TuZ1dVT}$g7FV%w;Q4juNh*~F(^04sDb5)q~ z&=^MUsf-qC$JIo&*Y&&}Qg8_iJ`7wvF!5i7lxJ7 zWh!NHG_zFEHmU*Vq= z7VoQZuJwWvfLO7$pkSjRklXUnpS#OxW|*cXHw7^vM}>OH1CH%A0K9mWSqf<(`AWi| zRLi4sE8d5zON~#Bqr*Sbpr!qpzco7~BBTsP6!0a@=>1pKw9Gj|#w!5Aa)2){^4121 zn=RpFSP#PS0-A=#9`zVA^&)t!IcfF7vY^`6DO#(O66{5dp_>J5ZI2M;)B%}T43*t3 zo|;7gMkbZQ&0U`63!IeRSl%-xq8BS%lD4T8=klts?I7&Rlo`9fqqA4r;b7VUn23U< zTo7j9%WEluLjwpL-jY?l9?NK1Vd-F+9!%R~85u<1xM1p^G)NA_H?n}t+~6Y^1cn;u z2737x_CWR7Z&jT+L(yL6HcQOp=)^=PDE1+eB0D)Nl7iGZAzz>nm5NC+7P?px{hTYL^k zee?Ro^RIv7jbHz-|HI$>$N$IGdT`4JH0;3|$B%jE{;&HYFa5bVG4A{J{>Lx9tlhlR zm-yU2U)B{J9gu_f?aep8|1TbW<-5;5{q&VrAKmQF-v0I9+}=J%MASP!2}g_Q`q{~{ zZpr14jxx2lo}o6>%fe}jJfIe!^bf$V%@fC>HA7L>O!Xu&mS@JmeH!boo^laG>2_j8 zwSaCsFvPC@KtXdm>{TgIb44gfD~Z+z?1=gQ_@+=vV?#Za>)Fh5zsCQ425B6jb&k6Qa2boCh zU9Dx?9Fm?Gvt3;=z4dGBG}=ERdN(dfN3%T$%it-=bJG=v?4jnEQ)Q@Fd%+yK%n+)< zM;>KnNCD8AM%_TEA=e~08*Wqh<>fRrZ)2ltIlEJIDLM|AXKPBU>#5X)ml=BL1&u1- z^yh+6BQ8}YZI?NM+=uC@NjTN{xYLIz`uQzVa}Nn8NpvM~R+*BGvHh)+rJ~$-^c^xD zT}vxAzB@EFHjA~HwRpuxe~kic^I@o~!XRKsM>`RUf28LUOt)=gil0JN4sp&aakW$i5>$TxG!7|LhQRG&WO(&4u9-up^@D zG4ZZ;m<4fk077q=YX_q01;@zBe+FkgTWYpbM``O*&4&?q5VZp zi_S0?t!0`K%sM&R>3+hIMkkU^G;T@fjxv%TbRk1JqCMzjCY8@rE2_RoVU^=NV&OBw zlRXYZh87GtHmCr1d&ipV;lQ?)K8!nG)um_b+&%qE{@gQV&2iy-uYK8- z@xRacd07{0-|yomU;EaN{;S9<+};H6?yvv$`Lj>8M~e+;YQwaZXK1H>>S9ah@V}Av zeWv#Us-BnJ8f8>ns8znOjlv@MpzQ%MWt5S{wJ?%|n`8|LE{u%_nVG%(OVLonk#bT^ zE6%v`%%+nN1&Reh@h>mTro;tOZ6kRr4x}ZSMu7-DXq5J8oQMK6Tm*x?|AML;yy3TbiaP>o_ zSDLD0Ay)%ZOASf`)!?eabm}3xh5&OwjKA1~N-b`v(;RllfLw1WA7^I0Pfz)dr)=p? z=yAkED0X^^(5s-sJg151h0u4r*?r=nk1k@N=|HrWJ)j{cJ=k$TP8Z$3*tH)Fllz(t@lR zz>^s3B*C}ko-zabBLP{z+ea%?6%A20&D;I)qEjK!*6xIuj%7hHN97{sK~4rotdDRL zhp$-3KyEbDJ%CWSAy&QFK3#1o=wU_l(n-{1ww~{wLS-dN_PW!td)NK~4UpYaS~#K; z@eyow+>w-(#K|5m2DQ92;RhjItd)+G^09hAbh&N7I^ zu8E~LNQd5EpO(TEAmBzJN5tee4ExYHwfpTzQ4skM@{`1}b1Pw=nSPxz!bO4Ym|MKz zbD1mL3IFOQ%Q^OBklPx5(8NnA1)&uHDfKk7hLeyYG2Cf|_iFZ1tRPlknY2;?sd zOh^t7VdMiFRgRqk47C}mFd|H9+EyQPrsi0Y_5&KCE2K#ZPa|3ke(#7$bnOYyn6rF5 z$f;?t%-*aC|VL?@x zi!3zK@mhSHq1RE}`I821Ju{MW@G^4v;9cb+_aa@y@3p4N6xlTZLPfcG39eIP$oc-% zVD0G)WJiHp4`s+46?b3-o`3e?@812zx_Wqfd;8$glRx;`f4A{awc|cA!y03B=4JCh zDPaY*e0;X>g+HJ7lAC0<{yl!a(=0f~CAm@#}__j{DEl_fgZu9egejqOJq2_nHMV6M8N0oRD+A=lNH}*2}5~ zT6o1H6r?fw;a$qX0|-H zcCSin^}zcy%?)TyR2QUn6o*)n8k!43V{pf6>rnMAY_)c%$Qqth>6eJL)>1>QoDjhs zYc;jABj%4%gBH@EIx*9{?5IRBtR#Cfm*};r{B{W`p)n1c*kwv@I%LL!7F2udK>eG2 z1P`wFiFfeVBK^$83J||Vi4>{V-T(v6ag|h6%51Bt z%f8P%L>m~c33FaUw-MAULZ-g)1H-jKfXo0zjQX3M-@xq%`Wz8iKH134)eNbaP#Iyg zHQWPa%R^Vfn-z?b@F+m)9Ro2z0GE*~Ny6?>LG1=;cxe1fQLXVx#UkV;BdT7iF)>}% z0Z?y8YnZS_&`+ybiMP9nNm?{CjCt#(oqCZo(*h$U zI=Rb@W5wN*kbq`K?!BM?5CLTq-2~3BDjyxWer6o8Q@?OYFqXyT?0jhYPgIV}%jOYQy)zZoxf1Ay@y19i{;C?;Rou7& zca{|!`VlWRm{3Ox(+-*DcSW8|Ile=4Vworc+=(QcRhKB=ecer$QBy7A#%V<})Ov9K zI{Z-{6lvR=j9BTPX31)(J{oW>_|JC}Pyj0W2wBHT`%ANrMZ3GCIAAuwoyz78R)g|* zK3FA`;qC$ZP(m^u>ZmnwB7(=v?*l5ViqKB!opk*UyYRBG=bb!xGgF27q5!m!Yl}8= z_Op(%6bjMW1#QwMq-`&Ihg1}Na3f1gLhW=NR7TI>jW>xgXRKMT!INW?JEsVA__9)* zh>-=9ECwmX%#78`Jlv$s|B(o+D+E4z@9n3be)#b5lNZmgzxw7Meftl7zV~f)-mtr8 zzL);b@e{xA-0Rv7=K1g5{pHPm z&gSU~C}_KQ;oJ=6)Eswou#oRe#B|l)L$gx2ow%Qit=)x z3vj9DYL7Jq+BWsNIL=d4I${Azf}e2d8r4`>Cg^pHOy#C@A*Y{_V^j}Hm2$=x(%jWP zR4(nQ0<^3Y{v9KS(FI6_t_;NN5;lc9*)9(9j`!oZ&dNdS%*+VBI`1eOlc|M}GL%kc zdNWI;{AJoMUY0L3`=@@bB1s_Y-apG~7Isc;VTYvmfQebHo2;xeF; zi96BbYIDxj9vcp#mpHEFEbnmZ^Cm=lWTRjYhf;UPzj_&n@&#QNwWpeIy-RMeSp^n( zM8gRAKp1OlR97vkbc{^xqpNpKX3U%EU3_%aP|w2x0IIt0q$PYd>S8os#tQu+{}nlp zH&KJ;k+HzZXttrWMquXbi5jmq*@<~3P0K!5%yz)QG2-|%Cn_wZ%VZQo1DP~=VyLAx zhc>Yaxu#=>(~z9-mKF7J!zL4aDg6jB1#QZez}~rc3Al3V;+keMLy>ik{`I>|E8PxL ziN?ou$uNVtz|K4Q2#rCz%BwM!oq0gZ5G_@VuFV8zZsIl6CE3JD^{{A0cT$k_ydbS> zz21{D?h-1YJyz|E5pFplJ;En6ilr&tU?=sMFq83;=pA_$@D??jW?}if1~QnGm2gxI#svAKIH10=c@SdI}`Gy1yK$rh*Wu$^yP)ugRs@AJGN#9ZeCNi@{wHXUidR35;hxm9>0b znjvft*KEu#81Zf9#onH_NeqE@%=D6S?DxjzsR<`%X8iD~Wn~ghfSt zE+0lj@MZVDk%YkLqX`=5!7#oDX19NeXGbJBQN<{#3xY8RsClv!Rl%6I;tMvaRq!o{ zJqfUSlOParc}|zKIdp^MS*#yJO}>;uK8i-k@Thegha*4AF&C!R({zj({c=D$dZ!Z{ z>2kTd%6zI&q-LSXMuhoDjGm}XSMfXBDe^*hB%UX5cAD@`jF8~N9=d|&2%D>`mf;&% zK)Iue@30JH5Fq{XZqr2z6?<#OaNB2uK$;$799Yd~>V;gP6rgjp@-P|7l%$1+3-FAd zsXtn&pbh6Sf!sTjPgzk{{fvJAbq`V+V|CD2T>2&(KdA?0vpGb~EE5qCe z9EcT5!dL*)k<<+g0bY0KX8$Py#3T-r-t*PQi-@(f5Fs=`j|e6k%-O-<8Oqw^qF-HT zNB7O#qPhmJ9zxWFI-NN%y#HV65-YY1XS z62RjALPiua0RDV0mN3+ z%7M@;>91z6aSxpmM<|v;CGs)=tH`>2vl)QpVZeS75g7sT=rv*gOWg3b_3fJsJaxX6_SyR% ze)!u*PhP#bxxTr^_y73c0uKVd#Qj@RiQ~oRU+QO;Uh?x-Sz~zbzOVi7m%a9A zxS)A^yT9|}|L)$M3(L`$nnELM~^arTegtt z4qyAF8sdRoug`g5Xf2V?E71^`dYHLNHg+Kwd{pf4O?TIxPr0Sm53}AQr29@hq5xRl z>AtZ=!ML3uTtE;8x}Edvu&mL-OVfE4sk(xm?I+d*m6KE~jA%H^dGOzEL=d$mA6L#C zeQO8|*jZz?CZkPbo()K$(9Y3)fSoka$~G$dkpn{_R0frK9M29PqM&|VPO7ItS)XXt)@sU~9w>(hzK*h40Wg zwfEV4A&VPQ+!!UgL-)W)ST<3OrP_D&OgScrugt*{$FxSU9L5<*R!T{WMYf397>Th) z+Qi1M?y@V>fH$H!XdHdM@k-jg-RhTiIIl8-!rTBLx1aYYO3e~sUL!b+j*iGcdLQO} zLBT#N;@UN`Es;{6Y+0f@B`X|_PqX+NwPKT#?xy~!qgGWaQi;mkXtER5Iw^r7)F?iM^fg|sxFBxra5eL)Vd!^Z(CW?`s@ z!x8?twNZekcBZSz2)A8(DK1?<}wAN=lD&!2sQeDM7F&FkOz z(VO4?^Sy8SMdC+6_zQkMe=>O-ckhpe{-BQxt)UDCJOugW$)iU4`}~w7UqI&VYp?&{ zYv1{^SXYmp-0s}(z5R>p>u0#?BF&)e+}H~X{)}umf|8|+T%PHZ4faJRql@+x3YyLN z6DXQ0pmLn00u@60&FN#!|HJ=uF7aZ+L1q!g$P%fY9=+uTr=) zQZ-hFkLxbg?>afrveLvdz*GKU5X5B%XnK|+Mu}+TTTv|ygD&x94o&MJIOU)(=aC%! znpSmcb?bEi4AU5G9z~hn%h{zr+kDU_AyMVOTG%%?)j7-hbIvp->eT2MhH_5?xcrNV zdOmw!v-5C@_GMDvz{Cu0HM-@VIGms#ui08hCQUa+?8L)pVD}Q55tVAQ=|=j|1sYTB z?-YOOgPG8P9zP*6d6+YOn7Je#SJz* zc%@XJ1E_Uv3pEX}UjWfD+WxA3_sllzw8UC#*K__g1JBHQq6~Y%RfUYUUh6X;SI^ul zH*%Zn#oeI8RyqAp1JgoNqTXf!eLFIyflm@2lf)EDjBw8jh{Afn2A+FsS}wNT=s!=e zRHuvZ-i(INn6HN@A<5d|)VsO(#x+{UTqcml1iV|ZD zCUlIWJEv8ly1(K>)(QRxU1JKzd1w~b8zXlI#bkBo{f=#up>nkYPh5PF z!poO?kX%iFCIQo}!+FQd)hby*QP3M>Yv}{vt&WBCj2QobFd4>B4x&W7u}OeAGK#!U4gEp3=gu zfj?n;8D8_O%hm08{X*`BZbaxlti#HT%EL3vHDpo49$KPJ_g|0^4ii(vh9krvR0gjY zZst}uC3=@8$`XjyFisDgINi}Z?BtNx>+0&o(~sYM=O4cPy+6sD>+9>Q@Bj4Qe)i$t zUcdMx8w_b6rhD^}pO<|TcYeF)NcH#&?q$8_%<)m&f5aF3Fpe{K;)g%`tE&gEUO#>I z@M?YV{;xm%_Y z-uxiFLqSrtVLetb`7MFkm%tvc z0f5qm{tMZSSrj9)lSy#Nu55)m8qf+zsD>X}YX||T`ZZl&X-Sh0cY-lX71eEYna;W90sk1V`HZ7hA10S0JxyWQNrOc6LCb? zU-|-pZMZ0DirK`vhE~j3nM#?praRrO>zdd1p~yP~4lV_GM#c2rhAMW;?bM;JUJ4y3 zIo9ufeNJXV514R4KbB!5;_^=H?8^>4(;X+zyDM^X-3P${C$G%N)!c0aZ+DlT600;} zFlHM~dZlbDQ28|UstQtTq7$Cu1WLZh+*^2nh%nryG)!=^mjgXMCL|=3mYWrcklLXG zmzIS-_Gl|Bxpx7tHokC z<}+xDGi5;z3GfV6)rv*)NI_q^NPkn2^zBe zm}R9IMrA~Cm?dr*B3*uT*lHndAN+5IU8K=;g#y?aoiajl~Ok}4A% zIzdD3(gV93ZlBRICTtGnh=wB7eK5v`_-&g#-udOt?X!oE9z6f-)7Rek(JQb2 z5P9R5kI*UiT=w|iy+6W3xc;3Np0iP$OB~z(`9C(=-L9MYD-`y=eem%0pZ!<==X~&u zy{{j?^6(eG_>Z4_@NUFz#RMh7v3sz8`V($y6_a+(BloFfSUjggj4*FDDn4xwmNLu1 z`*36|y@4+-9B+ZZ$+2xKR;lGl-AaCGCo_6=+;V)5q79Uag;m1ma3a6Z6V9z60&i20C&J*A*i%f z&XLJ6M%Wp5SQ3GL(3XJIBRi50f2+#ro}cT|qDM78IC}J)>tJ>-f6)lbXEaM_IBgMoL9X zrSuU37};oQdcRr7TB)5;teUbyt0@}Rbi$^P*x^VQE*DcOZPfgjqIh-b{vCDuE{`lHcVFE0)Gro1Lb-|Twn1MyA=V5|L(ePH@ z7Gvfk)QvoQCy)_qPCVpaLJ6I?X?GJK>V>z%Ynn37`+jZF0h{WKqt1L0*t=8pXptg5NT<)a)+W6!ZqL{Mp{{i{A(2QXS>#INSk_n6p=|*S17~&vXs@FL&F(N zFpfvNg^`FOkqOe`SvC>l4k9P$^uaSs(A8}S7Ay`9i0&HEjKr5ny|Xveyozd6 zP*cPfk2g0(s5rJ_mbX0s2T-U^qrUV#ZxOtPF-Z^{w)V78v}Nm79!1A?vd$D{($Ixt z4k!5kAeKW7V4gxlkAXRlrs_cYB07I5ytT$q4U8IOjn}Go=YawQ-_0H8s)~Ed1iJ4UcH$$tJEyaC%F)G{Me)z@9msJ;+4v1&LyF`L!bTPV7Bpw!&_DxUW5FKL1fM-=kkwaXxzCVm;)byw-Ul2AKYX=WJLGyM6;`&@LQjUA6jjr5 z8yxbO%!K34hNp8xViA77pSmnX(~fF5wIjIm@w`IH1xyX1kx;PC-uTSy1>5LIj~Fr- z$5k>@PxwqguSDi;dGcwh^X5nQzB6hW&0TDaH5>_4#7diAZK5TF=LUXO|d>l7ihDf13)X;@$fZCyI76ImKnJNEtm2`fuh9#sOvGrW) zkr&d&&t@UhS4E};)=<3W4f>tnOAAPq4xB}uWasVcs&oWQ@5x?u5rjL7x2Z!Dgt=I& zgkqMvKcNhH!!hQ7v_so&4Pz;XHWgNTo-KE`ebCGw3B>Z-$93sOW$UiCe^)8byFOBA z)-syT8Ah&>nR394%G6xR%1sRmuI(8*cIlQ7MugY@oOAgC&gQsGFKSdcXGBES3)pF! zWC226D0gx;(etrm;whws07nQJ{$nE3^Fxt0)uk6dTj!Wm2UmiL42ShOBr>7Btn7wf zcZlvo^GS8GM$2_z`Oov=`NLDPr)A#KU_S3K9Gq15$1U{QQH&9cZa0I4V&0L!!>ZX- zT8m)IeO)tqhfJi)jW7pvh#4EUwee7gabh>(BPfRi-e5Tfkp~EOeb>d!!sfU zYh-A;A#2mr6Xmpx0&sK`87mO^@%!&Qefse$ufDQx_ruq}`}Obr%e`-3HeVgdvKzX< z!Th63ngGw>MvX^Cw^b!Jj^Vx+8GAo`3M}FK%z1$CZ@w zn2kWTZ5>sw~Q7a%Q5-(p20kZ-nP(Ts%pj?s4m?R9!E`hAyd8PsB#vl`hhO z(*m$!1YBz*#0D7;z3=%%8A>Ha4QAAyfw6@ZUOnm>tJ|+0 ztjuk{L>K$3|3jho5{qJCj)jvf<`@;89J=cFwBguvnhFhb7VWMYeMl_29$~PAF%XAh zk^5X8p4J@rnBvC66@}G+d|mG{b2(X-U!x%tdXVc~V^v1f!JUMUS-8CD918im>z(6_ zYHFFOv%|9^N`00oxF5mz9K)9{CPYUKR~(FtU5|EfP`Kl%c!QP=1AVm-Dm`O20->2D zq?^6KRlQn+=nvsA_(L9}3)&>AOn|X#tGga~3Wv>Z*QJ}tpqJf37NFsxlwNft|(i6ZecVG)MAV| znILw-48zo>E%3OMG zcoI=TOHnz?jw36HJmthv-?IlH*c<-#5YIAUj^vUFBaOiwBckh4o1rlZ^CyuWL{u!i zrJ1VHbe}SU`vM#XjyXnH;YJgyg2b-e)5J|gl8&)lv1lk_Nmei zd}?rg)y&ZCaH!t8(?j>XGuxlEY(d?%%ggYAaBSq8PHW9o$RFb>!`YX;`sZxT1jsqK z!-LqL33q8xpqorS7{W0oR#jJ(|7)C#)D?+{y$R7FE=>^$rD!Jt`Mi_kB^&4oSV{t( zpTNX>q}vqnt`WB?Te&G+eWbz8-VWL>ygJI1m!wbJBNscgR^0G5$Y6k_*t-C>O`IK7 z(F=&7%y;I!F&9)hRAy_dfMuqyP1~JyvKwW`T213LG%0YEjE5d@&NIug+a&dim?jdnzp$YwxguyyNJJoG zt()tozkBBwum0%I_Rfd-@JE08Z{GjSe?)$!2Tiw0jZaywVd38=>HWSxU-0;)`iU<- zgk8D&XAPUxe?G`O-uT8pxxQX&<-Pl3=ExZgk6;9oZ6dL}Q0wZM0xk5p@|NPxnGfpa z;=iFzvp-sGi^ z8iN#7gqSPssj7Qq9Q30;5#Be5iASgO@Ym6aRbRnc!NDyUa z8gxPo^ak77r8qYx@iM*~y5qq^+eQGwyBOHHd8VNvX{u=F!n9ptL>;Cu+9m!3a+8xx zCQyy0+Hz(CvEt;k=77Y}zWA^M9M&mOGdBfRhjzz~Y?C%hoobwjCIGE-I=s^6(XGRb z3kR#ZVFV4?aHQxOm&HnllVN#S0U6vy%FCzEfP^8$+cs|6D(YkwdNX&Z2Aau7D(cwG z-s)l}jeh(0oDt*|H0_FjaFg8$`OEf_FM7zw8p}wU13n6uowwOOa(@E_14E009)Yai zbFe?$J#pmD%q9{CMT?No<eB((ByuN!*gJn z3%)LcYqEja3*MUmccvLRS?!QZTXkRPTjf|MHbhDhZ2?8!4nzgJ<7_{4& z+1`hGVSXdC9SJ^%O*!NhD#OMBqY;lb98^lz6^DJz9?D?yV^|)R9Yc;d;MXYVmy;d1 z4-~4&(m6R4_COP_%;gDQD-E4fXRipB?7UZl$Jf*$t$0P}m={$j)wI}|M4>d&>(FWL zWX94)kzv__3g?UTQ|mz4nqinjLv}Y)5De71e3R15`zDpaYf>uwnAB=#v=}tObgV=d z)YPSsbS8d4R}RRy59(Tdx~}lqC%^mX!*`y%^5o{`+0FCywYUB>Q%@7Y3k2@b;ejb;91mfoQ_N#CFN$$5c&xtgPA5&w z;Hn^8W77~%esqfS3Cc~9>2w5CuBCn+)vSKGby8Gm=}4FeF2Z&@O}_Q5L?x>)@S>k0vA(%0>i%C~}xWQ(_es6T&>ZrvCQ&r~55n^M+)@G;o+&=CAJbbkSA1 zP{(H9+QY`MNVks>P2|YUHQ9;_NE}-ahD!6bdeYk+Gh{m}+b*qg>+oG~!RymyjTC4? z#oCLdT%llQB>Ebvu(xVCLVE&wj=*2lC`OuMsdXq%3C~2r>tkdWfuV?au*YD4zHJwDud>KirTFITsb{p9Dg8p+WEst<5;K=(^E; z?p3KiC_3h76IDT=bpT2=UMrh}<(D@6$QOMrO&98ueq&E6HZ&RZDPsWMN)R3713^lN zX?TwiHk$euE9BPq9sQ|#N1*e28S%io&h)V$m(*vJ~hA%N3Z|QoG?HOoAXjx zGROBDBPZ)xdvpr4rc%NfP#-bvQd-DXBVWkaxG$lk9>RPO6(N!$GjTp)p(f2pgdz>y zAt_up5_Ix_Q1o!KGgsMqnaOEn_D$^Sc$oCnC>B$7zzjAkDr3^G{BOmj01wprcCu@~ z;4=-DALLtYJBNx+S|^X>7S2%Mms;n52&Bn7dl=~1#Z0*EOnqu_~3*0etrG?+0yDy@d!@{mG)I7^yi#4%}!`Gx2z-DDpmw8 zez?AoDYE09u1c#eh1K-~Ip5ySm~hyquhnvd7dHEe14xQn5fm!1%vEEnEw-Pgl!{xh zh#OFqv-Va&CLF_4Zi-njI;`8lAL##L_h}x<(RvYL1sjZxiiqV)DEg)!qZ(7MF;rks2N%g5AQJ5AZIb;G}|HXt~dp9c0E`h}3U3QK8QTo^7 z)l}3eAOPKrBx=$MNl`)5)d-3d+On273>5)^Gx{*oE~7{s4z8|w=+HGZUy+axqrz;d zhG<9fst{T25qw(tHUpz=Ioff^R6^3uouIe1ge%CZ*D=}@lZ*=#$fTWS?_n_-@<{K$ zLH90WYDFe9D!z`}9)uv_)fQW^*W4(ohDF31%XHDiqCm3WjmA_YJI{?Fla~8a4?HGF z8kX7HKmt=+8X|;rO_@Mfk1okO?u|Ij{NwS2^?GUsm=&gWR5lmr1jrY~3Bw+mb`DQe z1ej=emWnE!6rfeo!%UPQYt2t>iKL1jAwQ$u-R{5SjMabDU}oO4JjgDy+I9s14W~V2 zxz~~4C@8a;UxaM(bdd2m2f>uDg`xvP$5+!PbKVqYb#JbUn1;xNCTJJtDz*<9K{l&! zxQK>AqP0_fr!-9~qe)Ow*ZY9k-A+s~hh8}DA@rcbc1SVIh%eqFaM6g*>{AY*Jv?fA z@ylaw%P&UzOqdYfoyg*#py0b>4)z}NLw=r`sE*kvC$BNa)M$ie9O6X;7KGah6X(7z zH~0@_v=cv=;*@^Y(ps~qENGs=Xt+B{+a`dxif2zh`r!TFK6>&BVm*2N+dur%zXYzv zmaqR3KdU?U`~2KHkIj4jw72pq;%48z^`pOh{FU#%c=~Kzt*6gF{OrT`WaR`hw=KW2CPTb#Ewy&YE`Pyb>~#lsMEUOM|w*1%Lr=(;+OQbGW~S^?f~<_VDhbM z+9_zZX*-m0M$071>X9!;h^B_fb={f>Vf2qCa*DDyYWOTuQOvPXKxMLUZ3^{r$QrZ7 z2{`4WBpT)ZM3*ypid4K88C1O4jINZhglf#_$~qK9n#&DCn0bbMQu{Mt*l5V=k*7(j z1u{8gy#kAmaaOkL9G>>$Tn^x%^tsePUssHn)Gxwg7YhURdMnkNgYi=AoHDZ2#s!Sa zRuio7R91mf1JvYDHJ23Uf_?Lfx1OOFPs_A{@wI!^ zCtyR9IRRC9+uQ9z)oVqB&?4{2rqTg{*##>cp)Pto*w(Tsyq+^UDb`)J>0AWGw#^u| z)k7NH-l44pRna8F?J%%Ic&_PL19k@MvbXsm&7zmgT$dZyitdacQPamcoM_YTS|8Ym zv;9=n=~w~V6fKGAgF0TlrMsLI#L+v?Q9`A$>{6fs7+J3oMC$pasRUZfS*8~!AVs&G zPi>pPiny9^5cj8;IYZ%I@5)jfk8w5e9Bk9vMiP>aqE&aFOQBBbS9j|T#q4phMO zhL`LMwe9G1BH9TsSdC*GhR8iv?u?{9)F4#&t{|@p?6f;t1JFdhA4d_)cT)$FWhEn_ z-0P?VICWEi_ROc|H+Al|1qQ7b-U)-5)F4t-z#{8mW`kX`wLnk9-O{AA%zQKzca7FJX#L`0RR9=L_t*i(>C31Q?}2BANt4FP0_5NMd0l`-6ePs zcHtJh@Q5k}bR_6fY6ng>v&(vQ8qDDg3-Sc&#a)p2Q@owpII7Fr%oiSWpH_QUsn_59gKh;{wq=Bsc0lh?lX z$#*^gg}^Siin=)LD(^yxUPD$caPR)iMSWu+#^i>a4R-q!4 zn7v07CN*IQR&xF-P<47PZ6ummBw{sO;mFn))etL=F=4Fi^H4)0l^79m+z z%5#tt>q-eNK}@K??K@{D^QUOYETyi=2|~P?`A`wr$uFjDJDDA zmpO$Ef(2}QrYSf3qBRO5xy#lft8jn=@<>Qe%mi`wmKoZw<3|)cDnYv zj;t`qm^~>f^TrYN-G8K=<=n?nog_e9jB|V3PFnr#;0Gh;BHffLBQteljP*@ByAui* z^=eq2@YR4axD1N`Vy)C>zJftSvujs<0o1#ioR)|lWWWy%;?LsUCn zgOMh5JlyTNEKir|L_x-Qc0MpK5<@LPJD#IbQYuDapW9JZp@wi>XdqA%k6C7g>O|S{ zAl1R45}Vcx2Jw;9pn)+gL;47Fxu#@eXq)S_W4x1&YLXL5zUh7WdWAyP>o!M>O%?A| z2c6Dsw;oyok$a2u2c=5{E=W&I_823i7_do!i(?uabkZRtINnt5Xy<_7oT&p%jBH13 z0%ZP+{NiYCqoZwP;5&MjuG7S&jLgBQ=gZ3Gj6X5qNK)>GP?TD8axPQK9b!y=oXpt; zCXJqc$X*+h6L-c{J%{NZzWalpU0>(*vln0g{$G6Z!QYf+6e^PtFMr}?AHMvgc}jAX zHD1!vKlbOmdH`{?;&$)1{@~xd`uZE!&z?r$(@)<2?34Gip4q1}QkpHt>JGtkmLVg? z%6h%F*f_1G7~33N0o97m1YJZ#`OVD0Ii>Z%74 zhMaX5M>`cGV!Ya#}K5=P4%q*C+v2*I81{ zHWzYWPQ!C<;DvjAHEH=JuJR&NFqbe1lpj;#nI^O^(%k?S-zFlr634B36jK>9K1QeM zI}??!F;_6E|Jg*5QWrO^&daV^7Z7Bz^8ymfYIrKUVUTrPH(l3(K*c5(-Crv1b*gH2T70c^09=qgpkp!F|N5rvB zBS5%u^y{NgMFB%es~HX7ZZ{-yxU3cu+r2e`A;>)!*&-zyp_4`Pm#;I4u8S`kS(#NZ zoM})%km~H{+o+XZKqXfhK#vm9KwB54FNrJ)+$z{dJ&XHBg>eX1NoY5gNnP9_-ves+iYw?3g z9ZBuebAH=&S}n#2tFe-?!(^sy0N+j^9{(LYJyWf^oo$lnTfq=Lvxs1CWtHhNqU%G z*-&ZTYA|M=8}4ml*GDyE$y8P*mh~&YVp7&KjqPNI0Na}Sl_BQo$`)nv^2;bj3qSh6 z2?@-t44)z0TyF%p2JL_WdnR&cbKi|~-8U<)0)dz|f9X$t z@gXn$c`&zg{-b~9>36#v0pRxaSKs>DcYb=CdG#Px;Qe=hxv!tAR#07F(2x|PAv+5~ z5JxcMkmn;Aw^Fw;@(^0%!Pgl~Mu@h`>Tz65&o*z@nL!A38>4U1nyk|VLce1$TECar zGg6Da%*p{h=bdJOyX0RuQ|0fOPTtCHIZEl_p0_H7%v^c8`9$4fW*q9OI-7ZilB&u# zJ>o!tX9lqGX#u|BJ-7l4c!2%iio+P5Rr+f)OAJ*Y`YuZ^qkoCb43qU@_? zBTf2jBGBwyFV#%h6u=lxIQJL`?Hca%34m{QZe^3BhN9d8t(T-nlD!V8Z?zlrP*EYn zoGxL%p()4Er2j}$n81%vL($uP%WXlB;h5beD+vF{S6d2S1jb>uWm1mw2ZLa>E$}Ma>fpT8KX+o)p;uyk3 z^t&!HMHz)W$ux!bfPuQ|YdSM!CW4P{3A@4m_IbVi5;9!RxlFT|r$%tck|^4CVAN>x zpzbb@e)vUj3j4&yH7}Y~^fX|8noc=RYJ(4XBD>*umRAg@InR;HM*{UsK!+RcK#`w? z;6bRh3&@gY(z`M$1Yi9gB*>5bW)PRSN(P zJ>@m)oMBOnpl!XQjUxC729 zEu)MD#;sG);LiRY?FaIs@UOA4asq-rH0K=DFObWt1HDc_5ivH405*l7$^fES$kgPt zqB)^VR8t`)!blYnnEz1Kenid#7#*p)U^}URXfIDFkDOH(4%uX_ef#{w_kQ`6KX~H` zSGO78`=kHO-~3O1kGxeRJN!C?9hWH&j_{rryzj@IO8{7(bL2nnColfWT#1`oeEX08 zw+|kC<@V{b2M->6{L#D5KKZcjFi=&5bsUw`>L23fC|{@yVapH=%>aQwe!uc2X_gJ- zk#vbpO2-K-2}%pYUXYXqsEgLZ=NzO)i)Q;e=S%7-+gGny)fggE<0ny%wpiYA(e?S>wL`Lnv8 z5y?vbK+JX#F>RZ4?Y{9e>Y(a%s>6Z~Sl&!i19e$9CsS(>K1nwZ9E}6|oYdTFO!61a zraC2gCz+j7#Xop=Df3g->3i2Hx}Yn*zO+#1(rser-qdQYa6;*dk}D&ydl-9kd*}}W zjh}Y-36#D^%Eq>DFreF_tpO&mmBUh+AWKfj#$C9D^=7hQY&Y4*pmH@gG<3}#$`PZ_ z=nI70)QKgL;ce6b-QlJ*sXT@G<1VC&q;1g5a|NbDpdq-0D8^4Ux?L_w#(#GBD@-as zoYPq~q29@QkY1;IQrFMSUQ7cTDjcnnRZ+o;j9SHIVS;{*)C24^xmSF+3>E{p;rE;O zUTaU2M0#jD4pZ;$T?OK5AwJlK0HvgW%F=qCW7DJ1RsC>~?xX~4Kl}J<-cF#JBui@; zrP4%M&{tzBiL5m7$%ZFKu5oF;n#!26WU)e%l5AzGXfoLb z8IhrqC}3D}?0s`&by_f!-2%0a>cCU3%HCaqG^!ow3ZqWe2tCIrG`Byr&*0nPHj+Gb zt0+)M(`b&?6iZ}uLdw2`T-+Z_^NAtN_Te;8f0<}gY^>8c14zz#jMolvFL9@c&`6jw zUJfOqdm(mGvdg`vtx^cY80la?J))x!t59Lvy04$vDm52OXr6#fuP&K*W>C_|Lh|gg zd#tEX--s0Hd^;QUuH+1Avk{PEs7+f!HHXWYb1gK{;HlY#;?t8N8Udj>znqW;V2&A} z$lQpri*;v>oIQb2hd5f3OrD~+%?U^zjWWX81#->UOk~Cu_I$E8K$#wiy&)#^7+_if zF%(L8%Rct9G7vu(Witeztfy}v@yTq`J+0}TyWBh6q(hQzDkK?J`#e6a8xbRb0J+;y z9HgDnTML}=29=(0n9MjFmKjR#!=SG{?e{ry$)QEXHubmI!~72D#Y^aCModjYFgltD z-y9C~p0(y#g{5;4fcW&|_dopT-Kz(Wub(~p>Nmdk-9P;K?d^>wqA}Ws@P7Hr#ZSKE zbEw|rBkp-(uI`5b@*12m~qRWfQhK==!`hG4o5Em+CCRrHEj$*sa+DmRBR%L1x*Q1l1$ zW~^8g1SNMWr7G4dVzBtUQ$K+-r2h!35XQ}U7fub;#?e!?Pzh`AEMb7Iw}nWMLjc8O zmrp9ppk2`Nj;U$7M&T65yp`#M>;P14kxoi4SIq0mDN@l?IqfI*Lj6gO(ucX{!Hi=% zR!(L+90d(B+VN;At@T>BEv~W`)Qm)mD_a^Vx}=2!=6LHGg{%Q?%$jAXcmxo8gS$?J zYTYDbeU$pA&86&}N_#-W3aoR&oPhH_Z=m*vFEQ2Ey zGExTiE@v;q=At3aP_^5oLY)hC<)B%HFHAh>o}|&$lQZcV334Y3{Hk& zBXo<55f`($M%f5+jV4o(CFFxXHCQXn4FI&=V%jkK46BS(09tj?Rs|A+I8qz`eCbNl z!90qcwR=fW=GzdZ;CRn-L?O_o=)u-k!j4j?Y%f?EYwElk@i8I^j5i$803#~HswM@Q zh!&S(2|1;zG%I{Iuhzm&_F$WQSOH)biZBPkEYVIn;LYx7|BfK19?CL?V%McqgNp&eS}kxrd%V*Xp6QZbDv(R4S{(XEt9ktrv56gs{oWQ*Ty z?M@T*MGs3>3PpAeO>1)@`V+_%v@tu0F_3Zeuw)iSTZBgTLYlF3Zvaa z8Nmq6ABMlfhv-UFL;|MM3avY$EMgLuZI^)L>k&<<3VL3+26cZL(ax`a|YUCowakL|LbpT@x2A;{!E({Jw^4`+PeXjge z%{ppq6Y^q2sCpon(NI#z2r1JD$t1eNFsIN1L0%fkv5YbzE~1OosBjRUMrOu}jprY{_v_pJ;>nZ8*Dr3q`Tc+X z`0*RCyiNbde2y>w(`QI=&!2myta<+LqOD=G&$}clJs=|D7VE8_{MWd8^~JO62M->< z|G{scKl^x27Q14bda+WOEcK%}O0_Qv5iYuTqYk8M3)zV-vy>KN+7o!#!Loq{sG?M) z%Qy;gmw}I)5^M9fzockk!qE1PUH4!p_o@o6sL5V=5D%R7MvjchudSDIphLaaik(n9 z>3bFpw2cG-=3H)1g(iE3R8GaCbG`DQmZkpOA9z#OMa>U#>d|6<(GX!Ex}W@SvrCi* zD4;UutL+ z%D#$tJ!04}4SJ)rP?N!Xcrne6k+vbNMeIc)nf#FHdXNt1@@+ALb~HH;vY))x*$6(H8O7}=N(Ng(JV=G>t{vUa?zf`1OkZ7X#=M>R0VoLIbHtSa|Ba(7bNIL|cF^kq?biX7A}bJhD_I z_JUP=K**Kv=hQNqG6HG2rOh@*fgW$Hb-dD1o%?jz0WGuW?x;5(v z%?pEVNX|Ss`*k6u1kx5H;IDvZpZ)Ir_kVMB_3-w^UJoAs!Jqtm=Z?6-2z`f!|o*sGUJLrLvU*;#qKY6F2I|o-XT8Z1Qz3~T6zVdzSnah1EAas2@sD1OQYPWu+m3;L{xZ`SScPWD~~#Rb37MMX)dnNyJcLv-oD3 zI2G-lbqA9WH3N&OoK*2lbx&Spy`~oYdV9pQ?Wpk}EOcCT>V*p@nsL#JBsV0F^4e+# zeF?>J_zcx=LPsUZoK|A(N#2Yu@bHUDt`1$vH~*CgEu{Mb-i(oUu?CS=E_OG|v7-uQ z%PD|07Il^%IDZJ1>C=a^H1!G9#=ApwY}yzzDCkXBN)f8rxp)+c9c!ded+cQQVTCcO zIT62XRgYb{l*W04E|kIZck+O^eF7(XLJ{XqO@RPKQ;^m`Upd z>f5LQp!Yjf>2cFT7Nm~UaN{I!exBwAVI2+Wu@8o@O7qxA6%9?nE{5s+wE+_48jGHB zmONDP)J&{4$y8BZIGDM?JJ@Idm}FvCs?88$gRn3Q%UM=}WoqlA87+5z9Pl&?aWAf} z@XRScI)LQo;{ckbCU<_PwyveS1I;|1qv>i|qe@?bvZ|Q?J8~md+F6EAF7$~IpufMnL`-7Q*5XYOonPFPyx+;xU8`JB zyFkragLItqUyDgf}MT`Jxez>`lh%arVixC*R8We@tX z3JN7A9}ue*tUgOZG2qv|*^f3R>Z0#Gh=B(Bf2gY}s(u0cT zGha?$sY?O9T6bOWT zU(u8HQ4i}a{t+<~L~01isww-TeNvw+Z@rvrwwS_%*)A<)$i`~R9yp@uzyS3-bOAxE zbc!C-cwpE9E)!Q*h})0e`_+q^XAhq|zP;IB`Q{%zdG#$|-=A;p&KPG-zW0p#J`7;p zZR&HHxEqf5{4p-JB6i|iKm3=uAKtvUzPgIvz5mPW7oRpSU)Bv&nb3qW`<@S8sY^&* zRzmTio=wM2ggPyhC`etdhDf!okYc&9fYs%;stIoOwRhHOE~q@IvMcAL*)zIoMw1{bT{HFYZZSc4 zl%~rzSb`DQLjj6R8NYEJpH@pTcI3zzF#LpS3kL}T)NnZnk3NTlD$!+4+if1)^vWb%ESf`=+_i`lp+5MKNgXS>Czsj z9c*?FACpCSqCjf%Oe=L*Fsygn$3@ncsl||6~lwZWhS{CFDU7?5)Y`jMyI=Kv6RWyYOI?TD`2q~z8+8d}?2BtZju?D@&or4@6=a!yZrIG#BwG%zHb z>~EGnn6OPs>3=GroN)8mjGzp6$1GheWo2} zD78AMf$WMPy<%@>8JKK?ZYFoHB3O zpRqhmFqKBg5{HVjCsarNTG#~-}+ z%LnVh?e*U4l^_1;&-cE4d5yGrC8>+@Wk+88#K7Bw&pYrXmlZ>Gb9b+tnJbXFUwP%* zuYC1~SnKhlM^B%9^ufEoN!;pPoFpm(o#4}YI-E{Mvt-zvdS!#;o-%imyetk|2X{V% zZ!(Rhq#mEsn99EkfY$dLpnY9&NM`b3aVgH&eM4!F0*UeA1|P%Aw;dqr#lx-DArg09 z;0r&bqRXCLzy|j2XP4J^e4BBnOz(6`^ShsTZkiqWp6{62oD{{xfGq2A67cn3f9>u~ zk5v;QASflTBMD=a@qx@8e&-1_!#D&KPC7Yzl>(?YX#2UoP5qeo7>V8Ek+0Ph1qwSj zOGx>{8Fj!nPT#!}bX+BUaxvw$_j<62MY? z%4pUlBPmuNyjZ&JD|0udrr|6VQTt`~Mj%+Bm(zy)B7|r(+qT_-1Xkou)&&VCr@ z4#C*Dm!8FKgE4>dD7r(*e$O;Lm4Ry!7NhDLKc)C+9!uGWO=_^!2P$oi)Xy^nTVt!u zijo-!CAwf%858X6TR@b90wlC@^LNpIQagB!tEC{b2l>`X74oaDf}^tv7O+}s2puo4+d zZwH7;wtCbYd+*b2B{_A9d7&*P_(MDQXcN1x)s^dJ8eSddYsm@iYak+bGoHZ~igr6K z#MjX_k^v-vA|k=&T6SglE#JC|y*lc_QXXEIH41cs2}4ZEAw&z(TldoU`1 z6DBqsHpzilCxyW(x-1W^UMT5a#s`()BdkhmPC^R#7mr~t~FsLN|k61r|Qzzr-x z0ta7tjZv0smymU-+^lsv`dSSr5i?=c>B*u}+v1FeRMtYzSF?{@tZ7`hTUn`(WHiMJ zy+5``uJ}wqFGyEdS#%vjI)RvpRak^1gk=9t$&O*qAtc%|hPTA+)?Xu5=`WW{Ac3#M zYN;3WWh`Mgp=T89JHFR9oeslpaLL8foEp7ir*3eGhMKeCa50Bup$zCAE`ua2_^1*~ zU3W6ddXq;lbSHLAK=z04|MrcqfBWI%S8s2xUw`utUU}uMXV2aa?(;H~TekJjJ^Xmj z&wviQbI-l3U#_L0L0)<-B-Z!;_}{JvPi|hkSPSpJ`|Fz*PtRuRzgu(B?3ir{4VYe9 z_d8WPpTTe0a^tDW5Sj;AYY>A&YK++(gX477Kw2t!!^TuGskqX-H@Q6}GwaP6f#y&T zHq|w;Ocz1;>G(4gX-)AXeJj!D=r*s$E(vw;)jdD#=?eX!Ze{-g@Xo`X=x-GS=v8S; zm-1VEtt;99B>fc6!nPPmaiClrP)<$vlWNW-bDcOm!9Q}4QPR3fw{7Tft7v~T;W#-7 z7wNJxY!iM~t5qGYF$O=7IP#S^UZ$q@)}61=pSoQ-#kA^ncf%fxM8sA4hjL24W|h~R zZ%ypVk)+3Z7NkgBSE}FjvNxJ=gl(X0qJ=pnL$$zTxSK+srwQ03A=_fEazx!vr&sFH z%k#P&JDS4n1NMzdI-s*y0=nr-6_wpdGu!4eWOm<1z0((x`qP?qJ3)TQg!Z=$j~rAO zXx$@`6S~%x45~xspi_V{lIzuPMQ&SsSKSUmQjswj5!r>WCg)ZTil4#fx*@TRus60` zHJqSdvrE(tI@;Z2CDy3P7&tUKx|hsFi>4+JfDZa0o1n?L;ITu4kAn)g=Mwt7*FVbz z17+YUx+g~`1)-QxAQN;HOp)m-OB^v{=CQgL*>;GwgA4wErTJJ~nj8gH zZ8Y+^Y*p|uE{n~=*E&Pyq=}YST+R;x!c)NNq$5uKodfP2gASCLG@%!Pc*%8;v&k*e z)|%wszLEfxJ9qH35xYtGH2-kyn{nPl2XqOjg~8^&}#?rs*`6(UXCeQV`Pe6 zS2Xg{z1K+EY}q4MJQ5U2@+1Cbl9t#iQwYLdpFE+cKd7pG962HM=woGulI(^FDMHas z)z9fqaH%UZ>%Gkx!HA6Eq^2Q^8H~J@o=s#)fhHEG`V3<-dzhfiT&rOwd(xFTP*iV# z&^&>VP#RaF?E*rzaOg}$eO+-y z!(IVnPdninR%VE7$ig<*M&8(Iretc`$&3sIM(j968GNvh zCB5G~`}Cc6ezC6B-Wl=uhkyJpG67tnC(?&vy!Z+I?`0oO5Y*2Xtg^;s4Djd3cE@3% z1Rt5V-}v^QKl$qSZujkjhgY9H{qWO|-UT17&y$(d<*dN@CDZ!QD{@ly)g7>|dCcm9 zRvw~)T!cdcBx;uTHfSIP*T^47|&+aHEe>y{a z4L}^~Nd@C<4sfwZ&B{}Qz;h#?gg6tlkY=%U2V7DOd2UndQ_(uvKy0Ix}8x& z9k4;0Q2QcdShIPMYUt?nps53svMr)s-Yqo61ub;?9qtl3>-~cV_+`ihv`rFzcaB?d z?4_pJc??5`Evfd7?K)%`yU_|ksL>upa2IW4CiMEA6NfE{!WioCQJq;9+dDlKahx@6 zwIACH4FQz6nab8!w<~u<>^@y}X13*rESmiZ*@dwqD-LE3m)u(0^*=IYfi5CY zK&ggS&+;ax8$22Iuc0uPoz<)6xoi=!0sZF3K@+BRSMs?>72ybUQp--9-r++PKhS7OF8hL_exG2N}e_UdArrcMLfIe8bB%N^ViI*7W>HACqTT>ubE zh~-LlP-+ubd?>&C?Yy0}eD_{G;qgTIm^X$E1G4cM( zfA0JGf}?Z%7kzi}y{*OB+dDsZyAt|A#Cq`LTYva(aP|25`3tOg|Gi(`-aG><1^wST z3tAybkqHu21PP%w<}^%fD|VZow>%83W$Stt`Pi9zZ`Hyrk^n;?0qkTR1hmqWE_$Ul zP9~7K<|FKwOCgTnlqWn%W6;&6%O1MNm$uG^-d@Jfo0BrPUJr{L%g(1~Xj2i>1SC{t z*$kkO+Pps1^gh#>%%W+?g=@NOleT-N9a->6K8HkJ#I5Q`P%eF*1Np* zhTpQuXr7-&U)SuN;&k@dT*GU58(FBbklEKAW4Beh(XL+>F9{8qDFk)*M(`zxZBxte z_@22Ucd|~rDKA!ox!}2_kf^Sw5OB$M>ydXxOkK-r=^#ouVjN>{M*0pY^jOj@O#y{O zziYGJe9-VcqP|iK+i7l9{C0G=^}8;}MTtvD*R;n;Owc7LlFrWQI)Y1Y6l~2g3bZgZ z>@w%59EFdM4gp?;<5dBbUZUib!T=<)t8;vx@XmsDvqYB+1d(Qjl*#>+(8KeoT-ouHNDIfD zG;E&a)9&3#Fl*KI6)>!@LbR3}dn8z2UwR_l31LS3RD<>|qhgM_lpYq`Pz>xo3>1A^ zvTgIpp4@4v{XO(6$*jYcx36o5ouMGI&GA$UC@~-eK~plV6zYxDpHW0!>)U zkiOP%S?y>LA`e%j6+0Y5y zzav=d6~qh$nL4In)iusnZIlQt2g(yWnfNO{O$*R0Ytoj+m3*H=j}crKx6N$Y?P`b} zVaN;8q#F-QB1QyAblVw*qR>m$lgpj~+ev?6dbj`RI39H7z2EVGmi^&7~?c5xR-a>ZmvP9QBS(Kqk_p2m=#Lfjk@B^SpJsK^z;1^GMhEAHO@6K8*9=W&Ki zU~Ry2ka0qb7_EvXWdpuAnsOtbd2Ks2apu_wc;^c`)#4fzwQA!X{u<3k$iS| z=Hc`s?G&^nssaELc^#rRa)_Lz|4B3vKya?BM;tIQ(0?aW6=ZtC-;2XN?&wLWp_}@u z=vftz=1#WM*BuRq!KQIJf7+_zr&DNz!>W@TIAd6Pia}d~16ok&4&5d%!zl2J4Vx{K zI|~?+EEdRbj9zaw=nHcTo)XPapSD-Z6D{p%hgBNBQOlaeNbZB^E9QMI+keKRAXl0q z6rdHPp+S!XLU)ws&UjG@Fq{X3vsW3Tnhs2csnPiOEz2+Yf&R+CnhHaV+I|t&&h;Zd zHRmFsbMm*)$i#x~??!*_WLFkLLWHTP5sbOXh|;SGXIy?#=4e*K>}u~I3N~IlPP~*sNlcm)=oUEzq;o@lNzfi#R=4O>=~CmS#K#-b?|2H+}th#k0AOY z5w7r6H<+qfn99_jVCx$^=wGp`p=OdD>(Q{X7Q30$2_T`Z9;9qQ{|B1f8goA`LjC0NVU* zi=@ryy&iDL$TD?KzD(A+WAA#PK=ohuGl*}64y3xKL0f><6viPQ5nfzz)l}jo!S|7j zu2*limg{TiJGtPuwKCmtkZBkIwJcW)i_w;7u8CerU=Z1>GK&$?44%+}W0}q6W*Q?e zO1xQu#=x9GB}(r&0dg!G+j?czX6q~$2tR&ha(W8``rJV(A*eK~6o$-Z%#aOTJEBn| z_$kn58C#J-k}P!FFODsmUGJJR!smbo<8!=;=ps3Q*a_V{RTP%l=Jl+h$+>$8AhEsQ zg9VymYE2ImBytm<_#Fb{QOy!s&3FSjmIZxux)&Nw1S;YZ+M*&etD4M6Omj0Vd6Hw4 zB+_`Bk6^p0SJfqYqU9rxkG2|g+ci30g}QZTD2%H;cABu+98AUKj(KLt2mUMubqb<9 zcVG~shK2OVw}Ctsz9iK0FoM{aZ-C74xRF$@a2b>gd!&JM-jF!XnyBs=y&FlB;}XQX z8yt>CF3vFUk<54|MYXP6QeX0>5WSeHgQgs@7EbeCy3(d@@5$-9Ff7u=oM|rBPMixC zlCeN3BJxO1s1={tOd<{%NEU8IV!TO7hg*YixVu>L`+OM$g5Y61!(7HzvUCf;xI<{BO$Och45~JLs!K*%pz5R}6aA{lp z>mZ&W_5HMy^E%O^<5t2OsGV17_767#N!DeL27o{&>=9LTH#5%Pw3wF zPk4#R4?q!w+&25tjFieWBap&{<~Z=A^blfcPse)?lgHDHt&fbu8qJoiw4bK!Uqxg-o3aTyQ`pp0hr2y*H4ap! z95smv4sPILxN2ZKBCcP2`rbRgSXb-%#fug3PyXe9zxUQFMO}=*@z3 z*=xVYPw0PlK288T_cy=u7f)V)>-y&U@smeSpMCt5I6#iHM0j4 zvpt${sROJ`r~nPm1Qc+EY}v3x=V+El5m)lGP{l!lK)XtW>rSjrk~&hkFGqi^{m2K+ z?ID?69arc0Z(%x>$m`&Gft3cNT3~v}YIP8N6&fT3m~H3FgK5(Q^x11onks_w0W0JXZR}>*;~X0`%-z}D8K0# z{fW$e389pP=JIxfh(nLpD=u;2(01(7h!`>W(!1uZN{*1r0$5y@lT#o??5xjjXM!8& zb}l~iF^#S2XZqr!)jO`6}A!n z{GK0?q`Iv*htV!(RF?z8Q(lRnyEM#JsA;0|rMQ^^XW|$gGE^MqR&d=;J&-iC(_9DF zW&NkA*%Qk(s^e!~pN{Ch405-9l*KwC!#7?I`;5KuK4q#FXDmZuRNNKDvbl1E&_A8g zailx(u&BvL7?zQSw6}NJo2a?P<*bB-kZfy2V7`mn!DnmOPjkZ&yj}4$-LRHBW5k+- z1A&D+6s2p=B!}qUl*=(kn2N|a7_TLdokWK!1h^rUt3&RzSz44YB|pMPQg>2g_kJQ& z_#6Vd=PE6E26ScDxicluHlK@W+1@(6+T$%~4FV8)&>`;j!ZrwHuGA?R_4IFwF0R-E zh{}Q0ZQ>a+Y7hJ4y9f?^Vq6rXyrIy}?kGGGIN$npvt?6S!BU9d zC3l)c^T)85e@RYfLgS^k`x5@Iw+T>dD-S}9Dz7A{WJykjiU!l;LSG^fYpstzc<0kk zKYaYkSDrt+e&s7ae*G(dn0ec;*cBaQL~8%Ie>{bV(fzjhIc@z%J~7xcmDw_4MO-1` z>gvf4|NP&_)#Lr*MLb;ZzxV6gn`;??4S3$)<%#kE@uOYC+9i_WijgV78U}yaAyo?3 z9Wsq87L1bjcsST*1tQJ~Nmy)odaC^`U1aK7#{hn`5C~-tplZ)MOo72^L8lqTEo&I6 zpoRF+V+mJM!=`m4?d)E2j*(uo(i$cdfoXfE$DrLfqn*m^L#WFBI>2Vr@!bK~Eh&nv zo&TyS83lD;dqtP>Q;bfyDbK;^>l~{>K=yOww2aXDT3R#42x#xnEi^z2`-D~@E8Q)# z_C$sDawJeSHuP(HC;nozet0S!oh{8ZfF{m+N@XEpumkwhq>#m=rt0 zKcJZMb=#HYv-EYH78_2J0c3QkjY$lf_E!hQu5rLLv+ZV*P(Vx0CtyLrLQn4#iIedQM_)E*E(RE<1`~$?GAuu+PiP-3 zRz`|}0``pyrZ&?sE;H#aBxU*q$`s+4BlO%%{f#)--oVOC(V1a3;N>r1*x(QV?tABJ zx8K3gprw_>n)YLjQx9(|BPM{@>~=H2ri-S4be_vgBdJMAAIvCVhgYph zw&^Z(n)ro7<}J;JuJAp`#WgiT)T&uxvJ;+IdF!M9_%rB+We_=%iDZ1K_()u_RZ7Z{r2w`*7favag#s!Xa6px;d`hYdQKu5 zG5w`}{;@B)x%(3l5i25dzxkbizIWW-Jb&`!$)_KG@YzQn00=DK9;69sTQCbiAeT8W zxESVr#86(zPJj@%o)UX>40amZ@&!DLv9@k)Xgi}2H`<7u7QQn`f6}fp-k%M3#1SqUi9-ZWa9D%^gJTjwfB0QqOTEmZPVn8D_yK>y&78>+NFSIM5JxRLr>H%ch zijjHN)M6F3f#j;zwoou6o}fFx^dPrlsqSG>*!bhn23u+dLSJz#J#I)5Ml3lbRmy3y9qU4!;?}p!rFV3na8+C3yj)x)EVw^Pr1XJ4)0<1_>AqnPQdR;H!!miVYj)_6YGk;JA*3|| z!0b7!)tBbtQ^;l7^#Bv49;%Y5K8AW5Y)V%mJ+jvVYOT%=EH?{dpy?PwO-jkPjBEvw zA=hY$X@s8cobZd`w|@MA5D1UDVBmhCtu zdqnv)+)nkaCTR+sjNv9dMao7VKC;$Y1cq`)lOyV`>^q@Rkzf5XFgoXr#F3+lYGiUg z1+$4kn8HKy=2+T{Qzxg`Mur5zy4&XdM|r?L#>ciY1OLM%YzIhm;h=B89b0&=isunmb2`MlB$9cc>Bl3|i`> zkP>nhhQ=ZiOd_m|pr+haxDhhJ5LlSwQ%9v%>-cnT9+sPYm(%SczmRc4q9EG{K;~jW zh|JI7bh`{*xg&DdTOxG*>2t{m3GmQ~22$B4$Ek{D3DY*n@R3N+;-s#$OtQ>>x!WeX z>N=5@y|6QGIvr*E7)p)UmapeAjY%!XCWOkzsSboSkv_{3o7Ai2z&JH*==8RUa zQ?-;%b!>_i$teyxqu%jEO^}9%MV|Vf!YV&^Zvz9pDiiSNx;k^31EtrsaP%#w9em-= zzciJx*&*WwLlP)fx1$~rG?obdvl+$*Be_-5Eqj=JBIur}&QYxXDz+i&aa-zmg^TZHj%0gs|1Qr6p`~Rc&NKNnq zp1qlb=Cuan9T|EYW535TIt}1CuIh4KGj#Fj8TG^iY!dmj0Uf0Ats|WRFd}Ip2fDOZ zW0Lv@U2Ah}Dhj*J&SQ(GAyn#07v_C@>*LE1w)vxtue6+J&Qwt9+?GDpRhgQpXY!{0 zPJ11PhzP@YORU+O9FBcm{~tj5u>gjOnI(M#MYXd|-@((W0oNI%7^X0O3@s?BNq%(s zaS)M4X*Ll01GRHROKLCUV7lI4w_ znSz`{24A4Xza8C1}P*P5|&fW#WgdDEJ8bvfRc&cg9&8_6 zsI)fj5HP%{f?OS`_uB)rhKKTM~0BrC6FMga-w7|RW9c!X0P0-LF22t1mQS5 zof#+VoXBBPzW=bVh;f0#8#SurQcPIjg@~qwQTG?_56=&NzIQK%Br-HB^hKdO6#bH{ zk%JheslP2c(LY`NZD8nLO(|m%ch7n`+Ms|r2 zB{Hr)Dej&N7&a%Y(EB4NdmFRrniY=@rqD&k0)&W8nS%vwv!4q1GD~^GG_N3{&lzj6 z=6tW6A$V8fh?Xra>4Oo$P^yZ+5^9=N!c1A;ZO7C}cq5>WC}|);DhGPmX5}v)kTzS0 z0}8Ig&zC4rDT2kY^vI!k(Nq%Rp6OLzSvlTW#++E!W#BsGbe+-X0kG)H)#qD+4w}*( z9T+BpS3jv5_1GP{h7~AJDoH2xY~c*VTAA7Mms++dKrVHL)pAV4P&qJw+V0)$)WM{! zv(`*YDP(ANf;NZAo3#$b1H_g>4YNe34t0o>0}q9A#}t_@v+gw??}nYHB0S<= z-P7D41c`>Lk=Rg#;;#K&s898lbAbACnj4DSPST`7YF24iA93huDUh+& zIq`uTK9HR5cOR`;V!uTRCe0Mpj2LNF4!21^RXZbcM-2rsBe(-tE0!W;ZCMf%Rz?`z zPlG{;V(AIvNo4RRd+@wtsMD2!Rgm6OotdUW#e^6Zl@r|n6vq9R&Tuw8%R<$+8inej z`ilEPTWUCVjc*n#s^1!`JFY}+2(hc|gl8XAtk$hZq8VK6QJ3@_-0>G9J9ah+K+}^c>N@%P!m+?PPRyw$WN0*R?$piE zWBM(ICLbk@zzT>+$ihDFEJ*WNdcA)Jg z`zHa`a2y?$eMGhbrA;1zQH)Hjh@`l~HVi;340-TqHWoy%B`;GOUNQ>PgrbL2^$r;$ z6Lmx0kR7QdK96j=tm2T6gLz*jP3JZ1+8ltXjvah5BR4vRK^NQSQ(gBVInEe8&c0;= z>2X=(N*lEq444M)1o?n*cS8)}TRCvFrQDLP(%jk5;D*uk!-XTXTog8QFXQ{( zYOvoV^z4HXjs}$?aLS(I(93`a(BpSv|e}f67 z`85F1V2Tn`tn70qn<>x3qj&qXgC>o9iu=KY7RRtkIc<`B00DK)XxTkVx9Mo@54r%?Hi0GkMuO}qr4;+coNH45}@0vZ8ipkqq4#Vf*uF9Td0}+=-EK{ zEualoX$5!xpmn|DG>3lk@ohII{kdp%x?aqd3B4p#F)0TN?%5&%g}H_`1hhc(a|nzy z5|p}WF+uhy-R?4z`f>L2tW6wF5+N~(^%yIo$$9c zjzlH;?9Pz$6S%p4`tCcw+!@z5H_vzc@K64Asw{F8$IqXO*=4XJoHv?w>*qn@r9X+6 zU*xz#dHQPao43C6&mO$;_1m2f9z1yV{FBc<`G^(b-WU&82di`;&^uc!@A+`?WAHwh zC!`&%^u;1|nm4H{Y520Jn}4J?kqB(&KVB~Cg?I=T8d1d$R!Y=#XX9Ks4JD)DnaViXe=tm3Ve*RQ99ZSr-iOAsHMB^sIl7@Tt>#zkMZ(*7>|%Et zHWA1}{!+SQ$qK*zI2cus01^)hU^S3a0~M^TmV{M&1^8pK20w2 zf+&<-p3&41M2~iIw1=X<4jtuADgBI$8y7C1%sbKw&*76+WWLN}Fe&2~77}PdX?1Ybnc7!3Ce2Y1 zF*Y>Wl%gQ}LP0cvk;K?*%{2Bf1 zq+=;FwKsX7Pfg@ZMzVGH{0OD!it7qvW8|6`36j5N9>w`UV5x!$4M_&m<=K8yihCV# zG}gbEA$#?;?6?AB->b%_g+|#{SZNY+B5cDUQ)Tzw2MDpm48Z|`l*fqSXrw4B>QAE( z09NcR7iW8jtRCD!)*0DQu~9-CH4Qd8G+k@q?m(9zJInW3ydc*qsfL?}(-vvSH8G{5 zq(f||5zp`kB$TJj`l+|q%UW6x3%B2X6q9V^d6TFbr-bVO8j}`6BYHQ32NKcP)PAus z$*bTL7ikvW+kLgws{GVD>zlXpU>(N7;wwhcc^?NuI_^Sopt$wWsbo63SItY5t>u{N zM;?ygH+4k4es;V^T~?DBME*k7;0A~QVnCh0l?gKNjRNANjwrRdJGnP8gYvT>t=(`s zl>t;=wLYPvne-V{@~{7n#+Ys1mJH)3)GIFkj8P&kesMxv(R|fA(Bxk`syTLs?HWPj zFmpM^SF6ZQB~@K1phr)&zA6}Q5u+f)BH+qMPc#hmdFSvb&oxfiuQ4M&K`y*;`_pfJ@bJ;&#Lb)E{^^59U)wjIwD|c){me7J;PFcbyT&PzdkhTn z!20I*|3&75o9o+$4+Q z*gh;Kfhm-&P7hUuN*S_RN~B(dnO$9sP)NYD3U-BWBh&`*OfzOGKEqwLls4sNDug{8 zsHo8^1JM77W?zf(s99XP@-0&1A1c_mbwuQVY>l|)t3Fr!pZcM+QKMZ`ghJe6hT=0^ z;%Ng8&4K4eqePnips(V388Ew{b$Am%Gl9yGTpv!Ic`mj~8B&JpyXeOD0 zE(l)0<lT!kBAwK?{PR@?^^H!iI^52WSG2 zEOjIL!tm1W7)vsb)5Y#6B!e8dx}aUh?H4=wPBQ_5y4)e4Q8FS`7is1~s0zwZyC{=) zng-#wt*{t!GVkA8fJ}F zBShxf5zyN&C(3GM+w9bKW_Hl=P4B78wr$KxJ75je7cx?!Nh*xxmh9T^ONF~h;Y zCL5jGm`Y_7zeUwuj$@58(@(Q27x4NX86VG+y*;19ixJAhp~|BH$sq|cyOLw-JYET6 zQ_ny}F>|cpB!+R{O_mToolrbxGg}k#g!23-zKOLnbm$7udSk14Y=vdlba?W*o*s6Jng+v9bwDcS-!yK`qSnvzyZ z_rWw%CfSbb&Zh8Dvbm;}dI{_dRc;uS=M1PZ#Yl@7l{LgvA@Nlc;_7p12NV4u6BUe` z?ZxcEWQ?6MDcw>_@e?ZDO_`a`&u6yVF=Zhb|l*d2!exJZf+XY zHEb4NvLB7%s=R9)vQDZ}Q@?LF;NTYz*XP|+g*=ktzPu&%IwMtG8;dY^d{&oW6XRnl=1cS!fG8>U)_n(zYMtsN>rvd}Kwp zGX|qh4KGzYtzeQ9+!mUe_D4)ZxI)^~OWxw*5KiR^VG#^a~dPLoeyDsh{s~nUX zC|9wn&zlR!sYrB9w5cJR^jR*ep$H^`FHO^Wuq#shfOCOXUU78PsJ{4|Yi=BEgq_%< zn)Urz0;nj9y(=P8sjT(@g;P_98a%;^*@Xd{krMSOBi{K-8LdsEX6^h@*@$_S0Soq{ zu|K)R9Z!DKRtRN7v&3)<-P-8kBy-t^qj7d38`9}cN>QjK#i&Eu-C-@uoZ>VLxxjgU zIjPFUB?_TQL!^h$s;#?fHf`tBeKdSRkD(=kg%AN~ZQ23f1?(N1xX9JxDxeS)BGwS@ z0>TKF22z9A>3M*-cP6xmAAW@S%dr9FoIDOAYt0n{`^;0v0n{-t)2NsmTt_Kx8VLvu zE?PpPH6)ZK4k(HVZ7H;wCS#`-CYK*N9m4#iQu9?P@eUjsC#j)Du$(WUzv>Y|;dh6o zS2>19JMRdG0DJ?pfR(6wIp{?ro)fJiGSPWNzZXX?9SK`TUUH0vlPs_hv6IS7Eunr2 z5DRmf4MsSkQR4+Yj32j#k<{e$@ce{B`2Vx^Z{3P;045x zGZcrTC28qV|6YGUOImAQW=TU1fJSvyj+W1Z=IaX2|qqhpUo%evq1R|iSNAj8C7ztZSmu%bscN1%C zWrDg)`1kCptF*Nsff(F;E=pZST<8LvB21BO>#X3M{YG62z)OsrZrY6Pd3H|93I}^7 zVdU@ag>`F3l^?M_pBLO!9~1xbIf83_lAyinzK=%?7Bk5jMJVMM7msssu)r+_8pePu zQwd7Gk|E*MMgMimSGApgXh5fTf`Na^^fS$4NyHBYk@smDv7rI|5Mn$gfB;LW3FaP}It5;9Y_~SqO zcmK=(>;K;OdnWZqpvY#&pPzBg`uX4EB{$vGHyXeG=l`kkML&Id@$!q`{q8@1dVUAL zW6%`t>;#Io&7xyL^Z-gg@T#6bHKCpRxIC{0l15@7K= zP^#{LeIrgbTQ*-a2Y7Ktjm-O_%7T}WZN4owIG%3st(qessM9p-=hJ+c2rm_l1h6^5 zxkD{NWL(FMaP*1aL28AvF*Kjt4m%;Zhp?_F3IpYr~QkHnfcFSw}NBSZqOpKeX0!La<*WLVnorShmR@$}2CQ@kR_ywA+ISR0I1C{T@#jt^0i$Ov; zpR_^&DtMZ{TX}B0O5Z6{celm+3O7$?=9fD!^UYJ~jXi*?2TVC~=kWCHl06u;IU; zDW0P}aBgyeHFODo2BNx=4Hl*i$@W8H4rww%9o>>m$rcV4nB~-h-w4>Dd*yYyvSvL^ zca{NJOk?P&4mQ_v|Ej90ZoQ97u_L86!KvNso2KSJ>ZhV3+uaFjxl93Sv7`861$Ua9 z2Mx1rvRR|`{9%`4w4sS>)i+{A4+>Sd=dCmv`s6?nE19!uUZ^JKm)spFx0#hM%`vUR?eP@?+= z)J*=!HYl+}w3ex6F^r10@=Zxc%vX2Xk(3|`i%;qS=nj69!VnX2*~chxWGT}az|>|m zC~nRtIV@Q#kpcs~inkx%%LQbu+lP-veKKc=z#o_2b|CoB!i|KZyZ05B$NO{{D~ucbKw{eE8vye))r+{$)2_ zzWn0p>FqaP|J`g@;xQ#z%#=3wn$E1P^)*snm1qOB{Gl0VKS~*2a0L@92jB<9hbY(cfirT_*UeKZ|my=E! zYP6oNL8nQb3PplVGK6{#)+1(#z|hF|Z3Ut)CknSc-Ax#BoY7er*~>NWb7>8=wSR*S zP|;ntr|_T4nUZXxdvp{WXf*Dg2XpdajAkm8t|~*BLCDl9^n#i|*MeLXPbmdj^`=^( zC~GJ6Cc7m`%Fcni<;6rXq+s+3+&8&ZT*(!cD384HD6vwac$FA6H5dkVM1H8|4|X+qh8LE^SP&g^gn4+ACWsN3co7p>Pp4on8rIl5Y*x0i zbA%LYr$5KHWtd$mH`bfp@deC(_#KDPg$2C2ZraN`oypy8M-U;(FA54sMI>_1{Js;XKS|OK z(~1}&G39j_MS9xFIEKQy3sdy&zV(W)^gwZKzM60|HEpFK$p*=OAx0`iEwDmoq!9)d z<8y9@%#AoEYv#K!t0a?GFE@cN8yYQrg2y~_AX^!Q*4{`!w3bByl&L|>C`~vJ$e;Qo z>?eGhyHvxKLNFjjwk=*yYb0MVaf^#+`2?4SY~$+^^v%iwNmnZ`sBcxdVaCvc;v$jd z35d2P*&}P}%lT+Ri5D_QaEOhI3aC_d;bGQVt)w^+O}DD{IrR?iLC+ zD~VV%V6ncPt3ZHF+R1S+D&*>zku4k(5Ql}tt(`uv;l=&!Z~x1Ee|-7!iw|!<{q&Fj zbzNWZz+{(o)$jY+Q|o=;|36dKQqH;>`020y_ImlFPoF-0@$%)j-~8Rv$G6GJ(}T|c zrbqt&+TvqnB9;z(Gbff;fGO=v)oc!*byxB`nl)4a-L56L=t98ycWGnxH7aO;e#26l zpK|@xtR#6fH5h_%F^Tk+LrJQ3MpvPKC@^Hgc4ji$OgCs5T?wt3jqhuX`;X^x7Yhn1 ztdW31UMu&gvn7n0W$fMv1kG^lV}8K#Dnsjv^6bI~Cc7IS3OEs7NpmHM*uG*y8Q99; z5>c!i3B7%1uB!rOa_taayL18o#b+Bxg`}H6smet+uKsylx&h4MRUkdbR7ptiVQ^*% zB_gyRFFjGfJ~Ow%{l7bp&UZc&{>Aq~h!gqpS6t@kyIs#;T+(X@=Jffw??kSw6F9T4 zTqz@lzlXp!!nku!kdRFDyG`@0>J$p?L)a;&Z19wZ6;d9b1Q9%T?r|;KQ@qvwL!zpP zW1VX~BrU-O+5zExM++FD%CiMHUuv-lM~tv<%cZ=q4OjsBsy?3k!R zbUdsFDD;M829%z(OH#mPmU3-UwH9;4Q2HPz@U_n9=8)Tc^2V71GA&>No}y$30!xQ| z1rI`n#w);;^+^mns5Iu~ZV=j0RP2W@4CXJjUwJhLUrXCu2UmY6x_gB%lzN-HRF0O* zGZ4Khd`%R@qnVJDushl0o*5&{6-`3xJ2tKLDx-se0W@x9PCrTnCbDR2^xcvb zHeA04zXiQ!gL!<+FPDlT8673VsMIlLBpMUA*>n>^9ui*2vbW)KN{cLI`nqqSk^|6n z6<}#c(w6J@VJXp+Wr|G(Cl?QgJ*y?*?-jS0^-tSVGDm;Xs$wCx#y-rYBX0D27Wz23 znU}6NiHl<0=x=7WcF*9b)ssgd@gp}BpE7tv8++AoEVq5DD=1h(F{LP!s1Ui-&3$?n zEezwzZ|M8JwG*s}CXEduV%&?bnnApyRi0YMG_iZ~7b)K44GOeC#AXUB_P#D8En+r# ze>3*Lw^AX4#Jp#IYDa}^+FKA}t$l5$PsdA_@mgtVnAEW58xQZNhwschGCMNL^s;0#m6K82M_h~0`j zF|#hgP(oi~b-Qn7_ue>&(gX;tou~ArO%d4gbB@4Hux4maCWLm)&NLO5DTUFXy5;n% z`qSIrefzt=fAQkw)2HVbuYUZCU;WK}KclWyg#MnNKlGh`e*ctJC4fKF&TT zQa3uv?IramzE2gPEac5F7g8!=%4K0gJ!o2u zL92x1UgB{S*b7JE8V*_iVyR!+Uv0q0?y zZksxR!lgT?G<4ag)+N5L4`D=)y7s$3ixkV%G!K^H>rZOibDd2~%^`@{)Q8zviNXb3 zkd&FbX}HtEnq!*mOjleuEcd@u($<_r&;V>7nj&^48kIiXn)+P|$o=CCsqAGtcMe$- zm}O$NJN7@rK0`ZQCRp0RD_W!pO29x)}3Xm_#Rm(-P=C2sDf2> z1AY2=NUG;0hOk(v*wDCQhf12w+0J;HWrtW-^ZL#WBy)_+tAhBBh1OCu3vNxawY3&Q zm*W)62*q?&L~^1~CJj$;kntwasB2cO7oYX%vNFC}R$4fbzbj_6^Lwbm?%oBBAt3eOm#So?`u{qgf`t8iV!o1=S+blE52v>OBO-H<(v zx=W8gKgSe@^zLS^%Pv+01y%RD>%rJ+G_KgESHNgi?teV?%DJ;x)QM}dAly!rF&?R@ zSvycHOB?DU+7N~jNL&EB*duCYK~V$P{kQw2I`oDG@i4{Mg34ll|C_|UIkSp!HDGjH zCjAqu2?)a@6rm$T{6>v!$9g*B+i=RNhr>DL61v~HD3r?~^tx`SiP>S1j%?k%xh*vkCGk`G)qHEZ+pA2ppB}ruX<7ffJxrNpKN?- zXvRK5cVWT`v=@ddYbQbuQK3*UbmfSq2JN~oY37na0M@WL15mKr@&{4FR0lC4xmUw} z6c39ceNKV8kSSV}zGb9wuyTq*g9Droy9$1AwzxNPQFA3BZvCE;lt)5*C4$5=j0*3@ zlFqT!P~mZ78kke zmY$XflM36F33ytn)>uq1DwLjh)l&5!h&+Y8nmza&Q!LiE;mr<#`qBia%OK1(O=+Z# z-cl60my|)$nGf+}4Bt~M4p3-Jg=;R&u2(2kRY%pX+NCb^B^_P~i7bSyH0Svg9#X7B zk^=^Gnx^RMU3+%31PyrJ-KBKZsvgv8A7H)GT~#|78m()#T&^5W@KjI}b(Nkb*9e?y zu(*d`;$BqX{Z6ug0hD_8>UWELx`b_LGqpI?zB9a2ZY%{%hT`^ZD=SZ&n}B}{Bez(UbM?7W zW2;mz&x!_E9u<&G5v|5M{I~ktjlQLo=k;;uZNt79p^}*8Sk4#o!M&oMm+Y0SlE?@7 z?S+aCiA9RepKTJVLUKgK!wZ`vUaZe)b1d?=lM9Etg>yl|k(Sl&wBjU37k|EJpp@_6 zRwC0XggdQ3bh2Bdr9O3^?TdN{OJN|USPy-ujFA@Hs1{uL!eGFgPp(zd~>TML> zg}yEtRh^{f!|fIxGpblh4dhU#S#0-cR33=KNs zMzwYIXWxQuQrscA{k83poey|4GOT?HGn-e;MEH%_%4s_Tf^?KsQSYY;08{~`_bxU9Ud8{q(ax`pX~v{5Q|fPy1aA|G)iw|CDv*XlN9|{`vEw@Wu7& z7k}~ZoLfN z0O`-mNZP|zQ5{NOt>0~;m{EUIWNDb9Zyz3kW$EHXv2Z#6Kh1erU?#q2fu@g(7i~ya z7Y?HXb#=R&7S>Qh%m}66=I1(s-LjGuP3Uu9lG?hKr66Os4qlKCY4Yf6rA#!qg>v$O|TO?Sw z>man$sr8UtRaw}Py^>4M3IxLk0)De2vvIDoCAk4#Q1ZFc*=qbW|Y^2I5%ve zIM);2u0*F69SW+%FVnQ)3VU_MgVzXUA*!B+?I4$Vr7rzMlKjS$MpQ9kt$?K|I^-cr zbEX@^=g}B+yU#_^#sxB_n z5+81&8hoX>Dj?*#CMhk6=xYJMm35?Y>Bvgn)o|78l45Ev;PfnU7%_B2J1Cs+HAw^SJz_HR`ST)piMg(vec@3gPMtwcw7S%AM77P zS93NBScQYccZEiB_1dvV`_DE3d2Z_{L%Jl;9;V9E&~;r2v7{tDalp%*Ah1~=t2LRe zVkp_Do$N-#`jA|P0{B5lJ`c?_Dp8px*cxR|K1vG$~0H@dd{vWOx~(HD1; zg>t&P_{`7FLWg#Pl=Dlty6kr?>34&BI%o8k#{fNnY#`e4y@prL&w46d6**;5w>sqf zJ6E{S-SwjG{`9-A|MPu6fAPhO`}vDs|K)!G`r;aU#Sj~C-}CX~&+mW9&0g^R{7+f^ z`T6vyleUXCfdJS@oewCZBX(mVTR(NXmSd8-8s;vwCt z&fX!$0o(DDN8O*RlbbMBA9uBC;(}g-v&;PL_;h|0N{u*1?CocIdIG4qhZCT`Lly(4 zgnX+(XUhroV{n{)%R^-zlEK%dW0~8NLEmi3hR-=9tXu zJpv6hEodxYC828a%_>;fbX^sg^b`UUvExG5*5tF2pVqked%z;&F0e6kT=|pT_{^09 zF?cMUs|n5n)jM`B)ZL@k9_&-aH_csgfyabpt!2>VM}P^b^w;+s*sZWy5gD;-()Tck zU(=~GTtY;JRt2)smAC6NiMC`bpCc`|-oC&=1Vk*so2(-G56t|<*t>T_6j;^Z`s%nu zRRsG;WhTWsa(Y$eHfq(vx67RM64!PZ1SiMke0;H!iaW95;o!7PVuEthYEOk54s)1e z-bb&vKghC&N}H@W)zm~GujO07MaZ(QNi4%x!WAc$9Iyjo{;B0NZGl@+CQpRe3(HXt za7MSy!ZCDrL)4(ev0T9q+Gy{i&7dCuxFT_|t5iyB{-7H&kL)I6gqfJ@i)bTNuA-QI6nI6Q55R-(_Bw3J~Bn7Kh7B%*<_!UOnlM9b?Jlyo{)g+7HpB$ z2X^8neEI;+kwVQwyml$~^7BOpdSp}5qZpitMzg=ot}6s)$X;7_p;!>|$15ptXpMzp z`$iKwr7#bzMBoX5-A~BQ<|yg#W~**9jxA3brU}U{Bc#^W>m36kha-d)V%Va>7jnu` zigKhZpjD2^leP}-=+a+3wjKVC-Cd_ly zbjL&E1>%j~2YRVW$!i_(x!Dg>S6Fn*=EZJ>yB#%Wf>?Io3Mv!1$cm*11sjKGeD~XTZ@>BKhd=x9{_T%{`sZJ~`qk5?zc+(hTuei1 zZ&Akj@n_$^%KCk$Jp7EHX#juxFaG=Mi!Z+X>dU(D?Kl6WpFfx=D-KoAP`%RxLKplu zi3ys_JKCc)7*y-rkigPZfC#oq$Mcdd7|Zb&KP#1GKC?jaM(BhC5v)kL&9mKRjlTTk zQ67e#`zO`xy5!JVT)>jMjMV_&f+NnI78P#k^Vn`UDCUNWDq|CSzD>CEdxYq9T~INs zmFPs}^K*qWAX872UXm>Aa4f3%j2rSf8f%U%P4;~JWDPwJQwuPI{b@v;)l*4ILvqD| z9Vjc!c=)CeMtYYX^RKQMMRrYhM1wAnF`^3h0%qEI_cO5+%lbVfxA zRBe;Hk=Zwj18BzzUsF3*_Bxs?`B*e9>!o8^)rUL4Bqm}(UF1@Kgs#}s z;6Kc2LO$y5tLt^ym9oN~Q$acd5`r1LO|)1H;~KF)FJu>(F?cae7ZUY4K?ZIEy>dg& zIj-e|TE#eX1iKy{QKYtnOUZ^bsMwn^NwbLkF1E2qZQC4S3jVcw+ny>^g_;%k6hhiT zqqA2wS0P^)v+Ls5?s;QP`H(9JZch%h%6kST)(0HiHBWi$)d2ImnTbPbw=fJ?-B((R z{b4@EJgUOy8p?Vo9pKAfJZpCA$r{_yNU(>8f&F~KH` z^T)(-UA#roLbMI|3%4K0Z#^9Xs@<>$(@QWc{54cmT}huZyH;pvBw3&-2ha+u65bPG zPL*(p2(6$ZS3#vDMdIasa#)S)y7X3gA9aBnfi8sr*?AruqeNp9*b|zSEuYiQM@k|6 z4BK4}Z%-OSj}((7^&2Br(WQDqxtgy6zk-`F<81fR-rF7ePN@vKN0(kP`b~^0?%)K? zV|t4RHoJ2-d$1C{4ZGa3o9KjxE3JmvSdI2^#l)BN&LCOVGpllU%XO^rG)H9$td&qo zpR1207N~~K_GUUIM3)P3&As?!$zuJnfC+lSp@c2axKQS2BG- zf*jDZ=OGSZjQH3wS?sA+8du%VAHV(P@2;xri!Wb&`Ln^~?L|zAijHzkT=3Z@tMIqFv=?viRupb{85j*RNU#bpMIq zOr8e?HNkYtybaG>6ES{@=9(I?SOAi#xR4=O%s10@?TG01mUBleWyq)wU)Nm2A^5R@ zw15_rDh+q5M#WB!*i?w7F6AN$DteLIB&0-@lM;t2!f0ul1K9N|F{Up_TQ|#qnXiuB zToLTXnv6Dl1$Tnh+U!$ z4yB>^lx_V=`*uG)Uvj@CWnv=TZOQJ>q$uXH{do+HjVfGea6pOfwHcD%^jdNjPpw`! zcKK$v%7V#~DGDjbasp54?sgx9ADhBB6ngngIP&ZEX=O(&rww%|U*Emmm~L8q%aQugN$%1S$n+clo`ZTO35@wG#v{ zAf8&Q{RH~ZPE*>^{)+TckR=pm`k0AC#}tzPEqfz)+T|J+K_@rB@SsW+g$lL3>ZojSm% zq-#do_d24LUu=O8U3UMLFD;uHe1xuD- z&{jXgsmrk4kgj98b`Dt(9fB?qxzvx6`&8jX{Ixqye;s5_Ls^v54tkaOW+7X2N0~C5 z*4mm%tk#?B8Ii6 zf8d9+1E8OO^_&0ci~bT{;Kdg&zW(jsJ$-rya0lJKIxz<&9s&VV-n;hR8;&4i)eWa=q<# zd(XX@$Ute%Wtxces$40_i6hVgPIFV!&?$9(Q<0n9a#0!-*op@$&>Ye&!8Q5K$pEs~ zia`HjJ7bjA^r2VXu&#SwSClmeB%~3$`CxM^uB8~T<`yRo=Myu=k;C+wYjN#`kX*~V z+KwpLte({asEC0h3bwu^Ti<TNfV77OueJEZ9 z1xH8gdSZoYGsL)4yjQ(?+p{S{clXO`TO9S(ElSr8IW%*WQ zH-m(>ouTBeYKVzw!Gz4pJT3~6qw4~0boa#_6&;-biF*SG{wnJaHi%qSam`A&a^i;E zsCZ|#L~8;&-ccqDBJ7hOtB+6`5f!a;vP$xa+(m>*Fwlb3R#m`-*>lu6ObN9V2pg_D znw0M0RV>SZndwv}jo40dxSur-X_RuIXTyUXn<$?9S~}mpe^JkEFx9;=OB}#LFN7B*9F=relqH`AN!CRVY#kDYui+a`n*xmUw^<5Pf9A9}uqcx?kVb42J$tw^fy1^R>MWmv( z0hx*^M_@EMJ5QK_?mId|--LtIp4eHQ9!EJ?IyA)nDD1N#uArT|V`@|#9tX$+J)PCh z@&wzYNvOO6eC;i+1>Gu4|c1rEmeNcoizcy{7+N2(J*-}wS zx2e~oF`Hxv0#zXDp;`1=pp)aZQg;l7tq$EM<3zqdS>#Hx_SkW!rf9HqgDM|z@$okV(77Wn9eG391H1BOKkFBtVHhyWK>b`H8 zO_*FsrZitw$)XMEP7Yvewx|-Z&Y-`v62jYy6u>JL-OGzJl=^&k&@c@B7>o%j=$^SI zY%Lj8J<%~js3UzXFxo5=pL|}p!)kKu$~}GCYuM;BZp4Z%r#cfKb~6?=f2+LGpk@sT zrnUWJ#-Vt)K`yW=-jPQTRL|_C+(PHD)KLz%JdTZ2ppDZB04rjgkZYH~U@uBZ%U&@B zO}7?X+8z&0=@NFj6d}Zx%mC#v=6sW@2p>9F8K3VwYsKnf9>?=u0G!jsJUgB@BuZxo z_f5N7WiHxL0y^+Tj)_kp3RHQN!O0TD1Zs1(tn1Q9^V-#&5dzUAUWr!806j)qm>ib7 zMN`9IjqcJNg*VNrkSyh?+I~}D@qu~qBL(W2cQngYo^|qc!Y#!}m1o%tnTA#iKVuLu z-l#Je?2+9ubACZGgs{A$7t`78X{NG4S)qJai1ZSQNm-#GZ?ivQ+0&KIQ$+0kpvMuk3pZUt}2?Ses}W;*^5 zW!=5jjJT7td1Nd6liS<*u~Ri>7#OG0qI7MWsTf)C%usGJ_b6e(p$$Yi6dTg}lzp?O!-C#Gk?kJ8eoJ}n|SG4}L|1d~hbrhp#u9;GxoI?%@SrazDsyzGh5Ag zf+0UR^DD+3F-o>GwF`b$sr50iV(Wu>I)*IKhGS!uqo67C0qk5lpNfA%t4Dw0$gC(^ z?GdSP{_k$xc(jU??C>R)TcAI$rP;`)f|zK{EU{VDQBP5*0S=-TVUEHsU@f*H&?=XO zmfh>T7y!NAnrIa3St;64Lj`c^q#-SlF;geqQxG;+Jl6wn%;%XN7%q$Ur+s*(W#@`b zs+E-9%d?9!_hj8q)|IJ~UlK37R|r%@ZGyglsbE_n4EJ>rPJUu!ojKQSEe*IG{?5vO zDLjdt&DqM5e)_APX3@q(C;d91rouvCnY%|(TqDd3ql6FJZQhKE7+m0&x3&%1Tv5ax zox39iE76>1Et)d&{EwqRLIT6DNevc6o&F39>##%R*2<;fOIbM?cI@W8Z0iRA+%1!|dn zMl{mP-4SJ^G+759_Mx(~Cj#q8nV+z>Rx^wt?m(`KDm`eio6oa z%C$;7b%#z0Xk1krR2-TTsM0tPewAX=meS-=Q#eGPOT!=lnx55`M2fb>iuK4SYDvY) zjY6ALAk!!T^r!dVy?gWZPk-^JPtU-sUw-wIKmYLE|0=k9sPRni?>_taZ(C&r#E*D> zZv4@|{7=9a&reTP_089R*Zr}|bqP6|lNFUk&blV<8}s%fz|$IEh)`Z<$E+S9;jSgU zcI$M@+Uw@4w$^E7+;CD#u%tj%ef&9EgFDW#dAfn-!y@4HW>?VX${o^i+SGARZ4vWA zfVKByHlue#YjrYG*)7~odE4uI4R!|IHh)A^ok(v!JY0ltI!H)Py+x@U*S%y;sM-J30#p`S9@v^^-r__;E*U69dx)O&c>_w# zS2MYP%X-S@547(3J1SrZA<7NOs*`c%(T!@4!ESBDyR?q6LH;d*Q*R7@FC znX}8zVK5|h3#4(Q2J95ojV?d?A>^xkQ|hNk-`&`X&3}|*8_?-0`N`;mf|Wt^hnUyb zz3;9-MM$=!y*-a`$Cf=yB*b&ey#v&vps*7c3yK5RfNKJegUMVEKwW$g96xM#hga~> z%=T(Yxv=j7a2LoX1@xucqkTM-doZxPJAEbZl7g!0uKVUH9#=acW!8nBvRZZtRu%4B zbzLr-@Mms-ltM5TMI5v^G5p!`Ae5LSjDei1_@|}88^EwKq&nHg2)WS{v$kF^d?F)Fi(QJ=T(%uq z&eF+}%w*lnz+$^X*mZ$h+_^B^u}_YoYbxV~52)gMbe+o7jNl{`c!t0e5&Jk)C3Ha+>LB_nRi&-S|B977-hsl-+}k7 zkl_&9K9xw4i#<#5Uw&k#Aw;vf0ku;qa`es=+O;7V%iUzZum_fefbj?SEg#;(m7IF=CN4C4r*^QP6 zlUkdt8%;fy6nMAtNGm40aoger?2BiF&S8_*`rgYq?rFQ7)(l8*Mqg|xw&JB`-rI)U z0{`lQ@|Il|o zeR%ru4}bpGfBS!G;JPl9*ZYmr@BiIDRrOzcFY7wL3b-0CU;O;#7eB8TSJjJ;pWeTD z{g2&^%Z~=XetKmNP0^aw5qEYj_-V3Zgy~4tR+lR(W-((9szM= z6e0)lUX(W|vm6dPnnd`+)qdZqN5mwfs#~*c941v|5h&b9J!!sc9}&ZBGnO$zPF#JJ z7IemjhClt6P0cZ>>WFGnVqr%VWCc|sTPD~gRi}BaciSS#Z~2goRX(g*9y5cJ`M;;1 zZk&ZZZeUoWU)+}_^%@(wa#%uHzhWAv0jVxQfLOPgrd90ST;-i6N*?ytX@_>ts5P}_ z;q(KRmC=51{QQ&ds7EV^-0pEfnM)ATG_TexXIure42r(510GOJ!2+Ut_exZ-mf3uY zf0UI&*4tbQ!{xBFOUvJAkA$x)5Ck~TB11i}(D~!kl){09eyxKv78_*K*@EliXxE^` zNGp@2WZ(Nx7N7Y%i~xs3!K{FBv0a#7R#YK3`Hub7J09MVUXIA!?svDX#?y5!wRCL zCcuXz9)m6Qqt^Bjp=H!ka(&I6sYll~Of*Sd$+)}gLP6J^`4zl!#`_u?ch>@T`WFZ- zdZD*%YU3#(gkcxmI8lbfWr;`*+dGTB^byTi>m~ifU~vvWywz^CS_OmO@COrI?|UZg4-nPmb%LYI5)B> z(A(Y7F;MY$+Q0W&Yp<}%FIZPO5`a^%EwaJ^dAA}^x(_Lhn~fGTkAse!;m63u`4$5$ z1v{q|ZU~Gp3vb?~iIzRoRYtB7T&yuYUORyBqam;Dy9R)B7hK{DGhU#>X#J&6MZ~_b>kB-}m#E=ug*my?y=BCAxt1Yv#DPk5GY%N0BaNUS@YVnW=lya*87XOTjo}=$pAyAG*(WG6&dE10|HT%VeZ0 zavvA3TyC=wjRP!GdX8?t0@<63BkhyUwQ!m?O52Cz;Eo^0YPP>9oprHE)?N45(63l; za*toM`1pVp+tm_5KwKgxqff$Vp`GD!TZ*(Y;!-HRB5citys>ke(ZhryRG;cIZLRin zMc_JEqGtVhsr-iFzmnpy+m76xi$7Y~X;B@fxkSGgMDnm+dd<4zBD4@bTf zj9wy35!*m*lg??&zXHDmj#R~-*~Xr}K7h)TQMYU{kpdVH(;|;!c=Y$C-4-P~5`~23 z+6U~ZDotYbJVRB*5G0h6G<%mJqYnm7mDmxdqX{Cd9Pc1Dj~dum0)py+pUgGdZatFB zbVA(Ma#0of-u=nuO3iv=_(ep^iD_R9DWfU^65b0lVoo!yuvJROOTLREyDc8H&rEFQ zQUwJ2MI25;<90qdL>^#>mKj*%g>wtKp@*)yG1NWYXTx_pML*cbeJij2ZP2U)vA_fg zh?XZ?n$?IMLr8jOV?>gB@yR{VUdR@shCYyJf|JiU$gJqdHDzy|A$AHaG6A{%ad69h z@fOfWgs#*SL2>XQ&$;a)0R1Q_Tj|tjIs3`}gTZk@% z2}wccXk9ExiB@!t)xUIKpVNv^65m z$Eqd{uv^`&$WahD_`*WgI2|3By z8jOU7clj-uQp@)(!oceA4)n(CzZGSFrcH{n@Zr>R%5ZuPum~a*7+3R<4JQpAN8U}A z8dSHIxR_k-akU}P(Eb(rS_OlZ;DSsiAdRvl`<=wN^@i=2BRz?=l_ZZKpm`Nd6JpT2 z-&046s{-t+o^zAqQz>rvm;)y&{(}Wq64yY6O&Ut1wWbjPQ3^s>=AaF%h zl_hy30P6|0udCV;VcojwboPSQLYwVl=Cz;|+GqiaFJc;=bWNheqP9iU*n=9Ws;+q; zf&QP+w>?ud*~5|67bVY|on`&82LHFZkP_M`8O4Pcfa&YfAM1Q&?2V8VU>Pa5XbT}GE+jU*n zwr8mlDHlgqX&{=YFp@67uSgw1ubTQ~J5FlAO>T4N7%OwDmf3xwu427Nxv1bx`lgry z<~>`+K2z`$`QCx*7P@zXFYn^|p6tL`UZLr4=1B_A8UM+!>B zRBT1o!d1T3%D94=jcIPWiV>-7A=f+9@?oL&E0`TCl|IN^;Up-NcRrX;W7{374rYl} zhNhB8$L5KPxECS_Nrgp6#n-O^;Hp$`yQvGde0M`T6oH=ob)19BE$j(XFR>L9f!mh( z>f;rA9)ZB*OkbHgZJr`j`hZ+aA@SH|)6IS&6ZK};I^q!kUlCkX zR2tZFbc%$KesT}tD5SQ zEK4+cX*#)Jn!W6uqi;v7KK|6wPEN!2T3xkvejco}5{!m59C-+A1Ez{rX!Po%w8{fi zTwbL43r3-#T;&6fxV5~|1!`T!ArEaZlpW`M*3*q^C|ylZ4T}xaj^-ZsOe-y|u*U65 zq`KF^)yx%9r8mP<+LB%#2nTWz5!4!oVoii7b;G9HJ5P5=D6uc09@ge1P1#qW?$_V` z-P6-Myr_EdInJ#bYDl2>!13W(cOLj;!po=T|apG`1IoX;{Dt2 zKE8V`zF10*s!snVCoEQ;L8m&_IUZT)mJAwa^N6{>aTWH;$)-D8p?t=Qt}6^K^krVy zs?+GoD-Uk?C>5mBlSY{oWK!!VX**@>6_)O5)Ko7UR$(5|(yfPdwO6?GI9+&AA1{nU88&DJWdUICv}IS}a|J>hv7kl-DZTKBDmH4nUV0qEVy_NT?($CFdpZ z9Nh%OK9`xB5z}VH3{YWj_f1-!?zi+yJ4e`=#F2aZD6rz6wppCRz3z+v8JIO0z2 zA0ZcmI_XGoxRfaSIGb`j%k`lTXLKl`3^C+0v8~NG4VVcr6H=RHJmA<;ydm8`WKGi- zbM8LS)UYy=sXXlGWMl!kXAXMmW;0;iX{9E`wxPJ9b?O>(_ZNrn5e&rTri`o;VznSu zOHI{hz&czg?r?9bJeMh3sgL1An&d2nu_IKMrDh$A-8W48;D*l$*JKSveC#8ma#*cw z0>e+d7CNPYs!GdO<17pbvaTW6^K~YhwfGC_ZaK5%B|E`xg)bLR3fzLC>4-4iLq=8I zw_uO*B@yUt89Y(;n2yHx^NW`-=MW_svT@0?oRG+6js{=U_*W#x5}kGX{}vBUsefbCVIf#EmWRpxu3^;DZ*D zCd!vHLUn1{{K;3t3nN5A^beczk9_YY+dL3;fB z6OUi|yv3Q4eD%ZM{NSq}zPK8=-+cRb-JiS?2It+~0fEywG{VfL*O3C)T1Sv`nXpG^ z$Chhek_zAMNP4$qo?$_kAye(5PeQ-8T=p+}!a)N7u>(kR|P-Qb-isCLdcT7Hih{ z8<$2V6*%ciU4-P%O0IFi4t@E^ypvxBb*_n(X+*|P`^-ag?OXX`F4^6{ZOSdXmoHQV zz)i*Tu%)6fYZR`_54@9u2%(vx&mNsFphX?fi+w#*9fk@q4PM{ zpD02DKiZPdYGD$LF%6c+b)ke?Dgg^vJxQzVdkyird?5hb$W0a}%q}v3k-SFdmZlW4 zxH(HY^W>odkQ!RDzMHVl(1q-#8+>Yxy$Sl*K^^}p`wPt{uXPo!nnx;WquR)ri(5Rj zU1#NXivSv?ur49uY=uI(t2!U*-D&#X!z6dNg`fnd7)->Oy=2e?h`L05=A6J;xmLHM zS`JgUjws{M`UQe<2E6W{;CCh_x`XC0q_Id0fn}UNy_FY+K-)d$Np#nW4h{7{BfsoS zYxi(`BUYFu^d;N24XFyi^nU(FFFXLOP}k9!u1j0^yL%-$j_cwLNbd0pUPij(g1843 znLAar?P7h>oPm@%0nmfJ7Xsyn#K=nfwj4RI_6vW~6RXTLo^dYrvzMW3J1-Kb6-hIH z^9g6?a(%8odO!(fT(zR3$hY3AwdOxewoXHz^%JHUODT6(>N$NoI0MSGtw^zRK@F+L zykR*{+0bE5zqclDjRx+56+fTvQ&rb>aTKLzQ!-*@*><8aV=2!rS?lq&2aXmY)x= z@^MwiA~I#YgiY(Agl=0C-j*oPS&aS}#^iNMg{gwT7i)k8-PVLb3|GwJOE#N?=dqrQ zvFXuGTU9OgW*AGF7WjtPm3CWG4#{HgE`0j% zTrd9^xOdBsKb!Q|Po}JoUo91XG}Czb;)gGP@|W*kzrQX#-|xTs_8UHA)(3?Fw*nMd zr{38v5%?_1sFr3?TvCKj0?`FlsGILUIXyGCEGELXb2Y4jqVa@dd;hl;Q!7F}L*+ZR171RHtb zc*3p;aRwa&vy?JK$Lsn_6wKdNS8aoO>fw2U96rQt4Cr6!@|i7L#JbU-*p=(avtA1D z2Trch8MKw?%t?qg7x|Fk7w7IuTJ!G(zXjb2%L^+9=O@&LPnKD@3yxZ1)yubHIPd0f z=Eb58_WzS_M6aDH(%9|*F?O0EbNY7TvT<6e4!O2QDyWu(Hpjmgh=!H#MlhcT4_Guz zA5iuP?KZpMjSfeVm_#Ym&@@eFPqv-Twb^by60o(d<)n|6?2tf*7M)H=OKLF$Iw7#e zsrG%Ujhpp12=C2WCNCym;{cmF1F90*Pc^d8S-3!M5iX40x$b&1vsi#m#{H;8J6ZD=A#v?4Psk!0knEjI~I?7rB*t0=2``Ll)~ zIF1>u7Yq>yAuYCT&VJJG8I_50{z;c>m3WMzB*zvsA>%syLOy^aH5sFpO$Gs%1CR-# z9UKbguxo+>M4 zU+vHAMG14ULB%G5f`<(1y$xeevlf7Zdo>JC+gENFHb8seV!Y-M)Q?)(*@Ri?wUG%4 zuqGo5LW+|HpPmJW>Jq_8C5k_@W^^NS4wzcRUxnS0LZ`RA7d-p}#Fe0;NDc_^DQ=}9 zEsmE-SH5gndlLJ~GM%aT_DDoa0-R1KuzAQ%OTJ!)8r>xGGS_N?Ay+Hd6L~;&T{5}l zceN&*G+=T{n1=??{KUic2uczOQUvo z*VTo0-+lez!|QH5e|-M)zy5bsFK5FaFZnnHmFv$>fA1>mp8Wc>0`B|i&;Hqe|C3+- z^7;N$b-j7>_5J+5k!9``V{?VaB8?rPS);C4R1&Iis7#>yTc#&Gsd5TdW99MF(Y&UaOJ9j_0e37S_e=g#;GIA)a4e#30S$uB)`y6Di#Ga=5En_$v#j@@-!~i z=SA9hEO(@_-|s=DFQvyxx{8@n0J`T(3pl#4B<2WAC7w>vD z4D5FRyvd@pHD4~H6NT>t?Bb1pz@$Jkm$mF<0lPzG`K(pOB7u^Pze8h{^yjFR(hG~! z9h9BF7r0jw=`{p2^~?@S^~b-0U@!d;>(8Q9TqZ)`5_H326m6;FtORT;mT8TWge`O^VNnt3$d7) z#$;B?BMug+IQ|Y-o+i@8b9y11%FSl7=6hDP>&~*&l#z*+$zr+Q(am0w7BX&ZgF_i% zkElFe?9RnRqDoMUi3#n+0>HJqcEHxEWVyL^e$wR|RegDHo%?ZJiujb-q5!l758d}H zhw)Jo?J+w;9dunP0Ihh`4!z@ta-|W-C#`hAHSe{NofeU+I@4`>$PC6=v`XsH-L9>9 zOlk}B3~Ofxrfm5n-ps$8C6?QVE$ObW&ovk#tSCiDUWP4<0V4~IhVCehmR3= zGN}0CvDK#S#@TF@ycvH1>#oC6qcGI^Ye!{-~IN*ix;T=;)|dB zQA2D-!ER&jZfeF?jQPoK3pDMGj25ECq45< zWR+A}35OW5dVsi|$0GvP>*`C{SL=m&T8MP$sZ^1IeFzRx4YzJL>V~4enXsz3dZq_$ z*E}+0+@z_Dx-mfDOb~MQJrHgyoU2_ug*74@qu52wYL6x9rsFLrT?mnxd05GIw5ap* zI$Wv8qU0*wOi1Gz!x|QKGN$_P~=W==30+7^_6BaV0_7j zQco7u0bv%wY(Mo(t+J1@HIFNKL=#jSLshjk?ajEl+r%L`%L1zOxnAuS44eJ;a0dg# z$84E4A+*@Km8N>VikpdOk29gy{%{OV<~ocQ_uE^wYHxhD-NNn~zJ}9C&JK?E<`XUD z`(GWaZ`2~ovG&2r${QYX8B{vaFtet{@vZ`1F=j+@j0G{$5pIHWO26)SmiN0gi{lEL zUK)Mwqp&mDt1fz%n_Rz+=g0F5Rb3)_~L~b?(zs({)Hu-)*Ko}Ud)|Meo zPwwIw%LQJjAr#V)w!oG9g1C0k9n-hpvmUGbJ6-1IB2bvP7mF#1E!77j5Sf*Xriqh- zL1p4p<+Yk%I2{Nvzs?vWC4oaaLNww~Rao^-DRzPC^W{6|PE1mPt?Ey!=yN!c(Cz)L z=w#wd@H0vH)M@lin$d(Me==q&YD}PVW}#ASB`&lcFudJYS{ksT<)6rH;<hM|K3NboAea67 zE@~dqMf|(Mu{#;$2m$L%1rrYT&>5w*tkpud(hb|HBgzQD5fb-JJ4^0rI4w1@!mZa* zrAh7}y;92byiqP#5j{;zAUVvWhSWvxE*WNTzDKo>Xcc*3b#mI0B}-x0=Vm{^kd?a7 zpxOB>1B5Q;aKg0}7s;NUmG@}`BU%pu@z7u!Zck@AVB*h-Vk!}M!KTaqOC-0*xizQN z{AccEPky&%qisz7<*9+!IU2y+1k^MZs#-FnS>$W)=?|T7kSYVXdTJ?D)pxfZ@{d*o z$;{#Q79IC`rU4x;u&8;RuGn&vaYXkm4P-`L$aP5S>>1Ym`kUWAJ%4z9zCS%(fAlAR z&3)tbSj4f){ruRTPC@ifH7E}BX_u#{eg>rwkJ8}OV^vrx)6gL~scE!TK3f+?}Murq}M z`Ozj7H9$?3yP)xrFro@|!G!#gbJ|t=aHe8bw%?u?U!=hj4{X;vDMbveCb~@t9vYl* zmXUPKI&`{FIg3N3a=QMQJ>9{PFvcq^H>PwpX8SRd=9mrEY0c5< zjM-FN|gr6hs*;eY$>VRb@?42swKz8((%$ z^WqC=Mstq+;WTBStk*G)mD}QbC%BsD8eBdzVOQYRM^hsEeBeswBt40>kgT^0f|{2u z`lK{Dr*<0SL!ce&(w~_P&Tqj2V&{ugpB~51Myzx+ptk}e?8gyX{p`%B4tAoZ`|ODE zv|iEZo;>EVv|Epf%nS^DnB=|0IS!Lm!!@sTtV=4Z39nMRU8DPEDWAS9)W92xT-&Q3ULyX%7^ zA4qf#G&q2+%PGm@BpV-zz#ZqI4{ZHt&n4}g1@w*P2DA)ME(?Z+D^KNs@Fi-S1)A$J z;gn_+7BI~8>-w2`sh_F7*U~vlDLRbBU~7uiE>(D7YO@ydsWlWBB1jSN@KD_9jWY*S zGy)B5E_$Zk#nheaB1~cjD5N~PW#=_tO=2RCbDzsXDftobLS=0GSq8~41{q2p^GcB} zzEQeF1ghb#ExF2nI%Monjdo4H8r+z{Nw3dspWDmzw*JxYXc)4IVIp*60v0k|Q*0hC zD^?ZP2aEnbqthel%-}bI)tADj53k?7`|gK7{Ml9g^FR5`i~r|O?tW`@JR1D_e*THa zFYOBo$G^CrulxB4b-nrSo9CyG9(`*T&(NP-dh;$dH+E~qU^lOGTi%y#h#xwwJ=xOn zuK&#h?T($;oazv6$Ynkrb~kP`a5sx0(zYJNoWt4Agnbbgw_57GaF)RpaPzGZ=+ z-nWVl$xb!>Tp=RgE1*c1-G^=pX4d@3S6)2jct1+5(9y1Bn!lpO42@F?6BK4M*?ALX z2B5EvC9t5k7P#Ev-B^8cM!02J;*5Ek!a+TT*eNp$WL!Pax^G&IT_yq=cXu`~d7q1o zb@LVijfpYQ8qBF(a&D#U8l!ZW*v!*FHjMcU8zSMQF4_JWCblWsQR&Zh`t8pXItCOn z^wsIx5hUCwA*`NOSwp)0pf!ElDf#@dYJ#Jl4c%i0G_It1XQyfYJ}n1!(;=aL&fzJ& zxhLvB7A@+uunA^@Dmq(Umn+1^bOCv%;le-AK1H4_E@jv(ae;@l(p>=$AiaIG##xR# zEo9xc&kp>hY4}Z`-u!>-mKE9RBXh8>;R!5V`n~Ror^4AJJBwHuox}~@+WHma&$rEdx$%8H|&TEE@GuBO>BCYFcH#li& z--5G)EUZ*cCK&QG10-7MVH)K0)Bf>B8(FS_kfOg?!R8Ok8>1vV*RtYxs2jQs;PdO6 zj}$g7EhQymViN;sEHT_MEDA9T@sl}8#bLq*31D1lw`zk+v}P-@uz@Pf%d0l)a)D9F zf>msm#A8r&S97J-i9R$c2VY1C2*O@RO`LK~r`wp|5Dx@&qXzrMHi)a64~H>%c4==f z4s$hBf`=+lrUMSypKH_FF&9xc4A+%eh?OIet$3Th-ffawiJ-uA-ikA5?z56C$79c{ znUxmShMyQvK$mrjHSPq&nzh%m36D0uTS(AVKa0k_*(s6NI834`!#Z{i#%@$%vORaa zcrZx+oy+)b!7sF5(4~?|&pnvcl|o<2ZVg;j*X*5x=vfI3-MHDY2^GTTzH7GM&eP@~ zs_||Src)_m#b0Gya;nsJX&U1RCC7i8{5#K*^VnoWF|*DyJfL}m@V$OmxHofJx~u7l zkQveS^z`BNH~&x)$o*d6(6ibQk3fC%Rz#7UhkLT~%e#QkoVk5>i3nw_cYJNwf7z9L?WHrIDG=%WW)s z?J9;_*v#yUaE5t{!IqSeR~bp}c7B1-lhSx~^M-`(s5*7Cqzhs(UaK7gm7@;}F_LBU z$swg2Y4%shWw}5KTqm#IlyY17>SapeaI|vVa>uw?Cm{UI>ng+~k`_S7n3Z8+fg!_9 zBH)NhxQYW7?A&{Cl5|*RCA$YWdvLZ1Jx8ul*-V<*!EoVnU7EBwP=AeeJ7&CpHN}U} zh_v5yY`Jv;hSoB(n0++wRVQ4LZJ>B_%!<--8Cb4ai=V9*6USmOKeL`+rrMpVO2#Rq z{XQ(bLq2fIX1^K#^a#>IhMD@_5B4_~9aTx&hg6&rZ+g-T(ghr5v4Rb2@jDIe-2IXG zGTYR4Ym5WK%ffLTvo{(YrE^Q-6~0}@hQ}>>LL5>P(}||rhJR8aN3YL!MiOl9sIP&8I`1$|yP7Q;EZHBsui6fE+rh7Q}@$i^1k&GS~FbCY_BtcR%4X7eqWr)pj zjvdZm>kvIB(kdj6)LR~Z=)C-8YxJ7(l<4S4%7WHI;<5nu{v*T{mGiZ=Tpe(moBkx_;9ocnquL?LkH-=eqi4Ogq1hNnIS%c-y7T zDtNPvdr4Tb=faE-Yn9$=z<_n#w!ws1 zcna9vAdHyaB!`RJvzbM_<>2-nUUfp7u$cxbS`0w@r4EG}v<9m)uv7!OO<>L^pV~P^NYgy(c#X4S zI-}(Hr|mj4+Td$`_uXL4daQy>k4s4*mpcm-ba&qxj$ks{#7-;|1tdP$ z{+?Wc(OZh*MC(4@{k+|Svl1`6iJrT4_eJXkQR9ErA_45<1AC`lFoem>PLVu*d8OOn z=5g+kd3@NK?^NEqUBL2yL$BDGYa+K$x3+cA&TV@NcsNXYXP*>#$bTH-(_E@VTk4zb ziAHB_e0njV7t_(OclS_f$CcZC1Qfb1))9MgRiSP&;AK3?rsP%-v!yXY{9~xxbAU~* zN)kkO3wBl;g!iJVUccV=Y_yqJ^WtnfWqM5*043Vw)#}z(E_kVTvr1g2K0rB;sJXbH zlWgdOSQ~P18<~kabE>W+0JMKEq?I8$I7agQ{fzcDe#%L z=gB&JAs?g0eu83B%VJ8^i)4p>V#&n&}p_g!b*-$hK6UoMaH8Ge1XUXX#brY&uVn9wY5H^yVWH#4!o{@ zw~B9|gu6qR%~tM4-}in%!0ac`Zi2R*S`h>rQxS?aY(|+3Cq~g-MWz@Ze%MEo-@XS3 zH@w(qq)G$ms?08;NA{tl?7%1{r0T+_53k?8d41n6K79D}$A9|Ie)Q8nfuD7gz&d_* zKKi{=)}DH)7 zxI$B2i3A3<4fKE>VF>2Y@`|GS;LU`xI&|X>I;eU~Yl|+Y8mQAFqfKkA80T=HlsioqX z&keSMs&u;#%ATUd`SzX%$JwS4BG$E}S_5+P&ir~^52ffe+hH*S3Jpg+2fEE=035}d zrLN$9Yhg`lNgML9Y`J{gnm%nCm)1_WwnyBD1y~JVm&g#b>zIJl^I`o}TXRgMhGqmDn3I%kHy(fU zZUd)>;Y}jlnP`W`Ogt_Rdvoc4!c0^Zbv`*+`YD*uAiNX36|JK!RUiS0da(o~KGQ`T zZP^62RXQo2uV|QM-*QejpDY$#EGyJzzNh7dARbk?vl2o~m(y#n2?HRual=YW82t$!*1XO>EiPTJGh3D*(w+Wgg*llo~U-W0>D?F3QR{|cX zoP1Zt6~9fvB(a~IgGNJ~O#EmJi{+dvMMh@yIblxMkvk0;mh^QSUMJJ8_%Mu($zr7_ zO0sjI^s}@KM%VZ0Vs)jMx;@q8ByT7B4J|g{+%GhA5^h+xIKOR$?6O7^*gJUvy7P`@ zI4d+BFXp+bt_HkguN+8=&5HkR0T;@lbiEg)mQJo!Y0&rz*>l6;g-|6Hv@z1D;f}P% zD!AK3`+sNB@$Sd4WeHbTq4E6Y^*43Ziwh{PwVruLA;uiC;5Z4hZrJko`BJvjnep9N-d=Gtz`aU@bNEpSQe-MC+~nCDuDBle?oQ_6w;a1etujPI zp_AHW(u_i%+Pv&mNoYD(G5%~2z*Xn%FMVY~ln9W#j-Wm4u+^ZVVGSliWK}Cltf@Tb zV{jf;xx}`wk{^|J+xd04$;#XNsUS!k7($ zY*|?k;lXya$6rkZw`5+fpY=lx7N2hXC_%p$?k{6%ciLmz2Awvo*+aT!&h* z{a+=KBxJ6%jwIUE{f!%B2y<}MULV*f^%E=H7=tS?-C@@(%UAB@)GG9-NkMBzF&x=! zU&(l~?*r5&zz~;nxDyC`)@8g-Ih55=r7t@$ypF zyb5n67PIIBI}LbSS~FmaD}uU}5DqhlbTu~$uGq+t5ETeQme|8%Oc+I!wH7c5w#bqd zhwZuv=;~fQJ(4o$W6uPnNOrgZ==&Ze)PcRnyd)sm_ShpSZF&UH4n2|#AM0}EeyK(L zG*c_7t#I~CU{u?%#`bNl5_hwrGZ#^us)KU32PTukJYUdAiXq{w7blL32@Lceo1Ozh6R!+1#$9pMNCAmFN@MC2V#!qoBM+Dp^kOu-^qdbtL z2c0hWN)$%1DBVB66-oUE-pF$EESnZ9P7YH%93lh^tsRMMo_UY*lD#l{Nkmv%l7rHp zYtGT)iz4F8&kI@@dqUSEdk{9$mRP#s1X5;NQn3>~b&%7L2-XHWSjoBl$V}LM*xII! zUOMM6nI8GqSx-{91yNqY7upJwT`T!5beXJ_FjQUQ5dI)THN}Q%;wU8#IXf8WJ&W)# zV?zOv-L^Oy@jCwAZ3bXyZ5#uARfQYf+&`?IJJFVHw%EX|wi7`HEP3ygwzP@}UK4Kd zSfX#Cl8x52i2KHdHVDTechQ~$r*C@(UnE_+tu=z z{-JADLGfTT@kmv5tH5!pgjTr8@FcigSJzRxsq!f6yqsIrquM}sgP9L2zGF z0%;5F<#|mHri@j0u(mXC#iKLgy6RGUz&%zJ*Xo&_ zU~B2G=;p$uq_*Y|WhcpGC7r8`%40?Z*<*mSCERT;>_Y2O6q zrCAjS;z`njpfF)5ZHj0E_oiZ20B|h}iM`8cz4#(lp)S>}vXC&_2o00cwHynEsyJRC z^S+*WEb)$bqAW9s*pkkOKFnpa*`W&+5HpWhZ5{klHZ-gLe(RXh3J2`%S`JfpEBSy> z)}?OJF}UH-$gkpeM5rorO*J?^+_^@_0aa5mz7D4f0~zYrr!|Y`7#Go9oT|~1t2#mk zin$go@N#;6do4ivH03QZ@()%WQ#B*&M1ZQx~gF+8VdYxZt3T1*gy;SY90 z1HYX9fNwaI)Q-}8>ILcz(p8g$(We!w6}Bd=%2uyAnO)PPRUwuu-KTR{PI;U|8`0uE zOT%ny-eG{$>l~}}-l+YxrJ`inqFpbs)*3Z+i(j+ZjaW1u@o$??mygvT%P>eULR!uQ z)dw=Q-%q2WMsTvw!lr9J&N_O7o_b<^!)ItU3V!n=;2S+W@I5j@G>|ygBvyE>*pSe} zB2}bWx8%vQ%qKFebs>N^w5&?Xj3?#SE%}xs*f)QK6cMaW9Q_OFm&K$#>be1wrC#gE zuv@PQNDrW1n>w${%NIk8hQu10K2a3xqL{xN*GNqOKr3-vy`V+)-!rV5x^5%Fb3w(X zjE9~+z4`dzyC3}UkGuNCmp}jV$A9+m&3~bqdJuN*oBsT4WAIYn%R>e9&wl;aSH1l3 z=EL>k#k;q^yPrOhjJW6nBZ)-NGFq!P*x-MRnpS~Fk={17zO21hkJ^YzZ6@xfu5O<= zpGZhKd8@&KqJfi=Av@HHl1j`h`REBxqZ_=*g)$_g0gHyBNInRTJ9c{w52%~T1$ui~ zsXwKWFqr1*Ax2rW)|FegH^BQ1q8}P{sf5%D&h{}Gx`tz`n<;fp!noIPX=d?&ru4cK z%;-jSgRiy9nfitQCGUHaYquK^FK_|KbCnj}Yt>&JJxc%Tv@XS5Hz`%|Ez{Fk7d%)}kLYYMwp?@f+LFKR04sPtd2w92^HEGB6mS>`dPnY&=1uIiofGC< zwr&C1SnqgKwk!RP1*e<+S!{;5lf#h7j=?Pk+TW|DFlOl-iu z6U=N@rCkkPzWt}uOQpg7x%vj zIA2|`JSfcVV-bFtBxYQS^s!%d0$wall|Q$gtMr;* zGh3V{hC4z@WK$2e>WmqxZYjI3@`JnDXK0`UN2jlYP&K1*$OeoX%8LnS$lbHA#CG7= zbx<@I)YCqaRq@Ys15$2v5^t_tixusa#UkD?A&Upn%b+u3vi&tPI)*6^EXF~Lq1P~t z5J6oXsPvLE)o%CP1X5LXfBN+P_3x_d!-uCYU;X$u|N1|)?m=7aA3v4>kE^V89G{&T z0KRzjr(eGMN!=fwpFh2S{oUQodUGl73CXEUq}Y>I9o6-4!BtZS_@e7M_b4IOmAt9U zR@n$~*t4`rL7f=>xvNUoa!bly<%8RhpSCtoP}2Ws*V~5iOry5JK#x;Di9b8l-8%|| z1x0KE!k)YDRXIZz<>$oXf$r0D&T1~Tt4zI|((@)g(eW9?GyEYKO~)VmOk$8Fv99lP z6C^gZtqLVJj)hZpkL+ATvh|>~)Lf8}%+*FslYH8ah}BzhdaVP9$!R7V;pfOZTZwjq zNP-~tT;}Ly*(#}iacey4^rfR~UN+#hbQJkgI*0gGcTn-ulhe|1$_jVyFj+*aWB4%W5SQF2bx1707NX$gIXY6Z~6d56M!1EMo4 zvr*YmVS;rLwA-Hlzw92WoOQNCDSV_Qrf8m8<6U%P)uG;Mo4xgcT|?DuVbI0`>_QE6 z2Z%PNc+oc!1M42ziq!VqoAivXSetAVCP9QP86hjXG}pRk_L>4>lDtHKGNnwBwYJ>V zHiz8g)ytr321b555NO5o;xPH8$hO7508Ngad}_H2jlM?1%qOUe`zCbJ;q24hYn>-% zK@xN+1#{vwkuo!sT4}16G+DDSf?HuY__?bpG`r{*4u^0INzzyvC9Sax98^O}PpAP5 zz|WG}_L^0Gey4hz8?|u~kcR;$?>n z#{81hQwhkpI@j=vh_gBQzuD++v7D|&&RQCY`r{yCxW^$88}sUVo>hi^se<9D;q2>r zlx5xA-2-p%H*VTsoe#@gT4a^QKV#ENx|HLeM6Xn4`d{Ab#D!aP4om!~w_QpY1BwRf z>i2KH>tB9)@#2g7`33M3G0J`L&iDO%v4d-As+b6v+<$%fvw!yf&4(8+@bvWI!@DxY?L=Iv@(&1saFkE`(BReB`stOsx(_&eJNW2*}A-0 zpoZOa-?}bOW#z?q2?_`pI#wTxH#KBlxouiWo4Zq%jiQtHNJRQq#}$BMD{c%5iR zatOk#y7pz*xf%Hd%l`U>X=WL; zUC^sCRrqo^9We(1zsgVY^LBL;w+FOBtS#+>KzS=<7*E7q_P0$cHyt%*LLL`!4KZY@ zu71nLCI1SsJ1Wh|{G-Lf%f*l4%l<qmqLfhlG$mV<-yKfQQtDrdc@qdnBxUUKrl2FJRVaf9{+`k;};TO)}+H?_>C zZ2($Zm=CaMa3*E~{uQ(L-bV&j}g{gCo@l1UCLPEM{AXv+vis<+)M>zTsyZ29-1jS zu6*ZXwVvILjO$2zaVzHv5e)J7ii;p(x?Ycueu$RfeAV`7`rO{+R4H-V?q?dT1=k1B zxiTFS>q>cJ^bA@EU-Hc3sz~ki+5lgLB|r9PpwWjfm-p6vDe(ko3dbZ}V` zw7F%aH|=jWfu z%#Jy)srcae(q%&toIfY8BfZq@!>jLECsPc_C(@?wy$w~kZ!y45&=CwR{5kEzvl@!Q z+VFVLev7Vn^<^x~tmNo6s=McLMq(~!e3((3bZoC%thFJh&{DZ03COZZP_J~?JfII! ztt(WcKD>YZ>BHMsU;Xss`;R~V`Cq<#^~OQ(UN(4(S;PJK$o3o8egiAEjSo;;t?&pi~tuj;=q?#I?GtPVuZo zr5d+Jp|RUC?23Pr%1msQN8~3;`{1#%?FO-B`A7!H(oFsw3LY~N&F-$$?ga9MhNO$y z1nJWp8rM^fxH+#Rq=#xZwCb92x9X_Ta&A|LfSAnJ0hkRU^!jGNnA(~N55xDEyu+a9 zJ<_haX&Z=JS@6DOZ+DG8b0@fAzP3IqRaEE?Y9leROsLL=|Iug9mn9DUx4x3E1fc_j zQR7v0t#XG(y?~wG?)F0t{tvE=qy?twL}=!-k>ong`PO|V7LUd8Xh6!EzOq|Lc+_ID zRhC-WzmLq0<;{cE9Sw9|VA;95X0f{YX1ts>#) z2xl7&E!qlY^M+qq7&7-*$}>7mnS7YdXFH22%|Q!ICf!!5g6T=Iu?eb(ScP5nXSBJBppy`!- zbdZ(I#5tpQfpS&NGNtTxqM7j@l0(dd&ef|dhR5UCFK5c5mr@2-;1V)gMouV;^fcpsWQJYeJYxRzp!sqTAo>Z>3B$v^+^W*XR^>&vtD@_S!$lQA{`TtE0{pWflc z3*7zm`n#{Y_%xESi5_yMNMhM$zHNTS_-^f{Wz2TB9^r^?RuWw-QEQ~X`PBOk2DPpA zkXFc%at5^fc4R6s#!^$Y>jOow3Lh$#RH0jUIP<0m73YTU{o+xZ0PNCOf1Y_Q1=Ne0 zT9u<+F%(}A+&;ct%I$V`kr!CZSNijogEbYaz-UK{V~c&&H>x|dq%~Z)($zF3Miuzb zP8{U>Ssg^S9em9!OVoGE-OwUcCeIxJ^IwM3+8HcxxCRzvHDjqge1EQF?`!E}%jc(xP{)? zZ=0kRIqyr^K}p-oHLKlJ^Y@y3Jgbp`iN-cfI1)v*;ABR^W@)Q2?4&@Zl($!K>1g+v zP(N8E6d8C2p`ynIABDFl#=qGUAl4I-gC|Y$%%U8)4DuKbD+F3~O_3vwCB*KbNLWcX z15TimCXz{Q+YHr^^1M|*mQAXFn~!<$keP9=%2auvCZVhdJ8G=0*fV=nUOB5LqDMGS zdAAmc%j{w<6nF=h2>(D404?AUPK3$BSae+b0!kjx68&bX1y_zd^ru`un|Ml{A6h9O zWK4950Rk0~|6-P7bE4}hrvECG`YFfjUkAUt!WrO7G5W4UbFjSg|Ii?!W?U<>MJ`OF zbKM%=x4)KO$~$4ucDC#>v9K%NCP3rs!M2uF_w9@T&z%TGR2KhC;2y7MxQjg*(OM^* zT!z(i4L8Bq9qYBnT#8W%hE`OTudAZDQ|L%#XJNIYm^RL5g4WWIynwGOA!@eRAr|t~ z4AH5YFkN3Uql7BU#@Je&PysaWnu8W`?NCzm^gQd+)5z5cxLC|C8M@+XyJ$r)y7lhl z!i~P`nqpK7vz*i>;`ZsK+KCjm1Qk1=?8+6gmcOd|s_O6Cr~+~1L|rY&-Fgs%2rCg| zWYtpl7P@i& z;0HhX^2==~(ajU=~*#Sx_`)`GGU zQblhWH4rRz$8w7Dnv+^p{uO*`DK+;WDn0=sWO&O>S8?hkOU%tJniFQ2yP8h5$pC_= zjm?$5Vi`MAN}Eomk!37gqnuXKC7(JY_F-^fImM_e`8|9Gs1K?)!sF`YO2Tzz!AyNO zK$Cq>0JMLhzE~-!Ba0131>{4q2P=apVH9Wb3DtD~)t9cj(!)67A+$70!R0u7yBmmEaZtYt~j1~xD=v}%MJ(#%Li-7OJ$vD zl*s91(lqW6gkN%aAOr!A5*}xY04kZ4ZiSNKXROr^sg%EHja|xOg|;!pBb^EJ)!J&T zj8zT-xql<01oh0F6@}emj8=1985$kE8IP@!gmrE?oRstQE5%UhN&#+f88=338%^Et zb$Dsr0v1L!Z`BxxMn3<}%x*QB$!X%VkY!7>YNr!m%P zdPPlWK*>3&6J3>nTeT7|K;~nG^J(Sg_1n+h+np?@Iu6 zK#IS%qcwAkBv42a$S|%wDKAWpwt4obYQ#r{{g$2{%nnIkFKCqjfB2)%r<=F)iv!%Qy=Z?K?Oo3>l#7Rs1_<176f?`{iv;sUxOaDl8 zimH502ADq%sBo~%a3O^95FDO4-2-tu>NZi}(t}sWlzRZ6x`j$5I8~H+#fSJ(8?9qH z26xgQQuP{pj#oA_11a|&t~3L#M9D}I|F<$Y6MaIDlvZn1b(U~-punKk2?2&o}!0+t>G}PeG7an!!L7vR+>fv~!Ne>KYqx zS+@y(vO^XM8 z&y5fBz)|9NSQ31sQG3UUCN5ep)s>AQLAsklskNi~P}JpkQ~Xl=GiFX%aHS!Q2ckN)$aUl+%iNxnhDmF5{Q>wtCh=%Eli2aUbdyipd-?evr;mZl}G8 z8%M1A!0vNI>#mBG2O&xeTbF7mJlJ;Axloq3SX>?j3imu;9Vp-yK`4L-0B=02qglgRbed``i6oFjlIXj1Z(D$s8GV@FAmo(uZPTK z+h**}>xI}z74pDXLcRgL1+<(1woGx}mY1Xy?}e@aGq_}=3fUW4Vc2lfee1+~!`Oa7 zq5F0UE`;mJRLe1vU&1!f$b(az23t00M3`!#X*0*y=7L*QULWEi%RuKJ4D1#LV`pf7 z5=lWenJSF1J4wz?VCax3$U$QtGeCjQA62r~K#06KYB2^YVr4n9e(XX;duVWKJc&^E z!O}|FM(=}lzH(#dEW!znIgRb?U^nHsik*4CEYBMVtC#Qqh} zi|fr`=OBucXBxHJ1+t#t-JKp*6=N(*#85m2f|I69vY|&G8@3za0|XTvUV)uwNfV#b zlJo!}CT@)%34C*L`6uGCt1I1>9275|U zdeL`S*D9U4KuhR$rAS3TVHL>c;|_R^DVHZbn6XO6mgyWqEtY-^t8R4Zg-;Fv*|uou zkglmJL~AJ{vJR{?OQuaN#5`jgl%b;n*|w^yx3EB>s_MSMTCTY1UPCsdMnYUv$}3NV zjX2tQxPM6yaG}e9YF%1U9Bk|<;R=GrTs28%qNHzT5+za*9`1WXS{=TfDcN87a-+*! z+O2(dklY$L+_(Ed^9ZHJo24ufQVBdZ6H)7snXYF02ChqCvbenuL@ax1sI(`u8b1-2 zLE+Y&g-s7-c)yx^Ar}T1tqpK8v6Iaes5!TxZ*C|UUkD#VJ50z+ymlAvd3l6q*|w09 zI)Lk{3o8hc=zN#obld6LA|}7cWt}Z6JopNlniK8i>}~127S(rad#Q=Kdl)R6R|09l zVt%c9`t<(oo3F3y#nbbBT|ap7@@IOcZ*A8<{2Wu((WKyWaF|$|7c*Uy;_!Y;LZf4`DQcyA@j-)76xPZYUsIG4GRy*rPI(Mel;Tl3p1si<&s$An( z-kMNwExClk1ICJ)@?f!k0$|wv3x0c2BP^Ls_2GH7!$7>W*aHsiLrFMFbBy8b3ncLO zbwrhL(IkwRc@8V^${IB)FTzdoA)3pPMILA$ZvNa3WAP! zdnboEVTwq|`nTE<+d0gI-drdCuu0pQ)yqHbxA!bI@B)Y2cc4u5x3JIl~ zIm5C*Qx~CWhr#k-9abxm9L!*aZN$TET25NQMHlNjMwW(bNA&s-lDadzLD1@!0C^zs zjCSM}l|ah#qFSe{&Z(fvK^Ini!x6F)qJ}5vzWnG zl9M?~{^|rQt9bTN9{CdO9Iu3a(vTQlktnwdp`sFZLWIC^YY;r79js&nD-Ji;4ka1I zyPHUm=2CUF4Q=1?VWFrBMGIOBfle?j0PlQt%o(O)b6J&Z)MfWvU%p88ok-IkVgmbXcT^q~$NAuBa zVTOftKbSMPf%_6xR*1(Ji_Ll;MwasB%I%dPzDuPfB5+P^nBk>pPt^n{x<7J zIL@v%VGW=!XvYQ%Dzv}mb5Kb{jvlY+^F0x;Dw}l(mHb;(A{Hq{Dk|W3EkM4UItzC3 z2bjXZ;7iLptiiF%tmox;RtpRi8QSwAhNWmMr3wL~x|@C;p0Fv0MMO&iXSj0LKN9yT zoMdV^$F4UdhI9Ay(c|%&nVR$%SCze;4PC(!0!E+M{QP{#j+1RfYlZ}O)E%Fm^miKzqu%t%{~>n@}w7nVqE4cv2#M4K2fg8@pQ5F>t^kr(KFrK2Hi`LG^@OOK1@6cPHF;a;|qxzpi#uAM4rysBARLIW@ zz8+`kM+pbcR-v4BPCx^F%Sf_q@hu6l;n&8$s`wu$b#Xh}Wb|46HP8h45 z5V&}u7oURBo*go>djy7ak?k0B9dHuTgdA-eG~5Ac49apg>JJ(A1#kz0oTRB0SIM12 zm~fY1a67$f`YWoH!{svJS!Am&FJB5lRp4%b@)$dRcf`t}@x)pVUT-MYr}BrXfTNIK zv;eNbscT9yHoO_-w(L&~xWTbas-11z2rACw9N8@c99Bt|3N-ybWKbQCNmFdc5#4dTN?bzv?tl7|Vo;sGK=5dv_ zRr|iXj0ZAa#$|i@7d0HXbk;mYI++&gbCz;Mdr}AAS402pkjHC|rH*J6K^kCYps zE34Wm5Q%mJ*HQ>LF$3kzMp)iq2j<~7OEAd%gvo-|l%`Vhaz9!-1YOjexLC8r`TXi7 z5jwyt0Ven1I4BPSkkLv*Uq(>I8apA!$P`Ikg{?K^Hf8^kJb*QU*zbTV&Ahy121n;1 zwF*{}@QTC?X`T?qaV@WAhm^0IQ3GVFQbk|Z5UR?RE$7(*`FWX&5mCDyQZ&m_3>!kx zE@m5BD%Q}645IS&sw(fD6?@1*yjZ&oBZ5$$V%%lW33K^w5qth1ccJ`Y;V_*cMYpL_ z98Pa9OPy38apaCvpmxa6$Srje#UMD?vU5QZgGnd&(0_9~)j*+KHEk!Ul7wiDE&eww z+iXc4P;Ply-MP#xm(k579usS2LesjoLe1u?o%LeNl|}^vZ5YwwMy(-~(%xG3VX{R* z)Oyc8%sKvIuoNB5-du84iw&rvpqu5q=H?@iOetTwPx*1GQ#_Z0wj3ODfD_q@C#9+d z^}?oBxqe!`O76*gKs>jg_yE_T zQn|*|*Wg+o<3gn;zx7jgPz$xU*LOxoZq^>c=ad!^y#<5g$%QO2mu(eJl&;W; zx7$GpvAjZpV@oxqc4u&UHA1i$U`(lM1{s<`E2d%?bUGde*?z4+0t}n=IUdH&YO(4R z>O=zD2kUa`gBzMQT|bP+`tcap6;TzmqK(g~Wt*oqUh5c_kis7CaWSwvbGRx!IF`Kn zNa|4r)2CtMND6|^?=wohu8kSm&M0FqMvlQU5$Z$`c=~CU3-6N+%~4+p2*5B$T|ng)2UF}&C zYC%qJ_dYa#ktUn;h2F)irI8l%x<9sG#uauhJGhq%#OC(IT#~g8c|C_5+)S0ntM!7D z%TnT_yZxY&&OqlaaU%C%&OKXcr(#1LpS6zLOm0DG*Nghv;gwmBZK%|{&xOw^Ahg%Z z6j1Pq7IM(o{9qdfwEP-PPH4lJKc(C6vXuTMVOkhbMj6ujRpIV!vn~c#~(yXrDVh5^|EJ~h^535@{)@W zV6JQi*2R$Pk@F?W-Smc{A|DOh^QLm!3eE0GT1#{Wp_f$Ck(i?`?bQ~9Jg5gYv)*vd z%=QyWig;nHAKfDiQryE?g*(Sm7B~|PCKU*aC)jQN0`B|i&70r-I| z;0HhXqks1H_5X)EZI_?cS-=1BOOs<>R{iui%>7$>q12#xr6__j+hsl4&@sfyffJ%dQH{D8%?d=H*WYHnQ(97)b0wXx~@wGvuPxY=42^XnzCUu%XhIvh1;FF_YrE*VdHKcu(Y+sg^D0W21F5U zkGO_+L=4)^XKqqQy6WQ$X{4f%RqHi3lFF%7xMsk$7ugiM&CV_;Co^}=**;$Xc>SkQ zxGr2N1e9|LNqLU**?N)~tv;`J<8WY2u5BX_S&D|prOTvLa&})E_$3ozVcgWo7_mdi z8_xTeFTv2>5Mmmxs`P)(u9T_B`Wll$4B$M|COdJz z*XBZ{V^q>I^{3D&M&t>aP6XjHm)S2JkWJ|X&qU+^ehes`xu@{;nMVRZXX8aDSrM`s zRDi1D`ax-n4isoB1s)xdK)54!oetQ5?{D;$vi* z(-52cqd>>b2&B!0vYav{P1>mgOiwgl)u*J4nsd)S9}r{^`$_%$T(Q7LK!_yoE?{Vj zga+D;?Y~9HJ0e2)9&ce%S2(Rh_3%7mlOF$My13vesk8*d?9iUHsw%w+*AsA_BtJHf z$oM#nMK(9EdLSirwUqd>ND}HZ)p8>ME`~0KmxjBlL)9B1bbO zwFaS6-AX)qH|vmzwhzSBKI?O~r>dWes9TtQWHyQg7G zwnUpM1mi1h%`ee>FS9E~+WTKkOp+Ge9@JJ#Cgzg$i@Gm!&3iBm1(D{v&CWta^4U#U zRdYiS50RGUUx(fj_H{Fm8KqOHatTxTX=6i|kO!QGdzr3OAn2*}K(&@-M)snUYB?Vk z4w(p7Y=g(E(2!(lWuRr4n${uNnzE?T!tvO+ye+4UpJx3^#UWX;T|a9hsNJmE)JdQb zhXr&7Ph-fttQ{p;!ae|3d?TRsA*AZ)1d^tijI7xz*|f-LTwkrX(P&|X23p-qB|-|U zu-0b5Vew?`4sa?DERm(T#XVM3&20%yOto)T6y%!W#ZsKK4&yo^bmG2aWRMUgATmbj z=?F8qY)78LKrq%9cBn@&3}p~5r~t99SjYf%7_8#r60z*h(u1-G3rua^>@=wEtZ;JL z-B49OdFeaV>$sTqaf)5oKotwS-r-i@v+38W)E*-W&5fOcluPY71SHj}!2yp^W|kO{ z6Dg)F+_*KM?a|!+ z3+}yKR=(Cl)Elv8iv?KsXfgSs6r+E_aRi%ssh$QNs^Idn1|-avV3HcD>08^uIc*z6P~`*IGR55s0^uP!Klb*}TfM!aBY9#U^3|LkA+PNp+YIFe+F zWx|!RS|;70)PmKT-GN4BnrZn=Za?wu@KQge8%b_Hr0MG;susAy20`75Su+o8!vml5 zo5F&kq6M6gEz&7}F#+Rt*0O&xh3(U}QK3kQeLA(}3w3mdMoUyku#I)^Dro=-1xL43 z?Zj20K;1n^*oh<2WD!l|(>@UF*KG`K_th$dIT2I=eIt9MMVCAEC?Vv zMn13=tLo$1?>@ZywyqaXA3wbM>Su*l@Wj|NjP;X^!L{&I-GwgPKmEmDz4+pXc>Z{y zKfL{2+1UikinKRq3fzHgFp)G2Pb#*v}UhoC2z>H68y2R6wITk1I>K-KLSSQLEI0#%vo}thL~vkY52PV>##T&UK^efrxf`K$eB2UrPj70It%=?%r-R zyqPZ6YnGO$oWzU}Ub+_c6fsz)?qzCY5ht0;(v@)JF|ui{67$KTJV!!_zn8yjRFk@(2A=Ggq9Fa8eP}WvT9N0=P|WhDb+5jzmh?LzkDIHGsYniCR8RV zc3N3vjzaepXfYXGlReS6a7Vx4h~|Kl7FDz^x~S|tJYdCaoiQ;Jh856#L+f&lhUTP# zfj!$w8uJXkRAI=T+^E=?9>zpv682m|mBd6FhkZdZGoOb&WS5!u9pn>wIH(T3Lr(y> zy;cteT6b}CkeDceH79GiG&8xDAd<9DOiIvaUcRO!%$c{di8zX9E6*N5y#Y}uB85vG z3EUO=1yE3xIwA|LEVJZ?fO{*=?~V!Dwu!SC9MobghWdkBg}SRVJn^77&12O-ZuxHX z(v<@=O3SI0Q%->dv6agu;6y>x(nwWu$%vlBc$a&KIta%)up4zq)zsR~o?8 zczXNxcR&2e9~bIHef8Cke)Z?t9K4Ek{UPs7BKRPWni2A$7jQcY~C1DN28M<4I1ab zg1Jo@PNF48E}cuF8;#C~)j}5*v7S=cjO1&ICS4}0W%e^gnwSBkqdCIIb!N0ljIOuq zY7{=YT-oB8lc#GPOO9shj0-YP2Xy!%p4rQBTdb=`Qgxqs7r`=&VPp1`sSn!xWOjo7BR}{yq z9b6&{aRE~NEv=ifwuu+Hg5v7-J3Xa(M) z)TTi4NIOcF8390KgYI5P@nuUd^=JmCHL*>i#9mqRRsYBIudCgZh7okKEpw6K+gwJ}oerd! zzE%9O?=3t`C0TZ(l*obu7iF9;Yf<@1WR8*p1~!G*4?(&Z)ssmw50JMsC((-?bS=hP zs;f%?$V<)yfwUk8EqtxKsY-w(bu$ZilB!alOvS#_Vq0QNj}~ll9@dwHgu>js*sLlF z8r;_P0B^;!~NfzlbL&NpbV*fLZ2lm;RLX z2*Mx{hC2g$<^zyqeRQ{$h||ty11AfAD$#bsF6b88+g%&dV=lE~jd~9;*b-iGiK$ch zm5K-*YZAJIgc|OCq*WPj zWii^P$Pb)mxs?O-aiy=yLbl?|#?)^nBk>PtX7Szxz*Q zV}f-jcVJdoE$4G(bagfGqo4iB%U3V^sXsmCS;680LZ=l-5-4qum(fkNWuwWF+R+rx zii6t68|6 zVpc-b9a#lqJBreZORBq~EEkk)tD%Qh5YD$@THA`{K$>8JXU5a31LAHv#3v}DblQOd zQ2HbOfZ9=$@#q?b{-e~9BVW*pe)#VO? zy;rF+1|Fj;`*Z!dWm+4|%9fQV4;4V}P+gnEbt)}4w7y`H+^~d=!a*WeBk7DZ-rz|k zqNR5VMyxU5Qa81Afngtxhym>)e{IJA`=nk>QyHa(jBTT1b{5o`t~2;P{l|=N!!AGP z@5Oh7)^W@UV@K8sK{eFDsA#6sim&cdHT}T~I&cqBNVSe(ZzuATSn8qM2i-L|l_{^n z)e!|yG6_aKUr)$qSM%> z5guqA(i!qxXp%ZLL#^bv;L&0$+kD}Dn!kKKM}`O4>u=xD;xEO{c4hLZhWgl+GKJl= z!czfa`%}5|Qu88`5+$~_FwBw!nZZEl<(I?oy$lWRB*Mc_603bRe_QN6;&5G}*iF%z zC#Nw0P+mt{rsD8dcLZ>!(St$&n#0bfD}kD61fsH*gq``70t7gFpT)?@(ZJ62;=dlz(QvDqE;xVV{?pmpxPL zVd7Mbwt-iuh8IIsV@mgib?(0T{x}vF92G;Ur7?D4)z#RII5zK3^_cGlaNm6OVXs2$ zo~>(=K=fAXf9kalf{QTIKBhpZK&hQzTZk;do~6B89cY9lY>tdDn zh5_1f0hscb>a@P4V%w$+ZvNRM*9?H3cbRFtn)aX65J=10iK}GuQY5ymJXGSyRgzcp zxFH~ zJJUoJ`kEX~JF>tWUe_+IN$U!dW}lfH%H2Q$baSo#ouTPn$YDQ^)aNRz$kLvr#Kk7O zwjqkWbZ7cbPDW>qB(i5_Fdsb z`9+{$zJXn#z?`&r1Gl7IX1Jfm+2tPb5xw;lE~bvSYlv-`FS)IGt5 z45$v3de0ptP*+JpMF}|xH|yHVG`81bu+nxbUaFKGQ+--FBwM(^qClcibXyxh$!JjJ zo1vKKZ;xI7>kuig0mStwLu6A*yDfWFNoKpXHxx9JY%MMJDqRKci4_2ScW4TFYCN@m z`)GIGXSU?5*?U7)?a0jI@Ay{+ZI$D>1F8LmnB?x-VJ~i?jqcl7!0YkCLs1lY{!=U> zSQB9$Rn{Ix_h`IOfPD-sBF&H$u7cm5U<6w}kJfFGv?HBz=1!0qJxe+kLhNFXwt4NC zlS;r@8+x{yR$WgY-@kwJT~&Sh_~GfJ5BUC{D@WWP4}bnk)LmD-fB#1H zBGnZlzdXZ(N4^@{2W$BVE(f&a&*+}g@aUgYdMYtdvJ_SLwp^`+v1yN0anm6`AD_6^ z2$n(P>>+>NI*VMFF~U@K0Bt72H8VU z1i1y?=c58YId+d)+e?#{WTW=9c4N*I7lbowWdiJ6S(IM8oheCq?}2PsG1|b)-t<_t zleDgik}-pi9V3;RQ}&V(8OA*Cnjz@A4w;A9Vx^l7CEMO1U%)DjZ%z3{(BybxCYU<^_)5K@|xi6s`z z5kHz5ne<{nQ6-d#l1VLKHeIE|wfevOA1v3wQ{$sR!H^?dJ1?NnL1iMEOX(sa?9tp= z0_+aZ)(W^vC?&6HE)lRgrW|Fm?HbS#t+gFzO7L(V*e=_s&$!btElwdrg>QGFjAyZ3 z!+tJ>FG~!OrZ2nDOR$wij)=|#dl9RmKR_Ba{5T__Gm2UO3 zcOQf}+FN|6?gh2t3bAWa;i6O7Nbp*1=`q)Jvaujdh)SDTRJW>2bPoHH5L`wpNqIWDSu8W5^v1Af7K|9aa#C`YF zt#2{NZ7FiAYwe4qLJF*@DD_* zL(`-USuqTK)N)(jvRuo+%|7dY9K8K&h%d2*S)*>|3!>n1N}CR)a7Ys?s@dU^1&S$Y zz|%HE8y++e0ze_QL~R?o>Owpscx&D`juv87ENu^J4xNDR&Vs8l*v^Sq;V{pC=)x@b ztn!8;pVj9=_pNeEf`dJ5+%aPFi8`z!X6$lzi*tRw(x7~dm7O6?#&TG?U8*R%UM5@s zE%r^&tPHf!dPl+<)L=IB-IQn!AC-;GJ=66jwVG9w$;K z#dOkf19_KK_(+n$Pps3J8Y zmQ?WJ2(7IoXGe()BQNyk2xa~d=^BDUbtbfn%~rmdD3^Ucrx`KKf*BziY)c@r7q=Hd z18L~631{mmgScCg6uDL-k47*-LSa5^d53k>>3&$9Ve6#6k`rX_^7h!(Ath^1sA%e& zxb$?;$J@6eV8dP(9K<%d^&pAP0e~Kc$$KtrG%<`a5Y<47;%vGYy4&A55e%6q`NpZO zd@r*nvUJgFrAD*vTBrhlnJFh(&sRz(!%2SNe#Dl`|-4FCs;P^yYJFd!#WyRvRo_=99l?b zUT_TqnD0q_l2(vER~`4nx#QhMwptUgQDdos+B>*GZ>E zyxk5aBlPIMBFMA2$)}9Y-A#5%)h34|(=GLvt8n&V6UkLox6Ef$+Wa%#dC`bEd&?n8 z2%aQw8frc0i~gK4-->AU`wWPl_HmjNE1FF1(i(zpHXjL_w&b3 zpPrtc@h|`5|E+aDfAX<@9$#`(3eV@p>+hbPpZdj%7ti;n=Z_x{WdYY0WC|+s^2m%o zMPnjcsYX`xZ8&Jw=jQ=m)?G=In&c;a@RJo05MBBhL;I`{5G1wqd1LQjlvCzCN5IHu zSwIP(R=HPY35p@hCGlz^ixETZEc%wFcV(k4w<&v-Wz`NBA5>mPF^J)vZzI1JX`Yx#| zH;XjrtpNf_nA84aM0R_XVMcN5PL?%Z2oh`c!>(8QtD4vFNeso&mPdfH(sZ|>`&Bd; zp-pDuF1M9nL~RM3n$W|7N0}`ZP_O~Xt&C@u7Qp1B;$fAle zxk>{{*k#+Hor<07$wJ4D8+n@&cUeeEsT{Zz zx@v!=V0oD+GJZ4_)fLN8ycp>c%yMB7ixz3yd&fGk=U6$nM3t3AFeG1e)?1V^#8|Lj z6K8})XS;Z>ptGV3tnEs8{xFtZ<`SGC@XbAgZ5$$8%xoqA zha6`y+C*g{fwmpn$cffH){5xL*gN{e#n~l&WuWD!HAyPhljJF9J@14z>LsfPaTPQZ zcm-~D8PCOFW=_so-8Y}E)F;C(#@4@83NJR>liY-hl@1nq8B^Mvv3Njd*#BYQQX=x- zGKMs(+}f+DhKU18Ww4#0jUfU?c&;k_MC!4rHo~Ek8LyIQ%W~zRTVe}}Ynx<7dJb{r z-ZeBLCrgSa`NHDbU|zxCpjeiT`96O5?&F7d*NYdQK7RV$Z~w9T+0hV=2e4mqvwnu^ zURC{YUexj7-P`9+H;iKd0RR9=L_t*Nj}A1f9M684WlUt)C3#%l(=rhEfuaw#m9BQ2$6Qjn3i-^+HNMtF9u}pY4oi9spH!( zp6OW@9&scQuv%0;<1~QEcp!A6FHN%TFJoJSl~@&NmE@~ZeM^*y(#^fR36LLMI@L&? zgtY)pD;HEXthYQV+x8b!gKB#1gO_5qBd+gJ#s;i`AV4BtBa45=`k^xs&07&EBmHLR*?# zO&BG1-;tzshW3?{%*~cOrDd*CigUtl(TIyv@~qsX4jHoL`M=%W>4zQQsVO1O6SaN! zj!={*O-)4mRwTIN%GtuChmn_IpUB1xelbJbFSy}>vgS+mL9W_!etPwq5H8;cV;zw3 z7^4vI8L+nIN(Ef9OOh(eo4AsO?RBvhmoQ&p%};5lutyh8XDjqQ@ag2`y@?eoawvgo zZO@pDk?R`nb`9ZeQ?H9_T}nj!1kUW86kyXSkRidbLU2LUOr?Qz-jlRQ=5E&) zk~EdJa$S$9yGPS*=x%pVCsfx}_ool<-oAeIiywXZ*gyF3pI+CG?)!~9xp8?}ra6Pm z1%CAx|MJz3fAsYHTvvT~|6Ti3k2CYApj-~nG`!q&l_ZtGB-2mFufgOMe4vN96auAr z&g!nOD)oH0K|pC#U6%rZsPquZ!3&p%90Af&3Elan3N@?2EQ#^|Tg$eHu`!gp+k?#`{xa-`@$uIvUMbhJ~W z7EovA4*X2>a@o91aq(HGTn8;R)Bf||D^Ry48_U+x|?*yFYZGpdBA9bE3UHCn08yJdn+U2a;bil?eid*aY$BsgCS%^;GC#9R{_MU}dkb zOSoMPFmy7h&?KgEh&j@BWj{H6TQhT(?ts5P71iu5x|WY$nd%^{jSp z893^r;zst#!bPb|pM~}WL8h8y%FJHZN*n!Kq7m-0sC9v)X~kW8`X?5(vlQ*FTdP_n zLy=}0H5-=_mkvocME2|ZZicnW+~}Fz70XPDuks~}FQkymw9wSbK&hBuH^nxr3k*=RTos?7G4eitD#J{!Z^0>i61o``hc60vt3hb z8Dv>$4pZWA@~V}eJ@J6M#1Y#dov>7JhAZ@5?M1dcOUS4Z)zU-x7ZhOWn^Rq+M0atL zaAg9hq#TG|%1}_GW4n(imyR7W*CH(uTC9;&A!~IqfBE)_z4cPL&|rdy!Wrk7lEagT zi?^R*_izqqXzyvzx@FDus;_JLq@sukUf%3>_dVqWmR2QhGzVH$suqMM5_wy|WXU3v zuenuS6gt$Tr6P{UB3KAWONR?xT3)K#B&HB1q{IbQu*m(4LW)t-9-)xe9V0K`1)7F? z<9_$xGFG$j}Jau%4F!_2~#>~7--&Kz&~PEJ8g zxaqItb*Pe%WqZ9*Tik1@k$5(n@PqZz>hNG3(MjRW^C9IWA-lA<$8tyaj}==Qe}i_V zOkY7jOa4H&b_+Zd4rn*^y$pNEDxHak+|{WX>e76DwWqQ`)`45s;s6Ws>{aV~`f05+ zW;d$-Q5vAckjGWRw^g?-mgvETcL$FxfR%+8c^10;Bk`+fLhD`Cw>g2Az2=eHccR!L z#>XUzvPSBlbPfQR&lbxIf#T8lQfVLEzCUv3JfWg8mSrl&Y}?Ls@$zFO(qX(fu!R#v zrQhY8u1kF=OgRQ?(8~vMsS=&1t194N z7!tL1SgfoSB8^J|6bA!xHN6Cdj0etQaP%ifhj7e4<=zSE#r~QpbO%fk(4{X z2qM<29Iwx}Z=7Dt;xfKj9-~T?$>im7!hqPe-JPX|tQaN~Zq8b3UCx}l;y1}RX<(Qf zUO?DxT`r(o73N#vP-C!nwTG|%b97NepRulI?9%3oF*FBA-C#3@!lu$JdvGQ7XS<>K z0fj22BcOr1`&v@X&NnD2knU6!YmKDE?1gGky{qHlU}Z5<26uxzBxsxNTx4^+9V>5} zrDr6ZgjAeft>T84;1~0(#@g$#gHCvMp@fb>jLscHv`ztl3us3Q+8sbtD-)%P@<#N* z7~Mwbd1#BYh^5FB-3C>7;Xz;%`lfPnMRcuLQ=S zmId89lj#w};`gBC$WYs@Cw@eHTL2ubYpbQ?+`aTsbX{d{;1II3-0rPB?@Up1a}9iz zK9GRf-n8NBJg?}eZa!lEzGKojyX||111<^%yJo4c1^PpMj%nBod&k2#f$61hu2T< z-(99SA-l?h9gA?eiHujOmaB()`EphFCDv}K6J^j+FG*RID&;M$p$@n+0#}q@2$@*% zm11b}{m4uPvrKR*kNNak_qx&N6IIIC_C!st6M4l@{Q9bz+aazHGR2;GgQsk6p@y-W zJvyvjDg-s3AdRL2$@I=}o&s$tZ#znpG@T}PTc-A@6osndgvi+?6)9?sadB#`@fLOg za^eEeB*k;0iXA#yFcBxmbBvBT4bU{fMF)+{KJ`dMC!DjZyL?UFTx8_`(&JUG9R#O# ztuu4V69+X@)M+%uAQ>(vdbt6-?X*1N+O+J!v`xQ*Xkjb?tdq#GwuQ1gG1wX!g9s|* z!aK_%*`|M&VL7V$2)HEB1XP0zU)PL6dx@eCROXjEnn*L?m(HGB9yZt(Rw2sY zET=EGgtCo{v((2BmjdX%=xV{B7vU(g!2UJaulAwXw3HFWDiicEQXL=v%h1k!q6l`t zGa|mr%6Zl)m#r~XP1WfpIJ$Y4-?;Uj#Eb40N=yH#@CT>N&fkjMYSnZ0Li)kX22Dju zUW_b=gc*F(ZG~%z$C{sK9%A~}#SG1%ikC$=n1T*&3_2(>qIr_7_c40Tp zY~jkg$_uTzsMurKQ?jFEs%=qq(wDH;m@BQ%G<;Y2L&{_k6|aerrJ+q$y)HsjW#5WZ zTx|>5-3t|x4iWlH4D{HlN8tDgqj$;{>qH=u@tppNjjiV0nx_ZDU2~&H>Rsx^Fk|U9 zgG!A{!P{<=vy|-@N3Pt}HqYQO09!z$zjg!SKL6Vfme~H7aL#;k?y_nKoT*!3CJpya z^`4BWlp{rMEQMZ2`s*#qOSKg47CSk8*v^8$&1N3`>8{XGE+8b*80jMHBrejl85l4Y zbukGuT6KPd~o@w%m$-9v;6m4Ab}h^3@Oi z=-sy;U%Y(z;r;9T={?X93wTR0sMHraxr6h_W^a6#`Y1$H`lK^N`+Gu4sfdo$;XbvDa+l=@Q+F>6j2ycpSt zJOw1W6Xpa94ExScXe4a`EXBdd&9}kZqN<39B)=6V zrM`Q@e2%x~r{NVP2tJ&W=o#KIW(a-~vKaLW)&m=fnLc%-#@_Au!F)k#a~@{_O{^oc zNWzd-7@?|kOowYNYE@tvN>zwO*i{`=01XXN&||hBS;q%V7uw!!)_rpp8BviuSZ?G$uo+wW1wv)!b6Hin|s{RjO->w8fp zp{zt>s4SS#JSLt5PiczD=u_q<%OUy4i9r)r$Ct7f%|wWyf#>H>@85g}T%Vr0@zwLw z7bJhrFBPJ89zCV5Z^#0v9ci)8<3R2Fbu>=6{H-F7xoga8}X?qvu?ny@&YO$&6ZoLaLF);`&0OeC+C3`ep$ z>H(S-G=?Qq#`5^)7njhuNT}(eCUH>Vp3g0`RBwC$4Y zOV<$UB@?PL0`WV0P*Rn>o~{OezWJvU#ImM_toUJL33LzYSWwU?G|dx*PF9`#)vCoh z$-_o>PzVE?OE+&|Ly=@4S+jzZmNB^%3YbYxc|HSUQ`CY0TXtA(Wy|`+k-Phvp>dkH zhb#{BB%$(+O;7BY&<+?mgQIOyw$eBVlP+6<5;FzL#<99TnPVBe_xEvdhmpio8y4Kl zneQFz5@e@}*nOydLEB{(M#Lp+_X=ClfEwa(lPB8km=?!Sx4B#EPK(vy)JFP{lnjYT z^CeluYPGHv5cr{kx}wF66I^QyMiw)_{1-DTz47u+1=)RfKsOgz9phYL>yV@QK&~`D z@wLpM8g)D8tWP$CAFjdhL?%DEdeVI^rGP1UtnYbQxp|{a6k4~w& zjLD30htj}ABk?sGvQCDU{!2M~R0}Z*Ig+z;vK@{1#X}KUCPVm&(t=Vv73Gs14!SzC zh!%>b?NUDFQdrvIC>D^rHS<1Pqwd_A_&O#OcPp%Wk6e~^TsbTj{bXtp23@?}md8Apn=D;dH){axV9vk+pKpUQs_C(0 zPKE07I&3c689;N>hkLdU;#{=08{O+xvJ*$>(qlG1F{_f5nB^x4tts-(`^VC!IRu5- z=0vC}0_9Kf0wQr+;gr!YYRd#m@>^a$b=Mvn)&^%R8=9(_ils;8cd=Y|*Hv}j@7{g) z)9P2RUVQoT)z5$Zn}7VzU;8R8H|!~Ec<0p*fBE*iPcN?*&-cd@=z+7iJzxwhwhVo6h|^kJrE;tGCuuIDE?iw{N4yk91fSUkvN?)ZjyCJ&8ft3$#(?_noOo`>Z#B~)*UV|k7#VjC`;OIrJo*zg}h{I!Yyofnyzf47V0S*Zgl4^tda8s zb)>uF1sarxqRbb!u5=YPz{;kAE^@IjQ3L;9w*IEcmL$0n#Ex1-W>ysn-wg<+8xWZp zndS_I!wtFQujelycieG7ip)@?M<^6DP?_&Vgeez#KGg540P1DLz3%2_sz;9=Q!{rr zPm8>uDm%NwSg<2nPEu~z>y zYp}DmWI+XYE(tN1>cREGFHnW+TwXw5KLC?N$`tN=-yRZ4eN5WTJZy!O;d{ryD_`5SFBO4hMgXlDiWIITTRxp z*qX7+vOu{Qur*Pt5r}a*Lbgj!G#tJ(_bbhlA;mAo2G12k&p};&mcJ9hj$+T<6?bB- zd66Cy8MG&pmPtNrP21CIajI)w(#c|K-Kcl0>Ze`t+fiY^VddYUjn*3%*iHwHSBZ9~ zZ2itKU*SdWEA3LV?`&3wvL}buT>@?6a&Y4Q$v#&Xcwm0oznt(FpH~t;T5_5CCjG#( z7lrMjsz6}vKcxlRvLj3^f?ZGuoH8z?*_B`A`P3=2h{`599tn&~DoeN&ge)S|2MEZ* zLaljNcXT3DtUO6EiZ8f%GyG|c0XYqvW&g+tP)@Zna+ZhVl}1NlUE*A z?0E!T*6`CvPPCHo$>A+y5^Kt#^vG{o>yY^Z{6PePh!q+g{i*+ZuTwJbVtt$M#pMz2l!X^M~hk}04Du9wdm_X zq}e*2N{VFLTw?lU6(T{LGQ6)D6Y1>YjL@iC>_(UsP^jy}R!Z?}nAGHVoXsAfre{Cdkrpn>*XadMe76&aUTo$B5jL9+F4sqK^RG z;=!nIaSUrjmWdJ@=0UfX4Dgam1wbVBX7 z(`?~#Y3cx)%#wInAV~(COL-wd5kr<+gPBQ9D$tqp+P6O@0^`rAW8RVGNkH_8h%RI= zVuvMBYf6{2)B?#o;f#NDH{WPsj&tE=J60^$s!7#?rQ*RxPS;}Ua7%jq&;|b8T^Ngt zzK9-U`_Z=*7Xa$`iI${m1qL9WEX>Wodbb#t=%aqQbf-Pyyw_N0p5+3%UU0y=oV8&5 z6)TYi8jmxaE$iTdvfyEZ72gm~Njb4-QR11$x~o`Mlcff<#Q?F3LfaI+?7HpZx5ds4h0)vm56P_v@Uu zkMFViqk!R^9H)sBUrD)uu#oCsQAw2Sj^H-0d}4PL^sFWV>CUBVz6Q zD=-N@Lsadh%NgSp$xhn@wkLw_^KIJ%8JuUW{BQXyAUEAEU zN%W9Zb$8>sL&iVQtu&)%x!x;>&+#lO@WDJ82$d5$c{LJQn#`zbG+(D=r^I+LO)xHr zw=tCoxKBAGiQKAUNlw!MufD-%h5q zixCK|8C63}DW}gs^obusIj|L36^HN%*&yXTb50hYh@ECF2&Q6zLN8p z!kW2X5m%LRSgoZ$dmm26O30o#mdC0MmGBR$$z2{Zi=W!B8m-M%vqrM9o3I32%wy0m9g6@%{3HZI`&+umHl(Yq3+C{x&xIlH_2 z_<>C;`dV(_rAu&|SDs+lc|gh#EwD-h?)zBwU7&FW9Y|mBo}#$L1fIAB-%#c6i|?ox z)e=C`LKiZr>8YE0-Ia+vMqnOF$#WZ3L&8m_ojHFudRBNm8u`A2(goE;Y6=Ghxrc$& zCN{2Th^>g8GwQemvvq6BAO&zAlHAqmwCvKfbHNZ&Xjjc6-kqUZ&vuPll26(D?t5my zt8xN~4c2U$h%JVpXKNZ*SfSMM=@{z^EzajvOWeZ`$92wsLcRiaMg3@i;wCiapNWL~ zfE;aloTgfu9P`d5+1nw*>*UYSg`gsgt|Ti<3~R*H`b9kwr6}bR5v&0Se+tB)0-}sS z#sWK{3{K+uy^I;?^iHy7m9X6%V?tMVpgVzf_W-!6=KgN!F-U}@%*D=@WQO-@a})`ggzo%X5DAHGInJy{y1J`1!Yg`~3ay ze}AezKmJ|w0dXX~gF;q9RUqOdkl^bsy^PeGCpHA3ts~>3Zo6)bN@IDJuk*5`rn!B) zu$rqVIA99U2tid;lL|d+Ey_smJi+sq4#Ps~g%%KvlC4Em+W18E)qH^63dQW8kYmD& zY%8c*)@wiBjc}~m&$C-5sw^J8!dH}P`6VqVWRdb~jIhx3m6G0uZU~S1hhjLax z&Av9sMDXWoy@uUcPG63z*dKl{ry55; zG+OV1$t8rt*#Z{|E1ReoLu_-KVsYyhRU16+s=Zr9)2kgLiJE3fFNrgcS}fuA1+8?e z{tRm+RzoSwi&w`x5l0m6)(9Vkm|?tOUr&P&wUiC&PjO|$GQtXps_Rs6(kn0)8$e5Z z>@FfLbdo5({A}PS(>q2E;G%V=xPqUku^dK_F~a9$i5Ih%t*uzl;r1`22T{w8VV*3@ zyb@y~SDoY^Kd_|}2eLSgHt6wy*#E#Oq7lJZcl7??Hg+NM_8%ItnR3_S7FShVAP;YZc{ty=v=R{=|doFQDk zWbQ2NEIA6GbkhZPq%XEPb*~$|s8jW%Xmx9{WWTs02o`%<6v+Y|;5nluwZ-@Z(%CUH zv1tH4b*G0?X;JRbKaKSg7b9hbz)D`GY9XEWugbY1l1Dnwd$1ORWmXAj{a~}x^jmX- zQp^kkzu3(fo@-xcRL=?h$7FxI?ifK?ClV>206J7;>_W@=@j_< zG;FmUN^e!+_@huqmDhLp`53trgra&dH1sImrO$kFxM91@2re1W_%JK7SKc{H)nIx1 z0}Cz2j-Vw#m!*>sTe%+U3%1JLGa33!l=6#^B;cy`FYRz`u3-PyXfQF?G)aFNeQ~V0Y`&xp!Bke#$zVAW<*Z7430fD zO)p_d(1~7A1^Zltn6DypTqjPVdFQ;Od|7jTIq`v43$c2utRRI7*Qu}tlSuky(wNa0 zK_(!@wW;Q6U#U9j9`(HzPsK^dny@K-16rw&ahCLV5{p~mrNKE~Lct8Gl)T2GsS=cI zLby6poeaAdhRChFiV6TQc-gidZDOqyAqhcYc=Wy<d% zv>GD@(%f=jV?!*ujpMa8D=20S#N zuiW;CF%bE7B6EN)C+R}Fj)+m-$}xgAJI0KefgDkBIQ=Q*s(oHR49Q0BtX1~SUM=Wbou_1xJ+#XoTe}24b_cU@CCHSUKt;Kf30{6LKMN2B zZ{Jr+TvryIF2OUVaDh8zJ6WOK)io}tQX-Iagip#%nE)tRJ1LRB$OcV#bN_{G1V937 z^P>Os%xBbhaiVJ`@{86>lh|2jz8TB5r?bootLfwt9@0CGN<#FU)7{>`2J~6GA}zBB z{Kvf2_O#1)@A_f(L`Qm!)R-gZ?sZW4ndyTL(Iu^1rcTe4y7}-3YZGTpcS(kd4o()J zLf!e6Q|=#vV>*{L$Qg)OhzmnDUNQEMtiJNKwUEWEh$gClE5A-gw7)A0rCN`HX=-&kWW+Ua!1_qLB+Ni! zd|mDm#KN}x&_um7tt@QTY6jH0;d#III^Bj|KjoCv1?H8NdZ%K|^ipSCgul&3QsKOO~%3MBi#|q_F)&N#oK6Z?ktU+ zO?T?{Y^!XB37VrsMf9%vrEs_GYAvivfyj*E_hQxM8Liv4n~}+VF-xXqUD9Erb1bH7 z!>3t$RX%ECUSDF7AfG^;sSGV;wk>BN z>~-G6D@Yrc>d!PO`BpVq95j?ghJj?*!9WpX;WV+RoZBUK64zDi zDc#ueySjD`&avDBFgs#sw~}T(x=T#sGP^46$1oi_frn-q2m&_aRdXrWhZ9vtSo3Lk z*boJYVD9Ca4Ex|y>{D6SsmI}|CUwnYcxsX%8X}LklMAhHwLlEE{#}9Q4w2xw_=d)*T5Bj4X@{jx zBA<(-)|Dk=m+0EQn1lrE%Zgpc0A}WJ%Vt7>YEjuJp-_?sB7UR=HLRUp(uU(x2!H(k zkkDowMh*!av~V3h`m2tn59STZ_%zWu(t&SW|^wAuSuC_ zy3F?FLy=m=^_%N+_yGODA2h@ zb&No>WRF2Qu1|*heU(}%z$lw5(TYIL>}e+uP?$0g&Sef4>4Z84v`I!v2Wmh1(_`23 z4tPcRyjB*hQ=i}dRQ*+NIH&&ppZ^ct&rPSSqL?Pp>VxdU}Z@$!AHmI_7l{;EClsnxiR<^GD_=77IM#^)~{aED~HGw z)2{fbrONpw*H_sEsTZ^kqB~UnQ5bF9q-#Xkcz=CdkFnNT#LgG8OGSpX7pKb^^!bd< zWt4I2jlN{Cdp*&dq!O6JOun|!k!5p6uvnc3^AD=U4(?#Pxf_OrMZdMJqbZN3AaZSw za`!@!bYHU^9`B^1hH>ZM<$I`3FJw(dJ)I5J$sIknC_jg(`6%YyQC3c@8cuMcfiwA{ zR_6kWPP^r@g+E_J@t{j^D{%`HqJ@I)Ix`HG0cb0=Lu94&Gogew$yAlL0#;lvLGZ&y zZ39IA4vxmyb$ByKb>GIB9d?``EQ_iPZX5(rQ08S!JLU`|ahl*1%7&<7qS9J$gkHVnlQ^0CGu)$^dG3IGE+ zF3}1?382Rw1n^=S?PAnk5OUVhG$Xm}nT4RFURJa69b=-*cmaUyb8l{ku?w0@0V0mc zkHQTxqeoCo)r}?IM?rjLh_F0GbT{VRoI7vrj3zV2X5z4T(!4J^=C9d*(&`FvLAHEy zfdEzTlKJ>mSKA|JbxCw%Hozk7q$%tEn4!>F$lJ+ubb-ucUsHZA50+3Ulq}D_;Ea4s zEj-6a7?#b=_3BkFgxCC0_2-pFnrE83&#Q7tYE7ycV)xn3A~4uY%@U>TQ`^KZ;-l@% zyrIO>)FelNU#N8{pza`-67iAI=@z4-Af{m)&=gGBFs*A(Bm&q`0cj zZ@+$g`_nJK|LbqR{yXq9^24EN$yFnHtDk@Q%YVH0zP;n)^Vh!LlNd$lOvm$ua1rD3 zJ5AuUJtbxqWIUB83_0Orhf*P61Qwa0)D?ZglyUh$2-R8KAu8d*LbEVm4ptVNsQKWAxN@k)~*3UET#*O6|2;VVo#u_$fzT^L{+ZBj*ph{ zCbZiH)(ccMbnAkajIZ_m72&4)S_c-N9)Wdm1>luG0M*2e{(2^rL7UmKl!?Z(3m2V3 zO}M3n(r5c;?adtUpVS=5fU?ul#2~*L3_?%$Nt*J~Do(j;PN0f*mqiIgnpeL*)4o^pv_epJ>`6?p@;&k){&V#(L4zF5(xnVT*x?(U9CZ-ZO&7lG0K(E6Ej6(z%fK zueEk*Ie|?N95T$b%QmuBJwI$sT?7oTBna>?N){>**rWMg*0k6iF!S4ao z>O3blLQ3y(L78uzWQ)OBL?5c!Q~AIIpm;f6UfYr2$rPfkA)Jvtgmf^>6wCIAs!k~F ztf|Zjhyp6~1J0)Knlb4&CO@H7Tn*h8cl5xas=G2>p^kPa^5F|J;%#xpnbVO~sIbp! zOSZ1eTCJ#6AY4qP0J26{Q$ZXj#Lg7L(NONm*zl_Cy$UamJ5i*SM1|RqIhc)kJb77Q zk5A z9lz}02S$PD;e`(2!O4c!PGz8;$;EDzOeED@h zzJL4obLtd+`Qzx%`I$8UWb?+1_j zrZ|5o&11^d_Gy(h!gdg*__^mToZ09c1Eyo^@@%aE%&H%6#nP1NQ9-FtK(_?D{;>Vq zCKz#X2{_J3=l48h*c(bx^DNVtT`E8%=dhOLJ23F*&wQ$WdHOupQ(+_X#7DtwE_Y{k z(U}~2HZfNgXxw^n6Sv~@2m=G4DVWAQ8>q~SdJGATBi*5xw5qVr0%a8 zTW0VN6jiR9eX;Ak3r>G2_0U%@xNxyeGi~H!#aQama#Rfu3QyBrm5m>;G;Z_@IsJB{ z=az3JgHfVu&Ee)Q8crq4W7yH5?sc~wAm;lY9^+BqKKg^j#m2`Rggil_Rg#RLC`~~g zI2)|+sgje@HqxCi7ScilxrHXgP{mg)I>fx#qCQv5Q@g$!O5sUL%tG=4dU>gFIgHSe zijZ83L1ks*dI9ZroqgR0xCE!375Wr3#ZHv|Uden!9@YxOj*0?!(_|~Ja>!h~d9aUU zf%PRlc!$DTW#UekEXr7bYujRu%RnEamQ`%>ZZCuRi#6j?0#TlMwp2tg^VWlE@5 z2(5N2VJfd6$?S^`9-Bhe3du&U_@JH_5NgCW-QHdJBgc50izYNCyKe`pzH8F}O%}#J zvX9%=bwpE^5z3}JRCe9eF-O-dnG*dl&Kf`A1){9Blj^Lr4 zGCFs!2=pLK*x>avdb7m+Gq#}DZa$jf#;+MbZ5C44f|aDjPGK{#k=+qyHbE^*i^sse z*LulpxMr=GaPEcX%9PtKEn2=n)T=IA?Q+5AsqGvIy2)P0bE3Banvl_0oNt97MZNo{ zT<&olFZICm-}Jj!%LhC%`jj=byiaXYxVL9k)1LFBPdxB8Uw$YZK^G`@H&A^qAELb? zt1dy}S(}Sk=>1<3f3GQ{v6h0+XcG1 z4(2`|^+Sg-Eod4e)T|`ChvvS6lRB|(mf1~?)QA#l`N8 zjxkZ*?ku{c2`htqF5hpML9yXWNC$8|;W&5J;j<9dPp$v8jZ~P&U2z)9*{owp*Nwg^ zF@%QglnE`cEGY$sp&v2B+%q%$GbRf&cJ9b-$5kx7`%@wh6xAHL;}|PYyP1HQ4Be>H z>=<3&ROxLHi4>(_jeGHndny?Wt~D(nE+%LHOGrw1+CIFgTei+5B-b*Rq8l}jmta4; zajNdU=1()p(}qt(k)_qX%-BvW1?a66Iz#+yu38g@r9Gk9V*%isT-^a@HqSzvuQexu zLf(xpxJO+XaZ3be958ZM5lLjQ!aSZSiBZ0hYmwx9tt3>*@nzyeJ+)Ci2t3Z0vE@F$ zlX=d)3yPlF8HH`MwrJEwRIzvwt=wv4GWrTmtW#xBCrj|f_Mslc@)&QSS2Bb9Io4m3 z<K*qUS3TqClicYk8!?0pqWXANU%5@;b!!FuD|m+H3YZ6~{$Xt%J;V20r#YAojv z@Y3-~ClZyuO^g|hWuzgkt5YfnJ(|*&Nlr@m@`-3m>v*W9{!M-SMS*3*K&&ur z2LNM5Wri!F*$@>;a#ZW`t;=`SLEY~kzm1N1fB)m}|N5T*yuH1BUMi6j3wHzf_~`!L z@9*dK*Z1Fk6?*jln%PV$=r#Bj$GD~i2dI*h3EY*60$T4xqZtT ztjdxa>|%*Z)SXabF?PD0V`izXP`KL9(d*K4sR)Sq-iu@HO9RyxrI({NinW#Qxp`d` z5r^AYNrPv1nVwq{EjA`o6X=Op9SJdNJHdd>tWZl zcKYe_HW6V~E#hw(h#zv88d-$<;7{`q&EoAd8*#L+S1=TO6iZIq$|^oaXH(Di<$n9- ze3id%>{g(KtzyxmHAYnlItZ4m~%iQ1D1(A{J{qHh;dS6LirJ8tEkhS zqLhd%?qdQJ`vY3Qg`T~tJm)n95I=g13Ixl9r6Uww;uAtz6mFhM1xo={pT zV`gYh@{hbf?m_`GUo~wiXNOC76sU)geN02b)ot^-VNh%Nf(C}(HEO15*bt`O;WB7i z*v!2VCbYIyV8TBk*4?=cznE$bZ#gcdG}1bBLCr{w2S!2n!Qqa95HAXKyKhnWD8D^o zP#qWZy4w$8SQ`)sDG_t2N^LlScOGFu=f(&0mt0d)A@0;8DL4>BWjs}WB>$U*Dt_3B zvK{r}KM%JRgzNrK=&qYir%P_VuEm6nAy)4QHJd2tBdcxdTLZSKPk3^(9LgfpfvwXYn5%*!8%_`;Olgu8KEmxB5v{uuP(|W1vp}=i zm87iUeSu8?rcRRsXBQb)KRu{}bwHs#iL`cSm~aS$9JAiU)t%jK3?&$`lDb&k_dKPJ zHg>4zN|dqwBE6N|(bR;hoiSTA;Fqb6A`vJPS@U64wbsqZk9D*$!f~t#!iE!2xPDFP zGW!-YB?OF%)#p{}vIANv*zGG9JY=x@U>rg@r3%>)+`ZcAz9f)uzy134_5JOq_mA&? z`uOz&sH@F}K)*w=+})?@Z~y6^FFtY6U!NZz-{G2`lBsQGRItkqADyt$hPuw^Q=C*j z+ZM+ft&*3uxNzkF+q%o;7EcW7vU<9{Og}ri84{Dzjq4R{D}dE)31-GQ^_K3R){F6M zhv}hi!>QPFI#DS(R1lS}CdsL_1If%8#aZGeX}FXgk|vzJ%TLm_#idRcc`al+{bNu0 zz=kX2+gso*+(MT|R?& z&?&yI=$uSK-DHNP;qcp1WZ!W=E3{$@x!NEZWHtaV1oZm}T+ZPvLUf`6a zepl{fppD&BjwPhRPI5JycP3ufYV39FKo^fJ&iMo9xr#->gC?>)x&3>gbUs%foY1ro z0yulT*m{W}hmE`jQ_RCz^o{XdJ0iB=XaTQ8bS0Ifs98AC=||U7!cu~5GiEzTyL;Y? zw#@4xx^mwy-{y)&`a_@vRvM-eyG+$c<3bVNR*^tma&0xB{4L=c0~pC!3{X{rWh6t7V4de5RC)$~gFI(E&{e+CEFEp8RvtXMxd9hy1FEmXG z@C`L>TR|h&Mo8xgJ2Bx*xxNe*gBn-~Uqm^%sBh_vh{B?oa5d$Jg&!e>i`< zU*D?m@$FBaAK#V`nQTF%irV6GQT15RHwn;?gWO4SwOqeY%r@1E7sHyE$^4Sy{ zn3<;9%CsvL*6C;zf&C%0Cj8dk4$bcdzn4Q(`cj6-#qztLCcU)2&c^ha_1Imvl>@`3 zq3%MX`DD4m7Llj4( zRdYv+gaPiImpxD>y8i~9#j797n4*7gFuG5~+EgGH~3M`Qdr5^=eyr`Zux^d@&sfZh%re#7GLR?{dBzv$; zN+XfB_|K{_VarB+ghRlXW=D^Yv7HC5?Nx}Ta#)_8rz4O7ja&%sAeE1*g>W0Yd(;_;JXVTq2+7I_uXPnQILcu1a>J` zt&s+vRdkAyOcGM6U}G0?pG;AjT^l%o7BDxqk-3UJ^U$))p5VxOR|Fjg9I<8dOf%2t z?uy|h4-Of%2Sb9rW)60t&TVcTA0!qNp*+NLQs)X%>IYq3M>YRd74(VJq{TdL zQz?@px=?JMD-UNV=a5<2$rGrVjw@YvPXR_2FhW;ILhhVnSO`QsLgCVmZ^O(}hV}WJ z6yr5~F@HXR> z&wu#qzx~s{{nwv=e*5_N_1=#$QFVExvedSM%<0hUU#ZABIhi>7dKS59xs-f zP?9dRIIcj~$70{|k=+d~G_6f#Zh3-by?mtnKOw@ADfrF`SotGmS~ObaE8!z*e<5D2 zX;vYz0<%^64n0V)sqZH&6{CPB2<5(;bh;N}lDE;)Zl%_A33}KaWIOuw5l-UER1jo( zJZo1zh6h?ZAm_T(#T8x{E;wmr$z)p|LL7h^W$dh4E`JE2>XlMni>zcs4zy^KH5SgM zBGh1Gtkw|qD?*WRItCoSOqxCvm`4`x z7n3^0Equ-2cBLz?epSa1DB)bTSo-gC&CH>ZaMzzj16$)ial;Scs_O(_O}5d?v|f6H zUfo5-6y#q~Kds?Omwj6gYL*FoqYEL_TE^ekm&YAC?z#HxQCc2bQYM=0xPJH%_6x1! zuXot4J~b8?9a;IDN8xDcPNR>rHvsB z&0!I3o;XdaTliVT5ev~A>~K--IcnNNZ+q)57YPz_>>%c-3N}mhS@94GYK7H9IjzA` z_iL{~X--mRL6bJq9`^Po&{SMXqf?-#1caPjb}CqlizYnC?uB&{^2!~G&}V|m%rTa? z^+jTp@{;4bR)A!hZ2QS{YTu04j99bPV%9Py`|*u%$;F~%%f*B#ZbCwN(DW(TGMEXR=zCYWwU2efMwj_cllzmoMxA`>?bMsngFHUru#r$+^ib6?u<~5a#J;PKek%emG z4epz+s6{}&6n#j^;WiFfyV4$M)&ug||EQ0w^w?ImR|^BnK~o;pDg$Kcz@Q%&6kfMN zRj=w%ii~^nXPF|PJN!3myZMeJ*;$n}K2g>)%Q#h(rj3thW0v2e-5Y&HBf?;&`!-GG zLY=bI*-1wU%h(ld2mw3jm5=3}Y8zKoi47G<=@@z;0VNk9;5MT{V8R~Xwf>lLwVHdig`p8DIXRobm?mHEGcHeiSx$=W>zU*0Z6s@wpVresJ z46$8CM( zJvC&(j4XRwMiTvAFs3_Psz1D58n?F?E&Xh{cX+r~P0cfVvk&Y_e zy>i+-c=+}#*0H1a;$D;rU1GUX?&<}hXn_uFOw8Jq05JN*%h*@T9aB=4(gSK!o3JMN zT~k4M{ZmZ`H(3%A3Oat~*eunbRj6L|%hX3ZkajZh+o2|mTztY_33*Pj=GG+3a4(0J zyoN^i^_13#f>?+UT9GOV5=wFiKpoa%j7pRDwrt1B?w&z5fSauDXzkhWGqHhFe1r24 z>qx*Kq7#iQxP`MZt5=Rt-eb7wWl-1b2(eT)>-LNoCZRl4r@B8L`K9&RAzr#^Il z>`-Ebl55<-Ufgy2-hy^J2;dW8c4CU@CZ= zbWLZS*WBoJR~_?Uxo&Np7}9q0u~*Aw5LrT@tq?J6Q#&b{3W5;8Oc6F-q7-6d{az|e z`4YR&4w-K2S-!Eu%)l&s+be4FQ?XaXIbU9lUbymvNY|Q9$qw_*l@mKbujsl=scjZQ zcnEym(irF=JtqD-?w#sD^MS;LLKUv>(pwZ{K4-*fbcvI)A-w1#pPLoExiEAo3Rbsh zyWt$^rEya^yVxL$E$G#y14}tS;m~U)W>odXNan;sa5*;d5L$_Y#}KfQ9{99eby(y7{B zo?_Cp`6zx+CRzJA`Kh)<{)INtO+QOB42@5rkobl?1Mr2MJD`ztl{Z$Vt4*TbIqV3j9o*qSRC0)eJvnWyW{OLW})5Abx8i zmJZ%1>E$(xh+U3!Y*tQ|o5T>Plyu9yMIE@|1gnbVpfU zf&hC-fi@xz`Cbpzq=~4t`%BOnS#(S44$$pG#!EUGw7Uppvz5DNnqP{td+TnJR-B8An80ObK)pdf)I0ZG9>lYH@t!imNf@v!?; zU2yJ(t5h6ClH4;(iUSRL0AWC$zX?D$S9om0TXvQysuEVAerXV+aE&xYg+Ho7Mb$dpLa@%s+0SluNjX)%baccCo-k;c zl)6RwTyea|TTEW?VcW_{*K2^2P|FS#c~=$YttF~gEc*5QWNu+ymum2Nw;J(dEz4_K z$8S^3V1e7O=uH$bT?P(_!8e=vkp*%6WBiF4+wGaj6A_|re$%3J#|5MV3~4RxPzcB8 zx_)m*%1UM<<0-`8m=tgU$r;#h$sAIkTE%|4RrIW6Y$GcoX|r-3*1nvbP@r);qAV&N zwzAb9Pzy(8!nTh}*44O#^T2znH;;|P?j~gTi{ifOl8`cm75s_UB+Ba8jT3V?n-ooR2T3(f@ zl6>^X^`r#iS(pYxBM&{bBWCvk8FK!N=O3d`MRjIv6NN{4TWzCDH!HbhRNl};YohxW zJS&m*z>)5hCXy+|aeS~s71>~$=+Sv>g=6YUh_fFG8^KMK6#F{R=&Jeh^W$3`{PfG) zz2Exnmy)#_^)6=v!23^s{QUmCaU1vBZ+{vb>OnnLHdNQFYPgT2_IZ?q_c*=GxD+jN z;Uj&@B_W57yL60%?a0Cmm}Y%sEmCG_A#_43MYz`fE2tI`Wb|(Fk+F!8+G2nlt|Gw} zB|gFy5DpwtE^}&gx`?|4e^smLwMWFdS2DN_mk6cHu2zk(qb+&e#8c4R?Nlgn7f1mLL!%okVf-fSy0ry7b6yIq4u zW}Xn8L;A)0DS7yM)^Xjf8(K7T)A+MzNl0c8x&9;cb~tj3bZt>j0$plZG_o?Zu4%@Y zrDj_t;4NoIVKAz|xr;rMD)nqKr`>$6Bul}kU{B0r#|Q{-2Hb-W#=;tqaw*$s-xZz5 zURV;$$)sZX#jsfi8TY#7q^pMUtn4zbMwK3pFaHii6?SK8fue##3av7PyI-)kc9g(9 zb2y1omd&Gtdo89cj2f0{NBEfNtcp9vvDU%Oc@z6;qGsLg$vY^Kj3gS+`=MgaPli*p zr}I{V80++MdI*FRYJuN+auQbm5}}^72{vJPPf~c{R!&{AiFBaA6?!0+PI#=0{ezz(qnksU<#j$ptvN zV2Jl*4FI6#60tLG6=$T&1rk~Hxp_+L!Az~fq|mUAB;{-b+6UMk@gyyjQHmUrKmDw@ zp!HsY*VbS8Yq4%fz3jBAGcSYR5CB>amoxSarxV)4Cg%+0!NyxWw-|=e=BSCeiRPqV zhS<_J&Vbgw%F4>#{R1WnfoqApMXqvj#c?YEKU@#BQ&q)BCk^8;OvW>%eil0KjBTtA zDOYogavik^6#RlsPnRd-T^a!EYuzK++| zIzx|H>oO%Cpl94Ju6!pv)l?mfJ0(GnQ1MDS(=}WNTiv zPT7QWl2-;OX{Yp9iPb3b&kI`cH{REH6dD@Gk)C&l?6LG@Hv~%+O)= zfyk0%YF3ngARLvNos%a=oIT8vd6a38KPPl~jIl05yXH7o zd>sGcyjpz;3^Ed>iY`%s$2Y>Rf>UM=Anmjmp&sK>`;`dFNGVCg2DLDbWm=$$m6gh& zBtTyRaQ-ho6U%EwdOW-cZ>#byxKRZvulRz{fqZR5h(7a8$1I)l6bx34m+fRa%YI_{b8<5hj!{ zi~|{w6s2fvE15B6Wi{6p=3o~eC~u@bV>ZG<8e!xU#2zQWFbX^ut%qmZa%`oH4DcCv zjoASyUQ~`K5xB%grJpMx8jHl4IRy3PcO!RY!%{`x6Z9%n^(;pD|ATA>v?xmV;|bjL z2une6;CZBYN#@%0nO+LCD(Z!i1U}g~g@uXVLoKl~#;H2Xh0~S;QC(gMMfeWs(TT1I zT+h}VkBU5$y1H}v7_XHc#F^;$weKb$yKh`WM)_QZg_yE|ou)NcQK7%x zap2)!xoiW5Pzt9ej&o_jRDaL;l5{o7nh2ZTfeN*8G)%5hXfrBA&sFf|LreC}n`~=_ zibauysyc@|N)FbPca;p_us>&W{Bm(=Lg2t_5vHbz?ftQHOjuOW<@t{Zxzi7U5;lF3 zfs+#)YQ#oA(koHkIhf;f%;MR0JCp9HkR;|1beGg(zs6hn2w z&4p(7P}*;(W+)3)n6Z-naAq`}=vjalbykKEH>)pn|Bl zxS3_yant<*y0FkQ*x4e9AnIuq64jc+AlXFB;< zy&G?3lnuB4gl=1yrtr8r1+lpG8^ z$3?1zxW9#p((Q8-;PybGjD1kGYe-7ji#4G^sXC_t?7X72GKFGfli?~4-pQ=8XKlwo z8^idbQc=ZC1QETp0L28Wc7{seU6;-RFK|*Jl4fj5@&)Qvp6t~@i@9>Q6;z6Po3wQ$ z84QXqT4bN6n3o*@FM_q1I_P48?p9ArshYn`e_PdJ6NMew-Yg){faWmlOHN*E>EeF_ zS-)IgW{e#=QiB7J9RX?+y&>&I+ESQ{d))tGxxpe78ZL)sM=O%TrA&;zVRBC3qmH$< zA1G@>r+tB*HNF-!5<$-9+4mqBWECd~C4DPM2q$I(>jOC*V(6BaNyG8Zu&YeHOiD_j zG+UqRqP~Pf2B!R_(Vc?TrueJdh*!!sok0&pHyR#&&{s<}G)uE9qXRxtqJdLK57ST# z)CJlyhsq=Nyp%Mm^1fC_FUWrGq_p;dohv$ zubGI;UBpcAqQtafX=T}k`&!eL#V3|nNsa1o7}z!-+*1aU{cR?PfIhH1*-6>d?K;%U zR3+VI(!mNa7&+x=83VUxI+`GihNa z`T6~R^}YD|I`=CjqIWb`VBX$;2b}YE3-$T&t=+1o9fN7r%F%kzxqq6$VxF5%l}jfM z=S_y)stXDyrKG3!Vf2?sk2;ybX*}uTBwck@)SA2d7-W9oXThY=dfU4Mgov?LXY>FP zrvVMm3CpjcP#{ATHLKdEo?K97TN8!%iPE`lUVwJ1L%S}g5CM{o^xh2H&xutds)+D= zXXD3z%?K0+|n zRnW=k=Sg2{6m8qGGjr&f#gM5e+NDa}t*swhWGB@qk7AuQLlXxAi&D-h)5)-a#;%7H zEAd-~sI>&~%E4}}?P!Tc1U0SM#RK)Wl%zmX!x%G>xUL%VU_a;aOYH0!b?5r)Roy#RoA(d>TTY+ijyd8I1>p;)jdlCT)yQPGWfJX?nhkMM=O~NNcjNrAOxm^1SX%(=CVlfrSx zq%dJ|)Ap64*eQLujw~yCYb$0bjDf;e-ImLKSvykr*jmir_9J~Q)Uo|QUyqAcZ1%0< zdzjA2Zq?RefI=UI1rQ~yA!{Lt*PoQMVIU}G)+*v?=X=LWIkse2r>A1-Nr*x6CTVi4 zN`@L3UvS{bPL9r{JjnuA0x#Z`MwKy?o70+Un}h&o+dbhr+DeK&Ky}u3$RT%G#;{48 zLhq-Ir`%-@ZeP9@_FOTwGFay)`7U zlEQ$<>rQ>XoLgX@5zyiWd$8>qnbc}v%F>c_o#}C-SA-fTikU4P)YbX1@(Eq`i-;AA zbp@J$?KaJoh8-hBu>p^}@*GY=m%v)CL8>b5)MLZi<^zBxUgz^CqX_>p5~HJ=#olJo zowj3e6HNiLgNrt-lNwQOODiIN7~_>OO|Z+$*E{h`ZiKe!#yQ;zq=eOig1^1= z2hS~4d(P0cFIt^J!=!Q!7t~XxrVak~x%6LjDR# zb3|Og0Y0e1m#3y}L0t@`h;ukKimwjod1yb)-l$Sx&XrJIV-Z2-R!i|YBH~s3dIzFn z9d*&?hHLT>hi_66K}lfKN}QjzU?V)i&{aNK3X|^LA8Ky(Fe#@q2Ah%w8o>Sb>#wN3 z_v`EP)cap>v{moZ*4x|rKm5o4{=A*)&&Jos_usrIq#h7;y>hJQI`qT}T#swGms#w! zRM*nL3FB@R$a@WmGd_z#8Nqw_IUGqkFB!lpj(wvGu?A5(Y}kOrfsmFH@ftMMn_6=R zpaeb>ez}6hV0KW-PTh3B*TpF&RE664MRBF83IxX`t0fVvtRIPa+FpjU<)#d|Oym-q z`fYCP^a0I>M=k@$LY^(B!zFi^^IRAsf})o=?ZFz9FA8Bsa-_1L5eegimks278SMEL zybYUuEwHG{9^+MlD(PIFhpO1< zt|z2(02HddKU7P+FjRj@3mwJVQJ@G~I@f7?uwmqzx_nN>GQMm(T9pPu13H>Ot5bd3 zk0kZ=OKU$I=Hr??v=n|d?PR>3YI?54-SsdpP8%5jGYOcwkteuEs-gJ~HTdd`Y1D$$RFg5!n z$<{o{e6}_iwIxwUJpc*j;PH_^h}Ft~kR$l4sAZyL5s%He5)P*{?}$huXf->YsT7K3 zr_88`_ZfdxX^j}JkEX5D=01hV4)-`$XN09rbYQtw4#J!Mq?$D%_{HOd`d07@rUrz zn)$n9&3;R#hMY)po%d_NT^}5mweK2Is7}>uA#)j-!=e(=7N^l#S6A;+=`-?A>>Bec zy2LyshJRGF35@KsljT;&)@w3bL5g)1hQrQc=#D^bBg8gb3Ce*1Ck-LT;$?iUxA_@D z!}W_uOkW$N)S7%+T?>j`KK+@s_^ykEBf=`bmO1?+yCSL`~UI3-uqQmr_uNJ*Voq{|K?w= zDit5!ewBgSk)zwqFx}LDWx+PpC8%7_8#``&1ZkHPNOk6e5PFi+;E2C~(iJG)_pIvq$Synk)R8FSBKSNoi(ZdYv?!XYcV+ z=$OaJ*3)&D2VMQVA}|r)XBwLWQsTa zkC2-8yDA!EPn*!D9{)`hGJy`u1<_*PHDBd?5U|S%&-PiY%<_Y5#}PTjRTuH3J zEX3S^9MqR@Ww9o?ia177hplR|8R^E;o4qML@PlMfJl{+DXt89csQATjmmf#hyGWN-=})f0z|>DzmYZYRA+Ez*Bz=S9v%W$I-X5Y%F)GSZ5h z2fW%LRGXRP086=2AtudL$Wr(?gra5C=8CLvRv5#M8ACE&3f+23 ze7jZ}CN$AGfw#g1sMUUDy@O1JmY>6gq93WJlyB4jsw^NVN;PeF7IU9^-gD(}^93B7 z7Lgf)S|;-=8Ll-^_CkCHMa@+oLQe%Nt31?m?flw zOL{MJH=2yWuo-v_eMP7<&is3OK^G!LCX#tQ?>rMY0mqQKf9CoO8L|-O;kNdybZJ|{ zqSXhrKO`SxX{9SL3j_1EXNU?r!M}82D_LKKo;q>0`qYXyUs!3a#VR7d5)KveY=3^e zw;#>yZ79pX<;cE%i&!k7Uogp0#+G#yT`kjulkD*! zEC{I6&nwI9&=u+@Nw~gn?Np7u`KmQR`Rp)(rQs<|i|L|A+{&u^7`}O(h{3%Q;rLRyMQ;2MqqwwfVYi_WM zbtUzJl~GDp409^-ZN>%)r=G1p${)VpEd<;nyDEce$t_4=MGv5KUkb7A3dzcC6bQW% zxHUr`s@2jGtgjK#aqo|xbwmNS*pO* zV14efqyzMwO);G=B}y_~CDU`no&+!4SFKykk_k-d1Six>`aw+{eoM(wQpz(+(iK+R zEnO~~n3^9Et*oD)@=mZs+0NUmpBXZ8M6C}yr_IGITNPpk2Q8Cc>pyKslfR`?YaQQ4 z0nfDHU7^&_eHU0`w&Azu=S%^>aI`Zw1IkOi$3=28t31r$Au={saXOt*$O3`1?6nEj zRN&4jiRex}stsSb-Si5{Jtif39ZCa3$-A1#P=noOkxnwbOuLtt>!j<2&{S#=N}>~A zXtH9T?G8(9ExO9=C8Yp}5MF}x=^FPz1~TkS+~a~dVFzyc`38v>o$m~HDX|`Q_Y30^ zN{-|$s+IDUJ&X;+!He!k=+4Y#%K>@ zj`5I2a)IsrB$)6v=LMoc+u8-A2gAoh=C82p>L~%g2W9(@HA@uG`6n655$X-A3CBPC z^TJw+o{bQ!g!`~lJK}j7RpLrf+%BlhTW21e-c@xPm$f>zs5kvazM}x#c^>hT4)|W& z^TTk~uxaJTb_W(M*WdPF;zCKzd#{x0Jnjgp40)-bhiTplu8YjG2trOXdg(B0H=mo{cTYHs_7L$C-E0=YODv3XO8i2M*>`<}?6`ASmfu;@9>DuOzGT1**!A*q2ffda0oBn5UbjXe`*#T4+8tp;tDUaS1d_8>_Ebl7txlCkaa9+R zZTWjufv;{NV#XCW@Y{LB39N3Oa1+*Avm*m8@`IgSna7bu@UEbg|5?Rgce!|^cH_C7 zo|7CzweeGCYErBl2*;ENyEn%O5Dr7mpI7T*vStZ3SW*smWf2Ni70$}n3(Q0@2BW7R zvL`>s(|R^o)vPNL9xLP9R57Aj+U%Mt9o-l9BadlE{vwG)N$rmD%8E#bgy-hXJzCN@ z5z-cqZ{1D8>Po$k#j zk2FQslRbnu*EJ>;UP;@dLtZN`P}Ib%!NKB9u^u0VvXPbi&S`UQdi(&l1&dT}|-T z${DYF{U|a^^VAfU&u5HGxP2wq)E$LcK>|Cp8TPyIf^dzhOVm7upw#<9@~!+<>-W_@ zse5_(C~j?*&Vpgc;L-o+I_w(8g4!A|b;i&B@sIGF+)C;lrvj=O-~}=&cSg4_(}d z8KclVsbs?F2oP2P+JXD&HvX^^0G`I5<0Na2kqasHf;9PJd0ohqsok}eyxfUehT6eD zP?_-S##xIXcp4+}S6*FeN-(y^d*NHk#oG-Q!R#w#g(U$v^9l}IWgy>jm%4b_5jzsp z$x5Z)K#36^7qo6!hO9KDs9NVkDR#anPdt5)vcg6}w97LT^UI^^|77zVrU`;l%am4f z^G+#R%RQ<`+z@W0KX;W`%+67`nwB!FkqI`9y+~BSrF@2@-6AZ0VVz6BFP$n=7uG^Y zdby$w>T24TMsZV`WAQ6Jtl?DO?O>t$%=4>xyU{eFkj7H596t$1No+5TjFA-%evHO4 z>4FolW#zNpJR=+*NxKYw4!8n&0@~kVJl$KP8s=d z0L#|)i1E0>XH(IV!3w{)4?D-0uL3Q7A><$kTICG0m`&}xlt%P06!~;B^Uj7Lp>>px z4Ezn`#?#rGk!%HRH!HonAw6{GEBU;%+dprLiepuHYGr{J1`|Zfa}uY=hZ--rqd4T` zE5rNvuOz5$=&|HjuvWfxIEw-vyZPEnrB%>tUjb zoPQBpjjBTblLD}m;^vga4qIMs#^X~J3d(%*L8|5N60NL$9mO9 zH;gFQ+{{Ei_FdFK!L=(PN27K#Yo@Lo#x3;F;-NCG(khe+24jMBr~Q+BpwE0Su3+{Q zBT5*d=O|qI zHF7+s8IlA|T@>;M@{51kDXNuXS7fF97CYFJsf8_GY>kV?nKSsSa<|Vb`P9yBg-Dg9 zx)X_g2Y63=2}+tQBvh}stDAv3Sh(HQeO%g5G;JFx{VqqEYpHju`%wMP=ua(GJ0rfq ztvg418m?ZdtmMNb3fw{wDso}m5`8(~tXUwx1u$uS;oj&7$&FDHauXM;hs?OSWX-elhM4OuZ2Uj&t9;pl|WVSO`^$!YV5CH1bfNL-a8{S-D^?27hAfPl?N|stw&^EtW z(DSlMcX|oIWM5aR%0PG6!eJ>|&bf%S;jC6k?-bW$CP`0IJTk{g*~CHE-K<(@H9$TR z5%Ut=UNtP8?ipCfS8-dZ5Nk?D6D|t`>m(`$In4CR+H`=49f%!-0!EMX5FSVRGE&ba zN`l5dCZ(<-!)bQlwNtAEr|B|zm48sj@E11?MlN5ZCa%;x3NY1H5w0hNQu#B-lRQ&-9q$d}Wq!0rPbDWt-9f&;ag#F9Nr>Z)0{9(1! zp}m}#{0%b_0((+ZS%H^CR#}Chp?yXxWZ?8bS5n_NXWx<0=x(oVN**Yp9~|3QiKGhi zz$Ra^4)rB3H>0Qo%Ls>}Hb_mIV>~t>tB1f^+cwgY@YF9lCkNT9VqmL9hEiBj{tY7; zat+lSY?{S8)z=RZ5rhgZqMJN*6(_jR!%=#qrf0cD#&O@uFlGsR2e zDZeEzrKfJ0Ng=6(sSnIC;6d@`@BZg`b=LbF@>l=iU+{MNd*i)7K7NCktK@fy ztyF(snW%-BZ6Ii&NK=>@cpKB1i7D@iV+14%Zo_vR(=tEN%H)?FCV{b{+GN{y*m6y~ zziS-jrfPM{SyXhNh4xsWl^D9QT)|;@aH>No5R#&jlax!yv2FyllS*q1r(&!U+~HxV zt<_mi)I}SS913P=;Thrx<7)(mPn9j(`NsEkP znsZ}o?Ykqb+7B#Ur3AtJJ*=Q5izOy#0O_4^R>|O|8_Nuzd=7O6BNTP2uF~RMnok_K zT?Z)L#$ynPdCIIH3b2o`xWBZY#ZlHxH*(L&=JS~Q=gg~>L7O4mJq)?5Ed9odU zkF=sNSBgY8Unb%Hxy@yKO>D+55wPwL@wcLB(!=H18kAXJ^+(25P9SYpis2BQ+f=5n7GkuhhE_*bVpn=K*cOPzy zM+i^*MbZaTT=IEECFY2MImE2Lhhn8n5qCHG4xoO6k(h{QO zLcGo(VMu-Y2-0WncwnrXw>B5LFJHP5Ehpi%Rx-kzFIBvBC+L9k`U@2DeSLmx;Wd|=_i>!EI~|aTE(evuGQ?Zah%08EZqzODqpzRLz58Rhm1Z$>f)P@= zVz-MqGMiej}FRn31V$ z!68mNm+8U7R}*JMOz!#U1uqa)4oW^9J9?6Y{rDRIl1pnN{$!@tl`hpt^I9Tw_g0rAnx=d!;R zKn<1!B|xQt=I9)t-CbuMWw??mDmSxQtL{Ls`j|b5xsUY+pRJmSlONy6TiPW07>>ph zV7XJ#Y&OVt&~ln%bM?eo{M33Zj{BWhlTx)x^5qsX@)e_0&nB@Y8!(?_S#6WH_78+# zEWONDAT-)LjiLicA*w{{(te@p1I8-p%n8ce2K%n<--7*e4Tof)IFYFxC6-C+7S1Jo1c`OO ztrU_%<Xhq|spbuIPK%Q<&-tcXHZy4~5#A?Xj0Kt(}Hfh*^d z{dj@7gexX`im=ir(Lw1ewORhyffg`LSo5n^2APSa($Of<5daK{PDBP-OjO?}2%9HqUg+ zI|AE$?6lh5Uhz<3>;0G5FdJ(1OSh)G()6u*fQH)9Y_<$lpDv?FRUbs=b9{4U$$$BH z4RZ%cLpdIqW^~k!>Jc$|N9Lout6K~DI-`Qt?!3m3m-D)$=TAv}^A`awJaYzR`K#DQ z*}6__E%?jo@~h5K%3jlyl~KZ-NpNHJs&4m~np*)PL)&tNy&JmH&xal4^`@2V$%_Bt zG5J#M(DOmw#u=bVIbAQ+WGy3HKe}lMTLGp6PK6IU3_SSORd&wTogvOkP3P%$4S2;$ zfLu?#Gw4A(R4!}+QZUM?Z9_7z*&SFm;_oE|hCLk6K-c*CHsWp)CereppCt%~zey<7`Is>RaH)Z|CO&jl6Yvc1Wy=uRUheiXmWY}<5eWSaQ|q`h4g7bih*wYfA*c3a{| za!^c8i8kTmU?(BVJ>dqk89P&^`a%Koz=%g9>a@Jy+>+u%vlgOTvq+i5OB~9_O)Rg8 z3I)-!p?l4d!<%DD@*_Gt!a(opr#%fL3(vzB1fNY-QdM?}~Iy5~CrzyjiE! z@%GZR<{fmI=R(zdcPK)kPJV`*pstzXg1T6ojK{noI}HnRO2!$cSQ_ZotBew6k4(dl zLgxBgBcumpYn=)#VyxuJ#qV2>EA0s$w4kO{I^J;HS97@jIaX133e7zWjL8s@%t=L%CO;g|8zbIKp z&sbfLrDhLW={SWwukQI5`ws$MRG|FuV0iVf0$7ucDq`wTNP98-V;b6-StLA-tJe36 z;URL#oG;`g!@*QCP}F0hp(zcRy}K@F-Ud$+_|V#@;Zi7KBEV$wn71Yo`F z_G1t<^n~>3p9_Pzt_^2#;^YP?UTJ=nd93;#H&Ikt@~_X?j9CkPyiveKwI%<(w+=o9?LOxm#G=AM?ycxpNr=h$#NX$I_Lx6A61W z9Pl*h?xEea_F}z^8ZMWVy;EC*dOn|40T%(x>~>grxp}$Nh5%67fxnz?+C8DaAYf%V zU0nTNuZF|qI;UX5@(3D)FDZpvWYK~s*B#lZMjtK((ReTg93A50ds<2!QPx9n{IkcZvk#jqiRfH_=X@#>OQdt>|-I)bF@xZ=<%qycZ zPeJo-UM9m#v&&R-eCLnd2ct|)equqA_A;Y$jB;MyJ3EM+ZU zmpMEg1fZpL4~NRhb#ZyuX{CX}@te_$#bxCR4@yg~4;C%=&c3PDVE|pc$!VGC$WeCqP4z^>0_yhl8U>W} zm_p%LP{E!|5jmu|qzfh6;@k;5F6=6dWwb4nm8VK>Al3AzS_76By?lw3@& zStoS&7yKrHwShlWF|LG%~1a zUR8s|Y^fSoir~rrZEP#V7O1NXF`Ip{w=Krg8^E) zG)a@YMI@qFS%Ria+m5n&Fk4~?Mw~~om@88R|-e^UHc+ z$P4@Vr|U>qfz}Q2l>G#SsJz@QV3)Ayg!qIUHbAursBIF)#oD(}?n#`kpk6IGpv9e` z*@q+|+P*$Ne){PTRsDy*{+sjmGy3Ztzy;pk|9I~OaPQ~6UuLdM;Z}8!>GaytC;E*aL>yR0TW6Vm$kPkz_(nsmUi_< zRq+Ot#aGElB%*^vPRcnRvMjOkip-QI(vD51@hjlfWyywcT$?!7V&XI?Gj3}K)~?mL zmx{DvxrBgFirE^Gp)96SWUobHc|X^+Gg4Q1!HoawBrYS<0Lx8FryNghne|iR*)BsodQ%f2R^J_zDu{bgxOxEPP zdF4cGS;$J>0%}|+ z8Oc0s)_vp!r;&~*Z190w;Q_1#5_N9P5|}kPv#@Jcg)wSVovICg8>Jp9(0XbDGdY2^ zPKLA;N^-JfmI&|g!>3*n`}qs{)LnWVYG{c8SsWK{b&j?&-nujTdJu#dPYGVOEnU^| zW_Z*rlzAIP2_J3LUg4spH_Tcou}Lc|){u$Y36~vR`rT2uYP$n1ubnrB$ec~&jASKc zFNWaWuqyCY(ZyncEyp{i;>W|lm z6+rDr4`{xn35^W7WsAn;l2%+c((H;S)ql0Gdo^<|d$u%T7Y)UU?{PGvTd-vx%fZzY}$KU_$ zKYaW6DBQ2F&#(J+-pV#F1wT7a;cPu!)?F?LO0gZ*Bix2El;?@dMEP|$rbHCB=x)7` zw}c87{$7=Y&!pwmJz6e4k3g`C)rN9MlHx*$DOw=V;0Ah21Xq5E!dd2Pk}AbOtmRZU zBQ#amV4)-OCa@koa;zl4fS6GpH}14UlTLR=LFWrg_J}ZhN9jgwpuF$pK_Y71+ND4^ z?J8b~n%t5esHx}+WC%@YGrI7$BTZ}@ z5vcY9&qrv(X5aAA7z&CHiTnU-K$O4y6K^|q$ae+ru0c2l8n#C!KG~Or8YqS{6Gq#b zb&mTssgV5_09H^m{73^<0mu&ut$iRkLr}B;zPA>k+1?UR-j$E%*W)3LFZRv@25(ZJ zZjb{XF0#fo3#svw0uk$yz&!J>45iJU4NZ2YR53vgg-P?Xl-FR+b3M&f>L+$mK+sUT ztKNL=MOQg<7Zxf*lIM27X?6s4M~VAz5PPby2w>V(VybO$epq# z0k)CgiOOO>FhY%3Wh-?gcA=O`wN0z?r3#)}$MgCeQK@I5Awl26QVm#g@Xi>7cMJY}YkCc0W9dq-OXo z{X*5;fNH(eBB_q>*pVfO63pf^5nYrF5-S=hd7ggHq=mrrwujz`0&=i~>53}&zwv;z zk;$Voo%8HhILalBq4KmD*@D5BR+kp)bo`Zc_B6g~>Rw~;6ZV+9 z^mRM5gI7gEVK2dM=gDzOT+_hqTWH{PdTp54wv0F5hP_<7@;(F7mnmWMD!P?mseSOPJ=|)A8A?S|#H;_)FCsM$ZH)Up+j|;KAYz zW-(s0IavNA?K6iJDW8AyWMHPt@+E7}zOhw^Py~pqbEJ=vXLg9S!qBffo9A5{c|+}J z$E}h{Cwyqe4{zvXg_u91&jqxsP*0z)$156F zcHtv`#w4fc4MD0!c51)#dFQtlG;RsHboa`-Op0EC(h7G@1k}nV|qseV4z8+pJ4_;8zqob-D_d4TLE-M{SPD;+8 zgusxTo-*Y;qYAXK)bg8*TD^w1%#JGby|^z6xg2`4vWu23IOPDPRU8=Q6$aN z70A$TAyHTi(kUiVm6|5Z5!@)3nFtU;r7CT|Mm;-!SCl$^m6SFau;pe{)#<*Ez0CkH z1*ypZ%0yTO0{ULYP2;2a(bUn$os4C+(34aHcPAF3F_U4n-^1VT zgWmQjB!bYo3|wPm_u2Mrry>2KV@$>j!nMubYa0GbP5q2f9Ly(VEHCdaLvDD zNw0W#r#~xx(N~6<_FAvT1pM|Gc9as{(+w$l;?6eIYw=2JAI$#4p2cQYP%D_JorvRQ zhi)&}LprTz$I8oY0-M^r($o`9G}8qqukgc4?vhsp^w-Dt?*97vy7=ks?RVY%-e}bO zm=wVM`s_VkUqw1x*+Co=5ouUP_%~GTa3V58U9obl%r8LC2@c(^Hfy5Q=pZ(*$O3E9>GIVevkR&9rgNIHc&CI3H;t%$o=AaH8#t_4--WZicH{9o%ovO}SaNPb`T2gifJ_&V zm)*qFtYy4)$%Mm!)ByJetTw4TZAK-_F^_81v_V*4gSm{bfz(;8KC&nqrYZP0b_ z+O`FI<#~6~x=Sp6M?C>3mpta?J}9iUod9j4aC(vrTq6^DMJ3y| z$y=_1DXyq4ynrt_8GCsn>q~Hxf}FfC^Cgpq9lDuc0BnEwJbqBFAmtFceV?Bc)Pr5^ z!6ZtG)iN~wyEmtl0>0`3O3RpL|N)vFCwpP&D~cfRgU7i$A(1c&id3j^KmP9t5~qY$~IrZ2Kih< z%biKsKZTIlV<&oXz8bV+#0=GGQLt|!jwjcQITaZvJ$H1*+C2}tw_DYQ zv~QWNBrQ-yAN|_m*%g^j!Vk3cpnH8z6y1HHYhk#QFXh3htH(N;NGA;jkK}ze(#_`- zn4B%ShCDb2-HMqjs8aU$fjw$AHz?NY)_4Su3CDeA3#I z4M3mtVQIXbml87gV%G!9_yy}#5(XYzttNprbzqg#30?Lmgb_6v%9`)W){jdN^15_M ztp`FK}s;j>4XZP3J+uPeu zKfS#l0Pl_d`26ZbHL^FQSjjrpgN}6AXQ2-@3_p+src`z{mxVqyQWAmEfK&7msve}q? znQGb1vzBz+FqQ9C2iDY=SJgJc@;fa{2|Xz#WICO{%SxKHhbF*M@`RSxW^FXS{zfl- z=rFPgeKMa#XUl6Vf;9{*MstS&zMtEO;MJ8r$2Up?RjF7d!Ll}4eq4$jaHuGupwML$ z^<#@|x(S1Tote8yb5(Vx^e(UogRI?A;QTF(8{&*N5{rh16!BpR8w$Wgf|3t0O@=^ zAQIWq5)Gy@Nks9Mt9+6XIpKxnCW&6#&3aB&V5USnbI}6fX{@me?#6@xuPU=b#PzkZ zQ(8+QVqIwiaBK=4@BwhbN?L^KH=KJ46|(0zXa=fMf>`H@%5Lw9VUkfO!YO|9UfC$P zm+#Ht(gNSS#5O%PjUc=YS*KLd(D-WQWm!lQf-d)>onGN6fLl$Ue;9@?qc=>(rB1?Y zyrXBzvnl5j#UQ8EC5x0nN$jKZzFnCmv81bO)Mg3K>N07Xk(BM3^huE?Yr&C7fn>0v z8)D!G3Bd5;X65y=AuS&;`WO2-)i`8UymXcn1^>86&gk;9F7XgNW2pmo70i0BFs~s( zB#5vbxp^n<8@Fpl$K+VbmaN*19qpWl1tvwv2bIf>CZRJTej1E+ZN$u+bMXRCQvWR4 zoFItl6@87yzC%ZKmDa3~Ug)OU*@-^*>9ATS@6T=sZEe=LS0!lt^7;My{pz>(_rCY* z>kFuN;=E9&aq-EQvdZhqVTA&U@2Ii{wU}8lhX_~+7^0qv@sY&pKP-)zGN$b?dafwO z;HfrhQ!K~In+okbcO06NWa5`1daJ)f=xQ>uWM3dGEQ1+3ZqtIGOxCL%ZE67ARlEB! z`Ziq^uLC>c8N5U`{GMqAm%lHK%rKo9lmoRq(~hg?sexd*TcTqCz*)QeN+?N}43ZrZ znfZkLb>{NS>UqmE;gZs664ed^B~{A+t@c-==7mw6*sZ79vJG|@_-`#InMyV$J+DZc zLUDEDlpJ9%J8faDqMJt-+hkTIR=z`u^&H4U;S{QmXMOya40(kRVXU?@5|X}0ULUvR zK`eyjTgV(4s<+g6a8wE$g3Vt^H~P~7E!RgfRK*)>{lt0K0iCp_F+9!7l(+;8qGYY% zA5FOAtpy?7FG#oJ#N_riXTfU+bxB~ zq7x(uL`J;uvd>h$n(I6pDv5;$IWJ~oDi0RTkRoV9+NamfT#S+(!Z~g*A?>OjB_(f) z2XxC*CHwAL!pS&M%M}&tvbz9A_o7kru5`~96dX+N!pKhl z8R^JfIU!wc_gnZerwB?Z2u$WmV%h=p&~@5pE2;jr@>YCi4Mui1*7#>L&cwFx+;5LT zHZUG4fY%kOHX7Gyro)F@Ys&8Zu!O>dhBnq2)OkHPQv-dL9%hV6i0Y*Lqz?UnI`WFL*5wP+Tkx-VCaGusaY z*e#8pmlNn{nx%i7W>8Cz4Oe!Wme5WqRg(LNWUJQ_S7g+_ytr&^e?|t5*~H~oX+@~s_FdRo!!C=O zo&Pksmd`J_qn5Qx5#@4*6T*Bbu_gP=r#3}G>S-<)QD_KWch%e44h&bSzh%4Bs|Wz% z0@17W!E;oM0f$Wo9&1%(+Y^`Ra0;R@Bo&(Ni)TG9Adlwih!6pG(|sF=IzOmnSIFc zt{K`-(9~_(v#li}l7c&ZV2)9CsWhp}3W@vp>8GEqYP348INVm$t(|=fuG2BcUOwNP z+|SQP-5n7iCl;IZ9PjW{2#;et?Xg@Kv4b`G*wZpctf}gVt|3!z4S{8t zUQ=xM>dTq|3oPP#v(OSIdM>mtWDn{?!)duA;xly;bCjXA5}lB|OuY~!*DVd<^wbfk zEz3M|XjS)RVl{Cw&#tiLp+EFfsbnq1thq;3;pP#YQb7!D_$fMa&T5wVgb5ZkcaA9w zEP@5rescY?sHe79U&w>3bsAk*<>Mp)8>``qMkWYR`_nbgTo9W><1?jzgnY*zVX8(W zFGEw7)%oQ?uH!92ETrS6y}qI*RNrHTZ%iYIx=ofbO51BRE+uigyqE~57A~2d0nv&dx7sJUPhBg!O zBT#@@ak_jqe@7lI1DZ7CGOH%9Cn-Vva7WdH=)ykg20N!JaInF`a^#Y>iH%cA(L?p> zq0$su@b$=z%JCaFbD#v!QVJ(*wb16DW);i8^6FrI>pmFc#{rvp+>idrK{ujXe zsru#b{+s{ZIqy{ke9fC%WdL>rQ&O!A5lrCIaSnc-U5{nzh3$sqpo!@5GtPf4Q|hmR z%gG5_?vJQi#R=-OFbECzSo$q3ulrgh7cuZCp7ep&YO3luz4;_~K*EH+gIh_{#LD7O zUJP!w(^VNlip|;1RN|ibzso!GM+wW4H>K%SwTq7IhNKETnr@G&1PGu`83~RX@s~q# zKq2E-tnF#AumWR-NUj{JK@riN;cd506Q%9~EU@YVI)@XaIaov10@IAEYjZcLe~}so zIE||4YCAYom8A#0%Gyfwu1BI9U8l4&akOMF3~Xwvmb`>lJQ)dSK5}M=v_&sES!R6N zP(q+1b2TR!-!Bc@o?YgriqAp9f=cK?t_U*K|9X1HeUz=4FiJ9A5Y<+jC5!SunN$ww zJ?&JOJe~#__+r_|N`P0@b(ZoFIfQLwO|qhF9^I9I7K8g3chqc7xev)_`^4ny5ZJmC zOiQLs{Q!KtCPx@NjhBb&Pt8*_AS)MD59;vbH8g0K0JP)yg|!4kscMCTWs4_akv@<1 zt(D|Hf?&y8Ps_)$u|#OR+wrE}9cHZQj&_Io2m{w;Aa1oECe!0+%v#vvSgt=oof@^E zaJa3Y?VhKpVUNC6>rzil%F~)z%TPD2E91^KZ5qkY>Wh$^q2>)#cRP7xx`^6^H#ve6tyGFL3qb(&bjLNvd7jBb;Fjg!Ht zlY0RCPz-4H6L`Ei$e$^`^jA0qDnB`+oa9mO8oeu|wJ*9{kk8jJr^Z z`4cn2V*v^{n%JPq^KXJsiouKrw=T=U!yMZs8);EsvE}-;TRBBcQa(m(z+^*Xir-{1 zWu)BEW&K8rdzu|uEqw_=sQh6Abu?HVD0Dx-1=PGihwg9)Y$M4}FNv~Zd+1`xwOx(s66-(2w>f^>!;I#Hs9g%ivueg^Ib{G0~nnm@GLYqMPAl5&#^| zYYbZ>U>xJ7;=Gp2j{fpgDNcd_AUUD&W@uJ@F@@kES+8T9xR|9Kt0_Y>T*i(4g$NNt@p)$Tm^}V{gFU|olPo@Rd_9S&q=(DtdJ+Q_F z5$-TsEeYQJ}z6gPZ?u<%eR!5RoVaMM(Tkfg!FyO-!4lHDqS zzw~p%c(rea0Zex(JkaAlz5p*Wht}v0Xx`|BFJ{+yipO>sY*5+j8DU&A_oYi?tJ0<} zGJLrWZxS(QiyCJ0lJVwi7^W{wrNuXoN3qTPx>A(VnJwrcBul0|V8;xdSFN?Q$FUhGs=9=Z1!yqiXipURUh)xKlcehj_ah|L=V!P?u} zxD?AyF=d|HWR-&#fdCq(6;ENUbpt7TKV6jTJ)4lKaE9P0Tb_`m_SI{T=;1F%PujWoZ$Q4x=Q*T5_lsuY72REnw`8e%`Q*-HwHa*|z_#cdy@&njHq4#O;f z26`Sy!6_zlIue2Y0}ppB)yY{Ss`N-gC5wJot(MCq*_@T-N(f{R>49}TN^h>)Nw8bm z(z?_eXJW1eC&PE5NH-ZOI^%kW?2^sIq5uVZ)y`5@v>khI3Y-(>|A?_XrQeQ^? z#6GInZAq{GOd8;%D$^aS;5}y_i!H1m6Tn~rfBV;V8w29Aj|}>(F%LYsDFvp zK`Bgh&uPdEAgms=xT-KXm>4e%^jxZ@=@-hs07D(U4cBY!D5?B14`+ zMy`Z8D2=W1ZhB786P>*=&}OqxeV)=h;9^A;CPcJQ(+jZl!cZR?3lamvhQWM9>a^pb@H1Z3VI?VTf883EWw;sbQM3wRa(YXphu&;Z)5GJ( z$Zu|^xuUA+e=9tRI3XpmB2=C8gvuk(_Q+cmg!HHJgd*K24xNjdqCIO^<0)meBA!?t zUJbZUO8X_m6@v`Wq*fMl!miSQ6Jg0JD@$?M8nyG{wA$K9)`;&L^OUl2ExPmkW1C%# zELvH)RO?1A=|ti@h}}G8)fZqoC)?32J}6h$z)5)GU@{Y*lx!Xuk}khC0XjwV4*fAx zBaY`-TbCir4mbt%g%>?&Q#mR&fyZF(19_Y*QJMi66>A1+vB+WWk&$f}Dnr>9=B`t? zdVbjo#^OBOOq7-cSC3iSaH>T3Zb?Iax6j&#KYYp1r?UrL{EKfb*qd6gv%N4|o74vN6 z&(kyaSLO|@c4pR~)%%jmCVX3R!uGNO0;8U%fcEUT_8fbrS(XJwHZwZbm=QNeBhj2& zTr?l6LruQ~5KC=f)l3Y@rW>YC4t^1JwV_&yi&==%M0h(uIh1BA^^Y7dF9Ng~ms8b9 zt$3p)YE3}nesm)T_dW(<3I5xv{vs($^wnRc1wv36=>>iIJNr9KBcc?eu(~a-r(Wi~ z)WT*rBx~IxB@${nW^wt&<60FrELu%h%NcLSExQ|zu|pNHTT~<%N^maQr&48IZa10J zfPPBk*e%J_)Q}mS?cjF`d*Y1sZNgfS+0aAL*g?$()-K{DWvg6+dRmBU%c2aqNFePcDf(Q!C#p@#TpF(y5cd}_-^!n)V>K$+0u zM@56DzpC&Rm7+JxO1gHZ5K<)`wEcxah|T3KOd6RP%KY6LT5+3Mu-1f!?8^6ua-yfI zi3K7hyqnS}I%#Qz->yQm0a7-R=-d(M?r3r)7n567(zWVp$&GM$i@uU~#*a=N;mxRa z)KbKd8gAP&`Az%@O$#|&R0^JWHPaMc%4Qpsx;61z;6LBxEbtIhz+$#i1F$}RT%@})5s*yWH2>MOv zUINus*hSoNXbi_|JH2sW0<(+|qAgNRiLSR=GE^WkTAv%hBqaJmn5V=kbk7r;yHcT% zRB^RVmez2|PE4n(_-IPpj8sk|ajO9v6|t=AYXwiG57Ks_c#v8hd^QxK9fX}#Uhz$&kAm}uhFPY$q_<} z9onvwaoARW@mh;T-MCXVO}$)0GdP6AT8`D_#3v}L@hdSmDs}WhlAd$I3ya3>5*KmI|AS+2MExV1)_&x%) z!=bn4tL0a(3*yQ$VvNf1M3Ezc`ooNuNL!tbTUY1-8M2eY&S>Hldc?ic@q(7QVzc@x zKeZ?=uPkSjk-pUvUxAU*w*QJABUO3jm0iVOp5Zi^a}mv^vK1O?g}=W*QBb$t)`zqS z$x1n05QbSAHds3^GyH5Xxz~2EFS;$Yk_()C>864<4bZyHN#(E>B{>tW1i2S0(j9br zxzwpME>;{bX%q-4F%RVJuUcBp6g-o5yTUN$xmDeK;*5}{6*FIJYek5|mAHFt$+gEF ztzpG@G|Dv>;%|44(fJpuKQ&9$jI@sH#X>6|8eD=?iA58ZhL&I%B$L(Y3ndD@vLRW9 zu4iUHfr@lN8)&5o!ev3Wtl8U~NBBJkfYOv58KbaW!hOsr(Q2A#@IBJjxKvV@`Hatt zg%v1~9h&s02T6RquwOsRSp|=8MZyDJ{!>W-GPFX#-8U7)dm5heYj^i~d;9vlRc}>q z@8|t}ZeIGDPT|VQbec7UAyO-;k}Qa`mPRb6Hcj|n&Mm2>M?q-AA4(EK*~9GRMMw>P zK=owO1dvjSu&ytZU(IYjV7Bj`mH88{`xYG*-Kd0M@2 zEEP(NJ$~X{UfblXP$U4y4|#mTRM2JOhJ`mYvuF+NMXY#cuJq@#M5KnSQRHOuA`vXD z+YV#lsq;z&N2%~khc}5#rQ%Rp2M<;cr!bUN%IuoB$_}XF`=f14_s|&M?{~KMDn3Um z*zG<;X=k-Z;^f!$Jf1^wG^s0gN7%r@rQ|J%52dO2!#flNz(V<|!87!u)tzW#N^6Y=-uIymA8=7aEaD6r_IoCaA9g)q#aYrp2`Ihs z$quM-3jlUO#&taDtc=%*b;FizSek90$3X{SSHGZUKcDJQ&9D+zi5q0>?e3MqlzQB>#Dmt_ZKs%&C2jV% zfW=Nq;44Q&8=!AC*69GVAIAAM?1^ZcMvP8PU zk))ts^n61>w=fz&ni%_F_rO_TWeD|f-n&+QrKuT{W>v~%rW)&%0%hE8+TOn`^J(W? zp17;gDIu<07Z$Nt?~Gd6Sa>DzIYEhBqf6ckArRNvFk9xgGGwAS&l8LkYCzF$h^a?rtxfs>UzvJzqdtm#Rulwc>e5Mg3bG;nx@ zLf@}>1;aUS1)RP;^(UbFesq6bm6_8IP@I2 zBuA)i6wL-o+n{(%%UklkH7Xa4exPRdq>9)j&vsvq4=t8Z8AF(Lg_l=z|8yzmzp1>W zGOlVq6sp9b`dzA{lx)x7+*~zRP(EO`c1f>Q|0t)1mawj;O_a@P4RIok+oV!4udl%y(dH%;8N2u;PojN|;`Tp8%2h-DV4Ya{FUdWaIwHM|1f$8N})gEA@hXb7vN_EdaGi z&J%-vtmUraOT)=SQ!DwJlbOEF73AJOab005mnE5plx$z~N|PUA>p{;v4oIeJ=}$(h z;Fl~MUUF2&qzXWRP6Xf)3JP!-4YRe0nSeBd*=3IC2{=5-SW>2P46mSom{yaOf-cY) zQ`qFgCu4KcNMk1~WxsMpj6J6LTEr!AY`AKc;Bv-XL9Bi`2BGd@2bnn2zg~TKKwUD9 z118bQ!wVcLo)uRiM2N_+s+{-DdBPRAYFYv^@xzm)65*^^%dO0AGkc5z6Th_7(!8K0~?c!2rzk!EGNckLCd7w(is}hqdPDp7xOR< z3=G>+iA`!fQaMDS`d4GQV+Pa7QXMu{j3M3j`mjKvq}Af(qol9A3je8K4bhUcOVC|x zpBcZIhl@-ceYsod^Mcp#vFC)!`mt&^;0H#E9)0Rux6uV}Ic>NWpy5BJC-BHB@hR(w z7M2FHY_y)?2&_#>oz$%64hNqG(kO0{6^+aeU)LsPGKt#Vq$U%kWd14_#~l(IMkaai zLEoh|<#bDXfulpZ(vc)mEs$`j#tw37y&oUnM~mLCuj+ok_uhNw5s_b?pSagf^2}N_ zMG5Ufs=6t+i9!^g)~WPf6dr9#Y-t9d&8g=Yy+&qJ$#(4b_T1_hl>GLNh_Me%%|?VdrJJGX@>hT)K0*dEje@0f;Zz-;tQ**& zF3GEubA2OhP*RGF$B-pmL_)|^t8ta-Ap@WcA^K?X5MB%?PLbK$57g9{AFf~0#nhr^ z%G*vf4h^bw@NUO`O$jnkb?E*T7kx-sCQxFA)bWUUzcdl86zpxH{1UL~wAQ&U#zRP{rSU#^T>HL^+1 zwxSi8zlB(ab29}$u%m`1RKFhobNhqAlEk9do+B?U#uneq5#wq6${Rj^`gNpB)PG<2 zc2b8zbsf{aoMML^pcP`KP>*RVO4RG`+k?$Q&x)jappYjqyi_uvpjpmJrju7m2-|;g z4!nr{0N|3r28Kw$S_+L+?iay1#9OekEE8aa+EL~LxQyQF6>3>Z&|*@sIC(OU>BYRQ zp}Oa?(smV`Sgkai`)8TlKncmp zn7KW6-o62+!yi+H2JOmARL81UYX-=kF}+1=$tFBYv9!o*G4G0Pnp7;Y9AM*9>$I-y zSqYeQ)P>ri$78DDDqcijy>u1nj%*4*OKp9nlNCW*xk;T$-0Yj2|A z=tNwNZk)r+IEl^lOUKI+yzB~sJsnt_qh6U^txX!+&`Y~;CTduD$PZx;C;`RI*=iwk zro)e=jzy)u=nkul3h3{j-!ASsZ@0e+_jG^V`#Ec^U!Na6FS(&G(aeXCWiLx!=44n7 zQo18`a1gy<1NRY2|2wnt3*?uCfw_8qVeNqo=bq^7e%R5P$%|Ck@WjtX(42Hq_Pcbz zsA@aOH!GCh0PalM8OwO8Q-O!Va4J7E^|Ma29gml(46Us}^0VUPsgVIoIPT%&-ndDh zm&#R^FS6j8uyiWL?Ca8@>36C??w-HmIHAE$f)ot2AR~)JJ#~wz70WJf2WE-^DuZ=Z z9xOLntFayTQn!RR0NTmob^B(MXcp!MqSwnEJkUu6c|hjCS{W|u6bU*)Ycz!wiU-#G ze~pfoJTk<@vRp4M#3WbUef2Q0%@7`z{0AiiSsLWAPF*c{84B-?1)#`ww0o5so(4>x zbwIf-uzfLvT6>gxWoeuHGD3AqiM4fIIm;G&U>EF|(7JIxS0M&VI8Sz6hn4mzEF#uu zFwXCLHKL-^gjRyHfY>TzC6n}Gn0z5RB9;Frt`p9sQW^$qr;sSEtq7XWp%86W%AitoiGfNH4LW4Y?LwBoQW%K z@^|a_BE4=JwRIrzi_u@5?8Vd=|MCjs`d;%9ngUtm!Bs4;z-lKIg@Yz&8igXL3_w_> z$Z&T3OW-V`f_NesWd1QfZ5Kcbn9jrw8CNkqdzSYqkTmOh*5RoIMZ{8u(dw?)GT`o= zMV?-^3ImuM?7kx)Q%=Rf4}6I(ebKaY7hwAV)3M7+zRkmvs-R;${B>RCx;g5qZ)=4| z9wE-GU9<{5sa>O38w3FjxwI9B_ z%0V<_m{FGolB6|LqxOI*7%P#&?uo%|2e0Sxqv*Oq9;YYIPjD-L5Ss4KfN}<1G8v?Y zpJD?N3xYKb<8c{&OjjkD)>cuo?1Jzwd&LAus3O_K%vDw@R-uL97jgxuIb2Xg}K*JfoOAeMQ1uI5u8hauE0YW zUek$|WlJ0dCRd9pYOLeYF?MDJNzu`)K~AZPsL&|@bhCny)qJ3n3NiJ7f`ZSv%Cnn{ zSv@3WCg2pVoW#;MZZ>~Ih^N;MYPfg2pPmLs6K^{Svm6Vb@!6*9G|%BZ4h>6CHf z8iu$#u7ukGC8C_$t_#4JinM8HEM@#N9*>RBUszlYNw^)2s|`$e#by_?~9MT_x^gpBZE@Ampz)ucV` z6p%$~N<+zjB%P818{;fz*{{KBM#e9X?$w%aPnB+!nGyD4+Q8E3en2M>EY@w$`IIJl z8LGmG#Krp6-C{c_5c^H zRSxA9-CP)?E;^t%o`xI|u+f>~Hxu;fwKd#~nFf)<+hpo~~(JI=vcn#Djq3CkI z3`06uzT5eFF*Dm=xdx0!|FVMkMo4H#)Aog=gcAX9d?qJUWoW8~@(^kBzQm*=Sk@9) zvq`G5H2$6ws*duTS8T zW6#_B`_F&*_WnzMbpca zkP1We<2R2^vk~{+IillKCbnJy74*p~*Dqg#rl>@o2ta6S5w06|Mlvhw8fszfakVAY zRqvV4!h$oA>&s(mFYA$J@wj3Gnta`A=q)?xp%|+q8SUTNws71&Oszb&vdSa=N)8VY zlg2vwxE^RW9rCpkjg2k!H)Gq0kGYDh%CjW+jR|%@eJc{5`!=g384L-c`VpV%r@CUz zNTJPbY$kS-NgGg&eWEY`TZN=SkmR~d=1r%m0s6J$R$+*(U&D}f5U7BdaVeH7mvgpS zIeCp&UR@njLXA@tay+14hD_b>aFuG&fE9A3`q{$b-a+f$^aHsnA~cZAGY~I2R^1SW zM;vLgMxrDOH#C+N^_b{I0k+x?R&Bb@x!Wf5pf$U6*(z$aa==o;ik47;Bg5mHU#5|< z7uEl$QkK{?Wx|T?t%xE^6eoms#rJ&6_h9&vKGn!ek|CQhnH!2RkBluDu|5vItS*EH z={ThaJAMa=qDF+&sJi!-D{c_>*|;*9H7uOS;+@ATh`3^@_2rJRtfj=_@+ZIWW0Gj< z>nkQ7cG#KBsq2|JVaci-R}#ysMGku{Uo2I(!?v;{Nb%2kB{WGE6)rJKAa6d+gPeju zPT5wU2*5lcljN`NRj4wFK-}*{5Q1`bW3zzyyIuQeu@N8EsId>OPuTz!#xe~ z!7m)n!cS$Q5!A1WHSM%O?4-dCyxNc|s=E1Bk@m>TJ20JE9}X?Ht>csVvUJz7F0!BqjRH!GGB_s*+I1lau4%icoxG6=&u zRAL%+?gwO7th&YztRo|+4~h}Cp+q)O>{HfMQcWvPB;>@o$bgIpLzGw6kleWry^xOD zT@L!-9L-~NO6^1$5u%xiJM0XqX6Ms(u&i~77o_0u3ra)}Cd^F0i~MYf6}1rM#Wgk& zYgI#%@DRiU@g>kzr*F3&w`Lq`R-K?vL&cYdmO@FdOOO*Zj^>M#0P+xt|`_JdE z|M6em-haMdw+el~N;7cP3VF3I6i(_@@_kiJy~M6`AVEqh=$P0lZMcbOyvcit(5C!ifkHA1nLlVc66tDO~Mm9boq4^9*V;m|9fmy3P2cu%SJv8h-FFHea{#>ptrf6hbVYnp!&af|Yc z!gmGuBQgMSOaNZW8UprXI0)k|R0ve?^^)S)B$AQEu(A~gSn!)6ck9fS9asj79*O>) za1-EYPtB_20!@BuELC1{QUmZ6#e=z;!Jkli*npo6d!ul&D=A`)qik&nJh9bb#}*q2 zti~*@*gX$>AsQ>@g)gBVU1;`(eTY03H*3CX>lp^ENk)4TXXq9*eT0BIiyZAwDiy$O zh8Xh21$J5O4MAozh#}FfEj8wCW{T}ITLN+#O3X}K$kYX?9CkL5Apx)5on^GSKkF)> zT<=X>lBx>5s{a(lv` z8Fr(pjtc{TwNtyw01}mTQ;G9w6pnAtu%5t$Izw`n6=g2rxu75t3rDjXUP&noJgJw~ z>KqE|*{52vTE@Qj>)x-P1pW5Q`QzXIW8uv9;(1o6?DGg4ZFJK}+xqXZ)f0u*W3cT@ zc0yGGR$T$0X13i5?UW3B0^AP<_NG=!TB;2Pd`=x$HLLr^sw|};X)(xskO->M+cMLw zT9tTbsFuo-S*)kvTVzLPIt}s0Qo$R7U9-N#3nVbg;SLVk^ZdR_3Ti}S?e6J7z!V;| z`Wo+ZX~3y!E@xl11%SY)J}B-&VLEqja#dhwMkEvIZ(b+*%Q9u{UTRfgMvFL1XjB=PRTRvj(rGBDJKC>X3__ggUmxx zuO9I(jOJOGc`=P_<+7PI9Z(X6a(PeM*cgScR-6H_2bl8$%kGu}R1Q z@LKi`f3U5<#{P7xW}w#p>~b~7Z9MbE{kf!7O zOm8XFq7d-~3&{EKCJ!%PSRFbsYFI$`JV?huu;QV2T43tjSwR8Nk3>Tw^?C)AleAq) z7p!P3fuK!L($(n4xn>lN9lv|XrySA2Cza^{##shrzvNcM zV6B91hd}QOJ&OPnq;6;aUIH~Zr38vB=|>?a8J{jM4h9c6GlWLMJO5Tf%(dp%KDLgT zaXC>;bX;wyU{4jJ%D+_o)_!8+R>f2*m%lz8EUwm|B?df%?uKp|uHxO>5-1k3i{__E z#$E@XljBR@tuG&qxYB!CVUjD8Ch>5hZYMVZ$3U|Fdczak7)$R<% zK*b4!R-+fg+wE zSVTQwp+BO!bOA)nls+eP_Nvx&^0o~u8(f7Y=PI}?Z?@LMnGNC}$va#}jCxo~6}QBj z)AM=P<#jsQ%DmRF5cd_dn098Y7g*&CqF;%MoeGF77JIQUv$!jH$+EYy#*CakzupG) zWKr$sbPh9wA^a@(alTWF+t)0^7XnjWV|qbK5e2RJ1a_Dd3fGGbw5M-HB;vDwq4jW7 z88RaK(e1*{OwL~O2>7^aSug(%YL5i$!=SNmmrY=_ZYi<41Nmv-s=R<@#MqIJpOaQ> z;klh=2CnDvt$wEUW_#+P;7ze5Ke(g3aPm_-+GsClJ_9S6JC@^gQ*hA` z49B&HM*bdI#e6@*7om8dbq+&=l$$#X>;l%x3g{DS%y^XxmD`r7p^Gv$(9I=}PK?-w z%im~t!`aJ^>{NLK+G5vrTmbiAIv#u409mPR?k?teo^Qa?Mufh^P$NjN=vn;$YTlsG z^9H|`OdwGhJie!ac3TohfNJq@iK_{*Q3h)gV*hsK4a4i3hn}l7vKcs-)2?Q*+#EUh zb?G{r17V8Q5Xl}2N=|geA$CXW9!2xQO+J^Wb$9?lK)$~s%PosD9R(pper@_1GkTM~ zkd!y=Z0L}O`5su#;N&bHcxmR`9YHIm+JJ$cVc$8ZJn_IOteLCf2XIzUCQ-d71sc)#rp*=} zQdOgmn%pS?eRZ2EhwSt@{VbW>cS>}l&IwPGpkNcuv+{JKgzsB!B{EtmiN2B)oK-4z z!&*d;1(qSn7F8sqh#}E-9Pd^?3T@kxl$ZRHJfa z6hi`1Sy?L*NfS`g>egDZWeGeA&+U57Jylo8fmZbOkNRStPtsPt#xmVXJMHG%oCe2Z zFP!PzleaDmk2@td$;3+M!PYW}ToX{L+xx50Dfwi199jF6fYRp%u$>*Jl?S2vT2I-SpjBA5S&Nx772aB;Vz_%YiN46Ky4_iYLV9kfr`Wp$KG7-$K#D(TbWcd@8U zRHYKqd^$a7<@F6eb$vyvVUzxAkR+VNNP(z>sR3^M5on^e<*#JZSkA7Q$Ti|HbEV-!hJ|W567D~)iP5$b+5tZERL<=B`f{vl%#4Ffu zYVialw=5V!hGAk7%U`z9L;ERe1ON{BL68qg>EESC0kducnA`JH&`H!KEIW1+8kwzI zUw{Ft9gCi%ZMddx&0at}+c5I3IHP2|aW$HhGmU>!gcQV0DhWQvm!Ea42S1M^sNGW%*nL!N9s-T{7kJYg< zm;|7N4=rE@!@NL;Be(FiiWM+@!~=s>5lhQYHJG@J+bS1srdlj`LzINfT&LBw!tWG@ z9UaRBpiYx>k#OS(U5Zs4$ag~8&Y|p_4eey;9K(hvBqoD(WeOi&(hgL#799%gu8W2HsbmSsUkC-=JlVmbx@<3^0Pu*D=&T(V6r8AmB8=VQjEW<}Fa zKW|2yVx>*H1=4yjlx?`OkJ8tvFa&^w*!fVq)|&ydx4zXWG+*c$?}>sGKVzn)ig)B~ zIHeaQ_boDW$SN=AG1;O!;{s{!0r!QnUeCgV)y&g?B?^T-hH*4?K zOaqdHO8P^+g8qXW5{Aea_=WNeKWQ#v!!`e2(SLwE1$a&NkxXeH534XG_bh-it0Ve< zWe*$G_HkN1n$bDSOv`#oG1j7A+u1gk`gW9ksTDNwUB0bTxTxb=FVtqqqwNJu#a4+S znafeV14f8psOvG&T6_u}LHS2#6tkAB22ae-LElvLLO@I$8%i?fM%b1zvbKsaL;59; z^lByPj-2-r0#2+|k7reoxzuK>{Yoa|xobX}P{*Xb^x#OCT3;mFYeHfq!fVCN?exW( zJxva;IYRg^;WXy4-G&{}%bp(nRrpV%CW*vIub0xb>^_;ogii>2}-kRt>@H{#PyZ=v; zOfFR#+f+3x%38ZlI{P!^o7xdS-u1;53(HoHN@d?Hr-|levtw7Dnyiq0E9DsImpEZp zq<3s>)h{MACjXlis3{kFs^d4zX5KA5VHgRJ<#`$4g@E>)GErcdCqLY)duSV72P_yZ z?g3tF!Q1Er#e$=F+S6V_MeJklT-b34INy)m&(s%B)xBNkymKhseQ)=dM^9in$W++q z9?e+y^5u`NfAC`GFlSOohd<_8e!zlEW1fJR44Q2ZxP=fKC2mkrB&;d?!B27h0=|^t3C(SDmXM(yjmW<>YE7Sc79J9 zXs61mnqx$!wwGd3Im4W}ba(rdHn((Z`_7agSO8&HALW@Y>j;&gDh=Dkh%X9jERMn5 zpOlT$)o$>%!^hHxCBDC&iD!4u4uT~ND_H}lXL8;Rl;7Ub(6)lsEF4>sEE349NzdhD zhX5&-dL(~G+CyEm)~cW)RY`EHE3B&j#QtzB?Eh+_#L9LNKZVBFK?Va<*QYd)hht>S zwr!OJ1i2M==G*2ZKtYKkF2qfJI%k?2IG8l|AF5RvE3IgS^P^rX#QAa@2a z;d49{O{82IHgg~aFdpf_f%Z;^W;IE<6Q?H|i2*J{nO;v=Xa$Wg(MA{7pA`-q_C%nW z&=FaYOVE^X?v}4-RC;owPthu>5ur|wU0h29NP173#|pd)BMHm;fb3TD_MjD9q0nb$ zVSsQy4nLgzQ+%3+do+ZG11nr%WuC->VXvtDr z-#kc4l$?05W!B7qbI#m_K)7(Cu|2VIo9PHcm}_`;~$e6Qp5li9LAAxjv`bB@mI2xN*vY+!YG#hZ-0K(&ouWtJB{jl`(B@=C|Um&7ha96>A)5X^1E!&KCo3FAr$osZRK?o z%CR6s$|&)pR%Fvi02z5`YMXVKFkB7`d_~VX%sseXI#JNd687;7b!u8mP!?=$NJG&To!WwTF*ae8+)bk0L{Yp+qUm}Ob_Xsa_^8F0xfzzzvw`O0@~vi?Jo z%!CFiZhO*KF~1eDu`__`T{G*%4=|E7>-3C7Mz1k9UwW`l+Pf(zy$OnPj}tqaj~l|@ zer$Bz*uUUcE{7HJUFjz3BQEBt^ZCfwEun6&U(Zf}3xgl+h0BtB`)0)D{=L3`pS%=z z!)L>pe2Wcf>*8Yuqxcbs~Dqb$~|N zS=akku(u99hN!g(TB!Cr@iNLF_tR1{-Pw68-*Di*9AB9elkPGd=2GQFMG{Kjz_Qc# z!YNn(b)af|AmJ`khX{7)0DCax^H8b|a%)-6w`u*@4R{z5uqVE}Z13A{#B5OFA4-nF z;q6u@T(%dG<*Kk#*wD%Thh`QMN^j%f#8oX?fF2f%mpkMSpo`|@S#_-!AUi4SfH}Ey z*v4VB%$Q{1@!i}Q_x+TaB+Z_u#U+13%M!O!AJor$u=de?bq@JDxAI!OmP$KMta#}R z5=PIMdBaqeT0;K>!W!QFphyaL9F_1Z5f*+u%bjETs4DtC6OyZ6r9P{J zXu*DU4VozOchsu-KVygN?b7iyr6MH#4|1~MbrqZ2Av?V(czAD#=#QYr3A7K<0IuBS z&eaLDN^5c7ABNP`8=IBaNWI&LI@;sjR{#6{{r_Z?`~$}8^}n+TPVEDhR?@`GYJHwY zhm21_?nmW>Vf#mO{0sxmQ}(%w6UZPOF*f{4UD=@6q4SzDO>~2>^qd~lkJl|ccQ%vo z;|~vArZdyM3Pl*1N#d9EXOZV7ZL!6`?=Xic604&3nvA7de(7`Zlst5#SZaPsp=ASj zvz$pK`DUaR8de14>CAD>xb%7Z4{A9-K3WoT7XNxuB5W@bL_Qpju2h-IXBr^AyQKjZ ztWci4N@8xQvKz-N;SD*b=G2L%k3eh120#(}@?%QoaHxO*HpBubn*MT+!WRR%L43@Y z?$w&J;H>!t*(UBcs#`9;^oNu43-_pZ-N+9Yw#avxE1j7JdUzBn`4S`x*ucwyckODK zX)SXd!fcvKn(yFN-;vjsO?t@`YYQ>Wn|7+EB0b;Ot%L03!r>-iKMLE6fZHfMI%b(7 z6J^AR&I7l#iNe!7-!S+mBnMhFg!t2rRmk65k1xKjtJ&?Y^61j6^6JwLH||7sL385{3gYk)*6TyboB6qa+OTQY|C$Rr78PAR+_Yy#i&TY0=CPzuRylQ^ zrJnwZ!5l&O=t+X5x2fCgtMvBi)5|V4yxA{aj;fPo93~&QL_GvRCG{5`Kzwh?I0Rqb zhz3uDNre0qN|dWQJ!Q|GRVg_dxO!gshSL$=%a+F=-&X-$jEK%*?&%|}w1B$n3O2RD z@)HnEiY%fL0->GO6gzjl33oGsRHbi^m5LYV5>MBs8fk-4wvN{~DpsGvO2nc6I@ikK z!R%~?M=lihye@s%qyHekSE967L6MGMDEj*@K@_3ZmE>+3T@MC-27uU4o*cI>Csf{{85-OV1w#s*NQN%HcUr!`s@>}141 z@=B<*;Mpd;!cM;fG9`so-Wo!DnwG!sTYmG@-9j-UA(}6N_5S@=-I1*SjM%QK_i{K+ z2EU7;U-aP!Hy!zUXW?SX-w%^-C$t?`>Qd|M3>})Dj;E@VOk5d_rw$>pK^!uwe_LYJ z^G?pX;={3FKr5!9n%aS)L`Y=EtM7yMvT{N`}o@ zjWCGJWklb^Mb#guK^uGLBV1yxZFw{g(Ixmb+GTG9^=u6ybv1iU=g~o-GCu2$Y$`$u z@7t|xm<^h2-q-r#Oq~kQCVkijqbs~tX#*5O^pu_r?iv|Wyqlkgaa9ia(VGyzEa558$y9e)K*6?IVSZ9<@;7_5QP z7u3;QZM*I0BX+OPYj3#wy>SxW(d*lu0CgZ*i)_BJmB`a z)VVGuF`~a@U$utL1B-)d4)n@Hd5=FU*H}8&E!?>KqrDb zHt+q~QE+=JA)M6BQ2G2O#9K*6*mFsbSXsSyp+}NB$(QEuNoo9jC?!RbJoR`v+^{Ny zp7`6#R1)^cB~gBxmm-^d=V^8VJ(6!h(g#?F`!Xx4qdr!`Z0PwV1G_$6g{a&fReIO0 zujEC)Dn_L8i|y>yHx<-Sx)UcUyVSa=ffVwKhc;{mJkN)eAo5|fW|mTKrYGH|nJaj%)Y$af($unVforbs zbDz})p~MbL_(3u0h=y+)i=or9%7o2)_brQR25CxRa?@&tLUC_u>vKKs1PBrurFesE zd+?un@0;k}G=PKqr@xt(y-X#Y3KGzBc%Lb|!0G(24)NDMB}n+865HCqR(DgaJRKv+ z6l}b+6#wC^XV4O* z%h6{}6(Eb6s{8O)ofwHm!+g0a-{sE-4zSN5taW{%7}n*DBfaV5H&NNk8DQB1(3UZzNKqIcA$*f8@7bFULwyK+k4H4Y2z}&02+!Xewt*LV_;Eoj(i*O?STt9^B1X zy<5{w9+d<}mp$k;yZXb%Caq#tcCe?pp}vmIe}T2%F6V5ppFk{{;0QD$g`Ma`V7ozB zRjF;SpF}!eIPki;2iRr_QLL4Q0i1V^+!^+WFNuH;=B-BU#Q+9&;GKIZtfDA^(`1yS zL&IXOgNeVKwox)>xndp|nfO$7P6GdxCOeyV70F76GbTcIOgg7Z zf~Cu_B=3pltU>MDE%{)Yk-e9KHf*N_o>1}?A58*=;VgjI7A*oNB^Fed`64(p;aoO@ zct7_hX~=45i_FXL{v6`JjNx2_Nk2y!URd#TPM8r_Ke2M8sppBvs`^(*y})fM^~dac{qI z7Iy9KZ2Xbt__^GND~l(m_4aS6^_oBP^?1cJ*aF5zwQb{=DlebgTkwSAaCoKfZ?|h8 zZmf9RHpKFMu-9HS=+!RoOA7nR;6?(PXQ?~HIAaq`_kM|aKxucl{gn~LMUa8g_x7}t z8DO$?=w-V!tx=SDOJTFzbD~cn-UWxf*)yI{l*#;>&YAaIe72gB1;*Il zxPJCx>g`c?S6o*2zMJwA&*mkt>^Z`d2rv;|+SNk=a<9WfQ?-YCi54?9-#>cMVqwyoFs_(i`MntLQC{C*p+H$VA>Y+ z+PtrO9~nbWjMQ=82o}fu z$q4l3EL=M?6*l1#Ry=zvtMLmAmhA3G5_v0{DAY^1fgRdZ`B75)Y^?ySo5?gQzng>- zdMSlM$W_-s>I+)sllOjS<$%uSc6$Zd3lBm8ao-Y!*fzkOFYUV%1k#Ekt)zOUvnn=| zxQ&Z72CL6~oc7EH?7sh7-84YFvq+(UJ}X>uIpff3n?d_uQGmai+PluL%1JKn- zZ4&Furlo#m(eRx5YW=Wq>*--qc1(1_%BiK56Ao=r21Zcv5Bj}9l9)j75G)f~RYMCu zX^YPj5WX{8B_&=}Vu#j_bw97x0q3;Fb#z7y_|A{B`^s8na#4XgKj4Ms-NG^Xi1cgv zU)lc~(8>f9eS6(?%6D}K5{HI1j}Z9BKH-H;YK%a{TuryU7@~J?*171_bN+26XPqVn z16fLyzWk+>Wu@*O>EvAL6&{v(y7)Z&KzDdT$;!+P_dM|2=liA?sFWQmZuWHa+2oJV zUTh@^D9QthAu(lI68;Vpvy*x6aw~K}OK;ZM8|ypmatGMJWi=b<+6Sz`38KQD#6d4> zRdF&T&c`Mem{(sR;!moY`_C958S8pV2|Z?H+<0V!jwIMBSS48DOTG81XKR~R%foX+ zzQ{_*`NlFvFTJ`jBRj5VDkI0B#N~=c(&e-B$9eNmamcmzrG!;DFG#tBTs51+omTxW z598UIDGzBOspHVSt!7^F3@DKc>da&ROpRADM+bQUx6IIP z$YuNM-;qk92jCot&w+sh9d<%Tqaj~V|8@%7v{rh3YCOtOw}!;(4T2z4=8Cp!{gxcyD#{A`?(hQyjGX2+zQ@3(Z`*Qz4oc@g3NetDx+mLYV1{>w6o7BUY z%%CAo%J6Xx8v!m_~>up-i zFOt!YshpTk!Qh8Yj(W6nn|+mGm=0x4J3B7W5_JM)eMeuKT$NtC=_1GzV|mQ+lif;_ z5J=m>Yr{O6(A&JYzf&T#iC<{H6ECMT^I^pSEeT1Q{=>JeokYEf&nwVRHwo`b7$zIm zK74gaF$-iAy*d`_4AZAa7zXNH15FBo#lxZ%W>Q47B}np1qKv_wwee^AP~0N}urAluW)4Zy`%a{6{Rc>KMBegZ63X=Fw0BbbH1YhH?Eg zAVu`P=p;iiAeW+zgcVMWk2}Cd93@lndGR!mvJ%i;Y6XhK8v_fH7y7eYuQ=uuNam-a z9F3mHWKL}&NK%8}!X&4fn8@z!fUqH^W&$c-DF!(%I+XmLb(p}GVd~>B4y~?OdmkC{ zO)m5O%P*0FzcH7nv1VcNSnp)6%a$+|H1IPBx-6GaoO%+{C|8pZ8Gc~5zcyVL9{)^fjGCzCki`gV4x3pj-tBLaf5{cmoGUbux)rOHoR@|kwPX|f8!R$rvehuHiG z-&v|Zo#?FvERy#RQ2gVrLDV$#cTRh3@|5?fRx>71R^`#Dr0P-=NPeZW0Y@+6R~Ue# z=SO$gJgq-rqmux`4yS4mBqXY)=CFeYmkVhRra{)r`#=3~*LpZ9W1=;jt@r}PpImTR zk+0fMA@0?AhmDb=b(#UmAS9HJE|b?@&3{YMKa=7s3VLq!)b+M3O4dK}(rqaI6IG$} zazF`6mGx&&Wz5*E43VBuNBXkr*gEC3o5dX6LPxtLwHe*lKker~SsqJ`>qLHQM^_T4 z$0>ssX}3oz-mVdX@|0;OQZyCbwU?>zq`7d&e7E(!0+1v&MQ%CWyc|ABH}N%jcVV+B zQBST&NeQe#u*eM&4jNTS^L9em$yTirCBBUPERGvQ+}LxNl7M&E(0!0pVm>cifDQXWCRjg|Q3@II{ZWieR(bWT?2 z=It5}Fzf5?=AM5<+qACr%3`C7m^}K%Bv3c^I~68VjcZOFj*rvJj{6p<%sX)s#+ZwF zFle$Wnzi3^SmV)r;2v%2oB*%y%cO3`Eaj3*{rY&;vBYWQ%Ud_W_3@7VTFRlINJ)jt zl`w=tTD&~k;fW0qe^mOW>I6Z07&5;`R?ZedaZy^Iqu3UGnIuX&KW7UP465c-!>KR9 zOM<{rTWoIvVN})BFZceDMPXoM#<%gXnQT1!@_l89e$>n_5!!)lY9h@pI5}mtEs7kP zl$@UB#Q3A#JA6vw*s5{=Y`wb61_EI2Fgf)I+-infHWQ{8tVHH?df+x273lu2ycJ+6 z`@nYh#|AHsFr97%uH}J%t(IY-UV+M++i9RvjMY5~Z&j{`{YerTW1)CTeE@h~TT%iF zHjK(`&5E*8i$!4knv2brzvl+&_XiSX&Z0i5qcx{~ia={ob$|f5**OY8UP<9g&^H@u zd9F=b?WvnEIWw?B@^NFd|I1OKf3@Spv=6* z!UJO18t@vz41Ds)lw#p`es6wFsJXU*@5o`-fN@% zeybmQQK;&(?E8jrn=k|I&c_L-9j{LJ=7UH}Qu%bNSM@eYrG3U{bS>TG_P$Z+>~b~_ zsa&I4c+MOFjoG{SiOpQdV$SNg&-$1mm@B`jlTXKPL+PfwlJ`u~nSZG&^PgO|*}1#Z zJX+>KO7rEG^2U~aID)2^m)z8$%IWVREN;H0Gu~7B`N3N4)jx5CciTjB%_}kF6*Qhk zIDKym9OQjxFlxV>5AAxZZb#Sc2(i$3c%*_xM&zFN5gjnM^I{!*f9L*t-!v&PL;Ft* zWU_kvvmLf)1dh96huj=0!!->TCt)9-bYu-FeAAz#?#Fg@*Sry?#%BDO@F0FneGOlw zpekT??@TCt1a;-xlsmbuAP0Fya=4#PPDo!|u@7z5QTN)d9SOBiVUO0w6l61O@wr1E!?2TGN00i|9kr-wfdY>jO_)mJl8HPg<);vP(0b+ON)F|*bhMniR zGb`)Jgh6Hm8q$fLcKPXMSUjG*ZvX z$BseLVmqMTKFLi{m0XD1E%?GYVf%2d-To5}=evt)2i@}~qX14(|FP2Q3!?QJBrtQ8iK|21 zMDU^c?$KaUdz%qEebL=X`QZ+5Tr_?t|DALzra88T&A&fMk; zO{EJ5tbFbtI9*H=C##WKlIHcO;2rksWy>GWpy9XSKy(=+NK7YLZ6Wi(=i;_j&tZVu zHq{}t3$u{W`EDiKEZ{Lph8gb2nyB;G^{%P#8G=BeO-cVDhvU2%QH}3BDDLztz53-N zT%Nh4Qe~Eh5S53YtJvAe;;$u?JRrJm;GgtDboccmP3>BPsYjB@di5lo_4X=~?hS#M z29=KPVpemfc@GAD+Z4J{tN;DC+`BpCW~R4Z)+tJ}oB!zP*ZMOZQ~8@z!&B;%^nue& zk9Sm+NBI{E2{QEQPB0;|(w!Sox*t|>*@V5#bW|-(`}2Yx^zs7={`@?^j9OJQmpeZd zZ}(-|Y}bI)c`$7gi`>Kn4&~cZ-$ACA+sH`C^j{t!Cicce`$B2Lpcw+*+K*$yw79ki zTVc-p;`)EwFgq2Q!-I?=n#`?jYxbW`s2NmQ*4<+y2z|NBo2A^zAG{6c$}G9i1aSU{ z9F=|WPDl4oBanJ~KXztNuv6|w8tOB}4&=O;q$yMGkhukR4x3r|j-o=i+ez%(IxV@K z-mU?s?U-9*`|^~S9E*x6D}IWGo}k&@mh$5QOplGiY0q>Y#9KUBrf_YSiSJ8HHaVk z(v;pxI-@h6R1r2q4W+2Cp+T-#6o&BLq{Z*(t~~#XH~sd$@{Bl9CF#jih92YQRi17l z)QnQGbQaOjHXdu9C^7{PUBW=L1ifL8H2rvhYD;LNqAp+Va(&4UZVuK;zVfr)*|lL^ zR$?FHYja^5>Xp99iP2sqy09n*AD?%h&!Y&cG^?PN_nA^y(5=wi0{2?0wk`5JOBKr& zq-+R!?0n!_KllG?r=T=54#{o03%3AAe^oyUtSlVhsSI>@x+BN)K;a<-c{MTf5=`i9mCf>%#x>ANIQaN}5>B97$w;t??!{Jpme{ zb*sLPl+fHIFZWGWh)Q>dw=yL!0q}Mw24Tp%Gq@b)nUG~2;NmJnCn=0o@5~QZWlZ>d z-CK(#@FM6>gs!ob1YGxej{4gJx47v5_j$R?c~}!vGizVwes?vwEcSamC)k>I4F@=vxuO( z|HVZ52Zht`{m+xW%f_Wv;>6x{Wu6Q8g26y&ZZ}ORIii3k4Zn;*)}*c3O`7l z9VR~KrVG@?GUjX@JaF1!X;!v0Nv6}^x%i_fHpGy%Mvv+;G_Yg)H6t0jV)hB1AMg#b zuXk?}TTs}XZT1wAT@fo|18)aH|K0R381vPsdzWY7+pMJit#`(~%oKiAHQNv*6|9so zdc5;&lQAOM6DeCJbV$aMyCR1B@3NoG#zBV-c3kXZA>hgo1=h7lKjZVMwhIjr5)XWe z86ih<3ac`T)Xjm?vE^9uW1cXf;E{x$aV!7FQr^cHb-u|(6SZz(zi{xPGW`Z;;Y@__?jY!9SMXV5V zy^(A7uDET?vg71l#XC2xSR92sIUfASt$_rAWh5#Ay4c)E7G9h5c_F7Yg z=_?Cc_Tcu1E?^LyF|lHd9!4EHc}>S(0zvlt1az zj`c8q=e+g%&@FqMTk+L^=BJgVIq5q8Km{a|X&IRpyv%j7k?*65BHX%|G^9yWYbbKt zJ_s(Yc$Ruq9lo?(hoY$0IQ$o$r~TWuMa}%s@VdqhC)1S91WBqw2cP=i{?zeca-{I3 z+Yu>cUnVP2E=yk2aZe5Y1JB^b38XGa$-XqD!~7C!FON8q=G}n}gjFTBe2u)ECZj*D zIq`BV&8X<8K3rEQi&Qtuezpu-On9(3hUhgT)x*dmY)qHDz7NGhm~kHxe*q7FWUwX5y9i)IofpFsmlMUJ|D?t&TSiLyR2hJVwdfb0yN`BbF_$? z6h^BO*C0%i%wHyr`+6ConU?Ua80taRdXLQS_Cv8_wv9b(g8NIP+}jDpF3Mg4hley=>^ zu-4uQhKcC|Ia(eA6z{3oUd@xMYPNEyKj>P>@zA5_X7S}HPM(T%L60W#4n8-YPjWht z>f1R#6zx*HG5rHNpm2s&6=bS@9l2$!y!-zhlPA6F@JFa{*uzld=_im!&o4nTQ)|jC zkDe}`PlCY3pm_hpCnsbMi0TN->-YQrEo{>D+lRf$Z(!%ar1Vp3AXHy6(O>8i#~GY_ zX3DKNn7|UNjs_YeJ?{tK?DNFL(3&_Lu?)G`d6VqfCfuZ#(RBY{FFO(|zg%syrf83r zi}fz21ERi>l9U_+nu4Z(Ff6Af;}u!?N5Q+Jf4FIENz|HR*G1~Y;x-(=lq21JdH?>4 zo#&XJuI`>sQ}{?x^^LDbTluva^&C!EA_4)}1XO^>(sXN&h++8Dbq*ydG@ zhOV~IKv@os72joTSnU@W?Hh%>#{!qQOk`PAD)k4oZV_dyUpZ2^#3aY-?tX9IyNDf2 z>^8QOKbRNSxVgy%vEc|rzq*j~Nwy7BAWvid-LmRdd^KtfLjaaoO@HGHqDno1ea2 zt(wqw2$Z_}d29FBe3`B{hEI(XJ({;92Ld0o1tEMNi;cEg$17@F^V8)~wq~5^ zT5LPAI!DB%@so&7=38@h5Re8n6YQ|Wyk?@R@2i&B)>Uq?`!q<)%TSchoJ6T&-`gIvnNj)jb=8D z0FP*sq^D`emlTjbIp!k$O?(z5S(Fbl`iNW#oNS}Pd301&`Lj_L=?+&-y>5nd# zW!BboJVzwL4|O00-~&Vx!p>|a(;?};-Sq8Do-m>MeG_#J%r1T^+dZI5lm`67m+>;o zE;h^9!M?bH`8E|GSv-xAr8{JR58jnfzkPaFkhpD*7nGM=^WyjDrY`??w{vi-IA{0g2CGot;;@M{deMxD!u^49xL| zsc85#lf$&6o`YOVd>0s~irjYxA1L?lVt_nI1ItNOFVcd`Ix^tle;-HkM*l84`%jx{bC@pTGHi2{A17sIv|fcnPp&5}J?odyr5e_~?la61a` zFoPr(zJ>8h$~le4X~fWyJ(Oa2|14FgJ~}s90ixS}+1qT-W^Q2u4>-ouT8A%KK?qYs zX>hlZxKpjBx2{Q!qo@4rXJ@HAGVC*v_%i5Fh|uYwA5*Mmi%(tp^i`Uzk$j>d3H+ZHb6-|E4G(j z>E2yW0^*>({9;J?3Z2A<#(FRGcI|V<+V4EI=w0)+!I+l z*w8{S#+R$D8gsUk+K`ciTQf-N)CeK1gL}H^wm6N^a1*Dgo`s4hT~S?77JbzA+RFvD zwq#`Zdx*Xx+PamMjQ*w1ZR*d|z_nq$+UFw}_J-DNS^>;=s2=@9An6;d(Z`;3?-4GW zdu6*wEuZT>W&Wabo9#g?_0jRdv!UX2vvr;|CQY&|{Lx?tu%wGTn&uPn!Qig)!2QLd zvN21dttxomNXMgQvxddpvf-ypcs9nqjR~Y{HPDHzA|H}i=F;B3iyI~CQj_=pUa?d= zh(3~N&{BS+8+PD*=I6tIE+z7QBFHZkbK)tlzSAi0^EN-W68}Yrv-L48VSWg+8l7e&+YW74AA4^qO<%+q`iFQny;unLdYnYCIE_8R zU|r=`sXOm5lHCi%5zt6GZZ4ALIjA&f~l<3 z$zqatEorrjmI;sTs6OB!OnY*@2y@biB}|zvxRt4aWWCf8AVt${G}!6?7eR+& z-whw2Ehxd4?&kb|9`$!0~-iBLkme{E8O&@Pp z_S8P37qVz6qS4Q$TgUbEJ}XO_xX3{=Zg;QmSFf%Y0n#D8Bdt(4P`JYfRj{@RjG<=o zO3H}WJuy%aZFp0%Dm1Z+6~@NH{-L8akeN>e(|1VwsQ1NWgD5*HGOWUI^beaZ!KT}D z&tG|uKp6=&a&PS4gXpR=_F1_6YM!`<5Wi8{3#}1gO#-^#CW)B219ePrc*#8Du$V;x zjKVsnRaZ&%-oMEd%+XT<+<$gwERk;L7)G;WN0)q3D`%|7^7ubD92+#FK5b#T1L8GX z)!%^Gn%j}0{*0xBJg)3k`#Z&gNCl0zlhPtMJj6;ccMk+!+ez|-iN89v-l?WDKSu`j z$ia>#t;EvKNYm@j3pwV4uRitj0c(${Me)4{mt(es1`gUHSlZgLWcaXt+GAJZn(I4a z6MyjyIAUF|{O{!(;|%3~((ZB_*)-NT3r(t1)1i=^SqX8su3y#6vG4l+66G6FZd)W>7Zj=a zUh`LZD11m0GRRy>Csp=_wac1`tR1i)Wv7(|z#vw(DY`jZ#U!&$q%xnJF{Nt(o~kKa z6D6TR5I(`$rBn?N7TvLTf$eH`n!fF|ljedEf5@|;<|p3rbmdmvJu*67?Q=9DpL9lt zL{Q~f5te;AbMNP0&kC{7>&Dd!d_)(N1$8@s7b^EEgDgMuC@1zQXWs@SMnJviNDGD8 zmG1}x8z%ifx7bL;`p723CDOFQ-;(}HaNNJthGZXAx)I7$Wf{e<(($*D?xihy)s8oH$D3sHg z_8UjbK?Q?510n(HaS=Hod^^X1p27Sgz@)Gb+&Lou<~BdAZV&kb+zd}In+euA3hThT zG7;1D={w5gBwg%1uB@0N?ER}e%@S$(wj|-#Sf1a13%qli(=W`vLa1BdCcXz3vB6$H zTlv&X)+$1vp&*oaa)b@A^;NU8-d1$e?m1JER?k%K|3Vkagi(=pH6i0qB z{LegOF229wB*e{o)J?e09|gPlEy^wRcS>g z&qY!mv?d|r@mcA_yE?tV_`cIhVyOyA!<|XnT$Fr@J0b|gY(@3#Xa_zhJT&GmwR{w? z&6wnov^EZ-*^bkXKBNeU2^(d?gvqw;9Qz!-A|?+iUiHt*D5Y-if=AmrFyH~-{z$sz zwSMq7Cfvx7;FVJOu*c-@zH~yU1giGQRdBkTR8qrC6}h^m39OI8W9f!)TKZ9l$cgi3xZx zwX-PU@@1H5eqFOK0=w_W#1^;UANkkAnSv&gP28D`zs7CZ3wEm;B?b;=wDu@#$~2B0 zuxwX#Vmnk1lZ84?bXd=11vfy8kKK?*z@^&*F`YFPcE=fU$thu}A^{ogk>G0Fzulh= zS`Zv%2;=@3lUtZY5o;f!GHE#4f?-tqUm?bb8vTIpa=+i-F!G3r z8jFR(PHYUEqA48XONHysS~SzzFJK&Bv+cwq8UgSc)_DW6`vRiqDTgM_`_Jzp~P?gT$9}3aeRH1QSdye z`Rga9iqPlz?Pl{;by z>LMd#j#vO?TFgJQA}~m;+nco~fn(3a7HLUSG3W^FAgy=!M4mSzsK^y=OXY@?>3Ozv zKop?4baP;^DSg}Mf4tK-w>)fjzP)J27uu1Nx-%sb$TbNFMBbo{>$c6hX<857kGua@#VSx=Kv+LKzx zH%rM9{M!p@E`P>mN>INT_dBu56qAZ!(@@Q3Dv_RempcLJNQ*ntn)TjzIgu>YPgj7z z;sOWPy1_8B^$%bwzvo4KDXf(holo?$gb9;+amrdw;J~5OAS6PG;8Z6kv@@<=9%sd z*q@=@23Wt?;aaD-9{rJWpg~$`uF6G0-Au8!h1gbDpYISy(it`YgY;K}CGr zheZBhKl6waP*-VY<-(-XeIM+Xwk`}?Oj;e1QZOAlNhWFLs0nf_M=5X}AC>M2nZPEP zNx$aj#%BwFh=jmwTe(I?ef=^$4_aXm_U`*%T77cPJ^jY;+nK6X)pxS?x$gWki~2&y z+rEf19c0kopLPz_l+3$mybtKe_4W-5Ow!^_Eocz2(y#_FlW`#ZpZcFpmL*jBBSGo~ypgPXDNHCsY_| zUP7((@Mt_l(0-YTvLrYq2|}+&wDb`}Kg_Bl6BBJ=U`OTmGq&#?tuJTFKlF^t!U&{D zv|0L%n`C1-4AlP!*XB5k`{&EN4b{%H9B_o}k_l1f3=ONoI~h%+DE>&j`%uEm#U4@w zrwMvGRwQCd&siF!Nv#|a*J6rJZjN>(`U71JI$xsI_o3uN^=BRR55Y8Kcti8ah%Z6{KEk+4kh&s;AG0h&`z zBzYeY^Uz9CZp66Vrv&roB7ndLzQyU^~^kRJs)2vj8d^DLBfM?tV-=AEo3cKsjJzXm?4V4KFU%X*=pW% zF(}=dP4;3HLbng$v_zRn^D*29a2LF`?f2r`y_=XU+MKzXKTg{&Xpd1jZ1*>q-W5}O^a->ZVeiC}c0E997 zo$!%uvRuubZ>Yx*%nK?ITH(+yyq_u0uJgvDyE{wQ4!X(iVsh`RsZWxZ$~Nc@1q;F0 zuXh3A3`?VbL}t|vUYvdO!VxO?i$*WG2lac)lbYmps@M<|nGciM=%n*B1 zjbxo~)!el&Qo5wPT|eNpJooGLipcYbK9cy-QAEJumti1%TbDtYRd1xf_I?UL zf+X2lDxy1(UERB#XVtn1Y6}lT5{4PLoej3s03^&D#>2f1^!mZpb~^=}bs#Mm7Rb{=pC^6yH@G6A>{%{ zDt+fGF64K}uDv4U1i6^!U)pRa@ap26TWu{)#v(iAx#P&T!0XSo_j6C{tZ7f6v?)2} z{rfq@jPcZWgEKRwfGOcEAdYF z#+AafZSB)^`T1jNbxThCFxNZ2toc?G-8em#Oxq^c1hbTM_7)3i)aPwa(1y}z+Ln6a zX~oZT_j%i}j7J&+S#gr%9fv(`rz}E{R|a^kz42pGaj@^FJCdT$id)miG?Jc+*XIY@9TYrpQkW6sV0NdlL6s!nKLCrF0@_Mw$4U7t#Jj%Ujn zWy7%5nIS5!c0WUO)5qiDiM~*`yVA`7WuuzTqiq;BLonD%Ym4~2^0dBp%OBQ3JB?07 z?~KQT#Sm@3T^Eux+TEYePE4R|Q29SBHzEysB;+jlPBytw>s4}%6*v4(XNLQE?NOEm z+I-80EX;ES1?RLN$CC4f=bf5kgEd*HyNHL6P~1L zWCQe%meFo-8OYPkunydIb7vaSRAk0GmMztgBC5-iXf(H}!YyNLU*XH4-;AYJ?WNmB z=sTaxt=~R+Ekyex*5+S>&@o@O0mt{X-CUB&*F_nNrx)$F4IQCB^W`wPA_3WS&gG$P zDv#=HbYT8i{01eLtdek#0k&ZK55?vF20M$Y;~t$~B@s?H{j%cL_Qob8lREy+ZCGOQH)|SyGh5Q#yMw?nZ47q$ zHE=0K0N?`Xqfd-np)^(H`Px9Meb~%0Veh6au)k!PuZjONBykvSJ7@xHzRE8o(F0ir zFRA}ffe}8|dF=Fkxi8Y)z!&rK{<)|FYmua|2%l42q6|-WPoo$k@x4-xekgSDUQ*|q zeqQqCTMtCn9xmBm+CE)R{#L*5y=~f=dJ+c=jQywVbVkgvs(HC2y*FE<*%%(qtNpr& z!}7Iu`-eizlq7xH7qSLieYN{;&`7vMpGf7k(B*3?ovw2b)Vv=}CrefJQZF_POc@UA zwp&KwwPq)CBxqIf_J$sZXLV#{x3U~;7u^|Zs+ygf>cC)tIqSA7VEVowJK!p+wvSMG zo<#5h&gW%MyPTua^%?0P;R}^lLfBeAY_VUbc39boBZ8)VUUd4$w&r4bf?p+9!GPr= zC{d89g!oPl>Nl8_w?VSpDMA&Gh0Uh_B@d+w@rH*f66a7iwoSxmrg z&{n-L6q2TzGmuTqo=mBvh*`(}2~cHPziLiUVMW?pMn^4}oIl?K2*qnVE~iy%Ckf`R zs<(^(QW$Eyx|zNmYu(-NHSSp0vQa@$4cxxpx$sOMBqie*cSL$jNn3?&3TTXGdzJ&n zA~I#At$Ynn;x}hmj8dl%)IfbA;Z0_(iu#Ya-Ag$A8)A5#f)BI%5o@5RC2WdFPc~76=yMgHO>PJo(yFI_9 zXHoRCbidHe&@n3=KhB%*jlYnY$BPH=!?s>_SVdz>RUE|O#ZAt;YJL52zFK|taT3b8 zVO0*|p1XctM59wHLTWTB%9)Q0Bz2YLwtTTQCZc3jT}8DFzsB1TgcG*K)(KkMC4iVE zA+oTDV{6>agELnyzbe~eM=@W(DZJZul`xj7zEYOY&0?D93yJa4cx)(fQot;J_Q_9s ze-9x%2&dx$g>}q!XhIZpeqRu1m5=(1_I3nhttv*5Qt+yUq7IE`9baOJl#3Y4zY?n5 zy6f8_$xE*TFsb#azRm|#?c+TvGfJ&lXY@EGx4ggxFB!C+pPFp+5r7{r5Sk*sStaJD zn|k$qIk7<%h(?Wd_3Jk&-wSFFsOMWd%-B|qS9e%3TKS}$SS}N)FAMpsCH2)kHH)*y zIQAmNhNj3ON%d{sKx;EtCZ zg&mziO!gxsK9yfa*hF8_gj;(C?q-6V7hF!0=R6m5`*2B>e8i5vk2P)>${wuJH^;=N zRZQtjBA1XoLQ|DM<;<>$I5MxN5zA@E+EhOfRmO!OMSs_u6pFTuuHBx}FDEXu zi|@?PzpBa`_jUK+W#n~o<0x{Of9RhNlMIl0n8M|g_F!oAr*ZC1C1*K|e7^+N9scBT)0WeW zs;s7}TyVfSL|lG!QP^`$3ZEt(;))Cp=H_!d+qc2_PxXs&ae@u|wR`lR7o1yi7+dEO|ssck9D)i?KXhf43exK3Nj+Cs`5DF{*($u{}`o{pz zT;4u3Xp?8W(9#VnE~n*;7JPk14!_+fIH$NSn|^#fnY%hRJ-6cj6DxHl_d&ejou_P3`F-6+bTBd zO~w`16Q}N{5>{z+Y&Zu^Z&W}&<@Hh1p86Opmh1Pr%xu{`w~Pb&$9>#Alrf|nQ{#pI zT-zB$NsK&%+S2!ZMHLd3z{LiqBee28`Gf8I36pT}{RKB|>P8*ejp|}BvE`&j7Iu4= z)Cid+w1@yO-ImDc!Yd$}EHL$aiO)G(5XM_|0Ti8AK|2;BlM%xwUT}rS#Lhf+QL&B< zUAwim+7nEt^RR^5R_2!Tf;2&ocgV@z6oVV3n{8<4x!yh9kV>zs$SjK}hek3af!=id zC-T;x-I6EnR_0psOlS}e`%@lsvV+1B%qL|ug@XJL(_UUt`%8=h;~3(M*~mwImJqT= zqoH6p;rm$Z0ZAXzjgqj>ytFJ?sXuluk}C7*ZpB0~#!1*klU(vw>64RVBQ>2Al5jUc zV0dUbi~+PN-RO=hj|QVcwQLhlhxY(k&kLr7v`c}bNn<`EkL-}|Ck=uqGlNt7(UwJ0 z55|bigx$BlGU11Y4$H05SOrwh#4@Fh2rF7fVoisWaE=P9Lx=``HBK?P>gA z=R4(cB7l*HwW?Aw92ToRV0=lN&I4(JD+58~gx&Nv+10%?$(OEUTlbjTW!)TCd7Y2?5-?#OC2^*V0Ba`;5uRj43SsfBU3bKg9!$>KzGihN2{Kml4BcWc&LBz z>5d@Znrzhx3j#nlGA!g^4ReAYwL=C+TeHMN4~pDc_?3W=CwPOP2S z-h83Dn-`*!vYmV<$NJHaW@hkEE?X!=5m#LE+{qCE7SZAWs!_~?%ya60rcf-OC}aKJ8^A$ z$4)+=yEic%l3zl_7?CAQ@wQk${a~0-GQlsyUp(`2z#WCdkR3#l>Y5}|7HQ{U)iE95 zK%vF^#SWUHBOv&IV6oB{6+eHfa@`^Dc{NQ!DOA-=z@_V%o5%|s;W5cXtfEzHvQG;dRY7cesAw*tcEL0xs+6!zYv@bs4_jSelF{NcWElRY8CTI)$fH5 zGwwT`4J=VEbTt~KRjM!g)z=Tl%(M}4UU!e2BB!pzSiW4`ujFfB$-R_0uB3!+Palk> z(T8DC#sE6t0=h?(S4O@|JZAeQkoPN~1PL*NWLkL`X+=mrsbcq(-wj895@m%1Fvym} zs#Kjh-E6$0Nmt9^9Xi zR68y2L>YcKx*&EF(B?ngQ@-78flJHf@Sfo5Uz zSSZ7@$61J`IDe%hQgB<5gJoC6WhpD19F~xK=gi3rK*D{&FMywrxkRm>(seGh}SJ}bbU`GJ9Xc@k=4u5-3DN~%qgWM~klqnRAm^UOpe`NOwz z>i#}&M^?)WRwRxfp*Ad}eEW}lrbrnpjflPH@gtJpg5p8Esw0|QP zB-4<3e}u=Bjx0ZwdXBmOZDyp}2SOE%QasOo?ns5E%YeTn@1fDlvPmGS$}xR9-|$aG zy?=*WA?}27?rOLesScKKtT=0r6F(HKw@n|%dD=eXHnbf~lY(Pa%?XOfV52yif%H70Z*EAyYi)z)RLOAZJTqfN9B}_pjqcRN>*^*h6aK-GQC%O zMczx|NGd;mA#sc!x|qLTEMX7?e>8;AiLsF6@P5GG3!a)C+g7ZHLxtx_(ZyRIWvcg} zs$J1>3_-7nW}+NVnm&FH)v4`oW%u85PlxNY-{RnJdyJhqS@)ZdMMG&VNEmpskEy2>yZ*d+#{8 ziY>%FK|3Z~JMUNs$!eWKAF9e*3*%bC`EJZx>YlS5$X@Ku#9pN}0wBr?4IH)-y$;cs~ zRcg(0u#BT|MJ1FTmoh-O*+)q#>>OO7LaBQb5zU+9g?H@Co?Df#E-iS!&z`b-`Q+7# zo|vwYfCj2|0@};{DRqA=x!N6S6Et|}MxUcV_4T!yivbGcvfN=w&<{6GVW|n)UDFwV zGs;+Bv>aIF2ASb>b}WZ|613WM1IPJGhfqS@}# zl{>=}S5RW3MJ#!A_LLjneMtifg%p`=fv00&6@6_k9*7qUXF+(w7#96b)JVU|(x%*B z+xJS{K@;03rTIpw{Q}fVou9f?%#t}-x0D4}W|i_ERekxM;q^K}-2m6a0XQs~GT$5t z5M^>*y15>BP))HV_bxQSbkN#ZAN-kbY=KmL$gJmSbDv|A-c5JbPFi!DGitGxxGJ)B zMa0o~8^L_x;}hy&)H&9dNMf1Ibp88*wyhgkP8V8bUdi1XVT zaV@^CWax|;WdePMDKtH=%ue_Lowi{dApnUtyUYj(Q zo!T?w~_ zb|s8B&sc2shFj%UV{j*hCM2&c;%NuKA+Cx56uP4Hlb(DM^igYlrVEUS5bu3d^vr=2 z!4b{?iUnhnp94YDWk*Orx!ily!c+}_R$c5){yS}n6*}e|9;De+5M}`R_-66pQn<*f zX5G%cui)9WS(kp5j)XNAlkP{6B`Z)^*2VaCcje8kp`ywhQNfUBf>JKve5n^1W|mts zq;>N$c=9wxlVQmbMOehd)D1$;Brr^!kk=NGOrk+{>d>Lj~%LGiz|d??&E7hiDOT&EL#z*PmYlrjXVDY+~Z`;cwI zId+Lz57#4U;DNM^PZhPH5}Pyqhw{+OUpjMk%JK}K-t*wTPi~)DDDQF4z;PeBY@QXO z*l#JZX+b`i_u}`m$#b)b$l&mi=tcToTSmti4D-ukTT6s-=eOjK`lMNR&dd%(<6&CT zWwT0FxhHvUwxWR(CqFyKaT0lwUYS`oEhF_Tq}t`)c5A_Y0~kr1h4q-|>$V|)*0eN> z-slqClyHV+7W8VDMKdkELD1ylbUh8X`3a7%!TuzWtApq#4EvD+0M2%tnHG1=Hs_Oh zU5Y%-KnqeQcr(Q{j7vy`t=M$qkWP#m6>y*6( zYYe(vZLUu~iRN20sab@IgMGfvw7I)kf;@y5LP!rN1<{USAeVL8{7VkoPFhzH!?QdP z8KNv;5TR>~Mx%AVM-CX}_gdPrR}ynDRC11tMwyq zcpcsA*VT_rY)lmm!z_fh?;&?}&6*`ergzfAw1W8&1ZO-F<_DJ{5YRkw!@JNM=iN{$ z?LmTMd_PeY_%$ryn-?=6%yB=GtC+Ck`JpO9>Al^AcEIw{u%L(^N;P{Hmy}7QtBkY{ zLU@xy8;cwEl~bcAxi#$OtmbemdGR&Le(Y*mQ+c&=@TOshtR6ANE-Utkr;^K?}*WGeSngH^|l45Lsjv@4#70O{)&x5ALrO9 z!KxH}YLu0i3vOjd5e8oprDdTr_Qda~nU}q)XTu!#(67seiyNqQPh2CljZ?+9<@1^V3yxGOFWtr!ZXR+~B_Q=|mK0t_Ag|NrtiIfr}x1-#`4mL^6 zPB{}e{e7RjcC4e+U&1kd{yOXxIfzR)7KDspL zdL_%wLXQ(J6qhRY@!;R{t6ke0bSK;x`-eBP3#0PZGS_V7T3$wd5J9mvV&7vz} zrLrA3eVFa&lB-;v_($*Q|9A)__pYLN6cp^(d29x74>9-Hl7b5M{Iy)AJBR!?-KR#{ zw=sJukBo*yWA^^r;`_TTQ{|e}WVHXK$0f<9L|#zT+3pXi@e1mnkw)60?&S_xet{_*i8fqy+pPbrkZLzovEJ^3#lMV#_|tBjh%bE!nml*YYF-^Zdbf* z|PH4Sg#_%DoMV8BTaFI2ffPcfx4uW`%Jg2>1P21tbsAe_ed&=yoB9 zU8s7Ldm<5N><|h7vVtZ2&gwg?Zjz1nVFtBRzIqMKpn2SpRs-V|rh(!XMND5VsIgEPGNHlN-;2j|PSGnoB$Qa@Q;FW$=>PnsBrOXkk z*&4y|Lmo-@*UxFPd+5Bvnx4|TWos<8UD+3(rk^=1>)*-9sMCnrJRwX9~qzzumT z%y-NHAT9WT{t_W_1s+dM5}W}gh8A&menDU_puD5&!5RU2?C2iSUu&lu^GOLO2+9NT zgma}PVKlTmf9?}=CihZy`oT~}!nr`Tp_BSLD?UQJi$zXFF31*`8C@-x_JSh&*MYh` zks{8(!_v2oA&T+*<}@}GpR&MCAcx-#8l)0(cLe~G!=e6+k|1icjWXK$g^Rs)TdJ+M zFiL4o>kd6}avqN<}KrxRop&qjYEKQK+)d0JtEhle`WeS4S+EF0ik1dZVu> z#R_x>*!@zlcy_=Hl-3087gJ$2sl3!Yo^Cy(WkkYBf)rcbHt6cWFKHZ$>5%f~Y!4ZN z1vkeGMs}g1ET=Q1w%tRH?Op@{ka*3Ntc3i@44!$4%4Sig9lILjQa4sx#0BkiB^a-5 ztbf|>-A$n7AT@*t4NN>)e@Ru{qL4H}$j?CQcqpov(Fr8_-M$Y7Wl`5SsnUQpIu z!Ad77uPf0BH+NR->@!ln=V=ZHKiM!^v&6)7)4H~?ZR2(!EerkQ(WiQhs#bq&(d|gx zEn);g_#oYlgmsm>eVgN+lb&%2G5hF0AW8UqUvmP;bmINQM4Y~%2f++EGHCGL>E$vY zmmX2yk9SWtQJ1^ht-SZaz>a8?DU8W0gU~e?sz*S5eBIAmnop;^JqV6Yq6th&-L>xn zoY!IP9M_P9))R!g^(P{hP1P@E+@q5&XfNZV2)X>yBi|C6pUYLPG`&e%EBm}gs>^=d z$_=?w=2ioL3{Rl0G~3-&wP_}}EzDt{RB8(G$2s&MxOBbAwY#{ic6`K6o6PT$w^W|W z)0E`eldhgaur+2A^3>8~;b+6u)_?n~E19qR9H(T_SeTNWQ$|9iW1l)#4yXy4lix7W zJGqaMz_fQ>wn`GL1X=5G?m|0S-m(%-4jpuCy}$O)kE7UnoqZGpEp-v#KL1Au*lweW)<*6oRFCL9WlzAfsfAKY=%`Kz`?8I;UfTu!EazHI!XiNY{$ zBLTp$RA?aD+AHW^P`zY+mDQN?s`9!mYlf;-?;MW%|yjR4e;^)e|m0bs1ab>4H$rSX{Zw*)zRn@F&P-aT!@t;#|$zfSTmnMeU zz-SqL9`=0DO%icbqJ16roTa0-!;X%h1w>r1lbila0v5ImoQqOJ+ zJATe_7oEFrMRaQ)?7a=hl^S;^;wt-?k{ z_zBa>?I}|kN9H8Dkw0Nwf7dHYWaF*#J0ZZ#Mx55#)Bf1?H{rtoLm|qlK-GDGSZxs0 zs;{HY)%E3ko=z-;2NKMENgf5oRM~uqVv}(E-spgwtyrc-mEgk>$uh<&xU`ifGd-~- zxCdv^h1rpd{L3s+b$Je^h!5L%P7n*By92kRH4R|5ZBQ0UNLX}iX8#a)Es33iET(3q zSf6_$w}#B?XV?(avm&D-c|#G*Va!0NRoTpwk(tN`6^f5q6ay_#t96qkE8ip(NuPY) zT?TL=9$zV9B=!~phQxEtWRQ+sE(@vD{pDM|tC$9s1!h=8_U*gPmGR6HQR5RWxDEAg z7U8UYxo*b;{%xzu(bUMr36NPbS#1TyX>3fKPNxvJu{y@*hfv?t2)lm+?j%lb($jv4 z?#u$i*WC84DbCYI)#cqDicB1F=`nscbGQmEZola$LuWtly)x_V%~=j>e@vOe`&`ejJ`_i( znzOT9fp#(tMG?$TtDS;hdA^T7?RWKy6`t+)g0_~#|dQi$3KTs8KQ7buM^Zz96D#yNN`_{&@-(7^a6zIy=0{YeK*T1 zoH3R%VAQ$6L7dAcWi(grv>PXR1}~z=4gi;lB==3_xXsErYkP6tX;?ys!H}XoRI9$n zlp6szk(1#JlNBM#@bcw#%|;>1dP1}3mU?y&1PZm0)>Rz+zyoTvNOn~(o@TrzdYVQ& zr{(?;GK@gC_f>9inTxv?Ig>RvB4d{@p{5wYwza(>XuV~@2qAsIq>>sKCDbrv@~{PI zZi;9%F-8V{nD~Par)$IL1L8M(esr^#X@MsIS^v8K^p8?-XcCRz!c-kg%@Vq&bP zV)dKtqM5d#nF|hz2KMDj|Ies&T@OC=<`m`7E9@~AMx)RnnmyJrV_*3z#2_qSrC9-~ z8xk$BV$mtaMST*ML;iJnRb`bv1`3Vd{Gh)%FXOB46fvf5k%ieFKwS19hE-(p`S}B< zpT2Jng0(tEV#KOOhQKEp&U+3#X8Juo;fKct7!~J;* zOxhxuD46z9GU$sy7TM(WoLtt7@4pPu=w`-mM=JIa`06=)d$_3Z8DqUx=ZI!|D>svK z)1=(IQ1K-k1U@!7%S<+Y%m!L9?@&ZCMV(2cy_BZqK7G_2eq45Bkw|M~T2*u-3BB;~ zq_MBfQ4Ddn)FTTpy4S7B39QoW5qrq0z1br#rX#-h0Ldha@P4zkOkEsrm(%9Yj9Q)! zfx*%<&6@O>#v9Bo>^ITPweK*RdfpzJ?U%nq!u5MO$v;TbXK_ zJy>^hdj(nCr8K*s7Yc8|9|2TnWSrx>Pa7>Hl1Yo&A^hmT`Yf~Gvn78N1EanKv7zpP zJYnymkZ5PihsU4Aa&#A2x;8Dz^^|}PBibr7*;<0n`wplH@1HS95iPZ_WOwpeDUCCA zRE7o5r5wV>Bpw+slFDQ8BF;lE?fMErxEMm{a2jR9u@}T4$hP}wC7NMfSte9LaMERS zJ-NT+LR(5HeUv(6m5wd?7onIlET+?tw)Msgsdr4ve)bVJVMebc6)z+9)^Cf9vBHUr zWgpVxpFnpiDMnb%`be3qsf(4Pt;o8~0moYE+cec@zM2tK+B9}B+Be4ONkCaSawIK5 zZ*HgTPQ3ByL-sV4mF+bv%Q{}mZ)}z?uy^9W ze4mEyTOPq}I}@#iXoO5UrxQB#if6bDs&K80X&8(UFO7Q+YA3%r+vchh)INizCP%pnK%CbP zGTY~ktu!kgnY-{wN#D340SB z+)Re-!BU!qO(;VM5ie{6Z_ceO1k0Si_E9P9I2P1fvO=5$4vk+_k-V!%5P?aWVqIcr zF)1*@M&^XSq37z<$ypr(nMszTE)k6@J_u^kjG=E$jE{bRn^v>eDVbxo7jCZ}sx(zC z>d=Fd%#CDy6Dk)p*sv-Q6V7_RJVElypU4~Ef)C=(0sr_ zJGE2{-An%23M*x!9wV`~W$yg6z#8X%Lp;m=Uu*%D|BUUu6!eitM~4f8kl%+1zm8qi z%|vHQwOccq7)x`|&uza-`WPt61&2zsI>zpHb5i$vC|Z%6l;t`~8nbFlhPIh{wk>E$ z*>Ks)z{j*Kzo42d0^&-m0o2K^LC|`zs-9=YCjUJyDa``S8%cqFgVN~TdY%LK%3o1C z!y=mU>=80IR2ACY*`01AEOo+eslKX*rb%xa@b(<05`puiGxW0O&OTkf!}mo(RV;o8 z*@}#4U8qH25rs(MDVJbmJe8`hjqv4*6@+gNiZYxh9IYXWNUTFc<1Gf;6jv{OAc zM|W&b#&GW~`->>N$;0MD@-6CUZMMcQmt1>^LaS$Nmf;IVq-!nbxmI&}s0qODQoo1% zJ40Bto}M&wr+NYnJwoow5=>5Y;FWdA)f}T&nn0X!R3j!_gx*B3uW&a+^Siduq7R+o z0+}}#VQcM_K{NEa*sf}EP7v8LMY>N-S{OU@Rbds#LQ|czuH!%L(9GC70rqo$`!C5Q ze;y}xJTr_}Wds|0&_w^Lzvkuo3N;a7N#jK~Me#*Q39FpyIUOgBt`xbN1i+ahzBmb* zl}dNcbI4=f2rz($Em!(P{F)L@5KuTceSN+7oWo2lxSTtlWR)HpmZe~xFgA9s{cvjY3;rb4%@ZK&yg;Xs;<14;=nD+y@kQ*UV-Aw^ z@;;%>uWO{Fm9+e1ES;b0XiuGAT|q#zLiv;R51$E5w7rtYtXd_`H+66kmsvki^O>Q|kIJYhQ4fv0=yv3b z_0eV`I!1`>cEl&)ZB3KM{MS)V84K(p5mO}%A-7t*DBiUQ-Pn9=K4s;UAdQpkp~x2V1it{O51u_fe3=9SxId{D93KWiKP?yWg!M!^ zbSp=wlprh(JfX5HCKR@}j+>Sh*H}pnjsK1MirC0!xo64_Db|!T(cUHCiMcnVpTpPg zz~;_mNiN67e(YhJpd?Wp)<0|uZtD8cYP@m8;W1n%D~2+Phc5%ra>YtmDW#o1L{Haj zXu)Jr{|CAb?IUrTmWS(G9@~e>yTzL+<&QSgx)C$(`$L$qBb5p-nwYdrK`S`b)5F^VvGT9Y=GA%ZR{JASr);KP<7p^=yxQJB0(8dzli(Hg$HU$b7TQ{PiDC<#FYHu5?LnUBK^k>|e8)4V$nk z9}!}b+<7YX!B9g{R{Pt``;ULtGyL-0;+S70?*+N_Hf#WPX?8Q+JU+}t>h^?ZWYeyM z$*^!x$i$i)QDt&v?7q~oDni{aQo?%=j$NV(C1z-6p0HCr`@Ffu=P8uANt#I-mz#$+ zXzgJ-K(sh^*p^GF35@Z%`L`6dL|OdssEv_{C$B(rxv2A~#cOyp>YWCr^l_BL3cIRm zz08cy{NXR7jZv?b8e&bFmX=8EaTFVA^tcs&E)WC0=q}Rd?>RR3&tPyQu_NW+T)AgT1-I@~ z?i%pe7yYUN*E}_8xVvYL?zO7sosDl`L&%+(@4|;;)ORv#AgylI_l>{i3UA$v*jR$R zfh}qFgv0w~Ir++Ss?O<{3!?}`p{Uq;r%LE25?P>?w50q1#AZS;_EG6mUhzm;U9Ne0 z>iRG=JiX(#s+uE0){fQenn=>=W@gkoX3m%AD5+Nu1QJbt1-Tw&VsSl@UbO#f&(gfO z#*E#c%H`n`YVLSgh#*VSw0VaCnwa&W2$MApEipP`IOxxBf0n>?^q_?FnRx%0M=*As_bXJ-!#-OG42~fT1 zU=f#?o22u7fVI*Ra%dlIAYR&Zjz$LtHPhivY;+gfMR!DnIH<8YX}$2&EMUkI12ZRy zIDAuG4_#C`XY5TQ{zxI*xYfPDjFnH33>|hz2AoQUcPlZB->L#@8jEpQsGALYcMWst zkQvabKf;Xx$jyush2hDGq)=yi>;Ud!&`e8d=k_Ht!io2NOf3!oJun0ENiH>=JlEanjJF2^N zej-PefA~mON{o@eH_bTP4aO>q1H8~bB5B6&3pf)YxxRNi7WuN`!$3ZwYNfp6@r$UB z?~_o~uODYCHC*g?N|*DWjIpcWvSDj>^J6j@lsgZZIC`~73zF z>xw?^`O^5Ld>zs2eKGM@VYIYkvY?QJFnhC}VJdp9gkl_M45?9s3dFl{xmIMK=klyp zuZ3z|49X0rZsnLh-=1cu#KeKIQtQ6Ytp*jbd0@=uI8fB2OE0+H0|jk!=k*=8SxU&U zRk0xa)D*4;Jf~}|)ZyCZq)>HRa}p9J)Z#j@6(46i`Ouc5^^U_^Fzb?Y>X1FGX5u@!B|G0PaN^B zT4Enir*HLarRIB>hZb_3V*Dt#BGO95GBy0MI%q6WBqpm#1x@yL7vx}s zmJADDmAM@L^qCki@jiE<)5ybZo*ZYwr#xtJsIVP~Ikl?l`^Bl_wJm=4A{{+S?Y)<%51Dext^$fWUgrYN}K&uX3iU78d?cYU)!a()0&K(4>+&%2mb+(Gtn zK)FYqnd;i6g0(>`vFCO^*LlJ4KtU)Z4+S3+4vjlR8?Z)qGhWrO;3{eC_+u zFtA7fIU&Lgl4R|&$~Qu0WW*D~VSNHEy8U zvl~4pC8JB*)nb0N7D_is;+uOE#L|!kEb}*O{5ti89S)p^_!DQ^x)1i>C)_+lgW~ow zFnyH4$-=)6RWNk8l(sa3An@a8O--mXZzQi=sPb%)AZ-<7J~~@j>%E|nE-$(v$KnBm zgE9pN9y3xXj4kM_*Kozx^2ka;!}mO4E~(0BE|%f?P-Etc0{$V0O~e^f;k)X{>`k2R zt0yHYLV({CqgjEi;pEQ4ER0xuDBXG5qx9Vmlfn+u$9Lh18z_@6NFz?JO04&wkz{Yq zN=n@@8^f_#{|?B041wA2(7G)noM|1}lDuoZP(etE@P(um;(_;Z_BYX*z;KGLPgz0j z`-KZuS0&pdTFbhu`+baxl~idQGg#!kwr>YQ)W;ROts22|i9vzJ=S}F8CvGEGz#Oug zgOIWkCKFD%uU6#IwVhZKio@>v8G%}GkgN`A0W~eMm>6+_D76=F7gm}tr{Yja0*9F* zy%W)XLK92L5QK{M$1Pf+GQeSco_HQ*lM&P@)$o<5`xDx9e7ARwiz}mL7p&^5kFwa{ z@AHVp{=Hdu|K?!{^A_rpD8ryk!G=`hi{zxF%FnicHm9V#lwSrThm37J6C4qd(B+R+ zB0Xp#rGbfy?yvw6vD*V*0Ldkm`vB_enAVE7!b%`J~$xP9Y};<+8ToJ`_0}!K>>|9#%fm}F_Sfc#qUo1A9D{bFR2b6j_|1qU1#`Im!FkXGO`_w zyx(1ov4rnP%CRX+zuvB*Pjd{C7@Hq4`I`|GkFM&gpEzRI6rA}xa zH?j|Da=pZ$t%9n1zE?1uUbYPVYEMpbhjRuv;#Q$#m&aJlW#8=D9KN$QM#JyNa6u;a2H-?8~< zvTemYB_UV>gXT3rfr#So%whjDXmjJn+>0wGqu%0=Dly`_)Xtx~-6#wrC3cuHxTj2R z`eilCPbaJDAn~A1@;m%5Gv7wV%DwQ~l{Pma#5(7iY~St7LOh5bY%cq8@)=5Wf`;Om zXX$!DTNx%0KUMlZ_N2koOZW(>6Mi}u0!NXW%-6J%Vd~cA5cwYsBhQCQui^f8VixgF z@lM7%Z64mc;kMaerDDF|%cdZj6PIN*v~42o{NB~1*SS%6L`%}Xq%@IEm#gwy2RVxn z1_TusXf1J>1oKI)Zx0*^Dk{k-jc~IA#9nrUm>%O~($GtpRL)PYXI95BJ);jL(Tscd zn2)R)a^&*RkHQZ8-DI4Qvw3!#i_W0t*R2(YYA=9qh9;{YNNR8Kvg-UhfM8@EoK<-W zH0Cey=EKpu{r!UZq^UdqKJS{BczJ!C`m%7p3N>S&`Wa!<1h+^0Ixn-A+ot^(Z9?MqZe5I;)olnLOeqyBCrCbRiP~oOU`V5_Wv0XFG@@B6R zN*aZX3scTbXY0{MKG`GZP%p%`^PXIikTIhSQqROgopeP^$H#tFGtc%YsUo55kk?q{ z=(nowZ1!W$8p~uO0{KqAiIQ=9@he(Wb7U2G$-3R=$5 zV~D7h=172+>igo>h4~pdBnGMd6A82V{RYNB^sz$>_hH~Nyt%YrtOk3O{r6AdzpUPw zVKEZHTrjDs#{2Jy<%BA+dsh2ULZkJoqT%Hz{u`d}_3Mu%^bV?*{hlWG0>vU6^v$-f zr7kbC12(2#jycKELB6?z#p7Jt>Ejlx(5SWt-P*x6$0ge?AE$R5x*Bt_O-Z$+FBQbh z_hEIW(l+St?tsPlJr3ONe&_5Pe{l}=u2+b#$w6p`Em8UM#|F!1W{lEv=UHbxP($$t zd6;1%duU!{NsV%z-#orQt$z>yCeEj{E~m4x@|Wt+N}Ph6-m(X#tNYRTZn|F624-RH z&2u_ZRVfP|L`B6&nEv|5(<+Lp=9}hoA8%d;m~oT{qiOe z%*m9eaFIldZdsd49nl$X8XtX?+1xfe&6oulnGoh)J~^!Svm!SV5hqTi?%8YV67ldjeBKA>}UV;nCu8)C#IM)nMf((97s`}J9pK$Td2~6@TU{Xv?d6!Dc+ANr@XX}D5hh!ZAZs}1aAqdy^&)k zl4mRB8FMM5iE7qR)#CEU-?X2a->*HnsYm-yXCFUBLbaiv^kR;V=bYOpV9g^^|=kGc1c-Uw~5kdh&3(r$zBy92ZWY-sNti1)6|S!SDki< zG$u*ZZ{sVBA&*gTo(C-~6nATEO#e1_T6h7cUXGP|Fy z=K>`v6WD>j#tHHZM9o9rxex_`=*3yzb??RY<~ zguua-9cdu{6k=^gSSQ07k#5Xp6|_V$U4uuU9FE4^Zb+;@gM=>y@E2h@@nsm9gawQ^EjJ55^NSoCL&I>W^*cw<)kB|(8m zSfYqYKsH{ifa$2Ridi>W)zX&lCMpzKLn;)ePxJ{0&X4HKj6J|ckzQb`vh^ZnirV_d zI3(MBaNt!l6JOS4XC~{$#9WxiIQx?2B`0k=V7d!PNvbwu<%4iJ&0# z%SgdA7{j5>e$zvphJ?Z4_ zphH{S;S4h9cQ}j~IMf1>YzFEW4jk(JasbT?rBrG3q+L940$JDf3#`x)`r1vHtJl6A zYxAvtjsjf1Rs;=^@`-sBMkcGSoFqB+1m&tVNXa`VVDqV4ugIMDs`GxF_mQ4Q)S^Q+ zjJ&BlP5r51oDqC~s*^-x@ku_}!Nq+ayUk$?C4Kcx*>s5D_1m2l`aCwg!f<2$4cS>- zy=lzsRGvXZahAZ=)52IArS8moQ%q|eKj|Xrlk@dXNgZPd$t%A#KN7C|tL{D<4Z#JZ zv(oHE2e4xKbhaTItP%)r*`_X|HKF29`_xXvX6QkL$jw8?O+l<`MV^62gi5X154Cru z=qsll5tFf4v=IjTtW-*p-g}V`PNZF(g?ltyVwGc<#IN~Hzq5J*Qhj2gcz18@-W{yz{syav1h;n;BJ0JSHC0L^xYuo*(ZGx| zY_=^Bs9q&F^4!6YCl8B0ZT!x6?Ud+MnFNr1^!H7~x<=PAPb?d{F z9<)~JbLAwiVPU~OLMg5P;>PfX!#2+5CJ2Zao;LV& zkmiMQ-6!?_Yl}%oj{C#6W7))`JXTf$Y7F#c?Oaat2)%V}2Jsl>HeFxU<4l=4)-TM1 zp)(@f5oTL)XAUzJlcn%;XO@Zn@oNVJ{+-h^Nte~X`rOgWxMp<$0U+cYpogoL@v&E__`Fb)(QWC^0A2p zQu9f!!vfJHvb_Ax-Qwh9OlV|F<3HlVUs>$9;9&*aTVL2qSPsZ_WqthfhfMZ)^uyC! z43lHoYXMvkX-t$fHU3M4hkWM$&$S(<(p`7GnN_M{7~v|wS58J0u39i}?CS=QKto*h zzf?1PVFmGHxKd1|@NJzIp7oa3=}GpXgTP*xFbynL;WL94QzK4qY_}X@PPPBplZHm) zC7fjN;)DuI$F(oEPWOnb6HmTp7?JdOo6%0mZh0bXX{{yX$E=NPi6t&k6&`h{I2Sbe zIThE@^bCqdXw-ccgVUyzRz1*dn*mtr#~RRck%Hs*!D7^7ZqV1*om-xxkouPwLaj?6 z?cA1c{8Tqf>>$468y4#zJ#D=x@ zL;WY-AX~hW(F|W~nwHU7X^Bx;Aw1DDch2tm<12GYK>>k$ePT0}o=MXvg-+H<%%(+8 zHD~I1jjmBp&VSnqD?8y7Ft?UF#B)$0u8MU-x!1Y6~2nbaOH(39AT4zaC@ad79xP7I1p75ga-q|y*DkyFF}BRkF#l;(m^_1@$~FdTfp%`0tIiOKV14vv5q&!f-UF&T#uZF<`sb06EiUrSQ7_O0Q{84mNJ( zNaa#<_(T$}Q^BT^sGg>qC1vIAm*~!XJF!QApfpBz`9bw~2d%XjO0sC zjN(FIO#s7YNdav=T0qp~edne&m2E$GRORi(eQsVWC^CljgK5!Bc}zmuiW;q;>?3K9 zq}uo?MBtQu85hw6k3Z*zsbN5ZksQsnRaH-rc^>w6JSHYGHZoQ~+12Qk$*dbdeVT!c zmMdLNHEhccuZJL#`4m}yY6iWu57VyANM?k(rI*jOrQj*y)#x zmpdLu=)z%OH!);W7vSfg{iEv@Xeny7kQXSXr0LD;wd~n90QvC92mBFz>l8QMe-MjQ z9C0zv4$s5s&RDiFV=nr;G#k0X&@EE1&)1r3O3V{d{wrKzfyq)S zgGJEJY$umg%!u7ggYPaHTKKtZ0jfW=Yv=%vE*4Iy$-!~;X7#W%p{Y{*;`>#k$LtZ% z$7Y*{J(fC5wQtp0sts91*X0hFIIkN<;fz|xh4l7l4=9H!Q zDCWP2Xy>aoflo5E%8zr?aiZ59(XYI#6PQi=h&utH1N;4tfzg3(=ey_64M(7bE{^c6Gd$*=40P3N&$(y1c?vv2vN14#W`M$v=n&xs)U`BV@ockP#=~@rq4T-J zEQI&xp0A%bk_u^)9S@FLdS2ntZxrs0^mz2(Cavn^fKJ?@KFD#)j?0Mf16WF?=AZvd zEDL^ZlRvL>Z{Z%#6k}{z4=1WgDFk>k1e;)OCs?Z(?eH{>D2%Zq0GPFsWPmF$Ld^S^ zriDevo1UvUh$+_H=nM-TQW^H9m1WZuVtA`l(Oa54d(;X_AVM_A3bp!|AS}E1RE@r6 z0fT)tmU$_mMdJoNwmCV4X5x5VEwPBJVgc11!;K>93)JSCgiW!1DWh2$VuNCTi}d>K z`wySYxvWPV`J2kJBeHm36YY>e{aE1F0JQSwGxR>Fwo8pGVFHB zSDa!a*SR=GbgPIff6FJvT_NabOxJ{OHhau9Pvs@DhVL?|bu~bx5>XQKxV034z9-7W zXvwXNC|sJ9UEJ@LGu+xEx$c^|cF9)EOc@gwj}hDUIRjF?CE1VL58voH41e%57U4mo ztVdJ3C)3ryDMY{Ydi@lMgwEg$B!@Z+sB$eQ98Rxi+nOfRpES6Z2q}6lIjM`nN1O=O zk{j%wJ!;vI@sFJoc2Aulg_?P~Lw?^Pt$va?%NJk4Gt(EwCt`%)q5hg-Bp;MYer7XAFK8@ zkFk>u8<3ID9!nl@S<$BiNiWSLb-miEenPTR39(FZb5LKEO6Qj-mc+{f*aRV8vo@_{ zzeWiNigR17 zvbpHz60> zM40HteR8!?l}-Ll;Z2V|$194(5H&g0frli$1N+YbbM2E4lKh-dY1{4?{97g(4hL&M ziLX^i4H>iKZmj4Bj@zGKRgoW>hwgo5#wM}?%QhDg!IhMpf8G|E^}5e6EXj8sbZ7PI zIFCgeNz^V1*N^n8W?Zsm6>AxslhIL19qYmyvTOZeS%X^hmaj8TrM#18sW$%RF+bk? z(TzLiJ4p+@R%irgFa4Anbjti4gX4lggdB7JtR4)Arf)C5I_<@Oj*zrflo6(fzjSxL zX-6Kl_Q&P{1CK8JyByyZ5;KLmDR=J_J7B?L=BEJIdA9kdV*qS` zeqDon^RGjWa#h!=1`@#Vq=dS+(ojboCpkrgqm8A8w-cL&5uqa0%aL2sajS3r2kSr0 z=*Thu69cRQqw7+*r1&ceH%WO3%>GHvn zasFNFj#jM=eN}fK)2+kKBMEXcav;-Nuyd2pF(Gf$%Xqxq*$h}1g__t3aG!~%a!0v; z;8`_?B`$OP5u=K%E?m59vLh)a_D?zEf*Lmsm^}BMVTK0=KREqE#bo$~_srXe2X0iN z|M`1;l52k3mK1cd*-7y6EJ@KqiKplOW@5U_aG+*nw{R88;veplaceDq3QaE8BbMaDe=>-lSCK;`^1WX>l z5EPX+lYJ8Px&76G<%7$&HPVvFA7z`k`H2-2V{<;m<*pyc?%-{-AD7_k+pPVX?HR{( zrorI0a#57rIJw8BO`@CuEp*rUa^0l(;|+$h9}seHPu1buUL-$ELoO`MY17w5@W$_j z0(a`QvggjQY8~s#FRHP$Qx~6yKgA+M--jx#n}0m^kF-iU-{xQaWiJ$&4AMVZ_(3h- z=Nehz=2hmsH1A5oup3o*Ra*Ofm3Ja2sn?W%N~(JA=`bndL9lQcnVHqm3qNU>|Afv2 zXT555rc1r*?7Oe@l$5o4izdw59b}$iGhJM#l#}d_Zfj9oZ%MojerPqmB-v*OVXn}Z z!N-WvZc=`$_0{*X3^a3i-TJcS!fkqqX%Ba7eE%47W^4unV%vVZbb>*}oXX0X6LqRn zbZ1x%Lcjb|my8mubsk z)z73-dMwRwl(gFG34V#blJAB43J;vTrEV5VAhRgP)`TZ^7(1&wYnyVgwDDj|U)ixD zje5C_>-Owugl4|dx8VYG&5;vMm7H*Lm$$S@QEiyhzd3xL*$Kt%^RU_WoQar)4)*-Y zqv1xO5YBd4{kWN^>0PSU{n!enT909hBVaZk=$7hv)ZUEmjXWfuM_($Jcj!*CWsoCD z?BjRGA(Fn*>oDjn!vFNzwPsA}IZNxIib74|+tV3;;VQFANvs673VPjDdtAcmc=eRD zRaxJIbR5Jj9h_Y~ypv%@NBzo20c}QPRA!LEW&_DAOgY)AOS9ZHDt=dHzE+v(HbYA* zS#2XT_;QGn5d6vGgrr>=^)2!ldpKCI05A@#we#ain@hH<<_WLx z+2H3P`*7ViQ;mnsUWg&{M&Hdv(U~cQ$Wp0n_KdIcsE#h!4B!nD16C*ca)LHD4gJvC zPB^#!PrvA3e0DV(1N8B7Y-k_o9qqy#mc!q^FoxY&DesXlOOv^+*+w>c^~XDfRhWNc zW^S2tr)aUw^)S%v=(Z=MVd!4c?u7ct_t#I&+ko{8Eq79$+a-n}zX>T%rP($5N?o7A zC5}(~U&%|}Am^Q{1uCO9g(N};Z1T|7F7s~`c-~<4>6MJd+u-W zq?+tL%RE9UYamogQxi_UBLFcX-1V{?tr>9n{$9&QlO4act{JstTc?H<&EP-PSvo$H z$mXU0`2!9X1aWCqZC%ZV^>dEU7N~4$!-aCe;EF@jOdpX)O~aZk{Uq~aP99Z=THA@;^v`L_ecCxK+#l0MMhZ5H z;eW(mOSj*1`A}Q$*V>=X&AJ_!M}uynA6x)U3b=LaDS zD$Lu-EwTAL!P@A2lSi$VZ^I<%U;$9>ex;3Tv=8(a=8fGD!Bgn%3%@w7aRpCa(D{zG z?_0K$cJY=XIL1eZ&Rw!~)38oU`V5#Eyt8^@G6@h?_aAI@x_@R(2wQXFiRdM5`}EYw zr)~7Qg$Qbbg*s#oOm?hzm+WKWUt03`p%@y}?6p+Js49VAZ}fa4dlh z(+f(fa36*|ra52$lQ(Rqse1y}&-ap6i+Bl@Ifb_sSMI<6wMg0)Fy>FKlv$hd1GcZN zIcBGJY03~n7x1{V|2j#{e%T@x*o_W}Tu0}_%_|0REJ=I$R4XH=FukR3jL zIMUb&G=cV|V}?+q>1u z6fWWDzYhytKQj0ax~sDG)#tvZ6`dPa)r1n!Yosnk&M%TVkQe1AwELBQOk>@)m(5H& zW;y*7*GbQBR?p#G%POz+6X{ni9M>@HT1bDjHnEHQc&f3He1jax{%c{|{8~d~nsf8j zNS3m{JNazT^}z<>`Oh^r>it7!4f7=@yQ(w!X!dYcM$OtgxZ|32F8B9t4{IcZS=wpXfB9sw%XK`g^|q*L`d`iaqc{+p%`oCXkGQeDDVQozyqmd{Z8*;#W(u9s`XuoYMkURg~1; znzH`%(zOhaTB*LzZ-9lgU1%>6X_OY}`Lg_uUJRP)MIa$gzA=W{GMVq{$GD8u4Z2ip zHqnAiNUujFPh4fLdfldV1;oKq6ExE4*Kv*Xi-f9eX?N@S`S`o{thq4ewAsO#-u?#B zVdoiwVOjdJ*~KPhU`VB^W|>e&+ICOiz1PRM=JUPk1*tl1j?K)N282NRjv$<&TnD*& z2rA5rLWePRW(mM(rG~1SGGD(p@9~#>AC5<#-jJKd7ET=6qU1UkaG#=lD)DM*rge+y zG%$1^nmS*$qfBP}6*oFDN4L1=QNMJ-n3(rK$z*%Yn62T+Q2|{Xr?*)rX}Xm+;yaK4 zqTNq*=U@eOIy&V@|9Jn=zLGKz%+*GF-Ot0|^X^EKT;?z)q8@6@dokq7SIsM2Ob-G-frv0IH`LHoB+%dE` zSL2r?=A^9;VNXp#VJDuN^V>)-zqFn<#Wm$js&#~=kI}92`2yJL+vJsR8v9E8dhr$S z*~R?lS%8A1@Iyg&#$qb3A_?^hs_7u1;)oz__BFKwLTRG7^YD`NRqq_;PB-XA`m$DC zy2A`hY>8Z}#k$XZ)blrBfX$thn_hlhtv3r;aG-Raw4v7&#+M%9M&I89%j-&qdcshi zi2D{EeqD6m*k`o!sovg&s)Um+3A&_1fKb<-967ltpT z#&=TI#)@Y?hDmDX4{JBQ80v6kDf6qH%#nvR-Xm%u_P8?AtbgUIgO4Pbn`)S6HPRuB zDz!I0=nShn+1dMn(74W2P}aV!R#vJ_3+a>R6%o@!*bl4B2;co(O5Luc3YNtEhuG{@ zpH+pW87T;j+8$z5C3R)1p!xfvF$hj?~!n>3eAwk&JP_baUDAmSHaivl#wGYpEx_&8)-+n(|3u>qzQi~;sbDNQ2272_ zWrXD?PJ>~uLOIzrh4puVnG|_uCa(LybL5B#uZAsz3V}bbWh^H&*AwXgV zo(bv58-M7XZ?wHbBCnyrov+|K1)&%25oSY z2oF*hLx2Hy#{zb8k~Sz6GjEOY|*yduM(*vJ#g?-raU;*Y-q;(IETr9j&9Z^?>{Z zu>8s;iK>Li&)v`sCxcWHGtCoytR>q@?FQo{8?Xd!jQ6E()p4bKm}P5&boIK;D2m!J zUeYNm_Nu;!uc4P&mh83n9RB=$>EArYi^M0=M-rJFN1t}34FPTWbYeHGyLo9M`+(_H z_U%&a`A7*f`1>j&$JXqvqYAIC*N^HcwRR;}b8+ z=Bv~G_Rk*hgWN#E8H**%#8P&cHt$?+kdm-K1p(y1DVtmOmxT_Msx=ES1}sWLimt;GCoO>Z*t zJ0_~{%i5n>s^NKM-C<5!vMr||s6%FedH-USGo_P=@-xPec8sls{W7(OqRNGgSIgu7 zhz%o)seTuU63?XR5FB}H`+Dp-^8#*0YMp1Ctr{`pM|@5<*{F(~iND>t37>C-94qrA zzZ!W46<*Fov3Y%ww!W(G5`;ambL3VDUPw_li`;anI4>4sH6GM6nFu$CAqr*tf-UW} z+2iW|sVY&@)IQKBTd3-|gns1GAMoP-B>Mh&j7&)}2VSnyE=C=%<~!;IQM$ZxM3`#Z zwK>w)Y*bb3RHVn_+ktQ@UY-f~U&TC`7h4tdGL3VCDGt%6xey&bUA|j#v1O?HD zq|OwI()7_#Z$Il5a)D}e-H=i^C+*7m`9;6KSmk=bR{Y$mJ`1rj^EMc@B5LK!@%Car zJ^W@J_X!HVuCey8ywTGE`t%u^*a-t3m+awWyxb3Sow_5P%c|PB$~)=>J!1UA6~Bej zd1Gpy?o<+Y#O%D~<<3IFolCUzG%cG^;-{>+9p3x1RNxLU=rA4JS&Lqb0vT>7*Iv@2 zn`~m;-Wc9|axgYe*AEm^%;>anzPuxuHKiAm_=zvV!H^z*-i0w)6ZhMGv7is~loM=~ zI2^Ll+I3xROjfJ)DTNm^4zI<_%Ld4on;F)Zy=x{(7UPDhG-%=J>PEin50t>bH5&!a zGOPg(q(RX<(C_ibv>q_>q@ismyZHt#EOZM_{xMekgj+MbN$v=`dnq6fs1VCfZDU6o zahw^Y)6vam1Bg5WOE$=vhPwaVIWu-R^s@3H&SG%3c%FXIVQvL`3_;Asak2!339Lw7 z@5R1l;j=ED;A;tusJlq}1HIu8@L>GK0)M_8jEOoM3J++_1^ zmgp5!+rP758Byq`UA|)aP$#Kt6R10kB{nu(2-BVsh^ci@oSve2ifdsfbV!h;4)Odt z23J8f3;Lhw^fV^dbilG-s?}N%V_i(022=YJo0@)qSjKdc3Sbh)t{P-$oOHE0O6lbp zpl+Y5PDt*`o$2l`m3I=O+7k-HHV?hKmlshzg1YfD^dd?l!!?M6X;3Oo$b9jvl-dKX z$wpewm=a53!ODp~Mse$~=}M3TL@NP!;OahX7ngh(8~YdJ(Urta)P#|4nJtkRpXIg_ z@wNvKiI56^kD(5Oamk1f3XQ5Ax&(cYVA`r8sdyd1@H))%X(G-Rb+Wd>-~jS<+J|ol=M}AaQ?gf+oc{3Ve_a?{E@_vv z+bfNT1|1eM#_3mIn3{0IZ>^{2jgWt2a0;fT}z!D=ohv88@Ro9~WCMu^mG}WR8tuiR3&a3(0sA;9(L% z-aQ9RtYz;Vuyqy;(eT%As+aK*FpcRZ2zIT*ncdORLyFT)9#)+1B*wySW_Ig~v+b5L*u5#+YK&E8Yk!|&k>xKZO({`ukZzfj%IimD9J4URYkM{u9yW_LoGZ^l z4v8O1J^RWSt*3_P{RA4C^M7h5ohIcofDJvy!MKp}Ux76bO)CIcnm_Yt^Iy-K-R#tt zYv*x0srdW#Mqs=omZU<=B$`-Kzggm2ajf2yR_Vhgm4k5l{@(I9IlKYZ!*d8YPq=L4 z62F;`WUy|HKA*fQD(@$o)0K>$b>4ZL#jH+2rr9iXn2>SRX~&XEK>PQ%k~zENQK@m@ zEcHbyHQ8>~*u7lDstw#(xj{=6GOd}MEz*$IeMg6r17C#-59CU7E?Iknt`aJPH8N)- z6;J&UeI6YFI9uhx%$k`J7e(#oD!-ZHe^vcDI&0+2;_Q_u zk|0aamvn!MbU%Xu9^FzGiO!=VtOj~kGVg_=Ds+^$)vVCbJ17TyYo;c z#GK(soM}V2dPA7}n?0~rDp>QpR?X&=;bguW#DN#>K-5Ms$TJgl@|QI7=o`AaPSjdA zCSt%%a$P?A#anvKgHR`M`vk(LOhA{^?v0Bzk)e#+N@7KREt#e_U0pBQ+L2Q2*)0W; z9ea@$t19GYi4FtcGCHx{dT*}#;z-@Uf5&^e{@4U08Z6BLn>pysf8LH$Zc9{}(?bkJ z9hWMZD2gKXJ&Ajl#(d-rVvT!lo4u9S#{^hH>6@xZ?e-umcl`Mv}trG}v3ra5apklnOH}CEon5euPT(1;4OD%LlrM*oJsX*2o3fYM$ zIIKm}ZRei@1?MG}dhZn}xvpJBvJfp-nX~83)M@1Se1oXJIC;r!ep|uyr1u|DuRgZf z78uuNR`@HIghD@FEpE4H4!NJFnS%-$=KqA7B+Li)ycT}`?T=!|z#{P>Ec zFH5iLL{zUjLORsid>;8t8x>*Wh+#G;3440%Y-DDfC)CfzHH%ch;*qN@;sb@RDQN%P z?6Jxy>Mlgp($Nh=%y;xD7>E?LF^sA?xrc|UNL@b<3b~f{%qnvG$VX~kOM5r&lAwBu zJ7z5B$1QdD4uQznMgxl2rmTR=*K{)m+Lw?GkPKkm5R|M)k>QsM?O1`??@smF`WiHICbup?!N=XPX8p*{VDAJ~Xo{?1IM#4lt*~%j5 zXhCGb7;7Fg1FEhA-3wrC#MqYYu~~(7_(VA-aT{B#f7-lF!>{tCZUE;t*JZ-7NL1Q_ z&W^BLsRr|Fa+#8ncEz0wo@?w+MX0r z)a{K#ysOOK5-u!pvs^rr7>HyV3E|V2{9(nkq~%tt-%HX8R4(c^7mC^$cpKyE=Hp0qn{aGy=0&d?+*Im@x)0GfDdna6IhdVnf%5>-3KepzwToMFC5Zx;<>+l4ww z)j7qO?mw!cvhgMnk(GIL(P6uij?(syoiHwWLMsJ^dHJXFytP0PJSK}5V_RCS2*N>3 zEPCsgGB?<*99I%ZluP+v&?aNikS=_)A+Y~d=U0by!miwfkPH>q&$6`w$GKrbf7?0j zD2#E_^RfVu6|Sw%{O*X#_$YR6-TOQ8>Zcjn?3c_E{sRE@GX|j+YBL1UEdIcOdB~a& zBD#H_8rGK%H#aYj%a)h7_7{JqDksnTVtvDBIcNi8_vxEK`!~SqlJ`)gtyNlvv>ix- zl@!?Sz*n?mKA!~}giW+}G6`Vt4d~_wrL3x=r4!Vc?w{19MiR77EKyoz(F$qcP(8i&cJ< z%8E9l9JuQ{hb(3LOa}@{zi&>iwc!sX5aCr!o>BhXmenGU_?>`qc|1aqu{dq~kS;_TFg}R`LW?Z_NCK{;Kc>{2y-njN&A4ge#fZ!i! z?I+?@Pz!BQ8OzlRw`(e#SCtA*6wAhbWf@kK*@y^*(#{jw>!>%~=7~-hGus@SY>F{c zR3+b6wa)d2T=LCCi%_Ga|C_V91auONXR_GhgY?DqHfJWw>*o$y7E`#k$zxQR;N?f< zNc-i;pT4UBl`-@|cS-NfnIVe@|Ele?&O4X$-kunCGeLW|v?M+1SHKy-AzDTU`!r%S z?X1|r@?tOL@4{9M7P>a7PIrnePBzK?$y&=|k=-!!s2bn3eLD%Fp@opvc(_>Ha$8~` zPo2grlMSvv%B!l@>kmNykiM%SNf!I3T{XxLC(opTm}|+}-}N(&%WTAHLby!-#fh!i zNA_8_sdb`ZdABM@8`%>H_oRr&_+KfpB%BnqL9g37wyH_f5Vb5dptGyyY2ME1+^pm1 z?5fnXfltqf^hz0eJ8U0GOp)Nb593O>^Acv1a+@|^(2B$mc_z| zh%$?+eCk@&Hv`rpTN5UQqJR}`y3J!VCFtaMf^U7mK$HQ`FLZlxQ_R~8MvscUq*Ua* zeXNoB)z54KWax~~3Jy=9x3YZ z^!8@MOeAR4aoO|X8cjOG>vMe{NV~c5%M~@dH~=bE)B}-}Nx9JJe_~*BA``8fd{->~ zaM{YSr}`?ZnZ&6fC$2Ayhil$e+ZkGU5l-?}hW*E_iu@qt?6vGzVLeGzjeK6q7lhkpm^+M~mzqbJe$@4oR#?w*8 z=x?YZu85OT_pA00ch#%SmpR9#9u!s%M_p8K6Iad5qGUh*gwi%K#y&Zhff4$bdWou4 zAJG~K!6382pW@F1Rp*4_1C;zJz`PKQbHAVKvlnK% z+uN;RDS+`!ofKRnylJGpAMD##@!jeKv}4)_G-5hu-!)#b8Uc>l{-+*=2q$%;vUWk03p5K4^(?Q64}_C~xs8Q!9wQTNQ`c~0INJYqTy0=jnYBUp4dL$YlM4QGd?voQGZ;=!-QGK!X9s$pN{e|D34FO?q~93JD)bqjE4~ zOY7q!fhe{ZXK&h2y)IUTW;eAvPi;dxQ9@t90l2Ca>q1-(6no$6sLEoF`lJdw6-!DE zMwJj~3zOo(s-4hGs<~Vtaz=-$&EAg27qiQZJU-}fA@{0HPmVLw&?-DR^^6yK!9GD> zgbf*ZM~}i9U@T(h8X!D{7q%RR=z)$)s}ggkBq?M=(_eo%;&HkK&YquTqyRNk@|fLk z2x18D^7FRUQ3QjAVTuYH_jy--pqk)Ff}>c7(H-c9cl!GX`jsZe$APYW0cj;vZlbV9 z(PPZ(_I}0RE+^$~>HF%N;ug((P8RKfsgppYbJNVjukc7FZ8iwHRSlZXuLJkagqWfR zcB!oplisJi)}Zq{q*SOOqJ&sjYR@_Huz%X0fs#sW%zk=Fo}};ZS>Ip^dkl0c7>L6H zeg|S^X*$}*dC~b1W)@m#k1Sp z*u3K7GaC^5OlM#@^4(K))mN?3^UlVj=(c1xtv(fP17K-H>e{8*WxJi08Vc_?IGoog zwZ@Izdqz+CURhbY9RilYWx9Q#jua&MhLOh9=R7O7s`9K>G7t|Q`}(062GmO3xo475f-&mJ}`2s(*deE#&a-u9c7g9RHOzBwgP%xmLqz5BE)f$-DdL|4>7`%K_E zH7WkfKqWin6cz~{OUF@eoNI@o9{W}Hai5FBY`4KP_{p6riB_tjq=HjsUpB!rl?9r% z2^nCnxj|y-iLf#Je%NY5mF^z#-23~zsX`=$pe)Z=WWY^tJnSpDI* zye6mpr<3=$=MQJ4?ruGPY~eb-7}Y+5dnYjUb)RL;6ptQJQ>P1d%Ba*w$Jc<%?!R56 zzS!w5uGnDRFGR(hq#08MLrUNrsY*8rg4upiuPS4jTm0lRv+!U(J^(8^t?D#oRS4s? z-T10-t)E%+)&Cr@8@Kl5&Z4NtVIZ3C07*c$zp(`zKtI~IPi|`Wx6~opNAxW##Mjr{r96kA;26@N5@UJtiHUrXc_KBrTpBn z`}cED(P64Tea9HSfen~?E6-gCmH>k<(?lkY4oVdypF&#a2+*_Gho>%Y6gZkxP=PEh z`46{T>~KqO8VbVcM|yXbqU>!TA8yH*!HhTEE?=4?xJGaOMw4tUJb7wML@2Owv2q6r zOMlC3cEXwDId(XGAv`TeGHFv7a`}|UL`v>4+>I+m(D^BSj9*mCt{=WU03`CuCDjX*?*@@sEOvm6^eJ@5OT!jOBOTs`A7!#lg)qxz4IDGe)@nZ5=AN_;h2MB>y zKJU&<`%=+Zdn-8BBT!gKm0&vq7U<@5yh`keP{1g$bNT|i=d&~7U1KM26UGC@GsR61 zq35*j$Gql&I4aMg{Oy`o6(fo@@8+wa+f$RVgAB?_5tPEtAnk4Li}TjS6{u7=N1ex} zIvJ<$N}5G^ug*E$-pFUr`-_nM)4Aa?EKyAIwLywlSu;A3giDw8is-b(3P%Gv|ECz# zgx#0q4{Q(#z#)FpxnKE&+j|H1GT~W&-pKi7(Q+4D9+UmDrw?G;3@DPxsdkli>Pw8h zcovzZxzEC^e%pK5d6;`&KudCqUsS9g+-X^7fNtHT!?wXXk*4NpmJns9nz>#-*2>jw znG(o-(oJS7dG0b=Ip~t|+Y?al+)xM7I!P(bH%T><7=P&SCO4`7`SWk>lN*=v3{|nT zOv?OPsW}`KE1g{M8{)n{n~agM)vxtQ{e30X9MP~wz+1J3Nlx2+&V^d@b5Bs9$T?px zIjmdKL%l71CrM~?L*lOEHdjr&(qM~K{^519gEH7K;kY1Y3V5s=qiY$8kYtI5@VguN zO$2Cnjqkm`dUg4DWQtDN6(^Ihe*#LV>M(>#* z*l&pp5FgK%KUO8rHeL!OhALeLjiI<=4~*D|8hA8~!?TrOTLhsw9r+!y1tqOhzp$B`9cqXP?GpiGeAEW8lL%+SVU@IBo@&_Lan|93eIG?FMEh&n z!#$f;pFT^haaInZp-1Wc`1d_!h*Ij(*SWTs`-rg~B`QGvoaMP@h0-_u6693F-gG^Z zj&y#3nU%Mb2$TZZTDmlcbElh0sZ%9G`do5u7%Umw%}Hemm#110_Qn0;*bmsD z)K40#_iT0kRQEfRCvIvH@0foHuf+*&C`+Hf==k&MyNy(z#-7P@dZSR|6iQx`5ac7_ zqSxjh@YU3k{hKe7&$}-BNVkRPJjz41uw5W$6;qNAyFfAynvUG(a~#6xn?#8qE~MM* zPJ&w)c;_(KHMPhNyC1b$Is5sFv4Sxc=_;<#{z0k#D3xU`qS>sX{5PJ^vZrNs6rAw#!F&J{iRJ6PM%3rB5QE7i+M{-Z)8lff=X)J{n&>{>28%euE_j|%$< zmm6MtH)K39*#sF8lgWvo6&I{H@}?m>NYakx99c6k+;;)gB+7=(jNHU% z02N4V$_x{YG&8ql^>t$1DUqBkg(>|-?hz|R5GETB=8cDL`L#SyGh%E!wn4C2-g$>} zd(C|pma)ij5mVInv$~ab?bbE$ZR6sfd~aeb7RG*!J+Wxfo@7tCY`n#scoajFO_<5M`v(ga z{s%R5jsD%+ih!z60=740Zf|Q%Cou~3jW7{R{@b|4X5Zgf0bHO};CM1o#rkdxinFeL ze*T~hYaNv3(C3oV#MlP|+1Smt@A;*2krf*g{xOk#)E7kV7{@vg+| z&paCFV_%Gf%}^w3_-%;J#FBq`BY!@6_n)WnIN9MDpdD`F^PLUS1;Ke#2&tFW*2EJL zh01C75p|KY9-{l9oZ1^L3YH`rT-`e2Y2_HTG2T*#b4R6HG@)pZZyp%su}%}`0d5IP zmwx!N_9<~(9~V%OI+km0n8KPb=ZahQ<<_SR>M$AScK;yQ>>3^eUmn6%u~EX%K|Y!W&x%p`ZTMxX&Mb8;t1s)Q`Ak1Ii=Qkhu5O2Up!!dPZj2o?Q%oZp>K^FWUMCCdow0 z24&cPCp2nx;1TuQ6jFn{_nulGF9ZLjMj#CZZF5#|GOu#leVA2N^nYS6M$CjzV>H{j zy@^jWToq+hXP%u6JlQu{X%lv>6|ncOWC5w$?Legh0gq+I(T}-(E?lb@m67Dp=8?1| z?pc&WnRoQC#a2}seV#N9Lc>=Yqo6x(NGrC>|8yU({a|PV}(0I<7!BhQ23hRYVI!dDbkeXhH1(a+VqPaH94 zW>Z&Je@rKq5?t^3-S%WWjFB>Ioqke~_%=FC){rJ*z&FL6ShT$DO)pHHXr0Y@>3(Je z8N$0~^I1uL54&PyrNm}AdWt3Wm7X%8n%If6%#rKpo5`pl1rph~U~`xxoXsf;MWZEo z;;;9PGhQ3Zox*apvVCgD9K>4F<}>ALfpVV(H>ZVmQw%lzcxzApYIoY%+GRAs6(6ZV z{>*#(S>N>MOcwj;4sYxEkZ&Jjr^v#->5V6yeN`D!x;&mxCGO%6Zl1~=DSabUsRS+r z(iTq{wp8Be{IrrqS6H2zoXC?yEMOh{_%VOl7_V0A-e5}uQVZ69jD-`FH!y;=QcolY3+o> z%#S{>3Amv+X zAV>Xi!zxn7s%)bzEUG(!W&r-3?2@+4C;pFnVLxikO2!*FAWWF6V!xc9r68LL{Lqgb zZr)XV^MFrY$pIDTxE%Woi2G0C{LYbjKc$_GUz$p`l4=hl5=B43gtJ1`gRTyomOu_} z8E3`L?=fI#d55q~npYPUU-`+uBJ)-zddkqB_8hX!eI}u!e)+ogo-ijx^^qY&%z~OJ zT^a`_flCF>9IX<0GFKOepSpGcG#b6&2x?Y;)LE1_ovejieo@Zn;J|(MRja)08V?el z?^lvu#(3YSA*EGMHvtU+^Tyc`PfMSWrOw!m#9{4ml9*sA$Qh5XsAiZ9B$B9vHmT%N zfAp4vl@=h%>$W_Im2Y*RxNOjIc7TEPA%yNtU^=*8>6rUe;5T!sh`ox#lETs+h18?G zW&_vPAF|oa!_zk!He|G)6O<**{!PEMd=*A4vVO1bUr&WY1MR_bN&33_vw$hO6|M!M z>#peX6ah8Y&(b_Dch@>`*vj4`b}2sZjy4E~3!U3yX7ye*f&m$cMRW&uG$@x>IjV4eb97}n28qBwBr{wIQit__DHz=0T!OYH5E7MQrXJ3?b zeoO|Vf0irQ1%fBX#)z1x=a05q{st{$#9(iZ_Dx#I<-PrgnVl=PDpgQ@Wra_tEjGww zoL5z!&-OgBw$fkvlgEz#!BkcCnp`@ZuOmcjU9bv6pRPH+Voj6uC+=UrEF3Mh^m?{& zt=VTpGY|QAJV5OBkz=vfdlQKUTqK`8qyQ^@S=X<9^LGDlV#7%Rb5YSx9$L4CtBJl$ ziB#o=37@-x1I@?{djHiw7lcRR()Cp*7L!sHiQ;>e$QdLhh(yjD%{?v4P#wyh8N!~y zgzd1_pZpQ%nf+~KLP-keR@}9gmc-I(dL*g<5(}%YdBW{gpJu;=gwn3`9t55ylnd<4 zINN`Wb;bv;=dGCOsMh z$(9yE|8w^?y`H7Kt@j^MK5hxIWONY?;D5HO721`$X5D=qw-~i`Yd=>$Q3qOef2*|N zbVnOIu=np*03GR=-Q>0Xn&Xy6^)Gf%{G}YK9MMi5bi|jLzVATo#>mk{zSW`PkheM5 zA@-9`NTpAt*V>Gga33<-y@cNW?3X83b)314`Jtj;&{4xK6PZ<2l$Cx1t3=U_Gu;Py zvHwpEY6Bt{7=F5(Q)s`_JoB$pl?nTNt7-o_z_1LnM3hB$hgXW?h^^{1sSEXZ%T8}M z;m4tU`gJE|Iw|xetsjcxDRjxL4kjbTjz;Rd#?r@>eMiwY8HD_2IfG)yKE{hlu|q(x81j0P zM~n~jzx@GBaPiIbl`>lHC5c1J3;QYRaDFb87q9nWhu*4*yNl3qCf?%A(Lg&MW?;4B z@|s>zlt395g%fXrPeHvirrGh4Qc8>TO+_8ib;dKT zmcG`&yCI#G&n9TQ=3ONcZEr)Wdk)C5gR5r?xj^59gu%Ock}?1P)Aet$+HG5Q7}WY) zYwxqqIdwZOyUKR#N=&7E$7OuM5JwOKG9faNvGRZrQt}oN$UD680PpY=gm?ob+yp|z z2+0sfz6c!5#W(pHr^=4YRk2+zSJkO=_Wu7hIuE^F`dI(Tsyh2$>-**$bBx|wZ@rB^ z#+>tc@I3QDbM`bIUn&9J&wN#nq*d?X%&=8Wq&X`3jL=GA?oDD3get}mVWadcCrh1{ zaw7$CDGN9%$6o=TzJ#Py5IEP`fgva}%2&y-5~u?BRXSGQ26 zkwz{U5-VRO$#@-7p~SHS=|*D=Zy~o*{tDIjOJi5!dy-(%Tug#)RS8?}mtV)622|cB z#q8W(7zU|=SQd;;Bw4E;=UCvhBgWLRX80lPRgBxCmExL9ws=~~bWw8bQ-b9B$}Flx z;1h5eMJ~v^>?+hUZIi`R`xrtw+R7srJddE;Yddb}SRE`SX4PK!pILND>7p4B7wp@F z>>(;fB1U5hr70(@5iYS?vnoZ*ETVm;k7r8)>4kFkspVjr%xa5T4?<5P6?ihiT9|Wo z==BSIkZC6`CsL{LZ~Jxz;w0fJHc+TyB~%dE}j$8S%FK} zAAc#fnulm3){ z=&|RHHNTrt3Dc?2sdacq1+PUjGCR^hI~(m(lu?lSlDiXha8fruA*fI4dKTfq`*}uu z8wLyOv7NDPm@k|xW~jCL?apv@!OmKnkyjG1s+Ws)?431gF~XeFdd3u_x1brj?Z!8h zLJS~KFE1n|1B|9MWoWo_3X=<82ii{|Ln#aF3ZdNHm?!OQ@Kq>a{X)E~?Xowc2rLCn z{wJn3Jl0PLDLi$%yOeUKpKG8d3n*gM_o-<%2PTO-o_$EIZl?ewA5Mp8XDiZL(nWqM ziGSB-K~I+s_$P)jfPWF+Et`rs6~ z+RYV(W30OuGzXMp`A*^_Wdf~K<|to!ZdE9Il}7V(6n%Jb>>OgNxrchia8@P_VTG|b z3mh4o{qE~xJ1wKSm{6<80IYp!!j1cYY zr97uFRpy#2nhs{7r0-G%LZ(Y8Y-qX;(Ue)32bAWvE0BybVS;C@1p{a&Mw24uDm#O7scEe^I(ksmB6jIw$ zax5=#gm-GKe~SM3PYsM^FjEf{*O~Dyx6%%4>lB+*Ve0Y|L~EW5TwUmO7?0pW3nAxy zT`Qf)=`(i5hHR@!l0tBu+il}SkC?84C=V*#Ywg14C6=JuFzY6h$DCdz?bQP$>;!QZ z_{%_clC^p-GplUaZTrq}B=y?kYLK}1c;rc$S_TwMlpP5!QYmMBhPr_6^hLVSSc8^! zgVX1}Ma_yVMfxC#+|j1~`a zs}8Mx57uG?dmIuk9LaJ*e)C_xvTBHu1^^tcg|IYfKp?5C!zj0yf6VIMjAN+73QYc% zFFQ*K!&Im()I1uK#1f#3L6!et%40Wab|r`lDstr{5mRp5y6OlMTo1WqE1Y7av@%B8 z0du=g7-3rXENHCID{7s(3;}zu-rK~^2IY?h*NiVNU|;Rnm2hUPE6kxRb%}*;!?DfM z*`*OyUjxEXduX1y}6Gx6UlayYTg20gz0H)K6s^CouP)5$enb#TrdWpF1PC;%+}JMQu^5E!M` zBxryZV*SusnYtu=;!8n#h9<9d>v8a2prg4(MXWrmD0bdq8WL5;GsQRvm(4Ir%p(>q z#SOM$jBR0Eq2ZG{5iN{WQJy6@TNYKRBIJ(>i6x`hXLO%tOR42;!dQt_IFkHv|GQf+ zf%gg4mLNXj&auMvIOr|T3g#P60}a>E!`;5))J2jV28N$nQaBiYtxqPC`T8t7Rdvsr z*&@c+Rt%}`$L6B8c3=2;h2&+!vyKVnF(I|;=uUkRG%$`Gekd2y&~i3`5$Qw|4_Co- zVe=X>^7!IAO_~fP!dSY%XOYh0jn{dva_^}V$$2HQHD_SoQ@xNLCCL4`j^@;%#BZ1! zMTV()+sLl_!{`E7rq{<=V6ECGWR9OpYlUFX`RrM zq%D?nt%UVc+ILdk9nca7e{iFNDyGp4MQ2zyOH9SmWYxaHpJvx*?w}mSZWy`1_s^&|}E z3sW8!o=W}aPWaWsD$H%~PBLsGk)@gB4oG>3yr7bXG)!PX+x4lcLns!2Cn+I*5cXP$ z_VDSPp~}+MLKO`c!>%h1jd?xe!iB6VPq^`xK@=Q1JSF~If+H)R+7H%@J9`HE z*zR<*z7Uh}lAL2Duk*Aj?cLZ79~W3i6`l?CsprA+OQ!!6e0U+tOsBvbL> zlX6Stn3#Y4ql>Nn6wpWSBXoWX1ZqJ0#P(tnPUFj&`6QtB6?bov!efpdGpoCq;_gH| zf6Jjf-+;S_RlR3pnm2p*O;w)RH&;LB)T0+ErDqGz5xmQk(@P0(`(>YeO>I;^p#9oj z26@sL z`efxJ2k;^}*@+$Ivqd$NRZlr9E9*RdIsZhwXTJIl{o9L7ik{yq$L|5CpA6j;6jr?> zB_>t~G?QcBq;1Jip4B5`gen0xNH_Xj|H26N`BP5?kn&acEU_q`)mXhG-)jY?%w7&F za~9NBioncHp-DlR1EESIuf+&RzK>RuPpUNfk_RbP#vlY=>xE5mrYy_Us3*1@5kZt+70aE@IffdgoLH#t$XDTMUn;9#A1lM5eD*U;l^ZMI(KyGT+ElmH^v%iCrAXw+bVDJe6M zD`2l?*whY)ux0lod-kzc*P@v(=G?0wio_PQ%$7d1vs-GJwu-Bs?W%$R!r3_{9_I0S z^L=;oP0b4u^h?k+_+^2y-69j8 zdp~vvY-00PzYQC@%V5<^zN)GpL|{}bqlIJ4G?@1gj!ictJe0zIjdf=f(8k@Y1|%pC zv{}n|D$AX=<})!tuCE;CswCIvtznkCuODwVkth&U@1*a~tP$b2SS&tnnLt)$nHXbIWPH8b26UZ)$vpjzOa zN>CEE5_F%T3otQMl_IFOXLYeTYYDb%F1c+4AGYYcHD?@Zv1QCc0R>4;bCWi4vK_2b zIm88y#Tf0LOgOuCZ1YC7_4*x9st3@ovf)Nx(PF-rVnoB{b^W2TN46-;hk|R?e; zR%QiHoaU0gI@$D3iFAAGejcr&(ZcmA@hawJ9L@3MVLxWCV!K=UA8I=;B(%C&?4OMC z%#y7to3^EzWdHT(V29IHw|JL>yw)f-B^jJPGL>+pX$t(vb?2z`GE;L+y20+)=#~Cd zRrfqK9kqn;_IT(Q$mTP;7MRt{9z$2}*gR;})aW^+KMf zWn^m8J=O7VNC)N~04-_Gt7JqstN+u#>>*+`=KwX287H01JE(02jpaf=%N?iHX%0j& zKnH6fU~z%P9M}*<%?Z#xOz+IijN9=sZpkE z0Yp_So3xy)I9pYlrR`9znwK!pwu|~`Z@MIZv*mlH9V9ImawGGj+=8y+q9Zag#XPU! z;i%2)m%6Ttn8AP0lV_fQxM*hppnlm&u7UfK`C}E2y3y-F3*`gMiV!;CLt0h?XGDt% zyhv$VU)Bb|y$$TQ)*PJWrj|_P1eqNsn4FI9Fb5rn5}I8dw}79$m2-JmDRK z9r%`$Ne**tDcJb=+Le<|mh9FSt5JD*S7vp!eabhRm2({mwcpa_#8OpEtF8Bm%%lE# zxHT$DsB>aS5}biG{{yu4E=b)A_w>TVxe^2|?6EPOv~GsfHq%OAl&|%q>;XnQpYq^=zjDb3PUwng%im~p|VnNX}Ux- z0>G>ZYocJBDLe3ZXY|z=eb4;-IGgN5v_rrkl#}h!hXOnvYu^E3I=WzN__Y64(iZz` zD!T(rFYgG@6xUt>UAc63_g?U^)y-vK_xC$OwJl4B$vTSjy3!kG7ez^rz|5Pr#BP>P z`^UtVI-0RTgS=y;xI3A-^w+Xft(hRb!Q1T)7B2wU3SX2q*-?WufE*CAab3n8F(6EG z`c0NrXBYyib5<4WHA!0XWMG$Zg&rHIuICAdSs2;pJVnV`ljMoF>8D=}MN7@(kUPO* z8GFMW6s3d;ZHJPHR*gZ%(n5^Rvu2T#e7;PVDuBgV2cIZ3vfy9Zk9NU^)ef=v3ho6u zH1`X1?_M+xFQ!u6VR;h`8P``S9Gt5M!l*KxDT;lsaP%-@pOa#gB#7L0e_kp(2ms!D z-YwO*P&6kxZOi~P-!#_~jO4*Wjd7VI8_-<`XAzjHmh7xEl*v5B!|Hm_T5NCG%QozW zHYQq5Y18Gij;Xu4wI$AYWv^0z&x{r+a3SSbs!HSdY)08mF=lt0U6f{+%N<>M>(J!@ zb;wED?VBC_)j4bSC_Z&>T8j?}PxzbZ3@xFjXMr%B9COu}3V6oLwy1yvrUXp{ea=eL zQ*$k$i-}OZB6sc1P4t}Rvize5*9Fpy*;cqiFBmASsoCH%Ko`47zEB}ncLC=p|Mcm3 zzfKccxZ)(8Twic$9nR9_!!##`l;yk^v(+Ww-J{6MlhNKEm0D5GY^5Rrc6#>&?TlM{ zlD==dY#NtC7IVloSzWS~O z6suT+W}M`cYmr{0dN)v~;I2b&+~YY-htdc~)D1@V#b(uuNCi=b%Q>Vb`L)ue>RHij zQI)J-&!qaAv4_DugiGSX=!AzlOTLtWQ_Z z{sG6UAu#qKVa|GG0h11`RT>)wgWk2N$10!x*Xs2`k@7}W(}AN~k!=TMG7qrj z0FL*mLUd!;yPVfh&%i7}*s{OJ-d3734t}U?b4FXT;*Uus5?xMnhTR)3WoFO>GKbXPtutmBjVl;0i2@+=|Lz7`3M$+-d>aI^ttFwIh0+xM{`5t4W=p<38LYdI>UUF)&T+Jz~c3vBg%xV>$x zEU?zJd9`KF300tq%lL3Luvf~r&x(1x6upI+NbYT?ZQ-)uF-hCnBNCY9MUKl23!!JC#qo8RGveF+6OwTB)_h3wVk17FC*6oP(G-EWWEf07pHJ>aT7=sdGn};!{kt-+{m})t)wOS`!C3LUaS@lLCHSrUu zgE7x6QVWE8Ozq_}>FHvA)G_Riw~uH|%*+2LY^m6sPN*a)d9wU&tCTN_47_UI@#(r! zc+iTZM9uJ?x&;X*uu$)sTDv#O$p)-RMKm3MZK^4`d$&B&f*#1%*3S`6Wm*sFP zuZ}VI9uOH<04pvsDYD3t&`@oomTkjN?+MRv9*{ppmMPJ-hJt!13d~kxk1?d&QSL+F zq3Cdikt?+jq3#FrOrlLtRVQw~yMk(=%t>#{=s3(Pq&GbK6^}XrB?3(lD^CTCg2APb( zrBBK|xH!Ve&a<&OcnN^SL0{v7SkX`!7w-f&@}gHi!+{lFh$OFc*vfHnF=>D07YPW# z1;z%yHS^sutpj%?w75}0=V^SS8}srNCE`qY%*O5$b+a>hj^sDpW zp|7^l8mMNPkafy}bCLOu=!F6$l=X*lz3N&k??VgwQpLWOy`dGI<*fj+JaM~$4O*_Q?YB&-y< z?Th=jaw1rm^}&mXW|O5TVo3@TMVQKBEd`?inKq2b2m+OZp-Q*WUMz${_P>i2q0yCv zTt&pH;jjc>#>$$MUNW&cGHg!4-HM}Ldao7d>mxXF*S3v?r-uC~*ZaCQVxiHmpamMTF4NkQxlm@+6g}5WO9@Ya^kQC-|#?z#(fQ4xxxScoodAN_i z%`+adFhzj#uu})#5jS%U3EECoQXtvLa~9JmkCd*fwB(?}=Z zSFQuSVxZy9@7^hcjh4Bh<&+ZEX+ExFtWum$Cc1MmV@9b={KZh6yZ>dtdY)M((AB44 z#y^cH-hVCI8x_bZfLt+snkN_NK?W;2*3gnY9_3Nk8zTPr71vKlQh!Cmkdc}b(|1&` zQDc}DDI=1x5ic*%s%#vIDObyrjzvgq*1BS!xy?tc)y#FR{o%bMOYU|5fsHMWIUN3Q zPr&?1uVKND>2(S9ExdSTW1(=HMbUbJ+@d5ZzSBBP9HN4BzGNRmm)EK%tiKSB@T3!B z*(HqR9Rf;%r3a?OjDjxGQxpI_(n_c680qPqgdN&|`GpTB3S_wZGZFcYA|Q2K#q6-c z$U<|VYID)f1j{0BeXlo$Y! z=y=f_XiWDIpCX4xHGy1R+K+s$RFbeToixED0*ZSqIw5l*I5=8F z$VJeEA(efd(j7aQa?CTJ8b|9-e(#h;!s(61cN%Y-u#?|qBF5inBx+BNp%vh6wj1*t zw<{jm^3#2&NfS$^0<*Q@YUX4L-`QiqpQ2B?@hHe5Pm_3JYP;3*t6G-;fp+m#nt7lbxYn@5Of5Q+9P4}^t+-~J z9Ri=(Ym%ZGRoI1tRsw5!~)avQ8-Yq2lVEa$`5qm5FEFnIDO)+~7w$S}7=$W0;f#`Kw=Ar%rxsWN4 z@3=y|nuO}X%%Skb3J)2!2w4s@C%a zG(toU@b5g~vz%F_D7t|<=mW7hpM~cRo4U#A9>bh1(k~6RI(4o|jJjv*QWmli38hpW zlbL4MfQcQ!lKu){AOO~V5X(8!ZH`|KnSVD6*AO9TkF^*EuAPl_I8EwV_4-c00AB>E zWk!yDKPztyFdiDMFqfr$gc-YFXrfjF4afi0CoQ0*-eqeFVpchI^=AD)-LAoj(a^vw zz*eg+%(|Oq3IX~0;rXh#0jSwx=(3>aT`L8eVZ&Se!t-goqnnGKP8b>} zFB|`i#d?oOODf8|fwKH|UD?+!K?si=t*@1sWvz`LCv+f=Zm|U3|L}ono%Tx5+AZ(Y zQlB)!=q{_njp$F#a>Rbp)Dg=GZpPNdT1>5rb8@Xq?19m}&(=6UOOwZH?fI;95->y22dNce~feM>pR+d`aRy=yVxu_}lPfPyO6Axin;IbsZF)U#N zh0?&51a+OreQsAQ+uF`izwGbpIl$#{77?J_(C&FDws+SXt<`3y&9;>YIKC)$g?K$C zpvi@9J4Rogy%Ss@3~4gXy+!p&DA#4}G&xvQ>`TnggA(_r+QCwYhRoEOa4$>5QUP_# z)=^KKM(--i`#wS!Z`t>*VKB4(=hJR2gf547W(esdb(W7H@EVWuQ=%eD9cVnP z7*5GG?;{-w@cPaW!Yau$7wxpQU>rWR3@*Z5V~*v^y{W^+Pr1k6sE@{BmK!QD@Ex~cq9uss`2nKh%qPwnAK=cN)3;Z zLi5y2lrOA#$aI;P?(E9983;+Kku!($BjvEl2gpr^6z}sUp`4>#Hrqli`si*h^clL_ zXbfOERfnkfNXE!&&*I_7b4iuSN)fANg6XeRPH1bmr=daXz_Gf_`LI)pIl zcR6ZpMPLOpQ3aK6gvHfN2{oaiK-x;q5uUAe7G>k4<>~if(8RzJg=5>j( zRdW0yUTTghBc!IjL&mWT?OqGOwaa`tb7e6?ls&NFr>D>JJonZowAfk3st`s=^$9pi zOqP0{M)R79kP#J0VOKo(XL5Sz2?XEsNJ!GfN=VL75U7FX6Iz)FU|5=v+gINI6?-c9 zKr&A5Hl#_BaOBGpR+A=xqePR1K21=BYEexfv0SgqrteF5_=y*fm7c~v240C)^tfR# zh8|zfK~sd5IvBn#MHbk+1lOPf6!69R*_SB#hN|-0nnq3S%OP$3v zJrjTf=_xI=B_b3d#SuO>h!M^!%@rKE{bsTeEX(ZC-A0g(zaMts2&$z|7<%uMvLHZa zWcy*N2df|0?x76xyi2fY-+{m3zt!4unIRym**^8(MYUIJIH#h=G~A_ctq_(_VNUPn z8y`#P6KFxrqsRDEVQy+~MWKJKrAvuhSmGtb=1p+njCs_?dsc_fy4#aA_| z9=%eo*OTB>iYRDb{U6~W+%3$(K>p+8C>d+lNzPT60FdQeHOJ5*$RwDL{L@U*k4MnEC;5#L&sJ6 zTHSrl>;dptZLU=HcEw_um*T91#A!k%jm<+fs*cc%rr=Sd6rMY~4j(01T*7<>b1={XZCjwb&3G?BRs1$wa<>{e8YYA|IP zicHbFtIGxqM0H`IuCz<8{D}pdO=>B_8!(Xi=|bc-n~1Df$J<+l2d>lAv%0e&AyW0k z-4Y137Io|~5zBIU!rb{FA#?v|HpC#C&+M=9Rgj|TC)R&;)|xBo1d$511=Jfgs?c72 zSW%~gb4*c$>sr_?35^U)BW(a1Jk-o&>+tF5%XRLODB8ZQeB;_i5(=+s6;PSFI}%O* z)4F1&%zl?)h6A0L7igufQi#Xlt*TmmzqCYmm}*6FenY+(R+o~OhB8nHvHL}LnC zZ~}nS>oA)u@YbK0`NX(enI@^*mv(<}|2<*FvVw=QqG?G#n_!A!SacdV&rUGA3hn0F zOPJT*!~o_IwZ&uik*X53E}pXdiY$g=5tUudth&>oXpc3=y?<6CD@{==J`qr za042VT zF;_h>RV4nek(&OHO?P$s4ee~CwLp4jfvQXhPsvsVR2?0p&7|hR`F@!+u~tdY6pxis zUSP0t-*TGBp|2UcIbBDIU%S2EM0pyH(7f@vJsaII5Y*MuR2Q>Ao0BDP>|jg9^jwH8 zhn?nyRP$^6tt=2cPFy)LNNv=@l6?nY=GvZOXhxC9DUrDP$U0o!ziq*-LDWN}XdXaFb^kYnw?Kfe|AE- z{Vfzo>t~+bi3Bg8ENt&gM=uI(*Fs?q+X=4cnSk?Xw}m|=g1d*24Eh18N{?U4jG)Fk ztv$Gk9A4a_b1dr^StfRoNx?=Duy&>~5DYKM5_&3~UMI9w^scqo4&T&i|*={dEoJ#DeD z!loubtfMt~5~DAoQa@>vIqfOFsFaEad^LEnp6m-}V&K|M`YCU4ZCPS76V4Vs?r|mA z6c;jtwEa^v$@KU*paYu<(|H#A&HF0i%9-l4?qEuA%3$J;?&dSbl^MYov```$yYSa6 z503-P-%*1O6LN81fklcpj0H>~<}q>-l`C;Wqg-9#hs9f57Aq?C2sSM*&{f2`%B-bo zOI{(;8Gf7q<(M(4C_}!0&^}KAd1h}D6IAjvO>~ZVPu}ZZmqz-DzyOPa7JsD>dtn-4 zgLT~%*AV>!de+rqMS?}6#5$4pGKE<0K(d`2@(khL4f*gkYweaSp$Iq%lYQ<)vIo&F zgD^FUXswfMkaxITss*f-7I-_Hm4UFOYN!+2F?$2Xtf6@MF}_^+HO&)c?Q7j6^`2d8 z!EbYwp%^M#5n5Qcrj>0kn_d{_dXtWM zVY9IU%^IvnRv1`^-{~>vgfm44>J$lj(&^cmeOojx13Jm0r8MZGmPX=+DKJ}zd>s0m z7zrn;6*erW)GcFGw&6n=xPsATdan3d(D`1hn6JhYditW1{#vdNIV);I(x#8adszM~ zg@$7~kWIEK+kSC&wk@TpI0FSiQKV)lOIlds>9W{bl>BYa0#AER+s4U=X2gBn#(*`< zCY{<^QEz<^MAlNdEJDqWc00Ju)eY23lF62)yu~`B&aJhwAqBxQsfm3|_#W;1Tr^f+ z#td-Xi2kE&v_}o0XuQk_(ADo4N&KdX%fu)D3_8pS;$l9FD9;|%xEkP{v%8-Z@q+XQ zE!uZFD`nCk3();6F0bHjHI$Gkp#2yfcbnF2T(90th{4{ccqq0Np4>@fsX+t$j&x`7 zcKaSqd&)A7)zB<)FDfeNX8s}em6KN@=6ATwxMDDjxm-UN`DAh@0YK*#P_OM<-!`de zineT_z$phaBvX`gAJM+gScyo~ri!Faq{x~FN?J*(Ccaq3cJ^^%8}hXnILjNWeT{;3 zfEhC@-})|MSTkOk|DbCkXg$lpy)TLE4&tc}4YRA!Z_gSYkSlBXd zHwvq&dL{mavm7MDt{`fSuHB-z$=zRb;8NK0FD7@*{R-gf=;ShvHzGVc3#Jj~69Z2@ z_nb>0X}ewwBius>Z#^!~9JvB6V{~k+eEktXz<}NT_T&`@N%x@KSD&!xN|)Jttn~FBMZ*NvJYM}8NUkTJS87H) ztN=Z%ZpF3+Z&pms+`b}NgeS3Rl(RHJB-vr1L+LYCdVo`|##xF8^%}5Jzs01>M`ANf zUf|Kp(p{^L-~q)!v|-^KX%Y!gpWyscTc}`j7T%HcO2gba(%_@>mZ@asRgQ`=krJBx zy_i`EYx&R8XL`yH`S2UgjZ;@9gnMfnXuct?H+Oq}Vd!tnX*9eigXf!Y-Klk%nNH23 zY5F6)r80GufLajY5dgrgm8mW?Yi2`38f3Tfv_2>nCpf{LQ%@^>%)XdA)iDXS=8C@D z45lOkIuzWS36p0z$foaI&Bnf-ySs;6Dx0wYNgi{kCr_wv1W&%{&rq`OBXkezz z?#+Pa#^ug#&MUpdYSP?wN+)4)JZFan|teE-+1V(o_ZQkzlRHs?TUQ{=ly`p^06Lv<$N+PpYX`z=Sj5Q%({;}8;9Alafm@KQALbQx`}j1mYhpkhlMpJS$=OGV z4@!Yy7Bo7m_h2&8vW7s%woF&n~>F|7KJ=4tWfX z;SE0j#PR3kcB6>O%{nix9Ckw9H>)`?X9e25815JcD^|sH?9Ns~=)GtT|-G(ZI;L#=P}9UY|pjqjD;%r_LX&A4G}6JXz+?^*+%I{1}d2)VX6p+Xh^>#kjUQexu%x$ zj0KO3W14Z$vvXjdW|a-j^K^E)D!|DFG_hi-(8%^QW^qlWWUhr?c17H!uG04i9>S!? z7c#oW(|Z$x2011#LmhTvRW(kzTw~>c2I`1~ht5uG1Bf@m)D0@=O3ATpvnLYj;PjIa&yBcwsqr&^d*=^a|v~EsMK(Av<@?(zjUbq{fu! zZ3oTFLnW)-5(QoT5~BJ>OWI85J7}OKwVrHK2>o0bb(*-y#f%A?MMShPHj9%X=jsix zwNxr02oRu_lgc|jf-F%lq%_pSFwgp_O1*#5!J~??B z>H?P_=vNcBQ7uL{qjmR6}X{7lFk+2UE4bMTGTlcY>a#+Z4pqjoo?+!99qi*` z5snQfIs{*IF>-sm2F2Tsl;|tWYTa)fl!v&?x8^B8cB5LqEfHq#@E2zj1e-K#a~nW% zeRtz{k{ZAP{ z8H3NDo7>uWD6c>Ww(_!tn;^jJiOB>uc5MQ@*NDqRD|#BKBR(20jFVWVWvbx+?Sh-E zFx8R4Uu#C8$&pI=T+f{#irr|>Bf;G|X4jD9v;>PuP;!rIg5wQ>8vqU$m$vW?xj25t zFETq1d^Q&?9#_nBvKX?rNuSM*SA_r+SdpmL4-r$bcamr@K<1?j zl8<$HyJ5=+55z#{cs5OhFZQ)i;3F>?+Fo^p1%?!gqXh*#h3Ae*f^X5O=_%%c6zJ#` z;Z`%mHo%#hTE&Q3{OmHYh_l5rxB{e9!!F5%%X?_GF4!`5h6SFgrxvVtu74$1e4G*zSw5i4VVX_-tKedij9UfHItV= z;?{>=)k!$l$mQ==j^=faqb`DD zV%jX>@MNf1@$hlY)+Cq*$mz)s!o4+@;^{OO!NBzoDSo57xjvRKJkbD#oSDb#Z;G-x zW6xLVq9$V8<-n_)yWv4MLrEz0+)5CVghNxChgQ00crETO+0)`@Aw<0o@jE{DwBB#M z*V&vrd9hb%F$xK7AE6g>09UeWk*m)1TpqAcd1TM_Ou(szpFHAYrfNQyS|WZ8?3iYj z3+7_dS_Ysd@afHB7DxKFsu5U&OGlrMaXKkj68jZFFu4t_(s5ez zv*VKK(jr-pk@+YivVAk8LY57V`+Y>F)jrPkC)jKyC?rH|v7~(F#NKhzyC%g?y;F{n z=tm-@698X1ppl|ka@=JhQI9lZsbal))k;>*xN(Mx%nN`}T7>0v+|liQo=7|c&W)m3 z+cBo#YD|eb!J1(==0#f^CF9I4FDaJ=SUc9x>UMTnKUGt4ROVgvyme5E_(bKqUMN`7 z4tkD;pz=hYxVCMfQL;=rx*~5W94n-Biqw&TtTRl8ksr81WBpY!b^O)9qe-y_Y^Rvm z4c!MUiwI;aaIe&xMcH)D7;wQdZD-4cms2#IEgRSb0buX2>|C=H-JFp3= zBsNwVPU}=9AVwiG)Db1!k}^ z9Lf+)!7-kMspi4;tw5qDJy6@Bm!~{(kZ=GktTBxC9Dvap z3Brze&;(~i-CW*`;8R>mO3HgSIKt7z!#SPXdUD6CR-u-6yvebb>$lNY?u&IcY+4gt z%P?LGitaT;!+!VA0~PD8%{$>2Y4PM%B|~eTIN>s9Era?P4~(}^e+0C>-7GpHg9ZG1fP)Um-M8aXpwh`&I3^`YLrRfKEO7k(JD8xs3W@VjHSCed~ z^qZA+c#ZAkR(o+=#nHS8rXU^AhGVpBP8SyZ2aRE~`Vh6Lz@C4b43LJZX731->e_Mz zPn0l5M(a3ad7qbMQifw#fn9aE>m569H_3YF)+W9c7#z;l$sN=}lPK^}B0S#sZ929z zs$PsUzmV?{ckF1BWL#1~Jm|P~LMI+l@}g6s^HBKO2;gpjg^jb<5Jy5pG9#kmF~>8 zye3=7bXBFkb@yy-+Mwi+x3VnPG9<;4cLOOrDWCwiZzN$WW~}h?B4`iN{iy|}hYuZv zC=06FSuLm~?mT-JGYQNzDnEwc1hK@(t{gpjXR?UPijupP2^@y-qGa@WgIt7QBpKW@ zz2)oyK^f9Y=gBRi2*?wp8aiD6NN2?6J5Gt*9tw~Hme80HKJ~EQt3L(J!=GxrVORmD zfNt*IpDdTUAXkmZj3I-I=UWlIC|(Adqj`)f>&`_!7ksFgLVO`YF7HoG;dBWtH$yXr zBHJ|dR7*{I9gH>~p;fX}HqTVpNv=|!-fCjA>7vwH+Z^C&rl{5PU+jw^1`d{(ojfrX zI@V*@y4x>SRY;lxR~}*}TT?FCR@bu-;i+|vNHT^4zL4zK=)jh!^6DPb7_(&SNw$WH ztg|D<2}@O6cy$PxiC#RX{#4A4T~kmH$a`(?xt)j#g-pszi@}r|mDCm}CqYjfwNyu# zzM0vD3MFWd3my(EQ#!M?%rq39CU9nfN0Z@cf)B}a!dx&;3CUtZLDI1ai%L=liHPm3 zt21TUOBPb74n>%y6JNc|Vglfe1s&i(@C!*OvNS=M9)E%*r4`PjoasbsW!=z(&CUtw z+fr%!du1LKgUmKbvd)Ofu@rSazUtHGR+_>0&zdc;Ych=@6dj$j1yE(Ia6lPf;k2IdrsaK%e<^ ztrY4mR>8-p9Svb#app>Z zf~9Rg-YpeOI1;G@p62P9th!;z>)y7h-NLq2vN$iFd}W6!TzGV?4H}vG0i8%;+dKoR zx7V_0U7ee_sgR!GJL5XNgWeY?DX$7mR~REvCIGbh!1*hl$5GZ;&=N4|o`MF^i%wgI zfdoB&?`^usmugNv3{slY#KZ@!C*RBFs)2ZrjzNJsuDoDf#qe^8z6gIon$|WfL2!55 zS=H?~r9hgn#Go1`#g^I3zEH}>CgO7N2vBx%0ubGAVd)ao6X~0Fi?&}-50u2}P$^yN zBylF!l>MSy8SKGl2y9fCGp{65MQ#xdOX~@i6F0Fx6sGEZvyh^QvWF)FIRI@L*$pw4 zzS!>IIYnArP=RU@#31F=qs0d)PBVrs70Xm{-%UWM3AiqT{T23XnZYR7(gTkPrF6NL zU)mwB>VU>>oLM&#JX@b3<6YmEO;&cx~A4W9Z|+E0F{bTZMy2HSh zy>KH*3=sP-+pdC$)5rAzVxdsLEmUc1&>h7xA)n%5 zzH?e63~Am)E3lWt*dzeMLRs-3hAbvz~_i`4ch2B!}W2pQHx`E&a`0O2b{+JP8($I51NN+{YQ9$AMIyNNXIMt-wN2#uKvg~il_H?3T;J#J zF(x7ws))4MhhZF829@R7WC^UUh)lgL3R7dIsXCxZupoF?&RCvUBUUn}5^wWbRScY3 zcjtlzMa8aK*wF<9c#dEJ$B{UL;+uXPG!6Umd)3qndQ6N}Uf7^h*h6W3H6$$9$$hsq ziY<|;wQPF0QVmQ}W8ph9t`h&%I|wZz*LBwGcI0m4qMK^qb&}wqEmewi!4{t%%+kOoe;*xtj+K|lMk#M zq&ov40@3X8Zi7yEcbw5sj)BIdRJ7T?*O~maQ1jMDxj0 z+h`Hs5}S`NvBD||x}~&|SdECOb&w20yRf7ge(mP#eot$E15?P(FD+Xog>18pYxHhu z<#rx(3M!n-Rt@l#z>Ujk6&KAA^p)Q0?kjK<09+1Q+Z=i|SrOE=qz#?;K3emK{-fV_ zCxLiCmDIo?(l&>@iU@Sp&D%mGXb ztem{b%BETozie1li>0mFG{%XIJD*n|VJV@E3}?aNc5TOKv|lDD?OQ7BIRGu60v0(h?IB;U;Bq1qYpKAC3c1v*iKq6gFo ziM;C%^C*3$6I%uR^nW@uR3l)kFd+0sd?EM`M@kJS>y^}|=5M_Qe zSJP}sIV-3DV^>LQOO%2{Qdh0v@N!Mv@XT|k71k9fmgBpHYqukCnx9!h(S!dL8={qR z&kHrr41VHQBv)}LlXqn>3tlHlBT`CO=yJCiz@B$atB-T#a{e02Gu!0kQd`EIG&36{ z<}oFx4(%q1q{~%GFEX#qzCO(Fci2ww6NTM;1b^*OKVs3*u{Z!9j*^YdQ1FWxLXslp zYG?z6{SRo1oyZjSSLvo6hcPq)<;RT~Uo~-W`n5`-8F zrd8VMlOZ$BkeBBBH7~Kq+H|p8Z}_d=u)MUB?KbhYec8d=CO<~Y|Q-*&oHRLgo8tW9Fp6j*q{+k_rL zS(JHKM-(tbtAghYb!QegcxB8Q)?qS!a-erI!_2Ez^`T&~M$>LTTqPksC5mmgsaZfv zWFoIhVolF0PN{3iWv66NSQ%wI*QLyn%fjcydm}tn8Zf1Z25QY=un@i4$zmoq^~Bie zjxzEprRaJf4R2M@>_doEk)lgpR#X>eFR_BIifpM6uob|{PP)nfH|J_9*bA-% z5SmY*%X+nl!pv_2u*VW*%7gBTlTIs%yM7fog>~3|*dP{ts^Wh2WL+z0ruypcS6J0} z3ZvRsch3u&qbt|^x)cMKb=GuQzU4JF?`Mbd)R~kcRv{>bs5uwQ%c?-I-gEWMWt9Q8 zCUrhu2B_j2bp)t2`X!T6rrBe6IM{#3W9)i3Of-64jJ`T%wm=+Rp$>1K?q$8Ms&hz= z7P9k;&N@zw#fH_6O3xy!RS8jg)I(2tcLUn-JE5ybw!DuAT8{?{51Mb6FHz57wLYLP z4aB@)KpZi3Up*2PYn&2Ua4SkuW&-9Q~_YNwOWwJbUWiWTnw=$-tkMr@3XslsPn zLY5*?dS30`+C1GoH|brkTtdLxNf06u{dV#`r%#T7Xtdtj)8nG{TO?5~W0!US)uT1% zKx&0XsG^Pefy74N>F0T*!w{DV-l{n@{3x`rWukRaw&M)(%>YZCVK4EHqjs=NHv}hA zxBbeMje$#l=7oldk8(+lSakH8~JD$(CEM2W%LF$Z?*+4RNZ{q+1+g2?i?RM$RU zP!Ss&>Rg}{q*wGg^Ii0Eg}(5Yh?%tKeCiNE8^c7 zd=%Jt*>}`S>uoZ*R!TGNk3khxJ0Fy{esRxvb2_DKR3*1=wn6yKY*szn36sRbW=I+p zbQzmY&P-?9GJt;CdePwKQi%VQiVki*7H;4rbck$7sQ3E1A+lz=d#V z_#V9{o1{nBzUyqc8)uVC1M*T|8e4}uprw=+qG}vdtHWY$j`-x*Wztsf6P1;?OCoM9 z%IpE$46dx<$RNqal}Sy8cfN&Hxz^{po0??l45f=pVr5W*T(pK~mrGxv=J7Cd=4PVq zo@4O}zo|vn+{z%I2uAkzbX)WR7EZ7&qZ$gN+-u6zla8Rt!1Z)gJRlZV^I2HDK@HCHMI(YysTgYDa5U~K#ERxhs#wsR!o8%}a3y-{;B`zYS!CQs540nRT{JW$Ec55ay{Za=0q9@xK8`hwy%73y~JSLuP z@XxBWFrb3+wp|VC87KP^cI*U`cf26tn2x8uK+wvzi~V(edH77;u(oD86f~ia%}{I%1nDw!LIwlH|Vh|S#V!pefGpfhGghDOC` zB6$fW`Of5X>4d^L#{e)+abqJE_kf&O_|`ReSG|%ACFAn3GPiPXU^@uuDa7nRb>f{z zk?q(UPnr#&+$j|Rp7@BpJsF1;QAUr}!Z>eA)-F@Zc)oHi%=L@(N8?3^Nh zCQHc-V<%gpn3sFATPgXq=h;=G>Kr>A?|2#krl;9;G%tin7Hypdy!%B(A1L=M2tk|y z7vq^bwOf;Pq|%1Q==~GR8T!uXQrjMI?3V=^DkK@#_BX8wPQn#7)O$)@dKA}6M)GY~G~~y8(|Lrw zuR`ah2zAl1a)3Q+22i0y4Ax!sP_r>)T8Gz~$jQB)2rRQt*lNLH*H(^kyMzE;(;{t! zj3Y-yCdh({&B@u*YpbD7R~7hsnE@ArME7Lkqd4*L6$?OAKU7c;&H?735E4kzCZZc@ zIh{*XmrBo7N(TkK%N;gat=gF^>wsyEPP-%=84dkxKI+X z+6%<23_K@P#Y$Jvq+bW$y+H;R@XdM8qk@ivhYZWc#~*CE{BoztwYqV9XR@n0p-bz7 zGIc7*owqNAU#b_h3UpZes?SoU{NH2Ba;6tmJ9{Gj;I$f6FI=~l<;B)5qisI5yd6TO z8<@0Osl{cXRo;t3Q^ysk#XbV?x@c^luJQWGRejl{GxlrRVCORbD{BF+4|dLVeznyS zGfRLY~76m-n`$kU0H{v<$5nfZ|e{a+imbj{T7e6HhB76lH>m61KIPu8rkSXf@2$ z4mj$V?xfjzC9q*#RJl?fVgm{f7aLt(NxvZhCw}mL`-QMtTSbL5dzeElr2n-x$j0Um zItf~z%lc=skDd+IPF@{vKtpU!(MdVSp{Em}dyBeBOQPc_vsT@&z{yZC>T)BIl!h(l zEV`rsoj+~4#It~>sy#GbrcChVE%J;FfaMyq>SCVctMZi7$vviD3{%RJ0E>DT)rxG1 zqEgDlva5VFnO-Ql+uh4h&zY2H=WmJEnxmYR|QmvrBZWX6H}IFHk>sw1D3fG(U^ zq-MPxdxzk4JavN8gP`?^P}x&~0F za^2~f>7}1cnw^@_1X--TNYz!l)$BVSNX+n06u0s8BZj~oL8JeUOhGfOL{S@DUHjX` z<>fK4q97BQ0X%8u01MSo^g_Daqn z!fkUTLUUmX&lG}6{c=pwRd$xU$_|t?kAMv75~bjKHG?TyAfeG8a6^IHckkqmJYaqq z2VQ+e^n!?Htz(N*%O@N2<_1|nBi`)Xjqap32Bc0L2yx(Tnb==yio^@FW`e4t(Sj~8Ly`*SeZvc_hBc72Zj-?v;R{c> z;b}n2aK*@5>n$EDQ#^rDgd|f|R^+!V(nP)Dh0F)`C)=SZSNO{}H53zbE@UEIp0ab5FiI5SuN`+9N&Hdm?|3ZXuwAdzFvM4}T*jOwco{@IxodTT ziMy(LM3${24E6wv?RXJm_+m3q8()T;bq#{0+N%ott>g6+CJ4WSdZN@Tq5X zyKtECFmD92N_Z2;Z3eZc)YAf}dFvXiRHQyi4_5A5Ls!aCCzw&qgJ-AXWijV1;vXy0 z;a`lp2?YtM%5Ehd)SPcGwp?y6&D)VQyOY)XD=JJnXi#QcK2GaNWF6}nmVrT=k@pWz zoc$;6^pga~fC?Ew<03$YCOaL=bmj zNSD-b*F_uaauVf>TcnRPM%fx#v?fcKTBsyi+5bk3Qz|t`iqVFdXVA4gLDN37!FV}| z1F<)?e(t_4%C#S5ZtXoY-qtkmDioI3yt8A77I8G&i_5$Xr-$?}2}KJ!YvQqoJZG0p zEx!iC7IDfo%YO+eC%j;yHz?X1s;d+#I&=A^R>3fv?KO1sS4zIiNo$*BG2zoc2Bx?| zADORq3R;t{@;D;t5+zD5GVR79pHXQ zdeht2tcBDM?M?1DeOm7M|1R*(OnMelvGesN3+6O*DRFX|;@(O`%)f0P2~tY~%m-t< zF7rV5BbsLN>1=nASIH@z>L7AP3vGdauiz;{w3Q}i(r?0O`mW>;&oeR~UM% z%~jRlShi1dLxz!OsL+asfH=B;NGv3f7>d*&B~VjN9{1Gnr`Q|20fp1G7Jq0aH1x=q z_`~gXxRg=MdSrVz6=GI$b{W`lDbK{DOqqMW+P1K~3MC2AZwYeU7(B2w-AJ8U-K4`d zflLo#pM~2yvm0ADzROU=!$FxE=uHG>$8EAHg#)VPyfquqsmgCQuZ2^Hq=kQXv{nc> zlv*9Ai5UTfl@x`4^l0RQ{(fpUzn?0g5BNquX%uaT<85(P;dZO{_Eh&gHx?Cwb@I30 z=$=|;RmxYNY(~SVf(E)<{iq8n0D!sGKj>mtg~SD3xE7|6=u|6KHilqUVz$@^8SlCf zXz)Ta(48jw%$QD_Z4^~7v^LBH{LEF%Dz!ET2Vw4bAPV5PLMM3ZRY_rE6RL;p%k|lIyp+3 z988F9@T4)dm&=H(;iQ;GG)mYFu&Dort9cHJpL84xqs*mD@EO0Ys6t zHXKNf99VC(^-4D>Da!$P-S)TGUM1lPNe_SZ@d%Lqn}( zp>zBCgne9&hiO;(TWQ0`&=g~?<69K~Pp(!s-R5*oq6kWwo)QpY!#3WW;o-0^x{_-& z;xhu;^90kl!%1fluGLWO45VC7Bm1^Ox0ZVcOr4-4U6ly6L~%Hp9w<1fkVq+w@NhWn zhIFjRt(1#7cXU6E`>xd0L`OT3#;Z@)@w8p4u&a1M$Gb|j9|NcnLn+)P zYKUWY@F4fu$fYu+#LiXhE9{hb956XdM?}D2pNy8 zU1@m)3<<6P0RR9=L_t*M1t$ZfPe2D<;s@P$B-UMW6Nxh=Hv55U_bnk~G%wkVfbv#xkTBcubpvv)Dfuzml7kD-0)728TEY{VZFz`Hz?*U`i zB%v_a60)kxTbrOun664=aXtLnc4fb7$$+LfaRaEQ%?;1G%dSiURcJjH!Ky_WP()bz z66;!R*e{IjQ6@`qO1IM1X1w+>>aa|x!J+faC!vZ=Qg$&AMmEEm^h>6@4K zz=s^JL@AP}wN4S^wPQ)_lexY6KvwSV!jpB{$RGYsS>j!k4S1BEAQEdp&mWF6nX+lc zvppknUM*LYsULAW!+K1Zvc!tSi?Tz`YqxgW3gjhO*jtX)#i0FevAL)c7vv6`KJ8#}5N8?J$h1|~&H&q%ajS?~oC7ra(PG~A&N|56u!Ydw z+WY+o1=o3D;9QaHxI7TE41reF(H3~&)V9}b&JnXT*!TQ-<$0}wS6yw<+{zce*a{pW zvub0LEjY!~fAo%5^gtp5I$^d9G5>qvO9DjVkqv1bb8|fUk%rJ_yrmL!ixZstO$g>lRBZqFiJ4AuZnpJ2hx>lSZ7OfoH;i&M^$+sM!gb^0(hc57MDe31uDda|dJ z*QAa^5MFxqdi_iMxAQJq+&l-l^0F3@L~It$R{7?7(Gj1$iI^mlUU5wOQu>@}BAJrU z$bmN;C}NeYj5JNC*3{4@kUQm-fX;u=J2Z~o#AXs6pa{3*RvTzXrCMQTEMN(#m5c~3 zu5roZ6p4nJqOX-sF%^EVUYMp6MtYTB488_DURv^WCupZ^QXbEB#w_2gpjc|;pN$iV zGzCou2!`e2GpPt|9>X$|C5s#YPr@^^;^tBLXXrhhQ{Zn2rEh}=W@}e=#`ZK<%!I&L zsiis1G!?)S&#>^cB+@`27X6Yh0f9VG0k8jAu3*KEFI6ngDWlFSk}Kooz^u8}P4-Nw z7IWtfD83_T7Omn*HKl9;aY&Sv#YH?HL)1Fiu+%RXZtoCnJ?Qlo*S=$~K=nCMI5Tu&wc9Te@U+#)0j`gdVAPNeRW3vD*{-4wwePn77rUQkq$t-bCfW58+< zGMA}ylQOpHo<#x5K{XG!T-2jLg5caXiTETBwuU0NSAt&i38p9Yc*REI!Ei0659DokkaMi07tD&TzN4sp_M8FAc?Hc zk2LB;?@Egb6xGzd4l1H{ZiuYi;l!>9Sm9+-# zY0g{30RXSP|H4YANSjaXesGW+h3OaoA2LR;E{V4Ckt53TMKdhguwaKP@hm9UZt#3DS%3t-|^kx!a?b=PPK%*r+9nyuM`C-C&+1|)D^h_zbUo<}F zW(4-z0@1_#9yxGqX7LFW>Il7a?fsUHvRGjN857EqF77&PpP6hh0#-z*x&f)ByPujz z%kmA(^CduZ%Q7(~pgEL$4W`hNNi;MkA$o@Ch)@o*!P?0Hna-u)1ApdBk=S$n&lI8r z1gxF3jDiizw5!)e2teqP>s^&D%0Okr;vm49(kmp%EvibQF^^HP`Ia`Iq39Xa{^0>$<$>12Y@Lc1A>9gr zxlbxjJ%$CPO*?J5oxN{Hv^|~AR)?%b$d*c8Pr*}>ZL7rqySi%{@)nM@P&+$YjBx4c zo|hFZA`(@a{CCzM%bN8|lZ$w;6npLdp!D{scdHt9@Dc;g#YrD-C*dZ&aIv&l*Iq4X zSxFk(u?;uoXx=%<3V9_#EEXEE(7x78DIc?q2@OtU$!LPgcIoxe?rjxtRD*XQUxC)k z^@)kqW-&1wLq)q2oG(QlAvE!RllO-9Sw>##mVlV zrgH92xUXBemrVjdpHL|ewWOt~yN(i`LYtnFMy=|BUz<^T;KL8SgtpR1yFepIvr>3> z6l)q_!K>TJA_i>Yre0kYhb&cbcC@0bH@<*c!ggHXnOdncri_sHd{asR2-MN7ywaNX z2XI$_H}HBhIBgvIbQhpF6imxKHZ%zPcIPJoO_Wn2onp#72vlIfSr|sZ=jp|sN~AtR03YB6?%xdrZbPPJF|a& z;u?HFOm|$9d1)gCmrzsN z-%9&6l=8$XJBMpTT7hvp_JI&FOUFxcxVI(kyrL0CfM`~r^N78o;K&84`W(HgR0(0l zxdWq$4{i6@Njy5fRzffp%HWa|vTb{Mx)O<`Eaw@e{%-~p;dDJ&X%f$pM|gmI&&~M* z^K{aC#o0q*p!9~ghN2z-dX;?b62%a+& z3Jci$2D4qW`Ak<)f=LA6nm+Rmv|bqwV&*jB+3Xb4H_3~Dvl-QpDMcxJZk2HL=p@UN z!uI4dlSb!)vC^aadB+fO`f^#3;WUKWGb5#bL&X+5N7{K(BF9r#Kf~y%9+eF^*Dgl4 z7z`eIMM^qkw4}DKfaR2DRtYQ-bZtt6`EIEK=@FUn#;R9(v~&JaHUz6C#H&Di0lIIT zFr4_D%JsRrp_xr2Y!_D*)TS>zKQs4kR_@LbD%8gio zAb5br;e?iQOQb$ssWr<){i5G~fY#Drkmx9D6_ephOSXXf_FFXvZT}L;#?4&PTUo~Q z4To46N2anMH{_Th%LS!U+VXtOV;-tXFZR1g2Bz+Wh83etJyFD^3MVyTi+R0LkhLsl zIIYs2xO3W-D)3;e?S=N}gt+^4ShNf`nhL8#<~T8Bu(VVPTStw7u5c=c0kBAH9?Esq z6?~yBPYu?^tNEOnx~u~{VN=;xmUnAnCOeE-oq!n3pq-jPfm2pdkbJ>18ZT3o+&Ws~ zvGnA4voIjpEm)2@4yx)Xs*7e?(jTIN>0#e0jr}b&>ha^Y4O6<(&z`n29%(fV9M;_~ z&O1lxS+02=bs~wcgdNTGOMGA$l;LDG3RLDpGhelrRa~lV;diY$YLo+%@tMlY7BJhC zxXo&}lS_zUW1FQzMwU2bDrH3_3H~C+&Q;N?4ePecXJNHKuW`MUls4tZLLW};0Ar+`D>Jaj+5v?We zG-JuqMoySv&wd@mD#}1eaAQ~aJPXV^SFtvKT7Eso*P=ht>)a^5I@Rj-+PoSw$oFL= z9~pWKkQR9O%;ISgz1RkXx}}Upwrn)t+_q9j z^6Hg;m4}?cn7t&(qU3n4__q^rSOHk2_X-h-W#(W{hiRUKr3w9_6iXc5e9!(!su_*4 zXVf#Wwc42DxUL7lQ~hc4sB?}DPf|=(QV{J-v|t(Bl|-nRDj{HYQWlsCx!MSe5aG-$ zw6l5g=~^QQjMeoDw1mb|roe%7e`N<;d0wqL*^IbX3QQtPPzaW!W;g^Sf@+~faPqKt zZdDqDYVqp^0*8`3rOSo)N))glq);P{)KJe8de)K4du6)Tspb!R-{M=Tuiw#+deY1_ zo18slff#|)_{;n0gg+@x>^82>uekz8J)-bX1fFp*>?Qvd?Z}p;W7nky)`L;FCv7%< zo+KCNZV(Kj6a+$&wMhgsH+?j&a{wHVMxcOd(`)=eECArS@O!hdqFV&@sT@+$evfUl zD*?o^;06X%D6|K#Dkqi$)u{kTK)1gn+4E(!1c^)@%;c59C^bK6&?r(9&frkVr-geS zRV>oTgmt&jPwt{z`9Z3nyB}{d0`W0j9Pcs_Wlpu!-pCkE^P?-fDZnCJH=plR3fQSM znV+nw$&FYM3<1V4OQm`e^tI_`1b$|@wb2(V8UH8RKz!gro@rlwbipz8g_JSZ1kJjA zMv?GoFYxW0XZuKi$n-gGEdQ|TyC{dy^TZvh@@y8pxPiiI8htHgDE5H!s<|z*wt6sK zwMPu6Kw3D}eq1bug=VL7D@X)bN#PWTSZaIE5CU@kr%KV;R=mo%F}cGj3r7ow)3_~S zf^3{PadEuOb5|H=cI3d)e_*$P zlSBzIRiDn;i)k3qWNEYJCv4L-BbromW4S;Tu}qtL4MzS}O22Asq*Mw<6Oc@{PTS)x zJFz69kdsBf8P$rM_Vpm*c7kQ%oWVrhWqPAZubu3Ht(?)06WWkaE$cSa;XMbE(l(x^OmgvbBh&C7-N=EuvVC zFtFaSmPTBm4&imd&yj9cbl3|~LU;yQM5A1=W|ao9k`zizsz-Z^ z(5n`st8Aj>b#9ks3ftj_mGMK8sCuDIkc2V?S@jX952!fs1hP3edFbQ$7iwg}UT!4~MM=ee@T z*U9YkFU{2wQt;EVE`~H9TsC!*Qq;(ZYQHveTej6OQB~(0y6L=QGq5yD9G6H}`oyHg znYE@AgTdbHR%uRgaOSzYMj=3vE&8qnvKeNRRpd~+T;SW$bf+q1mdyr>#$l(FF$<~P z9DjWgn;RyYc(uBrlD>pH=1zx&G-$1?lYdurYljxo`g;6|rxi=pQ)B6W%!yW?cL-b& zRL^5O>%wt&Q)WZSeJd-eh};$^Y#RYCCA9_{FVC^I%UV@*!YUW^9H=~I;g+`dZD{Zh>Qat? z{H3&^56ym(fa7!qrbtc$PM@N%{ONT$8qq1;02-gE7A2VoD7W(48S;}`w@C^d>2bRW zY)2+tywpc6pl3YYah=RXWlz$HC6{V@)Kg^~x2LQyo%_Tj2I4xHY%FZn(F7f%<;+RU zP=&|Q2RmoGm>(wkJe{H%hCkd78ebzJRJfP`2OIXq@`t&ybY-K^;G?~_x0S}QVd(q? zXAO-~`wUm^g{aWIj#eEdzWbLo((#X6&MPS@oyFF-5*E%xNIL0HLF6~McoUnR1uQY;GY29)Tv3O0F{b5l|m%Z*Vu&YERcs$$%rdrvq0a%{V2~-Zlu->(P7lIPkQE2GGZ+`I}Ezo<~D10GP{Zj_0)9>k&}jJ zt+0(zgFs%bo^r>8s?NMfLsCc9^fykT%9R7WjVivgf~*#bTi|a zVn2#xNTMV2Xlx$E66^YQvVAC!GNrq1x*bxjX~$BHbl=kD#WK?6n$^yl&|I!z`!@9z z%;_wIbHhMqXn59lrCfewSUq+r#7R5Qi1KUp%XI6R$y7}Lv9ycw*!m)F?0nLLQLbW^_3{K zwZ|nEbS%(g3bE{E=w%i~XKR0WnUFSsl4o|r3E$h#$VY2VM2NbK%tz6Rzkn9=Y)h)LaTD4%n zvDghpkheUa-pIR#El?{bV`enC-aT4;qPX=VU{QrX>bUJ{#E>O>D@*kYs3 zTmuQ)uqD;H(Do#tAt(}cafZ|&zpATHzQtwiX4v^1n~DN5h@CILOIHfuX0Qb0N_Mu2 z2uo(4F)Wr7t-1A8GbQ=a!wV9S_r)ai?sB(TNJIv#ak15-bI-i7$6a}sG_m!ZS{E!E z&6n(M4Msa1%E|k>8m6tRgsW^4u#my_rB#m*TKWNH6 zlaXa+(Z^AQDrjq+C+Cu{^cstSh?7fVtdu9ZJG(?ww$X5aL^LreSgNy|c?^t;4Max{ z9~t?AsH|@i_3$s0_GUTya%Cc3x8j^68ec+oVgGj@kfbSpcv{>0nb5qhLwk3qY17p? zp0K66x^aOlenl%9)OO{NYYGGDE=PZfRoyc@Rn4V1swE-67gUBvO9_HoE+@o zFvFf}nRmg>H(ljb*34QxJbm0*2xca!5lHkS(n7_@o18U0E@e8b?$nw=rRX9dUhBHO zuT;{pypnrJGH0HzLc2JbA_7z)9T8Oqh=P2k_O!*Sv#zAW3V`)z1Rtg`O& ze9X4emgXG~@ASZ?cowVXLoF2hZ87|ct1gA*1}CRA!_6V$niK}zoz|A7u(M^43>DZE zJU?_Jp`Uj?8o%`VP*$=z1$?1g=2pu}AYutv*_MvY^uPnYF0wl0#;zO5%l4Uovj}Dr z;x@MtLFKx@xJ6B7Lk}z|(ulIcif!&Mz`EvpTJdluQjw(UVda!wVR4l+ZJLvaQOGPu zPLtZr=Bt}OmL~U&4HA=l)d+Sc_zMgw-=_^)*N`>2(E)O)CipEO|7Wd_K-YD z8@i_cV?V5LUJta}Kkb-W0oZoDIg>{1EjRQvbx1}v#4_z>XGG-Jn5&QnoKBcD_spno z3mjODcU)YD&u*Q+#AB5Xb)-*`iN!fKSrHJ`u=upTxp=QaSRCWRyH_0F7lq%sZ$+@U zHxW@4qmy?^b#RXW!6EL;tSqd3fNfNZd_AIiXA6%GLBBFQWUCU|wdgu{oP7bwF}72| zzdPV4c~!EIx2X9E-8TbmQ zl41~dlsvb!gDfakT)K1vUPCUWO$X_6Tk;iQa}z?`VywDe2$G}CxThpOf>Z3ey58Dz zH{;5=(SFVnqUB`@x3g`w?zoOU1QGVJnHRPv8w-FsT2)~Hj{zh=Hf>Hez&RS znIxB)cze;Qrv~NS-p?($u5D?kb9mz%XZ6~n1^x;3heJ#4j&iG%{WNb!`&uZ~F=!{J z7?qqFPI(iM`plw@c5`uIzMEQRm8K(|3zUEdeW8jF^6_z7O%AWZX+OZzu|}-SHd{lm zy|ZGW*S2tfu$Iuab7h}O=Qxj2-pz0n;@7E6iPL(MpulKW)c`Pi#XfLKP(ORY$yW@k zYh*&hqV6ig{G8^Y>D zP``JvYDQx~2Zl|p{)^-J-!mqqhXgYKdOR$RDQNj}SCj`A*H#W6xqfGKZ+QC(xR0^5 z(|g6Q*r^34n&f0o*l3r?6h{dGT}i38=|_{YT<0z&R6H*txg4zZ5&Htnz@>wyk8J<& z<--9qy7>T=)~kt`x_f-l-PK1$i5l-oHsH*9$BZLn1iDTXu(};em-i}BtUs2>rGJ%N z%nKb;#*A`Tw9({mQAoTk*N|xyF*=8SJx(&Gl)3{~QKN{&)FryZ)oJ5-j#sus{^XG=!A z)q!(?qUoX+{eg&n>|*fbeu0sZJ6yg zP5J<;o{|)8jnd7dPoHDjTf;ZlOGENl9AT@O6?5Vn;*=&&f`e0-dUaxvR@|++jkufU zb~?3Mor^CK3`c0Uia~gH(SGlW29qX^dGv{B!y$Yo+>}+0o>EPKohg@0@;kbzv76cX zr~}+b@+tdHkF}fHxIRUsH5X4$SjyV`Q6eF2#*cGeixhPrM8z zR{p1=P|~=^<$;%Bna`u~gvqd(nvqF(e3+}={|QB31VDt!s#)}&zb#~{6Y=Y7vE@wL zJ+tl9d2_RYW=hWb>m(ho^HnE%e=zG)o)aAv8fy*NH4E6+Xk@YtC#*4}>P@p@$?#N% zv_L2t#M9-MJ7i%-aVnuWXIU<)q(EcQC_@LXJ+;qdw@br@vbe3Gd?Z8Z(mJIhSYroo z-qwwq*TxuY4Ctj@K@enZ4> z|DY{e$S8JO5^63|SR3MpkyL?$`=D#&RvhKMOUSOUx!0d9&x`@6`#A_>0jvfu|D_*e zfM&J}?8j-maPJvZ~flNa6v^Nvg#7P(@G$ri*^QJo8@}46jgg;kAVwo zvmIJ-y&GKZxL%63fn{%_?ruOIYMgV}?(ir5As6u32$T(RqY6za3A&kD{w1rJu$+NP zajwsFnnG4<8&JNxIJ4szF@;cCiY%zFG=bTxbeU!!X7$OrJgg+7^|3MA9G>+P-z<*q zCyBP4O|m6K%Wd`G9FGXCV|<#1wm_}%3A69)zAz-Gd-!`6w|wJhRSs(LuX$WmE8Ee& z2(R;UBC3nJT@5?Hq$Af)fkdLqCYFP!zkeR@>o@>q-gV$Fg! zg3H%fMCOf_ix=>i;Fi_tg(h6q;ZTmyZ?={6bZ9MJx_-p_4!iVilbEis*d4u^-D?q8 z3?q-C`~uKY|KNcXdY+N!CPJb{-X=D2HWKj}+NO2&yG@&Qk0qwIoLfJNRzgXcw3w=7 ztyn%`XB){pJBL^dn4WC(ii&9sb>*6iGc6{V_tzXo;UH{Z*JbVzER#=4-0I_w(3eXfauVM8*@*jxCh-QZ#|G>$?>W?N3_Abm<^hhl6&skB)@nVKdo!NwWf z-!6$e9vhS1*p60T5jj0k3e~d#g0S^qeAUB=T#0}Lm_0>kE+w&&HIMSru0l>#3}Ff$ zDdEykl9l>uTD<)Is4mCe=>Kz8K9HBpDrnr@v^6f;vZKu^re0lmd{*|Tw_1vRJZ})O zZ$gGN1H63)TF9gTSQDmCBKZDyB!|qH<0Pq#=AKU-v9?0o>pAmS_<4jCu=>=;x4P-` zG`maw^bf6J>n|%e(r3?N=Uzdlz-ELnN3>yRTeqg6mb@^v%AjqPS-NMh1VbZ2QlkVx z7h0H$JVlwIKO8=hjWJQG3sh4f*@dbpPAE{_TZ+=qvJPu?0|1}LjXj(lT@U1ec|Cgq zM|xg{cL2kMpb`(DArhHnGIckd$=gR{ep+Q^G6UEyKU2zvOkV0I=d0(qB)XWhY6p@z z!X)TC>hTyiM5Gw|bgbu8#j(&a^T1VpeDs?2fsJ=C&uv9?4tvPA zUt~*9vVmv?WNSsGQHt)l);W|B8dvMmdRKwy%IscTiqh}{3{Cf@54?ErfzYF5zXm8G zZq1qJ7wL~ad}zm+Q!@S2Zgid_)La<^oc1K!e z^74Cw1+4>Z4?CTwgHDA$%m#Ghv9V~n8A3YH5}@ynX^%N=x}D_@{oU(#s8Ze7-P2x) z&c23EU8b-wEU~l2B4!4Uo?-iLe;p!yU~L;GCX`GsNr)Jzcn44t8kH9PdekK+=mig6!kKQ_D%-9Kg?=)f zo86B|B60U3?iz2mZ{HB+t(dS4G0E;=l_mIOiiV$*uDL_5ZFJ}pWfpG#NPFOV%Sto~ zNM`q=!>MN_4X2hgM$EP1Fr|8a?1V7gowmrvCV!{GY-K7WVOPQp&-;;OQFf{LF z<@$m9k1A~`&X2ut~L$aCMJ89SeAwft!LW0K$NFl?= zp7qjc^_cF|W~=Ey!i)sXaKQGCAf^h6C!dVS;|tDuwHI*Me0YGlMu9jPHuF_WtnRLQ z;M@ecQ{}u|SK-#H6^%kWKI|3BdL!Syt@a*98AAE@$)tRT2DJfEP|#8{B<_;j;L>&( z51d|lYR%A#X3)(cW!DTo!3SKsO$ZH5^>S>98Cqq>#EL{7?=(d-CY3N5+%cfFqixk? zNa|bvX+-VBF(*j6kCN}RB%<4pxFzot@ETI9032&2r%E&PU6j*kX;`5!d(bs)rw~$V zyjKi(7Ear4tzeKxBvn;t=@oms^iYaBAyot}wsN;j4c*1*S;GqkYlcI5V~A?lmHTr- z`?4Qo4oAd_T$a$BN#`o_L}o{qrr-LpfF}M~ve&*Lm!0HbK!q#zJ*J0y7FfKi%R1Fi zFM9w=hP-In&Iwdx<$178Z2?=NJu|o}3#~dDBo3D0pmzzBAZ|T$CJwa<(W8D=st^d9 zb7R}RMQ)`p^kFT_2=Vh}!Eg8SS3IS==dJhH%?zz#4JAYKXk$0!J%2CkiLF$)C<3Q2 zlX}CPX4w<R=#M9%rPe@()k=A%5J{FTKsujZs4*=?+*wS3fg#e}Yy8G}5;}yGc=G;~^Rmxda zJn|YBvxnB@f$@9gJp)jHI1-;HO*nYD+|MA=Ezpm`i31>-2U^cOmX<`)wXNCUnaSR?O#rZB{q-)h&M(wO|%)hZAXJBU3=-LSV=!Pt0&J&>PiJ+IPIoqVT0`X-Hl5W@F*OU&=sTl%TEgd~h;~X7IVI&iW!rQn zSE~BJyvO%?J8+;7=#>S40?yXV?_jpr&nd%G7@gp9wBVknU-W(;v^{Uj1A!K7K#dp? ze473>q~g>)(b_v8H;Y~6R8iX3mheGojo-OJNybc|uCUK!OJ752+CW-+?tCp<%VsDY zKfZ3@dcV{jNG2u);nApBie*7gwx$kbIzYbe^^zM$oLGz|d8TS&06OJY%|jgwQ$=qp zQDq*g5eOXqm~{6Pw~b3ZxWPbSlc)}wh?cgp@wt%F$xKQlQ+eVQ*TJgl2K160#LdHZVJX!kQgS2On?e<8 zZBO5%pvIM1EgxI1A3dQDg%q<7mf6+yDgaM*b}e!=ep{U9!0MAVr2tHw?A0?jEP&Y3 zXld4@e*4!_)mrUcrOju0P@hZ#oJg6U?(1)c(VvL{pMDRb-8D44=8+k_qIihHU3!P` z_#RgTMeJCwsWx|U;I`#1Ewj19*Ly5eB|S5_O&>Abh}GYN4DT4yFubKa&I(maC6@qcmxMFIw*g z_M0a~5njm3FYI2Uh6Ku!tK}w{PZp_q+C<_^l$)*Ql6RKQ)`6r^t#L^UI<6LUjoUrP zP#BQ>Z0%`X$2d4*in`kO!tZjLWr3RC32V`pBFi{0krFQ;vUMUb5ETlx53~_Uzo1aZ zQ(TXvH2a7jlh?V7-)4Pu->(H`;?lqeQ2^h5p<>|bl1pYuWC{%#IpoRK${uphHZR$0{CGMY8ptWxS&qHWuw_(#qIt|hx|XJ1Fi8R|#9&=S zK!wP`Za=ai04*99a}(lLY=qCxYyK)r3OR*WC`g7xQEO4VyIgel9BcKmG{cem-Kp$$ z^sMyyiNyDOYz=4)LLaM2)vC=TLu=cV73DoWv4!A1b~#IG=;c3@R_zzhw`v(s>68WB z3UJpfdV#{^xdLt8gtw-nE2G#d30fL%VS@(S&v}|_?-Z8Nx5*9$e8%I(D=t{=l)vSO ziEG7-8Y>n-O_n7PSS~qXUujJC>2wzSS3&A3M|%3 z4OE6-t~8Z$h$3SLfCI2RU6D;(L@JdVw?3}zuC~<#FLBxQ)48X1wy=K?-mh*=zLi~k zoc3aOoIyk@Q4jQiQ`b>@#36<%KoPDGT71BN)@-QP^8_{Bw>(Pq$X5xlF6!KiS28K7 z<_UBn=I%=94E1rs@=qCDZTC5o#}12WO;@n}Y(|-U8Kgv;o-E$3hkIE$IZoa|D-(jb zFO|-*4_Xwlcvz<4o)KIK+{K^ONTS2D4EHzpZmL=>LC1Ld8UvpHbGntkTlVD>w#6NXI6T)3RSAnjnVE{cyjn-y> zv$<2hsAk^-#*~emlE*EBk_Qho@l(Gz;xT7BVOAa5Jc``~KK^QwG#?-M@z*GBQIY+e zQF=u|>Tp${gv5E5K$FHQgHYT$9F}vt`K$v=nTP) zI~xlU9ah!2SC@y07FMJoirHI^3783JNwYEgY&#od6_^4Gsyr?BUvwaTDvZMef{AAb>|?Wum0GT5@e@uavn>zlOSF-P*Zd!|n>W>aMG z_w=dkOlQxP0hM}U(j~L(p3Q@owXPDxCnFHaUe={!JbT{hDgmId6dy)HQ1`FnE7$S} zP3~qvkG9PTTSl_6Q)|e3YYdDBt>zkM)5=~jxkz57kV(CUd~<_9?7ZtLfQN>dw^y!324J(x@7wve zcWhd?#=cr2^Bk6PBUsHU16)&8yb?RiKcatk`2AvRr8_N7v>sT(N_KOeT0j6Y$+fj( z^tS3renk4?ZhL0mqk=BKI3{5Gh*3lEE&4|Mnw;$ z*03C6lL)E`=!GI3NV()?H6KIpCmHd02oGx(?;kU)+tDyN$4KsyVT2=floUEANeh({ z0TZa8&>9NaHi^;KZ4GzDui9x7xM|3{WlfpOk&;^4bfzM5hHu3sg^E0_abHX0yJ0MT z^m9p)9pOG>t=ajnRX}5(TQusC@pA@>+Js1OO&RtgGQ-X6MEgfu2UZULBNNvC(h)=A z6?!dNH8beG7);|qgm20F@^UR`^-OR)tyr3n;eBtOT0tPM1Me7-;CmcxG}1Y!#P!Ov z?bNpu!4-vLUOlw~x}40j;@NtuXJfDduqdU1A3XIyTUDaW9dbzBh*&rnU5I4Z9z=W`D%Ty9afeijMf)1N7Wau^wa z(v!~PVF_3BoTVf!ODfUlGh(`|wcw-mxs@uafjavYN@(yNhB@|egQi~PwUc3-SC4&8ZQyrWJO&^X;kfykF*mYyRARMkTx(!eLP zpoL<@pF#k1ZCdF8s`!>V^=c9NmEh7a$KkQ=EMTsw9NX)g5($ct_XJTnWH*%mbOSEd z<&$K45@zN53(vKC^X>}kLbcLTdKLS*DR#&7hKoaDYk!?k2_@dwxqH_}PWsMc7%~A; zE^SoLG94x`*OCHYiPF4@%l$c72G@maLW6D3Nqi#AnzJc|h$A{}n07987<&ELy1W74O2qp_euWAX2kp{K;oJby+kM$$3hSEpVvaCf#$JkAr)t8Y zj+a8rgPTlI&lKg?q3wV~XG?(EckcA2R~b-~gU6i|YT>F$D<;hsy0m+sOyAH{ptW^W z0$C{r!yTJ>cUsy6(CZrV&2{0`8J*j4wSfG1wDK1;r4Pb=t-GHrS6{D+T!wOCxw{(= zo&Ov@%GKq}AWOG=>%uFaj$ybj)b8}r?EK225aFYM*)Y0us0b18qNuj3t8hsRZ3me4 zVn-2oW-{#~dNWCRlGYc)qN+~oK0$9@aY#;wD^#g#N4oCm{UTRpPUfagpO?JX?~9zB zxcQNYwrS6)b*xP7JhqaBkPb)x_Dzb8wLn>}Mq#lul)Fby&a+0dO`zCkzNIjEvmXpY zI-q9*U2z8x$~W^Z!ofd z&+~$MdGOM-j2@`UOC9(@!3$^K>rYRnU);9^=*ob6UQUzoN~`#HgcV-Wl2XKy2-*|B z-YFu(WwZ5wvU)YM8oUW3mtO@SWwBcn-DA=)jYLWxH`O6VANf9?G1_F$9KDKstAoqL zy+1Kk)D>8OMPF8LTr;2RXa;dKEmY|F_F{fNOFF38%l3XlM zBL1vNNq^at$mI%^+Q+<7JA zl^=j)YN=t?W`)^#E=(049xsAenU8aS7nU2EYxtmgoCO3$0i;-(lnV^fbScUq!`Tex z5iPK7O@cmr(?Uc}lIwzy|G6eBg*uA>n2lyNd1hsrpc?p9I8q7?yts~4=DLb78>2wR zb3q8$8%*>}K;z-v?=)wEx2E*e4ZyQUY|0i(T0#X&pB!^vSAs14Tojf0zZhkINLqeB zgs^?YO=~N06vA%g?&}QmWr;_wlt^9f}~(3lnje3wku1yviBWf zy4p(Ct^CgTbep}BsitAhJH6u2E75~+CNep+G>=|WF+x%a(D_E`X?>^oviGN})83NA z66NYFtaKv??ENZDi9|$7)wc0zCB>(Um5D z?DN*HE8jAC?(p%zOq{)rr6&fyzA2I=(_>Uo}*daZgP6h}AD&qQPC!RrW-Yh)o@@1xp|eE+kS1bjby@`mi0 zkKdgv?_QVD!I%7+c8(0~+K~p*`*ePvKdxE=?(+Weie};t2F75hB(=wk``c}a>ns6i*riC zV6W8;RCeh+bL&770%ihsY!S|Fm;$W`T8`(gjxmr_7f0dWmxZSzPbhjT6jMwmsyGeH z(?m)S-gd>>=lXWR;X}EIW2Rt(n4m;loXF1|o~p_s<$iDsNy@CajR^mHNhctziY^}G5>q)8(U|UwOJ5C(U%|06AiCfUpX^)-; zOxwpzsUl4-jRlY(l zCKhmXKX3%)_<|8r4k$1}mK_tY`TLrQE}of>r+oITqvyAIh1E?2qDp!CF{^Cj=@E-g za{;>A_rSvB>R4+cRBIf)#`qXwkA`*}Z|-OJ31LrvU+~n<3*FuL*nQ?+^g`9k;~i_9 zI+Qir^ykd}GJDiu;B3~L&>K--B+!NN01L?h4RdwXQ(2JQKa9vdYZZd)@?f`K%A>xm zX^yBMwy*$?JG!5Ga-%*RO^5v8J-H zRDBoBvWB`BKkomC?Z?ebDX*IOcf68Od3LdWQF^(+WS4hWJ!f9A=FIB#>A+l|I)xgj)+H=lX!U(>e9Jw4y4)NXzw}h z;RD`2;H$>zuhr|AHVz7FK^ZTS>btkd97-_Z>ZDPfE8^)jbrk0m?~vJ zwO^5~1CV^O+8!dEorN7{D>K`}xuz;do1=z2mV#rjFg%s@nBlCG2(Gf8=x$f*l1ImKU`~#%c5Jh#w)Wv2D zALaYbd$eZ$d*oks?35;N5V>i>*|v$YfCbsAWcynB_D;Bl?6o0ids%k7UY4UqurPL~ z6=4HPid(#uiU>8c@#2iC(KvYLti({MRyAEw4+N0vbI^XD%@IGbZx&%p%YmH|Mrj#B zo}@9c-#n&n^k0ZD3{xB*K%>t+y;@AP}phN9gQzeiU#)aI~%=4_-g(RYX^pCvdR_`I zb57eA=+iHaH&lP@x9@!C+dZ!^eSLj-d3}BP3=BiDMMJk|6yVz=NsddCI}Sxm?<6I6SSFpegg|W#Q@)Tq>Bn%GT}`ct2A*HBwmT5QA7kIf$%ni+Tmvggx8Xe_i&Sbq+Kl@zGsZ50Txk_DKBO8{Ou zMuJ%2S~7Im&Y(#GqB^n=a7r_1w9lzrR2Ozl+vX-E38s`^k8t7Nl%Tq5e^)fpjpO>0kj_&S0Z~fM9-EXJgy1U<4&>z^ml#Jh@SP?oo z6{x4`nK;kS>2uE8X;$nk(g9p|fsL);Hudr2uuu4n{Zzk|_=e}zbN*2VYkdH~@BIQH z>nvJ$>gDBmd3kwxUO0;Gx0&+g2PTv;_faK#i!D2HrbP;zS9G7}r9Ql!zy0$+^OyhXU;0Pi{`Rk&FaOrh z{hhz}kACjUFF$;B&WFzqo_cwGDKo}7^Bx*@Qxl!`n$r?Qj7@gkb4g{mgnUByak|)t zoene5SEQR2SoARgM_D<-@vL~aHN$2hnq_9bYlO669PqfEJ4AG1bpEEBKPS8Kb6&Kx zYpM!&asN!otJDurn-G_Nyf*9MpExHt9OIa8? z{@xU(IYoL^s*PDAGQc&xI_JE-y`4AIhx*#<>-W8U?OQ+aqrdK3Kl(#I@TR<-Ge7%x|NLM4|NZ@+|G8iJ^4tI5AO7qw{L{;MQ{}SpwcbO~vJa9UDnpig!?bNVy1IO`v8@rcDA;$W z`W0IdKR9!nQZ3i8E9!KB+Mq(%sggseQvE}$C>M}w8rXMhdrFi$T$eM&RqM(ca$i34 zVKLFW$;$y>BcPSv1}x))&g1qKCYL4Sb) zToUVs)QJ@VR*@qRT&^_~P~u8gb{6!Pw?d7(l9X}y#~F}mv9;?wcP4i%sJtFmui}$q zt2bN<&+L0!!?x6lG^U8&$ z2zw+|*CqUm>8RI3JeRpE62h3x+OxuPFgX(n%|P7YWQ)&r|5)lb^(~fYqY{ zSy~*a+F55L*tO+zCf#Mxr^eQnviV00Ib)JDlfg9m%7vsngdYY;Qn7Vid5U{GnkK4{ zoBeHzCV9ySJB_?cL+~e?IeFsI(AKi2*DH_$xs^~fgGg7XxF#@fGgZtwcsr;UM?8QME~ zy14Tv(b)phD(SZ7%ym^E#|MV%@I&sd@qw^S@|C9Qh4c=5Amd$3){YWF*(jbvk8|@# zkJ>Y3HlPfzSx!(M*5|`wnr<9+^S_!{;CcFa@cQx$jl2}9>f>x#d84n-={|MpynXoa zxBk{&`;-6vAOA~#?a%(*pZgELtdGyho ze2En!*OW|f;sF&IvkDk9us zItOs27}q;UA#vMYeNoeyDc;#iIO8^%VsIVGp@E*}k{v&+g`dfTz4rra)Y_Jn1T9IS zYdYy9_DU;B9?Nvs5*Itv?i98XC2_ErYigG3tG!i|SJ_g>oIx3Q&fC|%_`zTQPyV*9 z&p*C>eAQI6QL9G^ZSC2x^uy`|bEFWvw*y%zK_v}v&kxomgiimLKGkHPw4H#H9j23s ze%W%(ua;gZZZ6l7zI4T;nIKZX?}E@!IQAz>hM7|s2d&?Dm*S}Z?Snz|FQla@|VBCK?OxkEt+`w<$J=d1J)6qN6B*Pe=BSM+8)^)w?I ztSM}5e{{l^$2hZsGa(e72aPX3zJ2lW?Zv)7mBWf(_U z$n$D032nviIG?`TVx_1t_Lx5I+^>M4?IakIqo7<)f-4D+R)!LT`Q=_r!}h48{FV{~ zQuox3xZFbMwv=~^xv?_NBK>%t(NP{kpz5;VJ!E#fObe@L@CS9xxy-`CLD=tI5yxD+ z&Rp|t9pq_kI}4cqOEeL#R_3}SNPpUQ8%Xw0`(;{J7pE8R)#o;DhG7)$vlXgPc19$_#i~z$XLe!CTSTcTSmbsfu9TNHF|T$V5yFWaA4O0= z?!2<5MtOH6U|Ybl+u;{isvVCmwl?9dV8a3>zN1mHvqgybGu*wfIxr0 zRgT?FvoP9IqST8V#4TP$}m?0gG6xL_sbvI<=)uq#|x4)}b)dd{q6Lf!C z<&bsQDTc|I6R_slWW)4`051_VV)C=jSxe;r3u?`NWZbQJy?e zp5oBpiill;^G2A>iWRGvk+!H7XgN7iYDs3>6JuJnH)R=qYP9y-gSQ$rePK;T?lJiD zUez&RYF>|d(B?_cG%sV45|dgI!Qm6OTzLU@z}mJWjh2LKoGcef-K+$}DZ|DYc0ydW zS95+Qo;g9lV0Tt$8gNN*)$0~zEL3pjxXS{?CB&Gqw9Ct`=){Klc0ndoRxm z`m3M)slWL4@s}qGmw7x{>$>uE*|r=F|CpSVd*X#Ox#LcsP$EeVQdXAfM``A?HVXIB zfk?wo?{NK9`|(mHujI=#2Fn&6q^FyRZfwa~(Y_f;vtC`=H6GGZUCB)dzl&ShJKX$fag)QWj`S(H=@T%rJ9qo?U%K@AdLpojZdpy2Wlwg#G-sz%1*Tmc8wbw8w+x^|H zx0mPn+UuDr|ARL@Tkk2nXx92!;RW?lkfNFt)@L5v1iUd2m~31hU|!Q6=)jcylP||w z*@RmS-sCexPzQkD9>H_hN`Z~F|6q1DSud+9wdC)7a}3 z<{vEAJ8mrE%>;T5ggE4EZf(V9xm%T?SdjRNRwlwQV>vL4>B5M<7RMO_Smvt#^^A5r zlKf}(mz^`m$U5`cj7B*^VeHmB_?1+A&vzeh6%ysb#-K*H3uiY_c10THdxd(x| zj@jQC?777H^Ym(;pZ7U98bh9@$dF?$%BA<#=!EeKQQuKJlWx=R%+OGW>)o;29g0ae zh4KTJ2*o}?zr6CfOV5LPL9uw>=MAT;PrZGF=B|^7x^cSSzW-aV-}=@Uzx?g*{$Ky( z|NW2syZ^hN`8$8Uzj%H5{Ik=*+o2CiO2!FCLn{UH4kefm8R>A63OVg>iv>h+R=ah9 zLnV3_AsAlD+tKT#RzrZj5%%zI`Dn}q#J#MrES&7)d2DBmE25_v|otFu^z99CHp;Ba8?p}9k=35^+xD!ZdbV!5o90@ zEc&QYPBVEb#FZ_a&@~qc5ZLfJH3b=7^P1Y9x3{l-{RjUEuCl(>kNw{N?#s&y`oquu z)L(e}_-z$Dmtb0kzUD~EceM=-4R{$y)@NM1qfq)!lAWO*;es;(7fTHo&%5L+_00|r zlU^raUu#VNJeT-W=GFx5a4JkY__0js9yFty@i(`sCL122qpBzeOL3wd$n90?lFuwS z_WH`$!}W;S_Rg+0@v*iXESKfnh$QG(<){pQyV%fGW^GF<%bX3B(Dz*3H-Jt{Bq>I| zL)4r({ixf20vCH;Xgqks`0wTU@Ydh_s{g=`|K$JZU-)nT{@?L?@zsY9zwk@__J-%_ zsyff})l+z-D0n;7l1Xr* zo*^1pcHzzuo^xbUy^4=(kc-XWB(h6Ol475BV&zP0HhwNUDDDd#x?U5a-Hu??0;Qe1 zNp7&-!fV9b%62Q$r*c{u3oOX!R$Ef7b^Gdx4u$&S=aq`~bZ3 z{;J+S)W?ris1G0K`BNyMPq!EDq)-Z;(Ghm#3}YrXH|7t~Lw;9wiq2lfF}=mPNIQa) zGw_w6YSvz|YdxZ2uYw*9YgS)T3rK4fB>|&UoSwLO{o--e)otw@Ujwuq?Bv+D{Mf!V zZ0He7tw#K1p;fO#yc2tBCDLPc10f=Aw|+`<#}H4@`8G;n%_sPK6t7=e!#~! z^r^Rx{r1*9CH@Efoa#R3{J^(ff8!j-#uVSc$H?V#)XtS3uhk3fjvQ0#-}iy~OKc<~5HppPCjmZ9}I=3Uqt)p;9p$ zXE>s7YteUt6^d*_XaLQ4TT2nlcrDz|qxaH*Vb<7a53%W#=pDr)vfr>^u*; zRYcmkcG>fiebXk^@zB}u7UdOHWXf_@P}mEiKo=*;?l%3R4#aHP=Ayp3X)%lAuu||q z$TU`n%uVttO;{B~=+&RT%xEiJXRlNcm}uRiv7K0I&0+w(lHczLbY*ZSf!^i&+t zA3pYnk9hmY-j-tA>2X-Tfw%aLcw0GsBhoI>WXFKqL0$X!25^q%Bi@<}-M1thyCs;o zN>)-HmEYvmo{di}3P(K+NHuV-pfU^FNl$y9busE<-dz1ZX}T8I z>{wsy*XYb8l`}89Irv1ydt{QdNGmAhUfvd%;rCSLcv_SLLEiaFi3-$Um44czw; z&KJ`wcpeVx{JG!l_@yQ;a5-NlJA7(Yf>dmlP%mH&O6RszVJ#iE$cICyvJUw*smynOA8mzU3;Dtzqz@MXWf_4!aA zzQV^Z@pjJJTb+=BC*+mbgLMXUcGEjygF0G$5oe=&1tuU?Wq^!wHXUvzEmA33z1tvJ5KcNL`XfTmwI0C`ikf2 zm)CxM#TQ?HK7TC$Z>Qeg@Zl?b_e*?u!&<-?Esx|c7$ z@$$$2)Svoa{cry#KldO1)#n@E0A89(=4}cHpPIZ32hBJd-RRPTJhT$5ScGo9yTK%z({!djhnWMRa0FYzDZz+V!;$Zy)P7{+@sR_2m`)< z?To2lOqE2x!`CPMu>I=u<@xoW|KR`hkN$W5$ba>}{`Ski^5Gx;BLMX)U-i#_7vKI0 zZwII9t-BwbD%8u@K7YRPMSb%NeD(qWA5VYzp}+f8e|%fQ(*0>1zJgTwn_g3g1iEq& zY#Rq+u$7QKukzhjl%&42Dl@$>xHjx_Yq2#>`Ev8bSZ~WG%-20eg-UT-+*uI6WrJ4j zD=nDsoTH4ZAg^nf0#&S}RWY)jFTLuzXp7SBZaf}ie_~Q2j2AMQ>KBbP@M)lYI}ZRn z5~`)3SW_fGcQ3b|!bL=4`uRNdeD?bC`RnT!pTB(mTA#ht^HkN_+gsP$Tb<8-@Z}pn z@b#bidq49(`{Vzcf9wD8zyCYm{@Irw`uwxczINVT@+2C9To)C~mNJIvt;*wtbVYk> zkiKOKZCgP+%=J&h@buyrEj}6(GityZRM9bq95zYEwz0Z-r=$VQ!Sq?xGPczSRgDFq z_Ff^ZwHlzkDtKs>)ge^+;9<|ISW_M*J>7}SbNyb6vfXpf3(M!VyX(#^X%&*TyCP&X zvuhQ~QCRslav^=KR*Pl_5$3YVMKqA&iU%|v#YbSh^QHp4DV4J1JB3^hpDU)Hz#H~sn_|5yHnfAtUl7yj_)RloT6zxwja^ZHqR{@KgR^PrzT_2H}f z>Z|_pyZz;t=i^uX_J(u%aEZ)Qha|f}NF$#^K#cMMo`*9)di7|kDYjb#DaeQfvi`Y} zHVvoT{_y$vVfSgrFzCkf@ZGFEw|BPQ*{$+|V51Q%UsnNo-OC(9VxCiP)!p#p!>WMM zawq-a|1(6I$IrD+o~EuDi|L1f!0|$J^;Yq3p2t&rxmI2EwK$q5Gn#4B-8-E0mgjm& zc6N6IeotJXUaFq{>=m!C{rTtk+Sl>TZ$2+Cbq+p!z<0lkU;M@XmG8WL`#a~W516O# zqxKL7mno8SNPgTJc3`1;!yU+*9N4PXCjf9-GooB!tj@UQ&zpMLq~_jf;i9`vc2 z*X*tPXtIijOzkjgHQcgAt7PmBE5+dATdR63J!$c;#+Z6qnQYCs6yLtVL`xnlI=fF~ zT``c@ytRpOA9cx@1C%YG>tuTQ34+I#}66wH5$#yVvn^-JKX+MCtA*@eW%$ zd1OAR9we7ZT5I}{T`uBPQhyF#P8>t?3Y_PaoZD5U*KyjQ6Rt)F&OA73NL#AjrwbXa zJ{xM16;W-bV*k~BvN8C>M@?C~zx=tM{)=xPzY{8|HQ(FPd1KCWB7L%b0Mf)x6-mK0 z+bdP-mJ=6HP_RT}-eu@`lGdsQ`w$5f;*hib$&PE*ltPFO+x-_J*;Bz|yaGiCF|aY0 zOE0?xYOu_3f>&ZO_6BzOcDO9q^6XG9&#V=)qBT2@A-Xy;O+1K zqw|lyeX8Gn@t59y@w?AgcztWUjS;F3s;l2l0rm3v>-T*F-~V-d_JZfBs{WO)`rF^_ zj~~=KAp^i$Go<)bj7cW#NAj2elDizG&S`0I9(TDUK={?vlP(MwGX1MIfNUO{Kg~Bl zJ??@V5zo|20tcmuQ!lXslb4mYW%H4Y6O$7?)#>;t; zLT_`QfWz`{>9XNlOQ}Veo{(HK9-v!qlQz}tvh2oy#!{HwY~zJ_0?q-6#&M30_bmN0 zgW_z+lqV+^pf}=NY?;nP3MnpH%E|3m2E0rBE5pB=fvo%@EwaSZRnL}$6`4*8E4cveSK!nNu`TZ)5O|212Xog?^7-zk6lrns z@ZxZ+t5|8xghG5n!#0q$(`S67naP!G1^MK+UT)t;>*gE+3~0)_D;5k}L1kt+-W$3O zwy|wf0I?l9QWkPZupxC@K%t(->)UyI`|eji{Iwtam;Sjw`mgUeoEg)In3~^r)nLk!;m;Hy0#TY{@PA(bm z;GtJLwcE71xxjRIlYKPste7309$c3auE85z7~BO{Mrx9akYSd3(3;eE_~4Xvn{EKP z<^w_DrGGF})@kCw%L_hx?U&E+jqk%Zzpp<3tlr-60aIGOyBqp&#wNX)>>8X5eISZci!)L z_p^8Hsl(&&0M5!W2DY$PTrn_(#(|FFMXh)2hK^}199?d%spf_ zvzYZFbb>19+JOY()v#a-&0Ohyb9Zv>(HFh=)5DKHE@fRVnI2Wel$-XcqV~GwHHXCX z*yB7AbCVLLnbOgCJ$9wV=z(RmY@4%VC4Wu9Q4%6Q+^b%*Q_?XxR=rn{VI=|F+LzN= ziz}`Sm|1(QM z{ipu+%Rcp0%j0+Eb{)I9Jh+(awTG>y*^FhGyJfeHT}&T#a1?&H42#t`I2~qT^=@VP4UZp$(LEiZ01Z}T>^KT=W|ogY z81jXSrGK)8V#s<+PrHUDunL2jBl%@}g8uXiHvpf$gW|JLv53fi*q>%2t`4IMuM7~;S^0B0aLD=X2EPs zs;+`_j45(&Mp~IXS$3;D^Ik7VeABd9WNk=WrF{fB4t`_<#66|KW!>_l{0Z zh7Vu?+L{8#&^^e+R?1d#El4-bdi%EDx4%-ihloUuQ8J=_5RE9oSK-Wnur7F^*i;t; zH$|N3aRgI#LuFP*xuAv}k7o4j3lCmEip<8vGtp3_ZJc&jE!CNs#%!?0TA-6!qECFQ zmJnl0=md*4nlfum(Xgg|HU;%iLQC4%BXRyvIs3z6T+=n_|G1{I+F;M~@_dPU6g#N4 z$Q1(RiRJVan0ymsQw9-xRTat)x=gtQ>@ax@Wzk85yrhjU=ow}>6~e4ej1 zP&K!NDB3qK&6s9sVuWB}ZeuLFY3umxPkY^e@(2FHm;8>`-g)Z$>OmaX(TJ5TzAP~p zyS%jXi@CXqIb)ejkv!kaZ6M!i3)g=_Fw_#i;_%^?>!{c<5i=qp#u%Bz2JPg-^LPBg z2EH2+NQs!Z!a=Z(GSGgGb+)uW7fyY6x(eI$P!%eRM02klwGW3GKxR{d8b$&w?y`U= z8|<5TrU7))-lm&b%*D)o3=7-qc4QU{0#*3%n&Gxr+~8}obI9#c{rq`2p}x!#&Z;OM zu{Ps7QF8EehPkcsWV<9#J$`91NK!P5Lr1L4-BuO{M{)h8-F|c&U-P-MtMj=3V4hvX z`@ z6ZaKW!E6-bB%uDVhQKt@AD_~J#1fW63m)hv3JauR-jF}VJ(Gp~T@{I_li88_lx|s& zDg0Ac%#_;-8abGD*<>E$ZI(^4`UG=%`H2M{Q8TlMWp{k-(HCiB@F(ZS;JJSC!@siZE^Mp})g*-Lo_uN5 zXoz1oi7GIoNi?y@idoSjp(3FeI?6FiVSw{pt4r2aNccyEgs_Kv0DVKD1%g9)alW~t zubr|RNgmUXr-kp;Z1_VqmO)1=6WwZ!R1<~=$t06{^`-oLv)6Gr<-qML+Fop4{|PVso zcV`iH`|!r6+<5NG9(&>QZanAuI2m?m*G~NQ^>OXc4pwF(&d=iX(l$%FW%#7)aV1Qi z(AOt4i1{#YKQYh`(vofBHZE^5egHbn9q!csLhBHXPIYT`^MyW~>*~zw<)KHpj`lVPUg}b0rv1 zaXr|LQ%1IAGE+%K%{DC1J}(#2s#-`+2#_(BU|`8J%tTyTGI4jkwa~1{jNI1NF|_zE zlCS)*?Gxd|N&S;j)v?+gr_46{C{#ixxp}X9t{TZsv&2sHV(GdNj0VN^t)HBfKE-*- z!)uI{f$#71p}8A(05nx#+OJOay+sKBf`Yo8Nt_70zLEnMi!u?VwDoVv%%IvZ-)*+n{l?dR(I5P) zfAG)Vx^eXMlNU#;gK=Q78*_cI?ELaP&K}Im%eidBENtMQ#ef4$wO!5*d>kD;`kY5!^t?~_)LXZndoZrKuMQ95#klsXR=`=d$Uci-GqoWos zl^XKGat6YXs!Z~CN?HYotA)HC>}4LnTXn`I!i1=!-e4XyQ*KPQ^17xZ!aPgMhMa`% z{cxAciE$qQ?$mwx`MUi{L({J;M9 zKlrYHy}Pj-9ABUL%3tmkBJ5<(6kD8*{5;r8fv;?+9)^-xvoMx3T=C@^yK}tW0JIQ#m-t=jkkX0J$eLE{{w;p-x0hAc&|mWd4#d;>`E=0dZd}dKrLLOJp7Et`$dHP&5(}KeLP@2+O^s;)2$;5qy5hFgDOt|8W?`6DOmkE+dJkA_B)4%nRU%FU7F^;xl%wZ$u>d>#>xc;I~`Q+EV z^rdfj&SNi_alGET`)ak=)4#Q~7ao4gAN^aG=bLx^()S+SxV;Sb>3#gY0@c)7?2}B5 z-1p`dmorcUWwLDuRW9pvEM4LBfpiKu;!?xB)D^w z3j!`8hWMK@8xAtHYk;NPqOc%;5vb`ODnpihm*W|0PHwC#>wY=?Rs|U1pNcD0@8Rwd zI!jJ&PH7TC3mFGIG;wN6YB~2vyxG&1>Bd zE-~ls8$}T<>61&WR&%r5Jh=6*|JdLC{Fl9Ee(>J1-ou{fgc{9HuGC^(kxm4G8JDu01YKQ`YTBoSRt5|NgAVN4aK_hYAcP}-dsfT) zVt_l%(9ineBobeMuE!6&H%p#oVF6JbLSRscH| zslr;Bk6Y+1ESwrDzY2X8jRMsJus0!-!3FI20O;V+tTj38p4YLTmF*|6CB7 z9Srr4Y+F=C_hX1f#eR*KroiY-3ZU+;VPzMs4S&C2$dZGx9YwVpr`20fRNlj>fWwek z8_Qr$W(J-7NA4%eC6Ul^o0};_w0Wl(lleCJkq=6kvGCV8nKFvooScRgVfUppVRwX^&4!981F zCN5xWN7)8WWyRIe<&SYargTvdw9U!RQh&9%mjf*vpeu&jEFG0L4vb7A6+&8=;W7B; z)no@N=j13*8yL<^;Nkwrdk3M#%4h2Ck`n~%l3pe3T6Ww-CBHB%eKgw{ZPjP*Xo5EB z`PIpUMh)tULQpo)Uxrz+&Hsp7%Il18S0{8Bo>Bx>XZqqR+ycihSsY)BN1iio+;DT- zY~$+6))#ZT^JmT;{JVF(<6Xb{BUihR99>K4n-u0bhPlkSJG^%EsjqtF?|jv(zUYyg zH+|ai;XFE-Hs^DmcQ{V&{CEG;Uwi-if9mMg^X9TZa786csF`^I$R0`y4OZV5&)g5lEW(w&$G3)?pmK)(*u1o z2K7TNn@9gSN2W|bgJO(R2@u-$b%kiTwquA{8lMtxgbW#*yL^`QRp!UrW${mb-M1dD z4)es|xm?OWr7lD%rlhfAwb+;3DNoXfBm>b)4RwsW-An&%wh?1JU6ct z8C-{TJG5h6%IEc}pu2fbMuYT1WofQ)Mpr^Di`W;Ym5x$;HeF}+ah17f_!6mYTshs< zHFXFFNtjs-n=_8DuKw{`|IV9V_a^(uz2#~byRF&ISIdLT`#<>`zx>V*{_351>4z56 zc5~UqE*FMo%*7&XiQ(b4-L4;9AARFzefd|s;Z2XMZZ0oQyhA(q277>Fc)L7+2?Zy)E!AsbE zx3&sjqM>Hoj5?o`&Vc?n%52c6e?@aqPC?5)K-r}=b@0fZK90T7=;zK}r2%Ag`KvQw z43Ra#%*#X=B7Iy;U((n1yr4Lnwyc4{k;Mc2RF}10sLj2xM1nT2-tOXjnM)Qt+yc*$iUa9aVNu)I_+Dgnf?O^K zO{3>gybYxR*=bO1RKyTbV&d2+;|&!JbDV67QVvo5 z=j&vc#SyU7pBjFbS6xI}5M#xaO}FKNhGQ7V)tll!0@PXrO=HYZf>9S&m-?^vA7n*; z>gASne3MZkyXX7fH_BX+ZJug$3<$czleqQhxN*x@BX+ykT=~^zS(e=gKlb$7e(Hzb z_rae$zCL~BF?T+fWV3GQ~dnn#B*+#h|x;pzED z{_p>c8V|V> zds&vF%as|Ux@5X4RMC=hs#;b<31^) zIRqyW{wMgX3GgP_ZEcNCNB;%i|P9%)$T=Z1FyX)S%mpe zF(zu4Leq3Do=~|A$w0Uloz2W!Qrp5wmX?*>y;)q6g99PU*#^?rgOh_B&%J(p`(z%39}V02Zdq=9+R49u`#b*H zKl*#We*U48o7ZBF*ojv)!TTuzkOygeW6-*+acbx*6?(2xw)m6HL17d$ha^5*NOXv{ zZ39(m*`!fkVgdF=Roc+KTHz#HBhkv%h~CDfxdu1E{W7$Z^Tg~n`aP4d@RU=}a$XZF zy1b&h7L2tZA0jf&N*|f+wJGsy;%}Hvo_SvdAX??34lPQkEkHaf5xu;b3j+ro>w^XiDHe~nrvQy*` zU8qQ*)l4{DrONK=Ge&2=o7?65@=IUyroa2g{x6RmKXU(>d31z_s;1fb`EvikZnw!5 zT6`M|PMqR~CR)2daKaVE9Sj|FI&e$JWY)VOOJ%{*6Cfh0-R=6EXk@W5_9 zI&R%|A2T90>)5Srvm3wu(f5D6CGn49~NtqzvWxOwem zum9{fzx>l)?IR96PEKNV;Lmyf`0xjR{(ty~-@e49A0N-fV$wSvE)(Gc_extBV;Vcx zIcXGk!_jUO5BsVqUB;^0du|r(zWJ^@0iov81u-pZ3JRSQSMf|rF^Tyks zn{oAu{iYvg!(0q#R=`aqmA@(^h!~LB!A*c=}(w>+Qez?1z>Uk2!a{C1y;# z1Perro`(-xjTkZQ(8sk~*MIQ+Klgw9*uOYk9;}Yswwu_^n2VjP>^Zmm#&xoYRx3$n z9VI0b5_!b%fuZAK27I2%G&O3%LhCDcqxif(V;v;P{@Ed*FKf zj}>`|?x3m(rU(6E7kk4A06P4YVzmf9+JzY%)lMT5l`V+i>PBxecsolwMtyGV8Wn8l zL+7yAeeoH3(Cul}YuIGgcx$J1)aw%nZf53TBOND*4IUA@_3pt_rx(v$#4c=SVR1NC zr|-FV^A~*S|MO4(z0bV);>$btB6c<=(89VQI##4%+({kTEyQx=j*L!*FziT{lKm60 zI72K$6=FbHj;2^WAGspaV`8Iysgy*50>iwB#mJ6Qh#l>m*p)*ChIB5}*a1sn=0l_- zlMtYjF`08>y7o3c5tf^T(!92OwaFHCP=EGW6ON(nXHNLHhrU8Yb$_T4AZWom&^4Up zQ=p1E^HAe^YQU^^+JxYu=s{Djf#tLhHyl@svDCbaA80w*Q1-;&=y-Hz3FDnM zbssrJ&fbplA38QkOp>ohulS37W2E*rl)g&oswT^G(@O;qZFdhva5WY)Biw=PKb3@@L^l z=i8`lbSCu1*cnYhNEdB6S*)NwBHTlQ&h{+(kX$iJ!8EDJaSHtCsbLl#a`*tpz-jf< z?C{N?bBi(J+6}*P(|lM=-)&;IwK-P5`S^#w_ecN9vv>c)&D%%ITr2`S<18zn!4xaQ zY`V?k6TezM{O^AG``-ND#!hT)QE4nhi86!LvaZ7Qi5V}Jjz_WpwGlR8g|u_M z)5;nxR1Q=Q6{7sGndfpF*}-y#ywpi`viiSg32$T)CexwQq>|Yms<0ZJ_4p*xnTj02 zXJTvec*cj$Z%=belG1x)z$=WiR$xy%Zsl#U#FPW4zN_!NY0OFrD_|h%mXX zY%T3Tl# zeuRfeJO9n1$+^s$#yos)PHy&s(3lfMJ(rm;x%7a`&1HH7r_aoAD8J2oeU8mJ!@`H* z#RBbD*|bIE`~BF?ET75u{^8v$sCm0-`m8P5l2x;m5uAY;Xum|0brqaboa@={hElk~ z*kVq;ISrHP3NnGY;gthnF=aVWd+y54JIu*Y$is>v<}5F=$PwqOV&=qo%{FH~G(u`< zDrd5R;5)(6-P-4KLJMVoW|rh@NYl+@=83`3s`7pqHRsFBX3WiUe(&u3V`uYh@tym$ zqr;;I@4bA}XMg^G|IPp9t8cw{{op~^;u^pa z&72H{KIe`Cy>hRWC4iP~A7QGpaPv9y4NVF-c&UKhSQK~9DWbN(>AUXvD&XuXQN=P} zk?R#8?1>c@$LomBrWn*vn=IN#dIKFLnuC&<6Ea{pmMJXdlZu_x_6i0@vWen2xxGGQ zER(*YzjC7bX%qrnvZ&!lP)i9%I$gV%LLLGA0@%s7I0xu~(tz@O=;4Q|eVh!AI@>Sf8hd3-8=-e= zIdSfmc{ac54R8Ig{^WmkxQ@&FezaOGi`io9OS|*z=E1$)vWsMPo}(tf<7vBQF)hI) z(P_>ggah<613@U8KyH|qnB+VJ!IFKFcR-mOqYz;7ZD;BY(M&elgRYp7oR%%p#1=DR zdK*-pBpfqe*h3VBw3-bM=qpXEdobVF31yszA%AkQKKFSyNjG&tXaGxeGt zPXeMoN!LxM{7<}#Ojm2SXJ6Ey(PHSlHTRD?yulFPTAtQynY zNE6V3#(}yf%glV($#uVR+udU>%d(r>jm0>4|HmHxo*((&@7??L>$eVe%Q_L3TGfaV z%0u$+m4!#lv6|cX*e}25|NQm$y?cq(cDuT|^6kc-ddk1xOTO;&U;hU#PoG^4?x@Q> z?Sv_l?4izYQ;=p3q=+Hf=2$GuSkoIF?HL*O|Pxpnr1m;S8jb5pN(FgRTiDO#LHM@)`lOPB~ z*(@N{&`YTTQ`yE!+>|vLe98kPILM~p7^;QrwmTJ9c-WAg6ia4lldOr1K{Zxu5g~6- zxrw9F+%g=aNgCo0gs&m3k{+T^Z0;`4!PMkMygTF#P0stGYa_P1+vD1Q_f_Be=)6A9 zF2iHaogezy{bzsZ7vJ&T)5qsQEX%T+yQRfd{-Hbh%7&W_AH#;5k68Kim~nLD#t*&w z=YH%RKfLkHVT7&MDFFQBU_5fePmXf5ZYt9>@0X#(gj3(J( za-Z)+@;R58L!dKT5YH?_B-lA}s_!?-*U%fq8ESYQVK`|c_zY{x5`z*UM7nYz>T*`u zIPzILIy86i=sc*A-{mbr-<5};^D2ha03roQ^C?I^-nZ-*HX%IHN`by%^wd?siLff) zvJ1hPrp&9!g>;!S!hI+=6!ckvuT8>13fW;EySTc4b^l|hyR)rrEVglUd~p9g7hnF_ zU-0+8>F<8>$%{6prx8yCCv z>FQ`Tc8kaK%ZqsCnXB{DUCgk>Y$j&%_RT!e3R)VNd%m1Cq^+|LdQTOursB{}-6Eg7 za%%KVMApyFuOx$WqW5N*f`r#9Pn;p-XblF_2}6yZN&uKj^ac_t@9zGoX$o-x4U~hO z99LxFG;syQDu_1Yn^6PDGFzCb1fZRn5vUPkhX73rN2!8dWb*6Ici0lwEQ#LC&5@Vl z4#iOHRL*ts)szz#4+N(m5F3dmVdkqiKCzoO{a}^HMaFJ3{owHNJ5PQ85C79=pZ%4S zTi3R`jbn++85jt*+!J9o_(R?(7j?$f^6am?_w66}(EE30%Zw##y_t9K9)0!K{*~u{ z(&uc>9*kAzl{Qmaqm~B>3~*WWsE3pAVpfp$9e|8fDi{e?p3xN%Vcbh7F;iGaqZ2nc z;{w#`VbhaVAGV3bhcUysS4n+#r_4rJann800&Q+6DmC>#m(@7kiqoV^raYcbFvh?q z+B8iqVeK@zPEs8k5va9Bia;(UhOTyPM$=JFF&p9sDjbSoWNJ)c>jH|sQ%DX|FrBtk z4CF)#6)mSh9y?R2HqyQSYOjsAOIj33rIr8EYuQFqmB##`X-w6cHhK@Q1Ls$@ZbX`ETUwn>&6f~iUiqMm2yh3h^Y1hdIv5+-Yejya?$u0|36>)lHON{kytnA|Q z{*V3ozx}nlAKmz}%-xKI?JMY1GZ6T?cAg|Q09rt$zs0n$#cp5w=kNMAKlRR^h_PMG z#V*zs7Q^G(q20LVM~9?lu0c)YGMPk0IDW8NAx;s)*aT2fKVY2B%B8mnwC1`dl*ELF zWxd9NZ&pvTqBJlrx6Tlh{g`Ll;6w5~Ch4vb^R6r}`p zG707zFJ8>69m~8iZDL_OYwfXEZ0GiTegBCEo70VLr)}co=fJ(N{MqEvOn`+u0E+u%zTOeA8BL+7G{yj9EC@+`$V6AM zX!CUO6X=(yC$zP$n0j=6H ztWmWSr8ONUA|do^&MYGJN|bD%?{Q`rU`~VP{k@z#{e+XyM4Jqe$y?)bt036JR!((y zLT5A=A8-em60H=OY1r-Q`U^kfcm3UO{?AsM?dJ60a5a{l#bW1|yE}K+R~Iv;<<68` zW%aPR#GEr1=pvBk7`F3O{BV{$!F zVrI4zVSJ5qL@Z0lR_Piv2=om$B#}SbS%*Y`m=Uo|ZTE`laE9z&JiXy+8Tn(~nQ{&1TMRT-=`rtDA56+Q07eaPD?C zSf|#^vwQq#nzv>1LbLH-xuH7GE`aFvnhaed9BSI$RASR5dgiDp4)9D=Nlx>xXi^Ss z%$7y;N^XVd>`tB#(kiZ$nMfF!&MMCZTkA{p$IH}ELa>G#3#_UJB5Nq>!hm=iatxj_ z2p`q|x^;MKRK0MERuO_7S$cg8s4kw&)2~leh8X0m! zE90nb)ZkU~4}6Q0mX7Y6j=rNtdccj}g(Z|E!3n%2v_S;MET|dZH)NrPmxPiH60Yc8 zCL}q!@gZj8aV5lz9OHr(2X(23HKiONd5&N0b z=FRscDGcQ$BaRRaH7V(|fz7&XgbF1zUhI+X26jo2VC+QA@Lo8CSwR1qc3ID`tm5xt zcecLwu?OqZjc>wsakM(P|K59V{j#t4n{WP$kItJ{SC_tG)=G$CNacr|ruy962TNq8 zp%ZnD`oc;20uW*mzCgx78!(+~g@V+|L1%;7yAftK2Jm&xNx^}k7^}|hPoe@B!RR*; z)ZBu|7BeC6kAl|nIp}9vE`i@R2tb`s@zMyng`B)$ z1u(dx2oe7pu+?yy%7tv{bhW*5Pk4c&&_n&V2p7+!cGH`hHFL6RHz$7C`JFOAs-*(n z4eKQK@qfHJN;5Vhm0g2`6pX#l2cfbfoh4;7?dr`j_7JBC$=m)A<3RSXczC#NE-pX& z)4uq>_@@8##<5@B^W)W6mJ#6>7xT{D?RqmwcU9(|e1;-3*nCQ(q=BNAzD$WJye2He z%Ys9fL-kuANFy^h;36||%-I=Db^vXY?C)si`VWl|2Sf)|}b8N9525RLButuHv5la;ugG=#YJhK?2 zmYB@2hnc{z7p#`W>L?5IwqZ=;^WUq3xOUwS4r4cG%viQD{P5n@gCBU?_q^`|KYR1B z+q?C4pn_Zp22+~4HyE`(WXMPOYI$(}Tfg?6ciww&H^R0XTekM#Nq_N+Klk;Y_xm?z zr|!eXbi4~shEQ_mc$dZ=Ho(IQawuYxNt^mZ=q6)&PqsTDunG9B86RusZN*ObkP@N) zEGQ$8!ykF5B_eEp98nIYA(pyO&QpC2a~}im7a@M-5_cwdqwRr9h6wB0xyMY#>=*@! z;u@pp@N=oa-5>w-R+VJEgR#?;p*M37hd~cI^t=%pHmTcQ zZ!%4{p2SmBO0Lvo;(#(m8(MU}g|*tT%xj}M8&2iG!K4qlS2v@UIOqszF%2I*ZzxBj zaA#%}k*t;qkW=d9Yletf$^II+S@qAq>t^fbJCQ7Tf}=Hr1M&2aj#+ zHd!m%hxo+l|BVo)7){FFgL< z)41B%ZnE?_%$5k}n_wP-oT~b$(|IR1ix{ib<&D*M{>%^ExcS&;yz;Z`VjJ7=qXRSd z>(^|vv)zU5rcTOtavQU#Jd(HhuxpM! zPe`foXI!9mD92A#0-Y2%Slcwu1vEh+nY++Z@3|ZI+68;+WNo}n!BqmIMY222%LNjt z?ko`c#-d49%9qXN{?!A2-mT-~V;gp4N2l*U{WD+rmXF?j=D+`m|7kt0j!#Zvh6Rr) zuBEvoKaQ6$i;=3<72?VXxbqqdYp%-r%cW^&k_&gxG|SJ0-f*Z^Qx`xdjk$A} zFq**M%Q0wAIIZx`%|d5n<}~HJ&p8{Hk%wh}MrXN1d)SzGB~o|i)-9O*XV*=asp`$A@fwKw^Rw;R%%07kCm#`lMz z{jlKU0%?9lPrW*jo=WKYVakHC^Ww_yw;{5};1q`=aS+ z05ivfl;n*5L-U8q2hpr~m1JCv!}qLOh`Ju_4Emv4wdx#$Kr1k+-v{HjQ4Xz(r7xf<@2X#X65&K$@0Cpm$u}}AV zSH9hiWoIjU{LYg<_tAGhyPU6mw?jEK`O|TfX|NY&e3&-`w$Lhpok|h5gm0JKI9z=s zPXE`pfA9Mr|Dd_q#o8{yc5bVc-?+XyJ~A^yF*du54r4Km!CnI*h-;p!7#)G5T)3#! z?4O;FvRwYlJx^P5SX-=!gi97@E9tY3hmKV_`FFPW&AfGj^BT2hW^cU9QKRi~C7j+dQ-TFW&qu|M3@n z^U2l0vRnLMxLa=0;4r=2DioXK6xf@9&lr?F%8uey{n#uILj}PlsE@@MoL!PkwlGl0 z<|V9hd%vSRlsIofGeLDhI_H)pfiZYVkpjIF90q2h5^-z!Dr`s$tU9s!ldL7vATUgZ z6~^W27J!fRpb@*X4DEzjC;+H)c7y1wVbmr;TYk#DN}&!w97L@@{!3(8$^mLD7>2az&qV0Z-D*H1TaqJi^ z1LIf(Hm|@*Oz?#Nebu%32i&M|b0 z(99Ba-P~=ug^yv^uZ`p5F&A4F+pOnqZnwVv$)9`2JAUE+xbevGcDb6iiC8f0HXBhY zrF2+6gq28}<&4v2*mf7EA9?E6e)B``-kEP>nKsv#^V-eFzU+(t*s|W}@ITUV0V(X0 zK|KUqz>0EBct<(2K()Lvokx49nZ_t!%VY$m`a8#zv{mgVK)4Z-Qn zX-T{;T`t;KkV9}}EfXfd6YMZn&qFy=#TijpLa(5C5$c%wFzZMaq3PCKYxV=Xxoq$E zIjYh^3GxK?Xv9D*$a{%mS_@P<&{EDXv;9D=IocYh5re3ZT{pA(KKsMMfteIFmqB#B zMnfGC!I+OIA}FVU`3?QbO*Of(ghOVBu&*9qi~F3Mfarsx!-sq)a^X>?eyDoIxCHm`0yUm>bD~3VcJjBAnor-b zmf2QL#F!e}%d3|?_Tq2;oZoYNzKQMP+lZa5H&?&>#Ctz-@yt4QODwsu#>K1o>dZ8M zpwvLJ4R$DSTn5fHOx-XyyY2Op8}Gh+;=A7deUCqQatx2lb*y)>o3>i{&Fka%&`9va zbUdL#)-F4^XuR2h?w5oT*fQ#t+{zV-YCNHp4=CmJZs9x<7iaHz%*jWgJao#UQB<1+ zQe#FbpQ;E>M~ZKr^XMrFB$hbiz~*U@D<62MC4Y}y#aTI@6Bc%h=;uNfEFf*mZB_kb zNKQ_gA`%&k4|5QcXoFr5ePY6?+7Z_M8rTP?T+TTspH1!U*yK@9X4QQ|I|V^OJ;0c< zv=1sMQ(hmQkFzdeGklsaIJISazCM5UbaS~Ii@T3;wc2gx-+#+r{KnV5#V>5e;)kh~ zsOJipgBA@Lif9&8W|GqcBNAsz4L~qdmV!~bqG9)hR~?z?WqS*n_~X>K05pMOVzU4V z4?Y@-yPR%vEbdV5M`EDQ6+uKne?pBZ9Epk9upF8nB0udU$iXuzqT6==8Y{L<4WdY) zD_56A;bmO5SM&OD&!$S25o3*GG2R9%1IQO^GUOhLyeXa0MkD@1WVwxyAEX$py1*VC zr0L3~nyBa0A!f2|Oqr`76h`034szb7izGdotC0oWv9wH3E77T$idL_!@+rm8?X)GdW48tyhE!sPnLl)n zZjkWX8Rz*hCyK@NY53d(k`+4DOqMeOorq?DbIniSkXv~o+Ud`f%7uEkMUdaX4tQXs zd8O&uyCe!6lOJYz5H9ZM#7@+rR7DNi4R+vd#W^ESuP(Dkb)G|z`Hh5xm)szSRdQ|#qgdK;vKEc+%);@F;bl>))gq<% z`9=B&9(uz?(HeE^X2xhaXl+ZYvIadsr8Tr+&HHIScv&ugam$<=UOHbRtgTB4b?Jo7 z7p+{jZX2v3ixMAtObcog?kwt;6aXx^YRB0XE&{mMh+4gle=%;fIR!!Q187){O z{imP!weS9kfA#F;so8G1x{B=*5q5k$Zrt?4m2kYzwkCz2y8u*HwuC?$|#u-Wqa+A^{0L%AQput4rFb}h8d3mDTdGlIRizrQ3Vd= z7+f@Jb^u1joP5sEJ@=$ZzT`mKiJIuagnevEHqO)rn~Tl)-LqvoJ!~BKyokf&)qnlg zKmS!P|I*#*Hs&%8+ce>f-3 z<>LeyHHuefJ}m4z%EZOYgX%F#2rv8$<^HW(#KRzuBO26PB2wm!AXz_6IsQ5Tn-6O zG^5d)m5nZD%rnX?A^VsQvz6OwtgkK~Sv~eAzW&?4>J4wY^Z3=t;bAtpUdR3W%VxtP zfB*`Onsww4S5c|fO1*%03Lhnj^Y17>@9Uq9aOD|Bs^sao3*{Xz?bD{!RCAIOCWdKLV!>wyLlcs&f3t9g#d-j#*w)d>B3&m}@{0Md*G zp5ll|mP~Zd_tB5xg96%=^-P2p7QS=7CecXKL88F?$?0(hiXO@+h^RSl;Y6u0;@b6b z{rWJoWoL66yX`zY9`AqreLwJ{-|2BW4p(!#wtVL=nyP%&DAD)8zx$M1Kz^d4fI{=w zT&_R*{ty2A)%t3Qx!d~XY0TyJ8^7$&#yqs$)_m&gXi_kwLD2Ck!I2BQqz?a7(%}5S zn*USFVqyt#0z<)S12IWD_lgdNhHlPyAw%T}0iu^mbI?$MeR?#t6#1k~t3NH+AnH&} zFh25D^Rj<;-qV;myBkmLAvh^;@LE^&ij0NF@nj2GjXlmTsv~)YHV2ux;h<@a36FKl zl;vL-6!G5MEu7)5X3L^PVIyyqsVmsq7ut15iqwL7S@zFRfCcf8u7h8K<#0EvSF3S} zvZdLDUz}2NXb0E2965N8UDXuod*=K)ug?^AuSQ*5ZpIRnJPFI2!I~CgBLcgW$u1Os zKrTq~Vqq#$i(rC)SmTDB{JL`yLa|iyfzLTrK_#u!y46=C@u49o>jlpIi5t)@0T)9y zR#aqCY)sD4)ZF0YAPXB*nVhOh|H|L-NbIOWeJ~8J$ULpPk-?4_H;9s5ErDg_GaMcHhOpFM2C#@e# z%o%eR%Z$0i+$@_Lk6i!3_y5fI{q(A5oWZb+pRs+5fL2c0}pOtA- z9S>15wT@_Jj<=#Jc8V1>y`TV5Rg`rtLSlvcJGAVQl?24WP$Wzi@mR;s>k(QwECizp zL9W#adAUAmhH|YzosgxpG_ddui#&P<3L>x<+i@KrfZKya?&ON#OCwMWXX$=|4u@+W z6xWtR?=Lf$y?n8)mIiT7d=&X8GN>ZLY~m&H!S;=5Rm|zm$8s!FR2W}ts`}Xjr!L`> zJT!R0PHoF2uQ{*Iug>qE&SjZqt7G5Z+dcnzpYZqI`j@`&lRkTMwy|(u4YT3cb|z17 z4o6rhjb*NjIt=x_m&KLM4K=)B zW03S-YM+=NKM?p&{>qze*nZWC>9*6T@vD|v54(CBlpDP=_N+mz<{%R#b%Y~`OL?O) z`DfoeGzd_J*U*sslZOE&m`3MgVZBZPrxM?pU{<{q`55$fd$q1B7f|?^TL!Rv#C5T= zKc)^AYC)KANAM@}S*@UjnUCFe zdmM+~_@;0ErZ>Lz&J&l1tAku`-fZH*`Es?{;*E|tO^xG=dN=7@r^M}$}eV((4Gm61WV6DW-IT;Tv{0;qS{g0xONm?u=G6nfbMjm1L zVu2|?BQNDqe9Odsr3@pCQD-{_PpqcQz{}={p#ey5&{nqc%$V7s2(y!u)%6?0-11Go z+qJDu4nB7O@$dfO?>s$y|MB&)-CiW!as_{ue-tGTk&2zHmmO37X4YN`K%^*el1pQLh_yPE9b~u18X_(RqhM!Bvlm!m zRg`IkXDl?-!qa2iLJX%t{@_C7MpcPT#WJkMf`CdDIth;9fmICj4VVokMzToy5$e{E znT6t3LeJgCIRsY-COy74WECgxvJk% z8=#INQxsN+dKD%?iDc-j+7Xgk%7x<(Tyyhc;8|aX~Z7#{=W?{Oat%dDvoZtCNG%XRluS%2$5JTfhC) zw_mbeUyc=yArzqpVKE~JAVzo01G4qd41znP_b5Or=LX1IVMDS`mDdQv0VPWAbF21& zR3y@nKR9Q951jzDa&@^JFViJ044kTmO_4zrYuZEBx0y&K2zG;hC`3pVp^d8?mt3Ls zDZ|N#T_Np&8OmMHDBr>kZTKWI!K(bbu6Kfk_{E9kye3Ie3ZR%mAtu|B(2NoyuVBT! z#7by<=pndUcf^{QQKbPw5uFLOrTd8REagsBD7Z+qKTNaI17KZJX1N%!6e$1|7{=i# zE1Q#aEg@vekaag3zMFHoT)y)4Z~4|Y|Jk#ruMXm1HO$QCVyCCe<;6A@%bOz{EW&*1 zIGn&E6Wk2S=_Gzd2#4T446(2#Ni#;2HX0LhghoCAlHilOk7Lq5Eh*Udqr#;Eb3D6}O1a#12;S-pz^aJ?_+D2*F_yI=KM)wYj$oJ@yTo`!y}FoNi_@v9}ZA6A$1Tb(hmM z)0iGU@W5eSb#mf2uaAR)RCd`ehbR7Ed-wZ)}hZrx1yhN-H1)foAk zhvlc4AywYrapU{gKvG4t5IO0Q4P7DQi3d*Q!MGL*5%699N;6SxW++8jsC4O`KQx|# zimY6VJ}IWNzzOgB)x^ShM!FNl+)<_xeWaJBiVZS4!jNCA@WgM5^~mu#zA{lK8Ygap zN}_aE4b*Cm=)&HT0{9piiYWl%))HDDK0GBTFud+UyCmRyCvlQ(U#s_sJX@7}fT