From 0b7fa55efebc1156492fd3b6b3e36ea59b91d404 Mon Sep 17 00:00:00 2001 From: ieow Date: Tue, 7 Jan 2025 13:43:34 +0800 Subject: [PATCH 01/11] fix: ios-example --- .../project.pbxproj | 48 ++++--- .../xcshareddata/swiftpm/Package.resolved | 130 +++++++----------- .../UserInterfaceState.xcuserstate | Bin 0 -> 30486 bytes .../xcschemes/xcschememanagement.plist | 14 ++ .../Helpers/Extension.swift | 2 +- .../Helpers/UserStorage.swift | 2 +- .../Models/MainViewModel.swift | 37 ++--- .../Views/LoginView.swift | 2 +- 8 files changed, 106 insertions(+), 129 deletions(-) create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj index 9574f6c3..131d07ae 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj @@ -7,9 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 284712222BFB94220088411D /* MpcProviderSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 284712212BFB94220088411D /* MpcProviderSwift */; }; 284712242BFB94450088411D /* Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284712232BFB94450088411D /* Extension.swift */; }; - 284712272BFB97FE0088411D /* mpc-core-kit-swift in Frameworks */ = {isa = PBXBuildFile; productRef = 284712262BFB97FE0088411D /* mpc-core-kit-swift */; }; 284BE5FE2BC509500049C203 /* mpc_core_kit_ios_quick_startApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE5FD2BC509500049C203 /* mpc_core_kit_ios_quick_startApp.swift */; }; 284BE6002BC509500049C203 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE5FF2BC509500049C203 /* ContentView.swift */; }; 284BE6022BC509520049C203 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 284BE6012BC509520049C203 /* Assets.xcassets */; }; @@ -23,6 +21,8 @@ 284BE6342BC512A80049C203 /* RecoveryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE6332BC512A80049C203 /* RecoveryView.swift */; }; 284BE6362BC512B20049C203 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE6352BC512B20049C203 /* HomeView.swift */; }; 284BE63E2BC55A080049C203 /* EthereumHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE63D2BC55A080049C203 /* EthereumHelper.swift */; }; + F0EB92902D27C1270024D038 /* mpc-core-kit-swift in Frameworks */ = {isa = PBXBuildFile; productRef = F0EB928F2D27C1270024D038 /* mpc-core-kit-swift */; }; + F0EB92922D27C12A0024D038 /* MpcProviderSwift in Frameworks */ = {isa = PBXBuildFile; productRef = F0EB92912D27C12A0024D038 /* MpcProviderSwift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -67,8 +67,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 284712222BFB94220088411D /* MpcProviderSwift in Frameworks */, - 284712272BFB97FE0088411D /* mpc-core-kit-swift in Frameworks */, + F0EB92922D27C12A0024D038 /* MpcProviderSwift in Frameworks */, + F0EB92902D27C1270024D038 /* mpc-core-kit-swift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -95,6 +95,7 @@ 284BE5FC2BC509500049C203 /* mpc-core-kit-ios-quick-start */, 284BE60D2BC509520049C203 /* mpc-core-kit-ios-quick-startTests */, 284BE6172BC509520049C203 /* mpc-core-kit-ios-quick-startUITests */, + F0EB928E2D27C1270024D038 /* Frameworks */, 284BE5FB2BC509500049C203 /* Products */, ); sourceTree = ""; @@ -176,6 +177,13 @@ path = Helpers; sourceTree = ""; }; + F0EB928E2D27C1270024D038 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -193,8 +201,8 @@ ); name = "mpc-core-kit-ios-quick-start"; packageProductDependencies = ( - 284712212BFB94220088411D /* MpcProviderSwift */, - 284712262BFB97FE0088411D /* mpc-core-kit-swift */, + F0EB928F2D27C1270024D038 /* mpc-core-kit-swift */, + F0EB92912D27C12A0024D038 /* MpcProviderSwift */, ); productName = "mpc-core-kit-ios-quick-start"; productReference = 284BE5FA2BC509500049C203 /* mpc-core-kit-ios-quick-start.app */; @@ -269,8 +277,8 @@ ); mainGroup = 284BE5F12BC509500049C203; packageReferences = ( - 284712202BFB94220088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */, - 284712252BFB97FE0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */, + F0EB928C2D27B02B0024D038 /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */, + F0EB928D2D27C06C0024D038 /* XCRemoteSwiftPackageReference "MpcProviderSwift" */, ); productRefGroup = 284BE5FB2BC509500049C203 /* Products */; projectDirPath = ""; @@ -654,34 +662,34 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 284712202BFB94220088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */ = { + F0EB928C2D27B02B0024D038 /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/tkey/MpcProviderSwift"; + repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; requirement = { - branch = main; + branch = update_dependencies; kind = branch; }; }; - 284712252BFB97FE0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */ = { + F0EB928D2D27C06C0024D038 /* XCRemoteSwiftPackageReference "MpcProviderSwift" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; + repositoryURL = "https://github.com/tkey/MpcProviderSwift"; requirement = { - branch = main; + branch = "feat/update-dependency"; kind = branch; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 284712212BFB94220088411D /* MpcProviderSwift */ = { + F0EB928F2D27C1270024D038 /* mpc-core-kit-swift */ = { isa = XCSwiftPackageProductDependency; - package = 284712202BFB94220088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */; - productName = MpcProviderSwift; + package = F0EB928C2D27B02B0024D038 /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */; + productName = "mpc-core-kit-swift"; }; - 284712262BFB97FE0088411D /* mpc-core-kit-swift */ = { + F0EB92912D27C12A0024D038 /* MpcProviderSwift */ = { isa = XCSwiftPackageProductDependency; - package = 284712252BFB97FE0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */; - productName = "mpc-core-kit-swift"; + package = F0EB928D2D27C06C0024D038 /* XCRemoteSwiftPackageReference "MpcProviderSwift" */; + productName = MpcProviderSwift; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 6c08f666..3b7a4d47 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,22 +1,13 @@ { - "originHash" : "d4e2e31ed5983dc7f95752b5f7cec96879f6838af173debe46909665a1b9adab", + "originHash" : "85823ce731e504f26e228ca4424bd5103974c9a0e33aa647daf561a6cc5a403d", "pins" : [ - { - "identity" : "anycodable", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Flight-School/AnyCodable", - "state" : { - "revision" : "862808b2070cd908cb04f9aafe7de83d35f81b05", - "version" : "0.6.7" - } - }, { "identity" : "bigint", "kind" : "remoteSourceControl", "location" : "https://github.com/attaswift/BigInt.git", "state" : { - "revision" : "0ed110f7555c34ff468e72e1686e59721f2b0da6", - "version" : "5.3.0" + "revision" : "114343a705df4725dfe7ab8a2a326b8883cfd79c", + "version" : "5.5.1" } }, { @@ -24,8 +15,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/curvelib.swift", "state" : { - "revision" : "9f88bd5e56d1df443a908f7a7e81ae4f4d9170ea", - "version" : "1.0.1" + "revision" : "432bf1abe7ff505fc2ac9fcf697341ff5b2dc6d0", + "version" : "2.0.0" } }, { @@ -33,17 +24,17 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/customauth-swift-sdk", "state" : { - "revision" : "60b48acb161fb4341c353c27bc6dd96af76887ff", - "version" : "10.0.1" + "revision" : "67f947d087e1c9c6ca37c6627b595fe6913bc558", + "version" : "11.0.2" } }, { "identity" : "fetch-node-details-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/torusresearch/fetch-node-details-swift.git", + "location" : "https://github.com/torusresearch/fetch-node-details-swift", "state" : { - "revision" : "22bfadf7491d77a0bc1953af002cadbd61383e7d", - "version" : "6.0.2" + "revision" : "52fb5efaa94e0fe3775913ab00964bcb51601c2a", + "version" : "8.0.0" } }, { @@ -60,17 +51,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/auth0/JWTDecode.swift.git", "state" : { - "revision" : "58af7278797871e460d79496621b3e5366b865b2", - "version" : "3.1.0" - } - }, - { - "identity" : "keychain-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/evgenyneu/keychain-swift.git", - "state" : { - "revision" : "d108a1fa6189e661f91560548ef48651ed8d93b9", - "version" : "20.0.0" + "revision" : "1e153ef009969543191970c66b7c60163c0b4a65", + "version" : "3.2.0" } }, { @@ -78,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/mpc-core-kit-swift", "state" : { - "branch" : "main", - "revision" : "183f205cb24ff8aa9c6c59bea905f365fe03d34e" + "branch" : "update_dependencies", + "revision" : "ad4e18249e1513b4fbc2eacf91c434bf133ab3e5" } }, { @@ -87,8 +69,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/MpcProviderSwift", "state" : { - "branch" : "main", - "revision" : "f087b89ee543710fc23b35dc05fa233b1d16b7e1" + "branch" : "feat/update-dependency", + "revision" : "1e8aa2e96cfea11488736b79ff29a81d0e1fbac2" } }, { @@ -96,26 +78,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/GigaBitcoin/secp256k1.swift.git", "state" : { - "revision" : "9683e8e311c76d8114cd308b697dad2f9fc58fed", - "version" : "0.17.0" - } - }, - { - "identity" : "session-manager-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Web3Auth/session-manager-swift.git", - "state" : { - "revision" : "20cc7bff065d7fe53164d17e7714a3f17d4cea2a", - "version" : "4.0.2" - } - }, - { - "identity" : "single-factor-auth-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Web3Auth/single-factor-auth-swift", - "state" : { - "revision" : "73c5066d369c7d2aa1057c56a89b7f1dcdda3270", - "version" : "5.0.0" + "revision" : "57ce9af6db14e0114af631ace25231a9d0ccccbd", + "version" : "0.18.0" } }, { @@ -123,8 +87,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/socketio/socket.io-client-swift", "state" : { - "revision" : "175da8b5156f6b132436f0676cc84c2f6a766b6e", - "version" : "16.1.0" + "revision" : "42da871d9369f290d6ec4930636c40672143905b", + "version" : "16.1.1" } }, { @@ -132,8 +96,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/daltoniam/Starscream", "state" : { - "revision" : "ac6c0fc9da221873e01bd1a0d4818498a71eef33", - "version" : "4.0.6" + "revision" : "c6bfd1af48efcc9a9ad203665db12375ba6b145a", + "version" : "4.0.8" } }, { @@ -150,8 +114,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-collections.git", "state" : { - "revision" : "94cf62b3ba8d4bed62680a282d4c25f9c63c2efb", - "version" : "1.1.0" + "revision" : "671108c96644956dddcd89dd59c203dcdb36cec7", + "version" : "1.1.4" } }, { @@ -159,8 +123,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-http-types", "state" : { - "revision" : "9bee2fdb79cc740081abd8ebd80738063d632286", - "version" : "1.1.0" + "revision" : "ef18d829e8b92d731ad27bb81583edd2094d1ce3", + "version" : "1.3.1" } }, { @@ -168,8 +132,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-log.git", "state" : { - "revision" : "e97a6fcb1ab07462881ac165fdbb37f067e205d5", - "version" : "1.5.4" + "revision" : "96a2f8a0fa41e9e09af4585e2724c4e825410b91", + "version" : "1.6.2" } }, { @@ -177,8 +141,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio.git", "state" : { - "revision" : "359c461e5561d22c6334828806cc25d759ca7aa6", - "version" : "2.65.0" + "revision" : "dca6594f65308c761a9c409e09fbf35f48d50d34", + "version" : "2.77.0" } }, { @@ -186,8 +150,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio-extras.git", "state" : { - "revision" : "a3b640d7dc567225db7c94386a6e71aded1bfa63", - "version" : "1.22.0" + "revision" : "2e9746cfc57554f70b650b021b6ae4738abef3e6", + "version" : "1.24.1" } }, { @@ -195,8 +159,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio-http2.git", "state" : { - "revision" : "c6afe04165c865faaa687b42c32ed76dfcc91076", - "version" : "1.31.0" + "revision" : "170f4ca06b6a9c57b811293cebcb96e81b661310", + "version" : "1.35.0" } }, { @@ -204,8 +168,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio-ssl.git", "state" : { - "revision" : "7c381eb6083542b124a6c18fae742f55001dc2b5", - "version" : "2.26.0" + "revision" : "c7e95421334b1068490b5d41314a50e70bab23d1", + "version" : "2.29.0" } }, { @@ -213,8 +177,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio-transport-services.git", "state" : { - "revision" : "38ac8221dd20674682148d6451367f89c2652980", - "version" : "1.21.0" + "revision" : "bbd5e63cf949b7db0c9edaf7a21e141c52afe214", + "version" : "1.23.0" } }, { @@ -222,8 +186,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-system.git", "state" : { - "revision" : "f9266c85189c2751589a50ea5aec72799797e471", - "version" : "1.3.0" + "revision" : "c8a44d836fe7913603e246acab7c528c2e780168", + "version" : "1.4.0" } }, { @@ -231,17 +195,17 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/tkey-mpc-swift", "state" : { - "revision" : "8fe0cc8d5cc2ad5d38bf068bc29f6af7e3146d08", - "version" : "3.0.0" + "branch" : "bulk_stream_multipart", + "revision" : "de5bfc71fbdfa0ce3267eb8cdd171a9fc0607961" } }, { "identity" : "torus-utils-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/torusresearch/torus-utils-swift.git", + "location" : "https://github.com/torusresearch/torus-utils-swift", "state" : { - "revision" : "ff85c3e96bfa29013309b487875c4d9383e4ac80", - "version" : "8.1.1" + "revision" : "baa822fc67bdb208ed1a2dc5b3c10485cfca15df", + "version" : "10.0.0" } }, { @@ -249,8 +213,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/tss-client-swift.git", "state" : { - "revision" : "40246d5e3ff1d2c97d41846576f7a81d58858981", - "version" : "4.0.0" + "revision" : "6f00e4e03184a77eea0330b5b8d092d1452b9eb4", + "version" : "5.0.1" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..79d4e2ff0f962e6f2746a50e4a0df0b4492cfc44 GIT binary patch literal 30486 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 BJX!z% literal 0 HcmV?d00001 diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..25816725 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + mpc-core-kit-ios-quick-start.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift index 2f100462..114d9b08 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift @@ -22,7 +22,7 @@ extension MpcCoreKit : EvmSigner { address: self.getTssPubKey().hexString ).getPublicKey(format: .FullAddress) - return Data(hex: fullAddress).suffix(64) + return Data(hex: fullAddress)?.suffix(64) ?? Data() } } diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/UserStorage.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/UserStorage.swift index d3f02676..3b383a90 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/UserStorage.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/UserStorage.swift @@ -8,7 +8,7 @@ import Foundation import mpc_core_kit_swift -class UserStorage : ILocalStorage { +class UserStorage : IStorage { func get(key: String) async throws -> Data { print(key) guard let data = UserDefaults().value(forKey: key) as? Data else { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift index 291c5fee..792ade59 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift @@ -23,11 +23,11 @@ class MainViewModel: ObservableObject { private var ethereumClient: EthereumClient! private var mpcEthereumProvider: MPCEthereumProvider! - func initialize() { - mpcCoreKit = MpcCoreKit( - web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", - web3AuthNetwork: .SAPPHIRE_MAINNET, - localStorage: UserStorage() + func initialize() throws { + mpcCoreKit = try MpcCoreKit( + options: .init(web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: .SAPPHIRE_MAINNET, storage: UserStorage() + ) ) ethereumClient = EthereumClient() @@ -57,10 +57,7 @@ class MainViewModel: ObservableObject { Task { do { let result = try await mpcCoreKit.loginWithOAuth( - loginProvider: .google, - clientId: "519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com", - verifier: "w3a-google-demo" - + singleLoginParams: .init(typeOfLogin: .google, verifier: "w3a-google-demo", clientId: "519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com") ) DispatchQueue.main.async { @@ -122,7 +119,7 @@ class MainViewModel: ObservableObject { ) let transaction = EthereumTransaction.init( to: address, - data: Data.init(hex: "0x") + data: Data.init(hex: "0x") ?? Data() ) let gasLimit = try await self.ethereumClient.getGasLimit( @@ -164,17 +161,14 @@ class MainViewModel: ObservableObject { Task { do { let factor = try await mpcCoreKit.createFactor( - tssShareIndex: .RECOVERY, + tssShareIndex: .recovery, factorKey: nil, factorDescription: .SeedPhrase ) - guard let seedPhrase = mpcCoreKit.keyToMnemonic( - factorKey: factor, - format: "mnemonic" - ) else { - return - } + let seedPhrase = try mpcCoreKit.keyToMnemonic( + factorKey: factor + ) print(seedPhrase) @@ -187,12 +181,9 @@ class MainViewModel: ObservableObject { func recoverUsingSeedPhrase(seedPhrase: String) { Task { do { - guard let factorKey = mpcCoreKit.mnemonicToKey( - shareMnemonic: seedPhrase, - format: "mnemonic" - ) else { - return - } + let factorKey = try mpcCoreKit.mnemonicToKey( + shareMnemonic: seedPhrase + ) print(factorKey.count) diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift index a7b41785..e0d783f0 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift @@ -26,7 +26,7 @@ struct LoginView: View { ).buttonStyle(.bordered) Spacer() }.onAppear { - viewModel.initialize() + try? viewModel.initialize() } } From 01c66352392cc746ad1f4d11ef2fd303f0db8be4 Mon Sep 17 00:00:00 2001 From: ieow Date: Wed, 8 Jan 2025 15:25:15 +0800 Subject: [PATCH 02/11] update --- .../xcshareddata/swiftpm/Package.resolved | 6 +++--- .../UserInterfaceState.xcuserstate | Bin 30486 -> 32326 bytes .../Helpers/Extension.swift | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 3b7a4d47..c24b64b6 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -61,7 +61,7 @@ "location" : "https://github.com/tkey/mpc-core-kit-swift", "state" : { "branch" : "update_dependencies", - "revision" : "ad4e18249e1513b4fbc2eacf91c434bf133ab3e5" + "revision" : "742afd28c5a7319933c1f41f6796d864581fe0dc" } }, { @@ -195,8 +195,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/tkey-mpc-swift", "state" : { - "branch" : "bulk_stream_multipart", - "revision" : "de5bfc71fbdfa0ce3267eb8cdd171a9fc0607961" + "revision" : "b6d9d1013f21f51105e845a0c16ee39b2f01fd1c", + "version" : "4.0.1" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate index 79d4e2ff0f962e6f2746a50e4a0df0b4492cfc44..116c819a14324ecd82162580c54936c083fb1ea0 100644 GIT binary patch delta 15529 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 R24VYeQB?cy&i6ix{};DY*>(T` delta 14709 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 diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift index 114d9b08..c3d9bb45 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Helpers/Extension.swift @@ -13,7 +13,7 @@ import web3 extension MpcCoreKit : EvmSigner { public func sign(message: Data) throws -> Data { - let data = try self.tssSign(message: message) + let data = try self.tssSignSync(message: message) return data } From cb04f29224db961994f2bb6be3607018f1e7ba7b Mon Sep 17 00:00:00 2001 From: AyushBherwani1998 Date: Tue, 14 Jan 2025 08:37:25 +0530 Subject: [PATCH 03/11] update auth0 example --- .../project.pbxproj | 57 ++-- .../xcshareddata/swiftpm/Package.resolved | 92 ++---- .../UserInterfaceState.xcuserstate | Bin 113991 -> 126020 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 305 +++++++++++------- .../xcschemes/xcschememanagement.plist | 144 ++++++++- .../Helpers/EthereumClient.swift | 2 +- .../Helpers/Extensions.swift | 9 +- .../Helpers/UserStorage.swift | 2 +- .../Models/MainViewModel.swift | 73 ++--- .../Views/ContentView.swift | 6 +- .../Views/HomeView.swift | 3 +- 11 files changed, 408 insertions(+), 285 deletions(-) diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.pbxproj b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.pbxproj index a128c8aa..1f218405 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.pbxproj +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.pbxproj @@ -23,10 +23,9 @@ 281ED74C2BE0EC77002E990C /* RecoveryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 281ED74B2BE0EC77002E990C /* RecoveryView.swift */; }; 281ED74E2BE0EC8F002E990C /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 281ED74D2BE0EC8F002E990C /* HomeView.swift */; }; 282411192BE0F5590097006B /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 282411182BE0F5590097006B /* LoadingView.swift */; }; - 2847121A2BFB825A0088411D /* mpc-core-kit-swift in Frameworks */ = {isa = PBXBuildFile; productRef = 284712192BFB825A0088411D /* mpc-core-kit-swift */; }; - 2847121D2BFB826A0088411D /* MpcProviderSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 2847121C2BFB826A0088411D /* MpcProviderSwift */; }; 2847121F2BFB83250088411D /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2847121E2BFB83250088411D /* Extensions.swift */; }; - 28BE823B2BF37114008A2B0C /* JWTDecode in Frameworks */ = {isa = PBXBuildFile; productRef = 28BE823A2BF37114008A2B0C /* JWTDecode */; }; + 28D0FE942D35831A00B32EAE /* MpcProviderSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 28D0FE932D35831A00B32EAE /* MpcProviderSwift */; }; + 28D0FE972D35849500B32EAE /* mpc-core-kit-swift in Frameworks */ = {isa = PBXBuildFile; productRef = 28D0FE962D35849500B32EAE /* mpc-core-kit-swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -73,11 +72,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 28D0FE942D35831A00B32EAE /* MpcProviderSwift in Frameworks */, 281ED73D2BE0E5AF002E990C /* Auth0 in Frameworks */, 281ED7402BE0E5DD002E990C /* web3.swift in Frameworks */, - 28BE823B2BF37114008A2B0C /* JWTDecode in Frameworks */, - 2847121A2BFB825A0088411D /* mpc-core-kit-swift in Frameworks */, - 2847121D2BFB826A0088411D /* MpcProviderSwift in Frameworks */, + 28D0FE972D35849500B32EAE /* mpc-core-kit-swift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -206,9 +204,8 @@ packageProductDependencies = ( 281ED73C2BE0E5AF002E990C /* Auth0 */, 281ED73F2BE0E5DD002E990C /* web3.swift */, - 28BE823A2BF37114008A2B0C /* JWTDecode */, - 284712192BFB825A0088411D /* mpc-core-kit-swift */, - 2847121C2BFB826A0088411D /* MpcProviderSwift */, + 28D0FE932D35831A00B32EAE /* MpcProviderSwift */, + 28D0FE962D35849500B32EAE /* mpc-core-kit-swift */, ); productName = "mpc-core-kit-ios-auth0"; productReference = 281ED7032BE0DFB9002E990C /* mpc-core-kit-ios-auth0.app */; @@ -285,9 +282,8 @@ packageReferences = ( 281ED73B2BE0E5AF002E990C /* XCRemoteSwiftPackageReference "Auth0" */, 281ED73E2BE0E5DD002E990C /* XCRemoteSwiftPackageReference "web3" */, - 28BE82392BF37114008A2B0C /* XCRemoteSwiftPackageReference "JWTDecode" */, - 284712182BFB825A0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */, - 2847121B2BFB826A0088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */, + 28D0FE922D35831A00B32EAE /* XCRemoteSwiftPackageReference "MpcProviderSwift" */, + 28D0FE952D35849500B32EAE /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */, ); productRefGroup = 281ED7042BE0DFB9002E990C /* Products */; projectDirPath = ""; @@ -679,7 +675,7 @@ repositoryURL = "https://github.com/auth0/Auth0.swift"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 2.7.0; + minimumVersion = 2.9.0; }; }; 281ED73E2BE0E5DD002E990C /* XCRemoteSwiftPackageReference "web3" */ = { @@ -690,28 +686,20 @@ minimumVersion = 1.6.1; }; }; - 284712182BFB825A0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */ = { - isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; - requirement = { - branch = main; - kind = branch; - }; - }; - 2847121B2BFB826A0088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */ = { + 28D0FE922D35831A00B32EAE /* XCRemoteSwiftPackageReference "MpcProviderSwift" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/tkey/MpcProviderSwift"; requirement = { - branch = main; + branch = "feat/update-dependency"; kind = branch; }; }; - 28BE82392BF37114008A2B0C /* XCRemoteSwiftPackageReference "JWTDecode" */ = { + 28D0FE952D35849500B32EAE /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/auth0/JWTDecode.swift"; + repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; requirement = { - kind = upToNextMajorVersion; - minimumVersion = 3.1.0; + branch = update_dependencies; + kind = branch; }; }; /* End XCRemoteSwiftPackageReference section */ @@ -727,20 +715,15 @@ package = 281ED73E2BE0E5DD002E990C /* XCRemoteSwiftPackageReference "web3" */; productName = web3.swift; }; - 284712192BFB825A0088411D /* mpc-core-kit-swift */ = { - isa = XCSwiftPackageProductDependency; - package = 284712182BFB825A0088411D /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */; - productName = "mpc-core-kit-swift"; - }; - 2847121C2BFB826A0088411D /* MpcProviderSwift */ = { + 28D0FE932D35831A00B32EAE /* MpcProviderSwift */ = { isa = XCSwiftPackageProductDependency; - package = 2847121B2BFB826A0088411D /* XCRemoteSwiftPackageReference "MpcProviderSwift" */; + package = 28D0FE922D35831A00B32EAE /* XCRemoteSwiftPackageReference "MpcProviderSwift" */; productName = MpcProviderSwift; }; - 28BE823A2BF37114008A2B0C /* JWTDecode */ = { + 28D0FE962D35849500B32EAE /* mpc-core-kit-swift */ = { isa = XCSwiftPackageProductDependency; - package = 28BE82392BF37114008A2B0C /* XCRemoteSwiftPackageReference "JWTDecode" */; - productName = JWTDecode; + package = 28D0FE952D35849500B32EAE /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */; + productName = "mpc-core-kit-swift"; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 657bb4e1..b85809da 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,22 +1,13 @@ { - "originHash" : "6eb679ca10e6ba273c0a4c520af3222830fe4d28810a355d4409ece0c2cf4329", + "originHash" : "3e75863af74d763298fbb142365f642200e9490a6b422a2f070dd3b264ed354e", "pins" : [ - { - "identity" : "anycodable", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Flight-School/AnyCodable", - "state" : { - "revision" : "862808b2070cd908cb04f9aafe7de83d35f81b05", - "version" : "0.6.7" - } - }, { "identity" : "auth0.swift", "kind" : "remoteSourceControl", "location" : "https://github.com/auth0/Auth0.swift", "state" : { - "revision" : "ecd6fbd0c00d2144d9275a6dbceb213afc7f2a2d", - "version" : "2.7.0" + "revision" : "9fee002fcd5fa572c0452eaeb9fb7a75be5fa4de", + "version" : "2.10.0" } }, { @@ -33,8 +24,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/curvelib.swift", "state" : { - "revision" : "9f88bd5e56d1df443a908f7a7e81ae4f4d9170ea", - "version" : "1.0.1" + "revision" : "432bf1abe7ff505fc2ac9fcf697341ff5b2dc6d0", + "version" : "2.0.0" } }, { @@ -42,17 +33,17 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/customauth-swift-sdk", "state" : { - "revision" : "60b48acb161fb4341c353c27bc6dd96af76887ff", - "version" : "10.0.1" + "revision" : "67f947d087e1c9c6ca37c6627b595fe6913bc558", + "version" : "11.0.2" } }, { "identity" : "fetch-node-details-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/torusresearch/fetch-node-details-swift.git", + "location" : "https://github.com/torusresearch/fetch-node-details-swift", "state" : { - "revision" : "22bfadf7491d77a0bc1953af002cadbd61383e7d", - "version" : "6.0.2" + "revision" : "52fb5efaa94e0fe3775913ab00964bcb51601c2a", + "version" : "8.0.0" } }, { @@ -69,17 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/auth0/JWTDecode.swift.git", "state" : { - "revision" : "58af7278797871e460d79496621b3e5366b865b2", - "version" : "3.1.0" - } - }, - { - "identity" : "keychain-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/evgenyneu/keychain-swift.git", - "state" : { - "revision" : "d108a1fa6189e661f91560548ef48651ed8d93b9", - "version" : "20.0.0" + "revision" : "1e153ef009969543191970c66b7c60163c0b4a65", + "version" : "3.2.0" } }, { @@ -87,8 +69,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/mpc-core-kit-swift", "state" : { - "branch" : "main", - "revision" : "183f205cb24ff8aa9c6c59bea905f365fe03d34e" + "branch" : "update_dependencies", + "revision" : "9b37f29c0f9a2805ec396d35fa73295a8ba0e5e3" } }, { @@ -96,8 +78,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/MpcProviderSwift", "state" : { - "branch" : "main", - "revision" : "f087b89ee543710fc23b35dc05fa233b1d16b7e1" + "branch" : "feat/update-dependency", + "revision" : "1e8aa2e96cfea11488736b79ff29a81d0e1fbac2" } }, { @@ -109,31 +91,13 @@ "version" : "0.16.0" } }, - { - "identity" : "session-manager-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Web3Auth/session-manager-swift.git", - "state" : { - "revision" : "20cc7bff065d7fe53164d17e7714a3f17d4cea2a", - "version" : "4.0.2" - } - }, { "identity" : "simplekeychain", "kind" : "remoteSourceControl", "location" : "https://github.com/auth0/SimpleKeychain.git", "state" : { - "revision" : "f082494aab8056139a4fe234c920a9f92f681aff", - "version" : "1.1.0" - } - }, - { - "identity" : "single-factor-auth-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Web3Auth/single-factor-auth-swift", - "state" : { - "revision" : "73c5066d369c7d2aa1057c56a89b7f1dcdda3270", - "version" : "5.0.0" + "revision" : "b694f155907b189bc82e93586695a26f558c742f", + "version" : "1.2.0" } }, { @@ -141,8 +105,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/socketio/socket.io-client-swift", "state" : { - "revision" : "175da8b5156f6b132436f0676cc84c2f6a766b6e", - "version" : "16.1.0" + "revision" : "42da871d9369f290d6ec4930636c40672143905b", + "version" : "16.1.1" } }, { @@ -150,8 +114,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/daltoniam/Starscream", "state" : { - "revision" : "ac6c0fc9da221873e01bd1a0d4818498a71eef33", - "version" : "4.0.6" + "revision" : "c6bfd1af48efcc9a9ad203665db12375ba6b145a", + "version" : "4.0.8" } }, { @@ -249,8 +213,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/tkey-mpc-swift", "state" : { - "revision" : "8fe0cc8d5cc2ad5d38bf068bc29f6af7e3146d08", - "version" : "3.0.0" + "revision" : "b6d9d1013f21f51105e845a0c16ee39b2f01fd1c", + "version" : "4.0.1" } }, { @@ -258,8 +222,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/torus-utils-swift.git", "state" : { - "revision" : "ff85c3e96bfa29013309b487875c4d9383e4ac80", - "version" : "8.1.1" + "revision" : "baa822fc67bdb208ed1a2dc5b3c10485cfca15df", + "version" : "10.0.0" } }, { @@ -267,8 +231,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/tss-client-swift.git", "state" : { - "revision" : "40246d5e3ff1d2c97d41846576f7a81d58858981", - "version" : "4.0.0" + "revision" : "6f00e4e03184a77eea0330b5b8d092d1452b9eb4", + "version" : "5.0.1" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcuserdata/ayushb.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcuserdata/ayushb.xcuserdatad/UserInterfaceState.xcuserstate index c0c2289d7fc727bed259871cddcd825797860935..d34fa335ffc4fe9cf618a082a50b525f3dbdcefe 100644 GIT binary patch literal 126020 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 CFw*$| literal 113991 zcmeFa2YeMp_dmQdJG-~+-EupfPz5A}-di9vX_3%d2+0K^Y2+qAtUF20Ico);ha|31nm*W~WZ?38o9r_7l%lXEiC!+9-R z9_J8;Ii4e&z=@oVbB=B}Gn5-n&(0dtFeNv2S~~nSykTB;&gh2OldlP-=7l{Rnztrd zQ->rC3>AdZ;vp7j9$Ia)K zaJO;GxaHhE+-k0vTg$EEwsDVek8<0&9o$ZC7q^>xf_sL0fji8-!j*Ebaj$cqai4Q1 zxi7dcxl`O%+-dH2?ho!y?kwUELIM(z6G=!x9u$M>p~mP6)C^sTnxk0M33WzYP*>Cq zbw@o=Pc#S(Mnlk0l!!*6QD`(8gObrCl!iiRI?6yfXa>qfvrz%M9^HU$L37Yzv;^IT zHlhbn3EG4p^umk&X0N2J1a6{Y#H^;HK1#XSo;10MW?u>ilc-#jMz*pg+I0=uz+ucvMtl?2@f>_BUW}LE75FZEH+}%G!G(A&UWd2hhw(Q22;PbJ;K%WP zd;mXzpT{rYL-<8}6u*Jr$DiX<_$&M^{to|$cH*D#Z}@kf;}MT}k+<;@@8UJS3Ez}& z#$U-d=VSR6d>r4BZ^gIf+w!r}^*rANim7-}v7NN2-zPqz0);YLVKc4yj9GNIg=Y zG$yg61!+$@kdCAm=}i(yA2NUpCL_p5GKwUVNhF1&k|`vc%p^AuN^U0e$b51uSxRmv zcajxkC3%!=Cp*YavWx5{d&pk0k32>mC;Q1k@&Y+TUL?oJaq=p8pL{?*Bp;Da$rt21 z@;&*1oDl>;6l{WBa0pI85?q2$@CyMUC{z>b2z7-Rp`p-7h!t80aY9F-htOBJN*E{% z6_SKe!f0W?(E>yNf-Qt@W-7ICq-TwEpIFFqg^iyOpE;%4z-ahte9JS-j&kBTpguZX4M zG4Z(gs`#4ty7;#Ek@&IriFiur+b_0XZGYMYyJ)xBRl8<)+iTiu*=yVD*z4OH+gsS<>@DrB?49hL z?Op5%_JQ_c_L25c_Hp)Pd#XLnKFywP&$Q3A&$G|BFR(APFS6fiUu<7uzs@FUu$1y-)eu@zRmuKeW!h|{h<9R`_uN9?1$|~?4|bC?C;w@wSQ&*)_%tRi~SG# zpAPJ(;i&1T<*4nbj*w%DBh!)RnC-aUp*!X{<~kNSmO5^CtZ+QwSmP*k6gi3=YaI_cwmKemY;!#B z*zY*tc*60dt_+1bU})!EJ2-Pyz0(>d6AwR4zrq;r&WoO8T$igT)S znls(G&AG$5)4A8V&w0T4g!5_VGtL*Bhnz>8N1ex<$DMCD-*mp~e9!rj^JC{{&d;5v zoL@P=b$;jk(fO0}H|OsXCm~6YM9C>hk}7GEPx4FEr5aKlsjk#P>L_)RI!j%ou2MIt zyVOJKDaA{Dq(RbfX@oRVnkXeplcfwPQ_7OErLZ(hx=GTdd!&`pDrvQJuXLYuzx05# zMkm%0}t}kU?CbA%lvQ4(j4%sP7 zvP+g_w_Ht*k?YCz`ly8#f%M0X%@*??GdAWS2yjk8NKO}FJAC|YtkI0Y8+vOedPI<5Vr2L%x zy!^8Kid-tcCBH3yFaIE)k$;qbl7E(ek$;tclYf{0P>^C*9Ewx%C|<><)KY3Ib(AJb zQ>B@5r4pyKQQ9h9m2S!?WwbIz8LNy_#w!z)iAu6ENl8&AD^rwAC107T%u=XwvvP|v zM_HgOR_;_*DC?B<$_8bl@}N?pY*IEW+m#*4KIJjxY2_K^UFALHedPn?L**moW91X& zgz~BKnewIbo${;loASF#R6$i$O?9gtHK5i|>#GgaE^1e`o7!FNq4rec)n00EH9_s8 z4p0--tJP8JXmygBqE1#*)#+-6I!B$W&Qs^B3)F?`BK1~vvARUPOjsh>Z|H&>g(#;>PPCw>Phtr^*i-@^#}Eg`lI@% zdR7Z+)wJqb4XvhDORKHb(due3T0O0i)?90?wb8n0UA1mnAFZ!8QA^e)X(`%dEmcd? zLfRB z#a-$?=05Iz)%~XX1NW!y&)i?Tzj1%-K_2YkJ;Wn;M32p5_h=rsC+Ml>iSg9)bn)oUOiz|4*E7>|qvs~i-JW|q zD?O_`t3CI6?(^L5dBC&AQ|MXe+3b15^QdQ^=P}RYo@YGIdOq-c==sR=vF8)d3D2jV z&pe-dPI|uZoc5gY{Nef2bJlC~+PxmH*X#58z16+7y|LaF-Z*bdZ!2$WZyRr0Z&zW_q){+1{}CTCeV<-i6*p-dnxPy?1&yd$)KW z@^1A$?A_*l#QUgsyLX3or+2USN$(5ZL*5s?$GpeA?|I+%e&GGkd%}Ct`>ppopVKG# zTt3;S_*9?fbNf6#ug~YJ=Bw+w!q>#t)Yrz>*4NJ0-q+dJ-PhOG&o|VU=$qzC_g&+g z?#u9H`m%i4z8v2SU#@Sa?*`wEzB#_Rz9qifd`o?I`|j~Q?Azvh#P_IgyKjeYr*D^U zw{MScuW!Ha8Q)>w5#LeY>%KR9ANfA^ed0UeJL&t%cgFXlU-7Gc&F}Vm{9eD$@An7% zL4P%WEq?=lLw_UxmHy`bw*Geh_Wln3j{cthc>fsxSpPWxc>e_dM1Qh>l0U^i*`Mm4 z>d*3L`}6%X{Wtn=^6P%;zuCXYf2+UPzt+Fbzuv#WztR7ozr?@EzuCXVzsg?_J8gF#{aGVJOB6oAN)W2&jy5m7*GOgKnqk0R1dTY zv<|chv<1(*hZRoWP7g zLEzfJvcU4doq-jBy8?Fy?g^|6tO~3S+#6UE*bvwlcqp(nuq&`TuqUuLurKgb;OW4j zz>&bwz-NKa11AGt1ilQM3Vanf9r!x%P2k(WnZWNs9OQ#i&=r(}{$LN~|7&RoR#q>}?cr5%sVttNmn3|Ci4i|B5&ZA?UFXDWh zUni93^v20r!}fhTbm-WwReWs6zHR!(w(ZonQ*3-f`&O}idbdyL*t%`sP6@r^lQrLf zgg&FPbEk)MQc^<+*{S)Np{zXX%{90NT=R`wO|BMKo2$ds& z+c!5QGnA~w!WaEh!h_SN=7RN{HZmn6KNRkpo1Hl%X;>(nmz|q3IU{6P)(I(jDal&* zbGtu0WpeNAti0UpjEqojazfiqZF;xs&?&ZKpEfOH+xBhUCN{op`?j&Ydbe%gw^Q5r z4sF`DO4b^e^#E%3O359S5+0czPKURQO3#~?l%6#;BLq*9wYpF+J~a=V0AOS4C2lSv`?Lk<91g;O)m+Qy%=LW!< z41_hPuFuqG>DTJl={LZ7=xjwa=u*{&xnW~NU~fvGjWD*H1&Hv|*xhEgN)(lgTY z(nH}<>1lb>%whww!a3jq$<8e=R#wv}HhyG!XjVdKa{kn*uo#+ma40i7x1e8cO3t+M zZ>>I*yC}T#aW~YT(K(hnW^IDX3u|?S;!u(fJq%V+bvR12#r^X;) zev(2NFb|=$vZlcw)Gs$XKgWCk-lK4`)}XABA=!E9siCmZ8ROTode&ewxm>RKS}u#r z=5n|hdOf|q-av1-mJ4%vTs{}p8|hc*P2dv-=j)rEkr&D}_@P(9U>GR)p`cHLQo?y< z?Xs_vwZMq1DU}wkX0{PZ8!@0_J63;g;BMpsYu4zEOF7Ej%-zDx8EXPh7I5rn^Vd*# z{E(!CbYPF{td!h>A}BR?^pK>XhMUZ!{tEp`$_9dhg4R10aErJ=A-7O(TFBk1H)Ht4 zIHuA%r2vUbx!burlC>JJwhRywnFDWFC?_`*2J}i{z0jNMR}OXCypt{G9>P2ka>Lh- zNzV&q8Y2Zl2K>y6PlfdehtdF0LKDNO3_TLF!$9xZSrfvM#T@{3!dtZ(qU@G`UUEtn?{)gL6_7bF*irr-gF0x}}P$xhv~fXm(CY7V||KU2hZr z%pcF4++8=OK{X-c!;NjG8 zY4sX4FZ#7lemoCeT05qwPTeY-2Ck~SGs6MJ!x}2B-=N{ezwpx@@WRIKqAQwQ;DuF; zzO>nu%`g5<@6>@ewQv{4Rr#XQR;}Aye0#6$g!bCS6t{0u_4<@{?9}<9TijjuHfXVH zu&7)2D!Z7h)vkQ`2+Kj5m1Zg+Rx zyP@4d!Q#P9hE&<^NCsXR;nKvbFQ#E=FKJ})@DWwFSLKT|zI61Mu@~L>CqG#YFB>0I zJmCV9Qkpy|<>FiXARSsvjVT0?Qz>MWPMJFG;#>Q97PNLvuy}e#W))!tRS3bk-K2B@Kif6edrv=WgQe z;6dJS!e~i8{G?g6#LP0=p}R% zeU1?padp^vXocIuj>FY>BuYhL9)B0`K=iVX?46xL;TU-tH3NDd8P+ zjxjR-5Bo(G{u918<@lZ43ebN0%+AR$mFl7Sc^T=as_?azfz_k=G@UOiFIks=S;b@{&MJ&6+v@ z1ZZCRlyp!j&0(zMR)KOkBx!Jd9_w(q4pPjmWLk)&Vcg3-z%?)8?&I#) zZ>9HST2%EJ`Jvo`#1v+MfHoB_w;?8&DpO)g9( z<7(E6-pryKXLN`e8`)XOn#cGn3AAk(cdDV>Xq;(K^-9T0oyOGE;i1`iM*ZPa;IHG{ z9&RtU5A>wRxW~Eu+<`Gh6T?HfnPZvKmS*&2tnsDsLcO!j>D~1n$DqoS+(GUs?rCnv z@H}XAGz>hGEsowz@4_^%XMum79|J~cI4>7QrFTs<*WnQNqOlPgS%)O!X)$+*d&$rQ z&A-i}N4TTsb>Hkdys3zLnUNVY7R$y~_VB##%f@WBdW<`stksFCSYh6ZxK~;8e^DyY zTIe?bC&27@lY5JMn|p_QmwQj|rT5ko^geoDz2AB;tv-ZBZ^(VZodBb104%($kJZPq zg|7`AVaC>7PQwZBRh3^m|4*gqjebABBt&P?WIodot?=jkm-$vDQ&lg_BD5gYrc;A zhWnQLj{BbbLBC2Ls1MQy>qFLYKXO08pnl&2sR|PC`OloF;hU1O*52Y zux;S`-ubz?For=X`B|yclFSzl3r&GxXQi4pNh>JTKV@dfr1p%A0;`qYi6cyVkWJ6D z^o%s9W6XuQPR6r}HWsjXB1|}cuphngh z<1@e@Pb**)kkvOkcSvYfVoE;PEyiS-eX5U05o!Qq9c_-bR^@77Oru6IZQGbtni#`? ziMj5&md#^gTeZBQdCYaKJG5>d)3II48*b3>MVQdm=vtsQ0E{ROwM4B@Yki`gtWVNY z)}pqk9XAD5DtT92&U&kg#dN(Q}gn3 z!Tznn4`9CVqAdN3vEeW5Ot9uD9`$AO)C=`S38;@gMW3oq)6>_YeyBehfUeT7(KGcd zJ(tbX|H8sYSED4bzR@s!dLbIFXI#+w9_q$f6>VzK_TLA}*d4=jv$OMb^q}Ml)~wg? ziYuF&zRy=>W(a${VAn?6oZ~@!f=@6zmq{Z)qrB|tp{%~?p^P-s%V6Le_&#z&senYL zQzHTsbwXK8H%RN1pO=>nb(qhjT#*Rtc8vr7DbdB!YI5}&=XhAx=zM9d+I8wy=J2ps zyQoe~nWqEl*Ke>!7obw3#^)nKqdGD0yh($?rrWhqc{%9|O^X0E)2=x4^P8m$|uGy|rl5U$h#yorM# zL@9}z0G_ria7NwCtpbhbD1;at1IhY2NXqw&5TjEdR(^+|A{l9@I;w-}8X-mPAe5*( z1Q7KCs-FVELW|KI5CU|>)K1IP)z%fXRStb|0auX4P-D?}M!@6r>_Rj_&$%E0gA#*M zxZ6?cU%8KF40WS6=aahf-@A|2FcazNB?T|dEwW2R4re7Ml1r|{L{dwE5d!DAmWqKh zs+4B%z_N=h&yr~wC2LIwr-L?-H8mzBcdFs)kI6`x9Lk8fVrEJ%(?U955tE)3lbVu| zp>cM1%@*AT4jM6fTv}#M!Oe3P-geKuJC6Knt`D-zi(tj|;(oUlWeS?c7GLEXt~ii&Cw6%zwWqYr&)E0~@q*-(3|hCFadeNzY=YlHs2)Cl{Pr z7w^1#`lh%q$C=JMccHV?9|&HgvCS%`S(LP)s7CFgnzbsSq&jt@DQQgw!#ELw499Y5 z5M-!>b$1U~Mh|lbxaUD*XZ-vc@bS+O80d`faDCJWwLl%t_RkCFEB(uC@s05uz_}%8%pa9md{k!80a$_6l12R4oC=_n#r|>W>Pi` ztHm3U&RV=lzrK)b2x<}t$(l?j3NuwZq6M>+F{MJ-sx}ub0Q(QkL-X|;^_z-7cW(kZ zySX)0R(((?WjcrnL#YOU9zCq=NkkE6J5gmj2UgQd(Q2;wCUiT%*)p^o-3k7KyTF5R z4_b*<=~Ta2zeS&;&(-JY^YsP#LVb~b>n3zBw;A1!9zbhQAu2+}Xf0ZY*6WMGgt$## zs^6~PLGclaU!(XVia)0KEE{Hwr3RO8kR*Y3J8uBDe<{p+B5`OoWzAyVM` z206Lunc&>F9vhLfX%(x3pfF8yx(p7r2ldKtX}pT~eKSL&-MUazmD_%I{T z3d`a)2M=$Dy-H)kVVcbE`ol5-Bf*zo5>ALr61Y!WwYhQ}Q-lVBXTaDVstr_~pOMCB zI}vtbhlRiq5Y7XdVOzgpjko&z9{PxDUX0#HAD|EQ)%v~qeZ}Zw^a(nl-%s&6{c}c> z9ySm0;mErq`j%!9Dm*l%9y|jH1>ku|Pqn@==jluI^Ja7keT7b=uhBQ?Tl5|J9{qsM zpdZms`UCp=6nQCXMbS8lCQx)QMaL;ROL0?*hf#ckzU2+{EBX!nj{bnv{u7-@2 zpXm?jMfx^@szM{M%CN^XgU9b~My{RX;^G*dhvQNT^25_6$FXIOn+2PR zY_G5Em-21E&}?WTBNUE1-xm<|g}GZ;)z^lm6OOAy@i7;q7w!$~1-6PsMHXci;RLo0 zl|2Go9QVcjaR0G6Aim7?(;w9zN!D)qM+VtqHVYQW$<4mT9MeENXq;(%8O&3R2jd|i z4bJ%rkd5u{hSC^w^?}%v0<&f!24_xVNVUifWq^ZtW(eH5JN2z*SH|LT;K2g$DZ*oog~-XDoROYtDy^|$W4i|e zZ_0R^Ib=-fVXb6~#L(1~aDLd_8tM&G6cG_P8DGOSFTs;=3Z9HpaT*TcDR?TLhST-E z`ab{4)56@0H+iWq7&%qW&_o<7y;?GV)T)WifTGvN-`YH4&z1Dn!6!fzB5O zEiHUr5$gr_;MME}EAcA*CH-&_z8Bx8AJLEMjmNPWF>pK-o|qPq-=^wjcD@Mxyhh*R zZu+s+)OuXP1&Z+o*ou2le?>3Vj}_xhcr)IjAJ<>gUuS)895q8Z=k+rQ)F)VoxC;~< zo?VcT9%dEGH;KUc5>+Fdo)&@tuokmez*H%I6u5Oe-T}_#7Ww(7Xj^dx?oP4_|kl>WB<&NI;>BZSu)|2ni2~Y+;1Lb$! z_~FyQ8#fK+4jQqZ|ID%HU%)2NI%_B0dh`eW6CRz?zk=81O%D~sGJ$MtSZg&SWq96b z{%h7eOkib^LlJ#}w=;b~|JKwD4pgcc3`(Dz3uahcLTF|vgLzL){SE%k1rfpGol>e0 z_OVm4XQ$6f&6<{*GCM6hZ)!mS?8{t}bM5T3YqF+C_#@J}a9rxNQ0jCryTWl5M-?d- zjyrdr;>_ucJAdBGObgb^dI$~ z^q=)#^k4Pg^xySAO8DBQgyHM)^k8g5t<}$yNLi5D@%8eh@#HB9S5+MfPHTD4&S8P~@P<`HxEpeiWzj zqoYy&*Bd^KY3b~F|E@s|+RD$qdp}4CejF4XA6<0PVzj2|{DiZ2%}#wmI`G7``m5IX zlljSPk|*Jn6uI=5iuhCv=Clm*w()rq*6puX=1;V0U&Ch_qJz)S-=;_d*}$N=+d@kD@>s*z*e+lv5OBSYD;W+NUZj+p&_47*^NO%-<+aYJ$6)N*+yD3RfPwniYYX7 zMgD3283>7qOtDFb=Py?=|1AF;QyVW_ta3ksHIf(jL#7+HN=}c)p(Efhe3^d*aOfC+ zoavwK^j#Enrx3sZFf^8;Zs)0>{OkN1mI_Ky7mC_cP(u0ln9zHl|A7CH|A?Zt6t$NSP3fPK=TuH#5&eu$C1{cevp;~wgNzV8&X8t5a6q!6pgrK8Y1aL zx`BpBI+HG>D@BPET}{!jV$z-TU>af)g~*tH+K)i`aw_Q;t@bT=WW~nr!xNS)IDK}0 zjTiUa1R5f_3W^SlF1mEi=EAE`zh#d-IJ*)3?2p-H8X_4&u4X#kN|LC*MA1ml@kkQW z@kT}Icy2t_TA9&goS_(!u}m=>bAd`@Os^y8gRel(CQ~%t5Dg@aguvG^1ookdNE$ac z3ZKbTj7d7V1`8yEWHNkCVfcIvMH3l5uci=NP;sM#K*`$D6 zORl465=GFNG>SrH_)MlUE1bQ^FvHbB*;CEU{tEC+ZZS)xvQp;xhpNGuEH=S;%Ef>) zxx)nKX(l)?`$xfnaLd{GEcKeVij2ryWwOtxtH8W?k5kBHKY*Y*^9|q zvW}wZ6lGA9Nl_L>*%akaG=rjCioz7-QIx-lY>2?~CbF4qArEm)$iobvXIcP#Ek&T< z&!^}fX2!4lzX#H66W|<0*bFg=&z}uPFw6GT4Zrc_;8rFF7@j{t(JTwkpJLqgG#qMp znmk9*Yy;2XvjFh?3ayz%BrlPp4ABo002pAx>x;t_$y_DAPe>N7aQ=oN`rK$l7rtoFvx(_2wwCBe z@&`mLke|rUaQfs|@*DY`q6HK!q-YUEw^Fp2q9yCepIj4x6A)J@@D$y~SaK;vcj};j z-ED*i7&^aU0RoJ)7@M7)30oNzzhrR;3}t$;9Rsl1YLpc>*`P)5l&qO>BpkLoVAtmS zhY3bty>TkSEMcDJEi0Coo|Of=b1XhQGz+%6%N|4;9}4?Hx!|o2H|TNV*lx-Fhoxc) zvY^5A35uXnbUQ_N6bWv@L(wvdmg|j2!s%78PRFOE!%hwatz@NS<&A*2p_Gi_8Q@%v zOd_1vsR=P~LJf*m6bj(oxJz$bp~@K8w1w?>I1+5ts3+7nPups$^;Kh`sUc*ACQQh# zy1+UPpPZdm5G6u|mKY1Ig*Hrt3hkK)UBg7^MvCr>h|mq^iBO@F(79ZM0&L%3L4*oD zfysq!`Nj7NVOkp8=$paW#ehi$(0zeN%k5}e2 z#-CU{+bC=XsVh7PXAyx)4^RZ!!IQ2J54asRZ0 zH4AITwb}M){dypEg*{MoZ*to;ec((N#Ip}Il#D3u!5TL>V z;R)eM;UFB$1h#vYBG8JSr|1QW4pH>tdf{1M(B}mn1n7$ty~J4ZFq54iK#%?{0<>xY zXq{atlaS|$&c719Q3CW;;SE!OzHSK6BNYT_1udCLROA6pEN`^LUhQ6DoazD3d7<>K&b)0Ovz>GAWxDLod40^!R4ojepF z29Q~(?_7*IDONM(;d_^ZuaAv599P-+%LJlW%@m05Mb=uZCpHIPpIBdPAT|^miH*f8 z#3o`>v6*-!MITc15k((U^a({LDEgG5&nWtwqLUPTQ6k2gvQTU#w#Lo4CSp4#3BR-? z;nx)X1`&V2a=-uIlY;+z$dT9^M4OmE(W!`N6Z6#YoiPY_jAET)UsFwyo4MZf;zqD`E^sbX%lyc#iX{7a+zBzX5O z$syIxZsS0-iTO};W^~cw#8=KXMDaTcM^5Z9ux)7!6KyRj*oNY@;tdA+iq|vr{R7Zf zoXF7khbZ(Ne=e&>L9sXoV{x81pIIj2B7kDd0~BM4V$QTou=6}97MF;(l|eD9fGR+- zcqb#V72;ju-QqnILxu)Iu|Tm{2F3772=!$z+6Zwt{j)QTj0gXXQ6g?MKp5LD3WT>9 zAdDR*2;XrT7$xVAy&QnI7yyhN7Dw(BpJV{MOWZB)5%-Gw#K*+P#r@&|@d=7u6w4GV z6sr_#6uT+*Q0%4HN3p*|JQxAsXT|4OG>&)(02l`%0E}x;+!!XWKgC!43&59tvqgM^ z0q~m?2Q2`8hjGWd;(P3e;%XFEH$MS@W3-mma-R@CXW00u_!-4DDXvu{o)o{JxHiQx zmkxlx7QbTe(;i9}Iwh6@L?dr??(vjNG7D{8Ky& z0E~gO8vWw{Y!f-vW{XBuG&t+s&WrnwTC}?U9h0i({0;zYb3#!mx~On-pZN`+>i1Gn z-m-6Bu2%OD0PultDgdxewRsExwz&a-agz(oUKHlqs$p!aVXMh7*H(u?Xe`6rb`&>@ zU~b#B>YHMb@lH%qR$5Gs}3~p`JY;kOrVkvIHHoNOW z&|@-7QI-rT%90^PS+bF$EIud4gkX(S?FF)RGy%8O#Q?6&I8Z@x8xwHv{YL@!F9v;1 zV2`bviM?$iBya0$yBe_9*3Z`8Ho$h3ZJ=$CZLn>KZKy4g;`S7GptvK&oha^1aTkia zQrwN=?iBYZu?;h^*EZ7J=(dez*xS>>UeL?TP)MBkFZNz~?6pk;?6sv+93R16TLxgS zEz_38ekkrmac}bzuvgXs)^g|DW&>l}X4+;^+=t@6MYaOlwG{WG_^L~Wy|$ZdHyhY% zqYQid1A5rzFzg)=jlHP8)w6}RC4jxQMYdaQizyyR@gRx^7u#;LEoIm{gyNz9JoerN zfO>Z{pf3LU?S&_E2M*Z$Lh1ESzPh3&!`@X;baiymli#ka6*sx>>vtZnv3iQs1&CsLdQkc+RUc*6OR`><_W zIpmI`cz8v~-NlG$w{4GYuWcX2BPbq4@o0+2l;iFO6DvoWSXpVFG%IlE+&H5Ppzn)j zi(@YeeP1@!-SH;+uKY*Qw=BM>l3a1;Lhs8a^p3YE{!QB_40_+Py={BP_O9(c+xxZ; zY#-V_vcZAuWQr$IoI>$ric=|0qc}wI6pE)(JgvlbA_Bc9g*@ArToc<@40_Wo=*?sv zcwE5r-fREG-oF8Re`DAS3gR^u_A&>ZowFnML-BNqGt5uG-mY4`$a>rDb_qD#?yx&4 z28hlsvb*eH+vHF@lVR^A2}HMh>;ZsLyVvfs`zfA5aW2K-VtdeDjlpOh#rgj@jN0K` zu019i8;hQ~dE&C+{n3sW8h2VCea3tU_6AV2VRX^mH4YEIZFApR+dgjF_0~r+ZDlZO zzrx36Qbu^WRYbr0Eo6{+jHzQ z?78-^JWy62Dx|(0LaW-5rh2^=Eys>>aLu%<>OrrLHfX zbYnR>@3Ze`ll&N7NpT^##q9^!48YD>G&-X**2+9%f8NCA=NLAxW!QXxL3&YCCCzD^ zp0FQ<{3!O9Dc%4H6d@(0YCmp&6%L%Hnpq^xt@v{elv2Er;+LY(+6HR1{Z0E@=c(1( zD4YSVT&=c$VE?cjtskbiq#{~>#;EXf`$_v3_Ae>kL^04JtouV{Xl*-Jt^UvSXZx=v zGPC@!;0U>J42$ht{W&tv4&I>v*g1$paEK0@!|rf6oDRw1a>x`vLh+*%Z>M+%#XBhm zp|zXhJrwVycwdP_HNno|HT6+Pkb&J}7TCcay`_&H`WNjkJ=!@M0opklQ~Y=Y?Ho;k z&K%9S&FqKb{S58k1JJIEwbrd1ZGop8tsQMB1~2=QMUHk3D0PtH=Pw!BIl4G{0NOda zI=VT!Q~VUgKnBkgJ9;|e8Pz{a@pJz;+By1js$)PjgjJ%8ItD?}!O=yl)I}YM4z|;X zS2~6%#xbaS@d7oB=yu0s2c#KfiE}Gp8ienrPA_smxO-I( zA+3m&vMJfDTHzq1W2$3XIgY(b@zDx6=E!37mF>uJ%y58t0YLi-#ibMV8RVm8^X5^7FM1|uHBo{fBIhIrWCdKcUCDd}< zwtqlV6Xd-F{TPlSc%P8x-v+JH_2$I zELWK05yvh#R_S=uvE8x50a*PB#V08Kl;Y3UI(9qupc9UL6n{?fS2}$BsK<^T6q;h> zM;kLNed;vhx3OkM4Kv`CkyqKwmE}pZI)2dc9DCbSj;9^ZIDn;3QVe@JAl*)_1);DR z-wWsC`@>QmF_FLKNXQ$a)bTc4H|03yIPQ4W@tWgx#~Y3}9k8^gDgK(`Zz%qj z;_oQ_p5h-UKC{sjY8+fRW&She8H|JF^^4^8yOK?gl?6Br;xNP686mbXk>m({%*?Qn zfO>ZORHdbdTe+AjmTy*7`NRPU!{J$l#+z4FcyK5$B@L1>R4mTU0aV@>n6ZjQtL%1C z{^W20B=5_tSU#?*rs1q7y9x_at)o}%K4Qs-fw#2G9GErGdJd3#&wELXC?KW64ZyP zf3W(0>W#};t3l5tYm5dUx1Gsl$&CMoXB*5H8Jg4Utj{%n$mw(XodIXiS_kd7kocBbz{Zk@7am+bQp$yp!@0s-!a5i_wI$NM`KuzNz`g|Pa15^aSrQ+*Ue1nQ_v0qP7@lR?C!ef(lt3jv* zB=9rEg>}3Z(mny-)iy6Kv(A8r^2#w04rCeOqDGcQv#!AmVMsB~Dvvj-CP9`Dc0XG~ zNIZW|$i0!!Di6+;Lym1D!z8;X3>s9e_nTL~G3YRVW7*KNrb1I$fDCXq*nq4lkn`0I ztr{`XvmwhQ8w6CSI}C10$jeKq_`-8v;xoHeu|Trcau9faAk7Gzh=*&r%JWy6L+AyW zveJx-&{4?31rP<@wGNS&bvJnaj4_@t=E~O#&|`WIOBxe43PGZ$G(%Q7}l;tN81fe}4x%NDSZwzQqNU*C_9yybp35Fp*s5-*6@x{tX^-!9G%{ zGv73|H zc21&vkn+_iU%l8l*_rB0qkIi2Zl>Z>47LBW>~P6iXXA*Eb?aV5NV2lY4KY%&hms5d zRh~gBS^NK)x59aia|zdct5)AR-I;-3b7ncSvCTQdnd=ObO#ZlYrgN5awzEK70IHw%Xzo+9_LEuD(7nFz0Uib_d6eOu5lJRi=4&Iwa#_U z_0A2>jm`(1CC*LG&CV^(hn!m}-;eT>DX&w073FtR{s`qir-Y-#M@ef+#!wQbWFaLF zP_mPfLzH|%;ZT=QoeJ%!Fp>&6RG34B5-RMc!W&fhj*2!a)}vx4Dkf4fjf%6WxI< z7q7OPoKP!SE4n;50U|BRQ(u~BHLOp3!r(qFGSklO_#U(4b&|D%mq*8|WMT7WtGGz| zO)IZ^d>Y)75-v*^Q4YNO&4Iy{0ROLI(>dbsDRVIOleI&a$0~stlOK-FXR^;s-Bu<> zhO;N8P&DrQnF818Lh3X2ZK9EH6GUaSBzfK(V8dkXh09}rmGF-V&FAHhHCYQv_l8(5 z$QWwK)adaYHpd5s@k^J-_!yg+D`%wN%ZXgPS+N_SEGu z#{X>H%0MQ1WFML%gN##`!`atCuon+0YMDPMx~rd>U4<)ZpT0a6;lBd->6JnIm*&t~ zCu^5WcFu4(Hr2Q$^E}Z75K!^K@T4SD>xf>kZ_H7(P1e4?JQgerS`eg!j?GNTf{=;a z$k6(jNzdaFv(v(c;cAZLJR8=sjx4Z<{Cy>Z`g4LtqG#cZISY^y|F%kJ;eV7G5R$1H z*9lh6Tfdr}?3k>rtF)8W!*Be5XSFuqe7F}FVPcx*6e%dWNp*s(f6tZP$Ua( z)CeSEj-YF@cI5IH0lW1nBNPjIDPWwD>i;|#NHPlaHJ-Co0jB}0QT|2rARXo);U?=h%OeV)ndevi8{J(esPRoqTR0<>hlsPmlI zw=%<4GEW8b3CY^l%VT&~jT)W+=eW}%KDD^AzsrA%UZmRQBK5s&{Gtrl%x<1194q%b zM2kh!l_fxQAms;9elX>SP<|-o z6DfaniPYTOy^~s+k$6&Dw(Bv>+`^;$a4QmzpY(5R%B7D@k$ORFiUf|xq)2Rv)E8n0 z;H;+c5B7!4e_J9OU(#SH5dt8jArdU#2+EHvlCGA9QGOKV$FlA3OOkg)8YPWoFBuI{ zX#8lFth%E#o@IsP$3#Vx85=LsB;!5^tBlh1aQ~=Zrtj+a!lLhIEiZ~sE`}gJDG!R~M;FaoxUnt2b7-F} zlN+2JbBpixvLHTbwsf5lq#|7lK`MMoku;v~2y+KB7&U#?lu-#nGD@VIrCX#q(p+ht zG+$aEEtD2Xw^BZp@~{~YqC8CIRLW1Id^+W?q5O2pXOu`wBHVk2kS8tYnn)`c_hwq$ z3(5VSru+?X)PcY8U-tbQ*teLm?^?=dS?s$3*jL&p_LnwFn<$^n5-h+cp98^Vy|o(F zdOs{Z$~bJB^a$m1DIYG9wo9q zz3D>pW>xuEI?ed^6X}HXsq~rjxpY$cLi$oVCBf=b%HK>OVLm^H@^dMq$LHr$9`>LY zQhrg1^mT-Pzc){bN^tc%k@!{T@V?vIKsXz2e5CYH)cdu z+NHU?KpZZ&%R~9wD8IDG<#YKde>>%uT{6yf)o|4|IM-E+aqb;Vf`AkN2@-wbgVnDF zt}B3TT@780T#YHeobq>4enqjX3EtuY4e&1gb;{q(IvDY^pObQ}{2HeJ>UO1zzS*hN z)sjl?&A5)s(-N^7m1=cY%L^@@ptxNckcPH!kpNOI(9ZrgdHI8s;G zm$7Y*YX;>XqVwqoGhg|0=6Z9zqNl=bm1ZaKSXKK#!ypwx9cu;U%k?D)s8XFA>0 zdB87A=bv5l!~Kh{0)gwg6N;{gE_z^c_3z$$rjLKY$h472Ir1#aYGlOuahz7mnu=Af z`%EUjmof3K3r(O^rP%clW8$^0b*}ZU4X%x@2VEtuO|H!@P*(O(xKe}PNBPGnT&ThC zr#$FCPf-3z${#FoZH+MTqpt06>Zyrq7h~e5EGB-I@-MP8P{715{maCE0~0^Pm>6dH zX^V+p04B!GTrc8gd`BHH^cna7lWB|Qvex<)_$^TADy95$g|6e2H;!Ulz~r^+z2SPB zG5?zw?AaHgivm7S_0M;r8PY|^Dw`(xLqCQ+VXM9J<+biD(|tDye*TC`Q; zl75#zir;oN%>FzrN~Q9k+K35DXWx!D?*X7hf!qI9i5R?maEIP zfG*@3a!ty=L-}`$@u;yz&#<-|X%2+Ex}Rqh-uBckuqES0-K(eBYj zqp$9?#vd;y80;$dX6*XeMa>Fl>dWq?w|iM?BBq! zkkY46&ZPVg7Q^NM!^$({T=qlxGn5CwWuG8K=4`G-3wE{Y z>GCa%;o@nlgO4^fq4EU%)fy!Aw5u`yqgl2MVR}5F!@g0X7)o70t1D8z}W+H_eMS_ z!`;Az@>7&3h4M3$s253+FUT)3k~{~=$*-Ao_$tsL@iIC* z40H(9s-nYpe=L6@pO8PL#7{|pk{~73D5*|K4N7WKQj3z> zl+-DaKabGiDIrfj4G77O)R4Ls9X4R@X%YtrNm~9(h<^hi{>cdOEG01!LR2siqQWag z;UT*{sYgkD_Gx6dAE{{(3Q;6Q0SZxEicI0MFw&?y0umAJ&d{IKP&m1zTq+%@gQ zmNRP$Mu2=RXQ;CZFQk}v#NAgu7WEqlpab?C0^;J^i~p-K1yGupVD6$ zKuH@4x4Dsal(eU$10@|P=|o9qO1em{=laE}!$1$Klr?2{Dfhu07Rueq zJ<3XDm9km^={|^(!ITW4WGE$xlw7@DxgR)k4Ohs8m10UDa)ZLnfj#v`l#KXWuCVxT zZ+QCa+oR6E!a~`iJPcDND9ToLg#{V@mseOQJC)s_Nh!N18CmHS7S_x@t~_C)=mCbJ zqc3JLo>g7}El7Dzd0u%zIi$R(yrdjfjwnZ!mnj)b$v8^JQ!;^)iIgN$GKrED3KuPs z)DopM0-&#%+PLx-gU>VzKBtsv<1_y6LFYez4}$VJ!^4x5ge*Kf#k6s_?=6a?1>@>Y< zQ|&6)c^Q;sQj%4yN_dMZQ3Jtart>p^YCYj@?E}Rp>Tdi9?NkD=gI#PYyZ>z z!cx`Csj4p;7c03WRSiPXYSBfjyd+hvsn#*LR;|srHuqwttf3kQT&p%x8>?5SP1L4p zGxbWfxf-jspd^oyd`f0gGK-SgloU{MErm--$@P@nP@=XpxmIl}wpQD7P1KHzYj3o; zmQwT^CG!~C&i|KfFTL%eLLgkB3Od0}5w=yY0=88La+}!?B{~?<>;rr|RCTKpSmaVeukSPm;+qPm>X;+^UW z_Cv{Cl-zB80yQRR)hq(JSG}Ln<9(E@EL6c~x9Ts1hgGjwU2jMRbsduos~KT!WQ28Z zv}NoYU{%_pGF=I%aVw+7`!7(*sb+@`l-K*|XA5$M!_p1lgCn#A%Ng*Xg zlz>XPmXdXptfyoHB^xPuutbgAE22KDKBqnp(0GVZV~GWgTPS&il1CXdZvU4Y{|0ho z7mKKGQnJZ{Ms~4?`Yvh8ekcJK<3RHh$g!@q+MlSfk6EampyZ)K^)pJgUL-Mosj_Qq z)l&={A7i|^=12{V(N}KG6{Xh&X#Tn*jnd4iF z)#89CwHA~-U8uFB90t0{Sr5&-AJ6z}|X3ExS4>PV^uWisaY7c59+9qwYwnckL+e!(DKiISa z@%K3;;1l?Qk}oMaMafr`oG#I}MYwi{wo}^$+`ETy?bjC9eoqNF0e)cu1QOpd-&&0* zJ3DM7WrP#aaL;=5L&)biI6W&pGbJZktHd(`k6B=DZ+1B;9Kr*KS*1-3$eNiRPG?CX zD{Cbqr64;$ug~nfP!>Cx4P_ccx00HhosnTAnro3gWy=4@-hF^oacvJD-k>vTY@BZI z8Z{IZQS6Ec_Cm3tBEnHnniLgV*tTfYSQ2}qSg~tVqQ>517fb9tYMN;p`}Z5*c#~*M z{?B)FZ|=Q3d0vvhIeXS#YwejiZ4MWDd)-L?>Mvt<*sm?y12Xr0+p_(PW$SR*;fO}& z{!ZrpKIUffqEB9Zt*KKPEezmAU`udn#@ByWntHTk;pRgUAEzAaX@J zh&+7VLB!gwd}GJ#Gn*y0`+wnZFRL~0YOVQ1JDyz8jwcU)_jq#O;fdCn-#L8m@PosT z4nH|OaCqqOv%@2Y$1?XbnftlS{X!~2Dt1z_mr5?F!HI)ha5W_PB}OlRsW%0!(-S4=ATcnMYe zsk}vJHg>3#-66Wtx^i@gu8gj%R0>F?V2ZB1j=B|+3NN<5@kNtAe^Aj?(K%`xsY)9w zg=u4*6Cc-895}AL(uX=rhAlK#9cNIfx|%vST`j5TrNZotsXBLE9gZuCNh;>7-__*% z^d3$vwyNtYzxr}XyUDkKODXuw-_b*tyvD)H|lS)O~;vJ|h-a%r8Mk+jWmidFFThvzScXirVwCNIc zQYw|DQYA$)d%rfCbe=9}(i zyUSYLr@a3`w@$ZS_pxq+Zli9KE?xJDZnJKSZmU$Ner>6^OQnuf>Pn@aRO(Bmfm9kw zrIAz`FV}6$UcI|=mDBCvli8JZ`?dAk#I}B$vVNtaUB#Ql?DyZdg#V-7{-8Uft@g80 z@vyD-^Q?BN_WDoM>#pf;aPp|TE)~yY-A$=9`-20st*7qjzRYUgds_2)aq_48nv*}p z`_Cp0E2s_oMD7-2>f2-Oo~KA(fU=X(g4`QfVWVwu^O->9D7|XG$)S zER}XzQ?-{0-^M)bUeDuM?azy76mZFlXmL>^pzHiU-& z#a`Y#`}M%4L6HN3VzaJbU;4Ly{KXZfvu;uJx3_4=Bb1o15bY7jo8Aua+ZXip`Sby58S7-Jboj#;^!0kZk^1O4JMn$f3;Oz^dhPA__Pg}OwcUdM8|sl=41GDh6Nhts zd3^r$ML0=>5 zaIUYV?GA!$yMy4Dhx5q)zJ0-K9<~1Bv1E8yB#&BO|G-zf5>V#15WMR$JldSFaYbZbVA&Ai%#-jfBcZzh#q*$Z6XoCW^+uXeSSx}DyK=Fqp-caTbmRIDj_ zU%j7HdP^nr50?9%IM&-X(nYVmifBJeAE50K`fy;%Gb;1Romaot)pnO&`re!Y=!5kk zdaG2zq|#R^{ZjRP>{sgfpKxB!S0c0k|BbKb>!U_Tr^7 zKq>>JGDs>3QW>14pOC$3Cucn+tN%z_wL@&Hc9`ucS!G1ds{QAmgzHnZRhuf6p|(}K zm{qGxER|8`Ki4X*|s`X>Q`&K{#8;Lo~&OZm3RMOt=jJQv3`@b+BewG zk_u0>rs&goUPqCydtRr(RNI}l>33$e;ts79M{@kor)$S^`O5L!c8~qM5x{Y|{(%0V z{*eAN{bBu)Le2EY^vCrl^e3ec!F@gx2aP3Fh&1Z|3oSuNoD#UwCA5clo*5|7aK9yX&pR`4p!JR zN;^Ko{OVIW+1+T!XDG;_#PF6OzoCFsW=LhGRA%w+T0>!jgLWL5EtNT1fPeUouRndP z`M*9hbkblJg$&unp!K9%WH!c3^O{+Z*xSMgc#pJP* zW<}mGc5CwT!K9&-p(3Z&hSG*IhO&lohVlm1(mbimm&yXEBuRx+>6FEWN}{r%vPd>m z6&xi}wS~1Xv9VMZCszDR&aB^bZv4k@hYfW2{qyeMo>?2*4BE#6ltKo+^MEt!MSpl^ zZD?p{%xQ3QQ=A$yl?r_-`h1B+8VlWkT$e4v^R7x z_!xW*eg=O-M?)tAC)LZPvO+36!NGogwN%)zua(L=sjQdE$7zPHS$jo8kF0~Vp_jH# zP`$I$An;ttGh8Tuv9W+!b>B)xSQu*W$ z_JFp1)d<6AZTB`(+r4dO_huNQ9iX?o?f|X$*zPpJkoECNgZA-BvOhB4X!ddu&2 z;WUHx@kzsU!wkbr!z{yW!yLn0!#u-$1ABz+QrRJuol@B)mEBU|NV``m`=qj8DhJXG z*&m-YEXw-APQx;-3lG}5@UzTUTeL5bSI*?L;a|{(+UF+?=~6jlYeVhxldt>2PFrv6 zGVIkFYPW$p9+t|H6vI9Pm83h4|3ORs9}dcg4ac;N9MQV=7+ss!k%O{5S4jK)gYs#^ z=h{K}jNz=|oK#Log%iV5+Clk(;i7g>&XCIKfA>N8I!D?YuO4Y%^9`Sd+uZbvS8w{e z-|%U;XZSkn(D9YFX3uiy$m^&bI$ra2^R`m{V0f-A+8+%+86FrO8h$oBGCVdsF+4Rq zlgj5(IWHAPx+s-PQn@UZD^j^Cm1|PDo@RKFb?7kWQft`r5~(qdwrFqI7VRzGubsG5 zTeJ6b*6crj%^FRtS)*AhH?!BQu_$X+ZLYRZoAU)sTn5qZo6MhfFHfb7WsH25GsRfe z$ctpRrSe6Jv4XLpRPIRS8*NeiQ(j~-Ry8`a1dZ<)9gR*>xhs`>Qu&f4Xsl+et}Q{% z{=fcHOYr}Cy8EY}wK-|5EeadmUtL$J?N7X@VAo_ra>pKxTGc#RhVx=$J#Je6)tmYU zbUWO+nWtg%#OT~bU#t}`&x?(Xj2>E&8*6*5Z`o_9J+y}s+PjW^@3?7fZp?aV)R_6w z=y$AIwMXU&-;ck0mkvhlrBS1g(bwo_^fz`ib~1K0b}@D}21w-xsr)FFpQQ3YDi5Xd zvs4~Q<*`(rNabmoG5e)aWA;m<#>|&SxoAe_37;x#&!wtL&Z_+jR;~8ZsF7#Op4(Qf z_R?tXD#iqj_BLYWMb=MV9JRgE-1x4Mcd;cK6QydGY#bp~`#(6wX7AdKV~pdpR(y|E zRCCda#`ihxQ**!Wv`?4IcBje44>J!T#;F`aRF%^{BYaG7dgpGHg1)w!Pbl0=|wKhwnC#_i;XW}=f^*eAN!04wSL-f zJRnt*RQb)$re9fs`xq(-wUKGvCe0X(W z@Zys_hiiwNd))NPR}VSQc9lI>ce;0xkNv*78L58x;Xe*J-x$BkTC(@GC0pjtr0k)| zUR$$28y^`T8=n}T8lM@T8()}&$xf=}q*`98ti*~^tt8dArCM34Ris)~s_&$ka%HVq zQyx=ZQ$A7IlwVu3jHdcM+wS3EYC~t5nwmUK%}ib~7qsOntu0qewVSOi*U^@CH|?Kmr2V4A zuQPwVJj*eCV%nm$;|*7`8RblP;rbk=mv^ttK0>4NE^>5^1geZ8gH zN2;Mx4U=kLsrHjnw-P8O4F&L!2@Ki7)pJZ3Ii z!BN|sPun}j(N*RGT35xt(p5TRx9r9;>&(3Ii#K$c4O%M>e8Zh=_b6uOCBQUuadQcC zNpmT4X>%EKS#vpac{6>LAl1QA9U|4CQXMAM;Zl89syu>~QXP?I=4C6TbtWRb(~Zu{6Sm(`A2_dAG3c}=lW@#`#uk4%$>BS z!qoAvwyu7mEwpato;(0FcQ^Mi2TFCKR6mgFq*QZ|xtI0;aI#dV{M+ByZ4MKK&3#{e zRA*g!^KPY2nti{dWv%%=c3qgl13+^GH;sJFO`9n_57lm$m=qbY=$+?V>u`}elPv== z=J>3|8>cPakKU9w+g*m3$7ri}sCk%qxcOakqFI_pm`9pNnMX^NbD9}aohen0WwWI^ zN2(mk=1FzFR2QU~-^*UT@i|lD2x2Y^#@NeU?gfnYMb_(I2c>+x^y<*Jmxqb=q=V ztQ`|JXa|xdudYVR-SUmAXP;)zwB3KJd3#n{ZqwRw`5W$UyT@Mhe&LvG-Y3sx6 zU7hIki|?^CXMMrCx++lT-C>Z^AnlE;P7zTd@!{6GE-u=4N;V1(4~p#L6k_eIy@9oX zXEP6f?~1OT)hlKFKGYf%!nfu|2gQZPHgNHewZ_D{1SQ1BhW2v#tG*w$MP!I|kaHy8 zvd+Iez2d=9o^jcWhx(|&zUoT3IsI>iOW^s&Y{WpzR9 z|9C=z!o!^+`6}t&F+ma5fl)F2{;lcB`pk6p_Y23m1czFK`|-KzSeIC9aC8l~TK%eL ze{E;h4S(_bz+NmZ-pU^95*8U89v@=;m-YDX$2>5scbrpXSd>$2YP^IjL?zvdyFr!^*QfHfq0 z|HtWiOhiz)OHfQit(yO`v)sSS?Egono&C&3*0UT=JcM`Z9Tsl=+dX;VZH?q2T5;A8 zKEck@F>QjPV_$i;;^pq}{Sm`K*c$N!G0 zXb;~0D`t}Q2=BjQD%lUO{^RGu~Ja+Jn4* zR3rQBGM-n$vR@YYA9-=?cU~pxV>^w_Jj?!He~BnMCaSMB_}4F(Wp~Vg-m%&%i(LKo zf23iwm&?e9_PoT)7Z4MIBEl{kJ{|krOOU##3aOPZ4pA<` zoV`KL-XLdhkh3?)dJAjL-XLdhkh3?)*&F2S4Wg|vIc<>B203l;^5ZQz=LR|F207;j zIR}NDgF?@{td@Pl*pPk= zesk57>b0G1f6cleNQ2A|)Hwx3M~7RT7(ly$)60vjWDoSWf5T(u=~d?CUU*ZcbLLwU zDW?vcVYSyJL%{R3x zLv6NQ8EWgxOI_~FxiHjUaABzLwF^W2Ak{6l3qw8N!cbyGq1+m-3YEKD)(_hk{+XYd zUuc(wdM?#ZlPyB3+y2~Tp)9#AdAO{TMX~4dVB5LWr6sR+smmR&yVT{;`Pp4%DP+-Q zUJJ_Npj``U7uSNat8B*cHsW zrJpUBKua*!4Yc&M1X+4Xm9D%f)k~?C5R28)TdJ3(dR?lwv^7zRhtQW%miSI>eVyaNBCJ}ycUe z>e$wocMe-qECa=8+g1i!hH6_GBGnto7B1d-^G#b3g~dLx-!dYxexO5Lj~caVyEgHt z;pFP-QOBvKo0prDyK9~5PR%@AJ*qdWmN6DC zGI?97Ur6;%s%4zzeam>M-j(V-seY-&^Z&6e?(E*ovssN=?ygSmH9f0qfx0_2spVP6 z$rS(7Q2c&!$@zH-R*LaRmQFF(rq<&JCfHglQ2>|f5v{NDRONu4cvQVmDOZ6M6ek;}cQvFV<-%FJv!jDq@NvaRh zL3>FMr)4mPHaAV~ykXzxhL_uo(7-+OE|h>mI(I ztvUw9gat*${bp?2ev{-^rQKeLwu9SpzO6epB!9mCpd*Y4|@^{?u+ z9IM;Px!ZC;JDBaU?6vH(a147P^9Y&8PUf*+XgO#(Wckc;Smwzk^W>I!6q!fOT#f8E zngqv%4G4=%@Uccm#l-oA#c4Gv^2#4Na*acdIj{RuyXfqrQMFg@)if%ClVR=8zVQ(e zK`{wgJ7ZsKAMHRE>!10!y<>GZFW2fJ4)?NluxIQFrdrNg&RIT}dGg3S1!NwF#FzWp ziDJb(4 zN^}YqWh&Z>GAAuRvBP~}d8qAhL-;sGJ6-Ply`sazV&ke+%doT0m0MBsyw$k^pPJGN z(xpO>*46x&uSc8j{)i+~`E!e10)eQE`cOs~w8w zFJLg1C|RXywYv4{mv7LdMax#L+xT|s+%3?*LS%e+_^E=03OnfZo!k0mPpd+(c23i+ zt#6Y!j;X!kx#}cG%p!@oy7DQ`FD0e$wd-#Cl^ap z5)B+Iyf_4&DOI{m*>Z)-SEyL&?aKVlH*Bz#ZT0pF59*_Bgo9mhOjtB&XO!kav7N#~ z;zGHdc1$ndxKh?dLUm&u67%FuR1+=iD4d&U550U7V&kk4{w=g^c<}Y~rwYB}=;Z7Y z=wQj(?mxzT*|^1i`Xp?w(XRcV>*0-sj7KoQMNZaf9TI2XAZlBm++@y%@CjKq_V>w}a`KOcSLJb=y zH%cs&Xw|WTb_WA7d+ZVKVu-Drg z?alTz?c3V7xA(E{WZ%oapZy^FA@-x}$Jx)cpKHI+exv;s`=j~GrNwZCuwgZT7$utbdE(?0;wfD_2FCr*PJ3*CWg0?k}ss*;i1i<&ouy7)=Vb|Fi9Vo)yW> zH!QQqd{IPLt`xB^!XbeDrcUP3v+I<33^I>#v3<1Nts;4f1oaNhc_Z5ZuIt>N78QO8<(IRf&So@ew>MB-ZJyFr-&}=v}b==>pUJz zUW;;Y5PlRsL9GMYI=fGLJPyOm+p668*?+UKEA)6(5e!u0dQE zjnDxd(G5L>C^Qu_u?Q=Xj_ufkeK>$4IEItRz!M<~>roojPy;nl3+`ZBh3lgs8iQ>X z_Juz>p$h`g9f1e}txIo-!3i;)lnbK-~;k*=!qd1i}9F<$(RbZZ&(e+HW0IcnEB#ZQS3e* z2~nJ0DqaPQReTeeYw5Q-x9?@OeNgV5RE~8OL&6%mLLx$ zI)EN2;SXXh(FHM>0`gK~9hiR!>RRFiuH!2_6r!X(azh0*Ecq5JAkQVqNy)cC>?Lb} zoRlPnl8w+DT|o^>_C+knOG$E4aw(W&$%9~iC7E9-2k1}=@4yKzs18>!zf!fqyh<^z zQjA}!C0e5`+JpR+VqT@_r&5ct6URYMmSR4o$aQJvQkuDxW-g_fOX&hAgrX>pl3?wX zE{pPDj-?xbUM)QX)Ufn<&>y95;|`cZnOtD3GK^EE3@V`->Yy&jO&R*7j2{BPcx9qN z&y*R4cOfwnqcIs%LGP5Aj+vN^x!42NLYb4u0KHP?9HI4n`O7)2D>`)RgOHAYlScj0P&V1-g3lSj(E$l&dL#U zIbtqH%;mU$IbtqH%;nZ%FD~Pe5ak)Kd_Lp{xi9YkJ*aub1=x)JIE2GE2Kut%DSQLw zS;+`9iU{#GJ^pq#FrT-B5Q5%dZf_Ic+Y_)1%dt|3D$JvbAGmE5Zd--hR$*RM`XK^S zK-^X4U>+7@JvJg8QI$BRHY78sYBIq7>|jV1Y)cDA*Nv_h_UK?Bx50nwdz4U5aOM@FrXIN zA`W9gAHPE$-Z>89e}}job3+C9anzwC%E1}*uwy+mM+>w>Yp_3Y?2N8pUXEcHfI%3H zp%{)ti~#XF62BwyJ5C4jI}*R+JWzMXG;Bi#u7g@T6$1U?L_AIvPzjY$71iMi=I7*& zx}X=F$g2}`bs7e?7eJpm7l#w*8E5*-nI3T- z2WsL>O`MsNGjnogPR`WCncOQ;^Ulo0`768-!iBM1n1@Sgltp<|1p81I)};$^ zyD+{>1ftL%v4{uxb76ZfY{!M|xUd};w&OzVF2w9|78mhEh-!K977Bp;RWrc?@>h-g zRU?1Z$X~UlXb&Iwp(EICwLu_v)!qmBt47YMrGWmbM&7D727OSSd{hqswXV)OtNsBd zW2z7}j9{)cs-PO`qb)jtxzu2PQG*=S*bdfujZ-)c=27EwT*n=JEre?>xPtAv`hziC z$(L&Yx`Q}eS<9}$u%ZvbK<~LGg6+AE!WfJN^KzX4;&mlnSK@X32y1a1KMGOP4Em{N zPjKIwsn~@pAg-EUg4k+)i=TyXvjcIuDaeC-$d7_3j1r*cZskGE-N?V2Bb-5g+}a=- zCS2mFM`c#7wOQ)j3!fqB)g zgZA)8IG9WA$sp&o*;m$nVSAw|RiQApH-HE#nwX8$!>P*3hn1&Q=!Y9~*Pq7_4u^W5Any5qW z>yZ08%&`u0tiv4ZFvmK~vCfzH2KVtjm~)+nV9s^TU`}o8P!n>?x=?bXpI1bU^K>pHPGM#Ou>hsrVVC+m>O&Vec50Os8<8# z*?@XA*aLd9!Ev0zX;7;Mx9|msxuHGsqX>$lBuZl`7`Gw4(C`y%#Tgz-I)K|Ws)Q!JjL7hAp)1wT^fw_4wHxK6K(G+aMgZX(dKM#7;BLF=R1nTC|2Voch=I=2C!!Q~1 zkc1R01hILLV~;KP6x7e-Fo@NII6a8dLyPkfp5nO>gdm#E#3C%gGB8e4#%X#K+^=Z{ z$a&NAxP+^?f!nwX#`Ls9Zm6K|J;|>p`S2tkp5(*R2n&j$INZ?*%*T^?c<#g(LNud? znpFk)XhzMNMIi?97>GoS!vsviR7}GR%)(+U$11GFMlhFV^j))UxCZ9!#df@i%ZoaB zQ712A@}fRo6;T<);N=K^ya)Qui}Ab|!;74FkxQ?OVE$g@(u*;@8Pl8jdNZy!<9btj z?-F1gc$Y;rxS}zrySF!5q8&Pb{gZb`Si!u#0xpBOdQ&IwTOhaI#OnP$o`86p+ku)j&x3q0gZeZl7tKq;1@*z2YTg7iOY;^W z#^#;T72Obqa6}>+<1ii6qxl?A-xf8%I4u~b1>>~vf-m|a0^F}fECwI}L-8&~U^K>J zJm~cni?9UCK&@L)>lW0e#mCqL>fK^1s8tJc(&7@H3emC*JV0NyB$q9@ZA)_1^05%D zn0KpMAjVeQrd2a|qdmHSdA15fFIdqB%)3=T48kx_r&c3DtgVQ()d!f2^*9dVXmt}` z;2yrlk9Y_z24ZYQU0S~lw%K|x7_T*Bv`z){Zp~aUd3 zeh{LKJrooIb!|g$w|NK7sE(Sbjk@p#{n(~8+QA2Y=mg?v6N!mP!(lLowkisv1j?cU zh`+5PTtMC1vW>R&&>U?+-P`s=FsMaa^4K;UjNf($Mq?^I#7Cf)+Rg;?Z_BpZuE1)1 zjE(pN+5{ zTaBamQV9P%s0ez;zdeZ6pM8hF6`>$je`58g?*44UpSt@`!c;J(KV$mSJO0eUpFH}L zM}P9@PagfLyZ>$+z#$yLFa~<@hucUVd!Cm6RN=#Zm5kqpw1o1N5?iG z=8nGTh%N{Kad+$oV(%D*QK0@EKf-hnb4S)_NBXDZGSIsn)3F7gVmr>^7Vh94z7nDn z<8)%2P9K7~cVe7QjMHf|xL+sc+ll#h+6Q{4(_t{*PA731jM?dH+{gF$5fAVPPw`xc z&H}lhfV_0BfTrk!aaf5{cql{{GssI9A29DOJ;2)N5{z)fV-SX5I3z}5G~NUG=rRj) zu>cD}PP$OXE-Szsx-jo9#Mgz`y4r!*y5>cG6a@9^S_)<14C3kPj(TW_W@wI9XoGej zrmk$G>u1QoHIR$0Ej)ngvj+fOEKj%OI|Ro4Ac1Kzso|<1sHQ&|%HD}nrVXTIH;Z+Gt7 z-5V{ze7n>0-Rb%69nl4m(8h`dHSazUgE0*6LShugU@R745AN{N*jpgp9)6%MJ;+y& zjiASRT*MVz$4z{V2cRE%JjDwk0$Ia>xuGI2OehBO5m*KlQ5o;R3Ctmo`3DkTAh87! zTOhFo(%XUK@c|}d0aCCU#1r@lwqiT>f!+)}jH5UXV(Q5@dbWl?dVyT@Bo{psF%d~% z%%00ZAN2ebjMsA)_Jc8dGGYMIa}P?!Dy+qNYyfcu(VIb+aTV8v=tcf| zao=9#tQS4sYZ{niuT9tt=Gbcoc7we2VvfC-V=sEW*GZhlJ$#LC@g05ub?!w@dp*H3 zA%X?$L9K(!qA@}+25F!M!K~pBauPx=LfWA-0?-3J5r!DVgI)_6g5gNS2#mrMOvfzD z1$hWr2=+@M%fK8$?t=J2h%JQJNTskU$b+{~0L4)X^n{gotZtw#)_U+jGc-p_v<5L* z*@pE1PJkR+$%U0%Sn2iN`A`Ck*_$zYR|DhrX58M?x_5mvLK9Hy-u)4W0Z715FxTD^ z%(FLn>rI_|Q>)&Kz_xoczuxp_@0HjHdb9T~>;-Z4{tQQO9+z+h*YL9teVBirykP!) zn17$5AP0R)qBI;qpZ2K^S1{*3UC<3ZKz;f=6(W>*hUP~>IDq?yGS5)v8A|>_$zNzg zFwam=c!L~T_t1IRimO6|*`pGOEi4+7 zz#0f+-eDOy3+5hn5x4LSs8JYw7xoa3!5qS#3&G|^U*^zP4-<-jx%4fA@~DXBAl|+) zAg;c|)%RVDz&K0*G4!2+4?&!L*=E1OV7z{e(T|+;qyGJxg8BDjq4ZfUcGW?(kvg1Yx(p8eKfJ<_ompMoCfcNC9=2rmZa5KcYA%Yp5Ozm2MJ zf(w{acq_C8@r3)p4;>K*Y7^cMk)ST&)FqrA4JWp6Vhbm>@b@tv%RyY>#1*~{#1g&} zyRjE1aT?Sm{BwMd7eYi($B5ieu>dQ;I1!8!!Tch2fcr(9!v$OheH?KUU*I0T#(n%C zL}Xs%2lb33_mMgnVL?&Q=aHpAZ6nD`WFzzdb&Ony1NcUWC_So!yhKHSc}G#7DC!e6 z9PeQ=sCCpd%mg)xqDE2kK|Z3GLlkp}Vtqz!!8VYSC~^{YTZrgfZ~(DIQ?F?16-`{x z)G3-eMN_9}>J&{J(Op50MXvDhpYp8!aQ2YKJ(FFnMi*Uqa5QbnFsD1xrkgxtrK+gJqh9fwRQ#cJ`>wf{4 z@BokS6wif-5uo-lxls^iP@k9*Al?|_jUnC`<{ncMwLr`<#2nKc#2rK2F~k}}tTEjY z2;z;2LVv_!0%n1_#88)*B#^_HU7#;xh&_hbV~*kkGC+^UoCk5oT*XiL8IM8yF~lEB zu49QkHV@bj#uh*!ko#CC5L;|CreY&53f`gw<`&lw#2gobJ|NF=#2rVTUX;uYitYayPv;!P-m;wTB?h$oNngE0q; z7ta{+d$143K+N&qf-&P6a{#?HfN=*f?f_~wpfFe`1B@t-YH&ks)I}pSfhWA+j~*C+ zAzD(d_JR9B z+yhS_1849#F5oU62r-CW8Du~SQ~@~~-ZAvF9uQ9K|kW5;7xR3JtpLaioAFWl|d{Cp&%Ct zAAoTaQa~;e7(anrB&-7clkhP%;Q+`*0yRuHisLv5@{&Ma63*eg5QFo=9n5d=N7xQ} zZb(_QM|bo@FsRXxF!aN_7>kLR40>q@^B+Q7LzaPcF=REE`;bqt74+E z7(zaV+y(tKMBDE7c!Z~*uZG$o7wD~_X1oL99qNzH2tW@6fj$~ajfVC`1fmg(0U*Ic zhl03=&ILIfN~}Z4;ZSloG!69A&^1_(4M@ip5cg2x9!lIp_u{G$w15~^5>?RwIui5a)2>98NBWlgr`ca(E>ABMt*G7;IoTu@0XAYCfDC4=2a( zHV1Qmw-dUcn-GZ=Q3Ewm3w1yq6JH2EEQow40QMJ>9Ll07fzl`o;+Jeg9so5N!QV#k zw-Mz~0j%8-%yR_u7~ul8HNp+lVMIMNL=$+z8!gcW?cs}#Al4DYIwBCgK);O$1@j-l z{6{eV5zK!C^B=+dM=<{p`2A|_1u7DmIaSM0wCBDIT_z@5B7|(q3~H5zF`5fn!$ke89neI#=q$=pXefw_;Y59T|vF{tTCwmI@A zu$_^Q@KlIVJ8=}mJL)9J>1gshdJg7c0qDIkQ5XsuWejs2LxAtKLpSt5PXr4wmVA$G z1adr`Jv!EF6fjGty$G9hWF2wtLa02A*ed2ikoDk#L?s&F4p6!lj zyW`pJ1Zp;+6R6XK0I>auWx%{Ax}ZAfuMaB06>g}Fy7&x?`@wl!1T~rT9zMc!%mj0v z+yeB%+|y=kGK_ohXH+fCDMHxPp{3{x=;GcXIpKW#pe zk%~oFiZraiK@j(JdTKgzn(l)^mU_SwWfo1DxhC$ouv_Fa65pYcra`36wG zIm~5FeiVWOSSNFccTRT@+ZLu_-xK`+iBhjZw$IU_L!A7VDhr;%Qoir$0#u7T;@M_8W?x(Tr9vskdwKLJ$D7R-~hC7 zui^%7gL%%SPIKvjx!>a_Fz2~XgqX+t<{4mu1w~N;rBN2;Q3;h%72fEL_rW&j9S8k1 zzZjUq{LYBSa7YmUeBz%!2{SPV^zwYx+I;dde-X&X{7u-5PeJ|WQ@{DlW&R;hs|9a? z_!bb`f>I#11;n+09$VlD*5!f*XbJjyfgd`dD}q2i7ZCRX`e_0Ev|t{#K^yx%o(Yje zE|T;p4(6Lw4~&__m`UxxxJitgM2(WVArOq66pdk+3Tl+ZJd>Db67x)Ao=Maxi8>{v zfgVU&1Ll{+{E`mgFplB`GH@23<03ADS|$-+GILLE40E!`2^flZA;BC{c7pg)PT@4p;Sz`|g&s?} zg&*-yh}7I*?W7VwlQa6EIq>_tNwvl=rKY=kxpIB&* z!eG3GW)wv!ltl&53k%)gflgq43%jEyfV%FJW=CIfq z)ln0*LH!ojM;8$LVtRHlby`fXEhg^8gD@D>YVmk{fEgfJi}arRuxNfK}9~0=Ox6rgxW2kc1xJ|lB#foGpfNAZXot0euxF}EcpbN zgjmXWOS#`tFIX`G#J!Zbmy-9TAA)=@CC5t%U@3E0${d!mUY4%LR_w$c><4|a^cYSe z1I%NY5yZKy5?H^>-T|>KBerG4wv5=8vHfMf=nDE{8U3*=7<~}|dSe;Au`CXY!M2uB z&t=pzO+``A&uR2r8ud!^1Y@Q#W?E-3ZW`mJ^#b!u>w_>*ue8yajd@5yD%eIEb4^Fvm3Jm`2^wKF38|!8P2(ZQK!JxdP%^-W<$lIk{c_G0uVdu3+7) zAQvm@qY+puD~NwZ8+1e$bVDGBe?(BgWE=R&NsLoVo18Z|-9R@OxWG)7a9@0Bgk8tvc%^1PBc zuM9^dq7jP$AnuieF%0j5*jLWSr?@7>Dz>@mZIFjm{V^HTVii5Minv#izf~7-3FLa! zw;=vi#J`I8SJ4}*o(QozFY==hbTERPuO{cKiG6i5P@B~)LENi}d$k|P{c3t;HF;i5 zo>vp=>Y*Uk)uS*5<1ild&*~*0$E(Tl>Rs521NaO_aRM1Qi}N7f)x^7+cvnBb&(Pu} z=WEFM8s@)71@W(W3*=%AIbK6P*G#|~oWWxu*3$oL-QkZO2m*bwwl|_cuGi8dYlnk8 zuOo2V<^h{_AUkao5*FLo@|B zS@53@ipk34fOg3^0nca5F2xYx@^pc0w9Ks zF6az$u#xdLGRDUB*nn*y-i?>Rm>U^$BR#p1aW^vVM(Vxsg%F$U!PuJ&C<7-{gDYyG z4yg4eYQ2dXZ=%MVsPQI0Fz-!le-rcG)EzOH0_whrzS?w0i1fF>*y)U&POZ}`;~lV# zbheSsHqzbE3_hUG(-||JG1GgXCn7)%(%%KOPp9_jtk3ibm;|<&o`jX4w&~P1o!X`| z|Ma6cfef%d)6e4)uHq;B404=KKGL5H@d<0-6Y}v1x&98kkc)-Q5VFrr7^rgpKfW5cIbe?m;=V%at1f>0OVpT^WREuZ7mDN+{&0+ z-N3k88Fy1y|(@JQLa7@KUoW_qrY}26_N}>$P;T_Zjv2UY~x6#Mj8iKrR zV-DNM$2NLyn?E`u0Np`;wh{Zb377sGbHV-SX8f&o)yFuS=qwltn*KNme z5*Z-=ZTE%Pu7IA}o*(3RJ27uJ!UAI7PVC!>eS3MhqaGT7oNsRePmuHNEzk;W(H_iU zdlWvvI{)N)5DFwY%9NCa{3Sd3*L{vFg{2YKJI1H`|BT<s_dA_H&UX_3&erGvU(ho<$@R|e=!stFkKv$4 zc9QFzvI zK`wU%gBtHzi4&kcy9>h+^!sk|znlE;ZU8T|19{#}uk7v&;@?gDy8{sp^1nL<@fZYp zX!i^(1o_^*0>r(0J?Pur>DUb7-+dUwy!$L};x5SX?r-n|e!|aqEX1CCFoXQ=aYl8} z<9lkOE{JzeV>AVE?`eS^pa=Fa=RH>RL0?3Gxc89zJ#iQSV&5|jALAU@=3Z*Mm)_eO z3Uao0G3b}Q#J%?z$oXD+Zto@B2J!Fx3g6;;{3ygeJLE0~e12=FV^uhsRJ3w6yyb$6bF&$*Ta*(_pG^0GK z!U@E3&=vH>LHgn#eR0qOo`}E#F!sTNI0Nc-kX#&O{)g;f1Y;gz%tMvIxQ7_`Pz|`j z9gKa59y`<#{XmTl(NBlsFc5=5oem{pB*tJInBO7hcPJIC?L$kDhLu=@b)b%iHsKQx z-y!DySy9wOAVy;u4&VzR4(CQeIKTiCO5tq~`(a`~Oim7ylf%S+xHjs5b#j8~8+$=qhmYVGP9g(0a9@Zc)a*!J zGZ5RcHXycRh0ld%fBu@47v7|ioHbvjPY zj-SH?T*fspzvJZb_!B(C3n5O}LqQ(oLje?m1DrryC#b~lC#)MgC3|2mN)5I8HSOYxL9{Fy1M~I7R(Wk(X2C;}kKU`WB3NiZL^CfpIe! zH=`h!YlZ=golyaAqbBO09vXrgWq6?lT7e$OV9puC!8|iY;XN?N4C<6YoiaYebTHox z>YuRykM(7 zVGW(R0b)BtFP)_)&gO!Od?)~7K3f9R=xkY#+q2~MY*jeI8BNg(?}C0fOHR&Sz)gII z2Y7_1LY%WhZsY;mIA=zAR6-Rn<~bKs2Q@oKozArfIXOp8&XJFE-4KW%kdJf2Fcs4< z6LT;h#By#SmLLr)u?FPg9CbQJKF*Pkb4Niw&e5~y&VV&{j`+`A!W9tr=f%+oZ1eNc zSPt^|`8PtGr*`Mb$9Zadz831B9z4+o#DCrw9nl2=2t@>l|9mV4VF>8O^NE-TYIpt! zPJ-CZQ=sz~K}_ebgZ!TVL5K^~?E?9{@D_;Wf&(llh7u@^vS^8ZVC)Nvu^#(CE-oFO?nTDENFQ9(!vw~@NWCt)qB*G1#kS}GKXd|hy4W2(5scnoeixbF z#YBw2D7=UFF##W73O)q2ytod;b@3-5F0su^^+5hFk^f87_0n!!#a(=bZ$bQ*9t&|f z7gW$=mkWUSFY8bW-#%K_*C;=XJJb-LUa;UNCY#D94_CWD^4Oq`cz zV=fjT8Efzm@gCagSU58}QmLC&v^!6eMY9LxuCUnQqk7h^rr zu?5>ep0Do1L41ZgLR`xaV!KunWl#>}^BOT-bAk&Rg5J311Ah?9wE(cMxE6vwAh*}Z z?X`*62yJX?c^EzW)XRPZz5Cq1%&Un`u@A^Ot#!$Qq z=6#)cUuWLe$6_9~;&VI{;zm)pfw6Be_Ko)N1^sY?ZQNiRH`vCFU_@gW5-}2td1D;L zVVC5#$ni~b zanljx_-1vuq88jy7o9Kwv%xlRUKQe&3Tkt!1wt_zthZZJ@DZki{=Kyn#D9zUZ>_=_ zunuo+$1d!}0WgnSM{p11@D{P(BKF&MU|YBIf!J>sLj;=jEUm+?%9 zFUq1R=$S7jVl9s2TOsZgfC)uV93@c+eY(-Xsx z1me3xYz%JbkK7@@cj%8hlO%Z||ZS1Rb@=-?2M;(~JG-js0}AFb26guHsr`>X?Ar>Tp{fZmUCvj)i;@ z1ZoeG-b;ETIS8F3b&-@e*@QQf-b{|=3cQ=V9&;wg$I-Z z@}~dEqsW_nlBalvr997ze2A=F2jZJuqqzffcD>2hL6DIiJZY%jO1J*#Be*A7R->D!2%Ys7`w?lhg_NEtY94LojsIs5~&WS6l9Z)Uxj-H3Oy-p!gZ`yK6gJ6jHd-0mDkU))q~Am+@OGj{?* z8HUbsr(?dH`Eo6s&u`IX?jpu;DPytAoIf9O^5x8)^Ru3FFWvj{OWL@ZS=dkaN>*VP z-D`P|4anXtd$&%yb(9lO#W8FyU96x{NT_sIuA;Q&rT{{@{FbY8d!`3qNY1LK&$MC32XU$~RM@&FGp zi@D6>72HYT9po;^UHFs@Y+?)Y7rN*{*G2bI+?$`VAALB8Lphw|(04IPoEG$4Y~w=Y zExM87SmZ8V%^lp0nTz*uAAeywau;=9oXKotFRtJ-DnZcWn>}Z7In&Tt&)c|@9=UsR z=)9*G1f?4GK>m{aCHYHwEgi@J1~M48Upj#yG$4EFVlKgMN^+OvE?vv@+>V}0dM?RY z`a80g9%eoZd5jlWg^o)b+02)0<6GQyDM^|v`5-9ETb8#hZ+Tz#N8Yl|%Q`QczuXV` z%SWM$vX0C8EH7d`nINe2=46_&bf8}YO<9U|zGOw}$ zxhox{(04`VN`VrUAgJ!iJ{&?{`Xguc81!7#b9D$Kh%g2nSM9TUCD(90H!_}^xfPvP zXW%ZXvyrzt4|%KluA05Nm?g+xeU^97@6KKfrIm?1!b-MK4nn~$?8YAKMQ;wLA4hUD z$8apib2=k9n^A;mppho7;{hJwQ5Nw8&#;siSk4;W;uALWCENIx6kX)VQwTz#zQnnK ziQL0n=HVNm=UIz4L+kkr?}ol$E8o$Mw?k=m2BDfg@ovok1~M3P)||jlhA|v7*PMy@ zYFfE~1f#i#F^DgG8J%H1=kXwjNEnCawFrIz@NFDJGq+&na@J> zTxXuTr+9`}d5zau9fZO^=P1k=K7$eXZg>>uQBM?m47Z@i@YT4P@E?&QEJs+5@I+(@ z%Mz9)EK7I_a)f{QmVMU$l;g0M`tdx3`>Owd&)I_h>bH@^E!FF;UU&7CAmm3d6sch! z{5J`a1L(uS9E$!TvPax_#EnN{$Q_Y8l3+AfV%L#dkTr4#vPSM@8uv4uN6=g3S(fo4 zD|iKakG#)Ee9A`LZp6+b-y?e@O_uH;)Zpi`!ORW5)!@yBf3tzDe1kh_a3>9Ab_SuS z8Kb+f8@)J;{@7J?5IT&W$Vm*t?xN@LJM1Jn3Ezs^L)2{1zcGWE%wZnpi$2X--s3|) z#yrulv9G9EqGpMjC7Qt=qSYW2vxk_BF?)#h#vR2D;c#S($r$?u$0KK~k$YImN>=eE zdW@~-9dsA-otS+$hNxpN_Q(5;-fi@5qjwv<+c*UCH`dd_`8>#c9_LBS*Z3SSVQ-DE z@doZO?i+Ev#cxJW@oCt7Tt{(l#1~>$aeI&3dwdO_vxTqFQCvrHdyA*&BF7GTf>4ug zntCCBla8ADa4?6_mjMi9FlK5xg$RG(HteivF)}ylscAF$Ak^$8nhzqu#f;-trZR(h z$lok~^CJBGH!s5+&E{x+6+39wL-R(w*&=7l*_=m=IBksKGA`#zu0~%ilemj1__=AB zj_&=NI-!=?%*B3N^wD|*{jjsvVGQSV&SWI#5~cy)Znei&bG77>L!B*@m;l>i%gHYSv3}rNvvG+D_x6MJ{ZENv& W&mVr()%^H-AAhg;zh9xYxBmyxL?874 diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 023f2cb8..eec0511c 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -16,7 +16,7 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "345" endingLineNumber = "345" - landmarkName = "inputFactor(factorKey:)" + landmarkName = "newUser()" landmarkType = "7"> @@ -50,53 +50,6 @@ endingLineNumber = "57" landmarkName = "tssSign(message:)" landmarkType = "7"> - - - - - - - - - - - - - - @@ -223,8 +144,8 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "207" endingLineNumber = "207" - landmarkName = "addNewFactor(newFactorKey:tssShareIndex:)" - landmarkType = "7"> + landmarkName = "MpcCoreKit" + landmarkType = "21"> @@ -269,9 +190,9 @@ filePath = "mpc-core-kit-ios-auth0/Models/MainViewModel.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "318" - endingLineNumber = "318" - landmarkName = "toggleIsLoggedIn()" + startingLineNumber = "313" + endingLineNumber = "313" + landmarkName = "refreshFactorPubs()" landmarkType = "7"> @@ -285,8 +206,8 @@ filePath = "mpc-core-kit-ios-auth0/Models/MainViewModel.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "243" - endingLineNumber = "243" + startingLineNumber = "239" + endingLineNumber = "239" landmarkName = "recoverUsingSeedPhrase(seedPhrase:)" landmarkType = "7"> @@ -301,8 +222,8 @@ filePath = "mpc-core-kit-ios-auth0/Models/MainViewModel.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "242" - endingLineNumber = "242" + startingLineNumber = "238" + endingLineNumber = "238" landmarkName = "recoverUsingSeedPhrase(seedPhrase:)" landmarkType = "7"> @@ -317,10 +238,10 @@ filePath = "mpc-core-kit-ios-auth0/Models/MainViewModel.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "34" - endingLineNumber = "34" - landmarkName = "initialize()" - landmarkType = "7"> + startingLineNumber = "35" + endingLineNumber = "35" + landmarkName = "MainViewModel" + landmarkType = "3"> + endingLineNumber = "64"> + endingLineNumber = "64"> + endingLineNumber = "64"> + endingLineNumber = "57"> + endingLineNumber = "64"> @@ -428,8 +344,8 @@ endingColumnNumber = "9223372036854775807" startingLineNumber = "75" endingLineNumber = "75" - landmarkName = "tssSign(message:)" - landmarkType = "7"> + landmarkName = "MpcCoreKit" + landmarkType = "21"> + endingLineNumber = "318"> + endingLineNumber = "318"> + endingLineNumber = "318"> + endingLineNumber = "318"> + endingLineNumber = "308"> + endingLineNumber = "318"> @@ -536,9 +445,7 @@ startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" startingLineNumber = "320" - endingLineNumber = "320" - landmarkName = "bootstrapTssClient(selected_tag:)" - landmarkType = "7"> + endingLineNumber = "320"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcschemes/xcschememanagement.plist b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcschemes/xcschememanagement.plist index 231e1996..c4a7c4f3 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/ayushb.xcuserdatad/xcschemes/xcschememanagement.plist @@ -30,63 +30,189 @@ isShown orderHint - 7 + 6 Demo (Playground) 2.xcscheme isShown orderHint - 8 + 7 + + Demo (Playground) 3.xcscheme + + isShown + + orderHint + 13 + + Demo (Playground) 4.xcscheme + + isShown + + orderHint + 15 + + Demo (Playground) 5.xcscheme + + isShown + + orderHint + 16 + + Demo (Playground) 6.xcscheme + + isShown + + orderHint + 31 + + Demo (Playground) 7.xcscheme + + isShown + + orderHint + 32 + + Demo (Playground) 8.xcscheme + + isShown + + orderHint + 33 Demo (Playground).xcscheme isShown orderHint - 6 + 4 JWTDecode (Playground) 1.xcscheme isShown orderHint - 13 + 2 JWTDecode (Playground) 2.xcscheme isShown orderHint - 14 + 3 + + JWTDecode (Playground) 3.xcscheme + + isShown + + orderHint + 5 + + JWTDecode (Playground) 4.xcscheme + + isShown + + orderHint + 9 + + JWTDecode (Playground) 5.xcscheme + + isShown + + orderHint + 10 + + JWTDecode (Playground) 6.xcscheme + + isShown + + orderHint + 28 + + JWTDecode (Playground) 7.xcscheme + + isShown + + orderHint + 29 + + JWTDecode (Playground) 8.xcscheme + + isShown + + orderHint + 30 JWTDecode (Playground).xcscheme isShown orderHint - 12 + 1 Playground (Playground) 1.xcscheme isShown orderHint - 17 + 11 Playground (Playground) 2.xcscheme isShown orderHint - 18 + 14 + + Playground (Playground) 3.xcscheme + + isShown + + orderHint + 12 + + Playground (Playground) 4.xcscheme + + isShown + + orderHint + 21 + + Playground (Playground) 5.xcscheme + + isShown + + orderHint + 23 + + Playground (Playground) 6.xcscheme + + isShown + + orderHint + 25 + + Playground (Playground) 7.xcscheme + + isShown + + orderHint + 26 + + Playground (Playground) 8.xcscheme + + isShown + + orderHint + 27 Playground (Playground).xcscheme isShown orderHint - 16 + 8 mpc-core-kit-ios-auth0.xcscheme_^#shared#^_ diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/EthereumClient.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/EthereumClient.swift index 0f2b0236..0836efc8 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/EthereumClient.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/EthereumClient.swift @@ -26,7 +26,7 @@ struct EthereumClient { let nonce = try await web3Client.eth_getTransactionCount( address: address, block: .Latest ) - return nonce + 1 + return nonce } catch let error { throw error } diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/Extensions.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/Extensions.swift index 2baf860b..1c320ec0 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/Extensions.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/Extensions.swift @@ -13,7 +13,7 @@ import web3 extension MpcCoreKit : EvmSigner { public func sign(message: Data) throws -> Data { - let data = try self.tssSign(message: message) + let data = try self.tssSignSync(message: message) return data } @@ -21,9 +21,10 @@ extension MpcCoreKit : EvmSigner { let fullAddress = try! KeyPoint( address: self.getTssPubKey().hexString ).getPublicKey(format: .FullAddress) - - return Data(hex: fullAddress).suffix(64) + + + return Data(hex: fullAddress)?.suffix(64) ?? Data() } - + } diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/UserStorage.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/UserStorage.swift index dcd1e792..f94df2cf 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/UserStorage.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Helpers/UserStorage.swift @@ -8,7 +8,7 @@ import Foundation import mpc_core_kit_swift -class UserStorage : ILocalStorage { +class UserStorage : IStorage { func get(key: String) async throws -> Data { print(key) guard let data = UserDefaults().value(forKey: key) as? Data else { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Models/MainViewModel.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Models/MainViewModel.swift index 545feb22..f6a08fef 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Models/MainViewModel.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Models/MainViewModel.swift @@ -13,6 +13,7 @@ import UIKit import tkey import Auth0 import JWTDecode +import CustomAuth class MainViewModel: ObservableObject { @Published var isLoggedIn: Bool = false @@ -28,15 +29,17 @@ class MainViewModel: ObservableObject { private var ethereumClient: EthereumClient! private var mpcEthereumProvider: MPCEthereumProvider! private var webAuth: WebAuth! - var userInfo: [String: Any]! + var userInfo: Any? var alertContent: String = "" var loaderContent: String = "" func initialize() { - mpcCoreKit = MpcCoreKit( - web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", - web3AuthNetwork: .SAPPHIRE_MAINNET, - localStorage: UserStorage() + mpcCoreKit = try! MpcCoreKit( + options: .init( + web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: .SAPPHIRE_MAINNET, + storage: UserStorage() + ) ) webAuth = Auth0.webAuth(clientId: "hUVVf4SEsZT7syOiL0gLU9hFEtm2gQ6O", domain: "web3auth.au.auth0.com") @@ -55,7 +58,7 @@ class MainViewModel: ObservableObject { let jwt = try decode(jwt: auth0Creds.idToken) guard let sub = jwt.body["sub"] as? String else { - throw "Sub not found in JWT" + return } let result = try await mpcCoreKit.loginWithJwt( @@ -64,15 +67,15 @@ class MainViewModel: ObservableObject { idToken: auth0Creds.idToken ) - userInfo = try mpcCoreKit.getUserInfo() + userInfo = mpcCoreKit.getUserInfo() - DispatchQueue.main.async { - self.isRecoveryRequired = result.requiredFactors > 0 - } - - if(!self.isRecoveryRequired) { + if(!(result.requiredFactors > 0)) { try await login() - + + } else { + DispatchQueue.main.async { + self.isRecoveryRequired = true + } } hideLoader() @@ -154,7 +157,7 @@ class MainViewModel: ObservableObject { ) let transaction = EthereumTransaction.init( to: address, - data: Data.init(hex: "0x00") + data: Data.init(hex: "0x00")! ) let gasLimit = try await self.ethereumClient.getGasLimit( @@ -169,7 +172,7 @@ class MainViewModel: ObservableObject { value: 1000000000000, data: transaction.data, nonce: nonce, - gasPrice: gasPrice, + gasPrice: gasPrice.multiplied(by: .init(stringLiteral: "2")), gasLimit: gasLimit, chainId: Int(self.ethereumClient.getChainId()) ) @@ -199,17 +202,14 @@ class MainViewModel: ObservableObject { do { showLoader("Adding new factor") let factor = try await mpcCoreKit.createFactor( - tssShareIndex: .RECOVERY, + tssShareIndex: .recovery, factorKey: nil, factorDescription: .SeedPhrase ) - guard let seedPhrase = mpcCoreKit.keyToMnemonic( - factorKey: factor, - format: "mnemonic" - ) else { - return - } + let seedPhrase = try mpcCoreKit.keyToMnemonic( + factorKey: factor + ) print(seedPhrase) @@ -228,13 +228,9 @@ class MainViewModel: ObservableObject { Task { do { showLoader("Recovering account") - guard let factorKey = mpcCoreKit.mnemonicToKey( - shareMnemonic: seedPhrase, - format: "mnemonic" - ) else { - hideLoader() - return - } + let factorKey = try mpcCoreKit.mnemonicToKey( + shareMnemonic: seedPhrase + ) try await mpcCoreKit.inputFactor( factorKey: factorKey @@ -258,14 +254,10 @@ class MainViewModel: ObservableObject { Task { do { showLoader("Enabling MFA") - let recoveryFactorKey = try await mpcCoreKit.enableMFA() - guard let seedPhrase = mpcCoreKit.keyToMnemonic( - factorKey: recoveryFactorKey!, - format: "mnemonic" - ) else { - hideLoader() - return - } + let recoveryFactorKey = try await mpcCoreKit.enableMFAWithRecoveryFactor() + let seedPhrase = try mpcCoreKit.keyToMnemonic( + factorKey: recoveryFactorKey + ) print(seedPhrase) @@ -282,8 +274,9 @@ class MainViewModel: ObservableObject { } private func login() async throws { - let pubKey = try await mpcCoreKit.getTssPubKey() + let pubKey = try mpcCoreKit.getTssPubKey() let keyDetails = try await mpcCoreKit.getKeyDetails() + print("Description") print(keyDetails.requiredFactors) mpcEthereumProvider = MPCEthereumProvider(evmSigner: mpcCoreKit) @@ -294,7 +287,7 @@ class MainViewModel: ObservableObject { let address = KeyUtil.generateAddress( - from: Data(hex: fullAddress).suffix(64) + from: Data(hex: fullAddress)!.suffix(64) ) print(address) @@ -313,6 +306,8 @@ class MainViewModel: ObservableObject { private func refreshFactorPubs() async { do { + let keyDetails = try await mpcCoreKit.getKeyDetails() + print(keyDetails.shareDescriptions) let localFactorPubs = try await mpcCoreKit.getAllFactorPubs() DispatchQueue.main.async { self.factorPubs = localFactorPubs diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/ContentView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/ContentView.swift index 3d00eef9..65a22047 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/ContentView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/ContentView.swift @@ -13,11 +13,7 @@ struct ContentView: View { var body: some View { NavigationView { if viewModel.isLoggedIn { - if viewModel.isRecoveryRequired { - RecoveryView(viewModel: viewModel) - } else { - HomeView(viewModel: viewModel) - } + HomeView(viewModel: viewModel) } else if viewModel.isRecoveryRequired { RecoveryView(viewModel: viewModel) } else { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/HomeView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/HomeView.swift index 6ddab027..32fb83e2 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/HomeView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0/Views/HomeView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import CustomAuth struct HomeView: View { @StateObject var viewModel: MainViewModel @@ -30,7 +31,7 @@ struct HomeView: View { Button( action: { - viewModel.showAlert(message: viewModel.userInfo.debugDescription) + viewModel.showAlert(message: (viewModel.userInfo as! UserInfo).name) }, label: { Text("View User info") }) From d6b788e27b383e654df678853f0d0e272432a21f Mon Sep 17 00:00:00 2001 From: ieow Date: Wed, 15 Jan 2025 16:31:07 +0800 Subject: [PATCH 04/11] fix: cleanup --- .../project.pbxproj | 10 +- .../xcshareddata/swiftpm/Package.resolved | 8 +- .../UserInterfaceState.xcuserstate | Bin 32326 -> 60584 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 328 ++++++++++++++++++ .../Models/MainViewModel.swift | 51 ++- .../Views/HomeView.swift | 199 ++++++----- .../Views/LoadingView.swift | 50 +++ .../mpc-core-kit-ios-quick-start.entitlements | 8 + 8 files changed, 555 insertions(+), 99 deletions(-) create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoadingView.swift create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj index 131d07ae..9060c427 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ 284BE6342BC512A80049C203 /* RecoveryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE6332BC512A80049C203 /* RecoveryView.swift */; }; 284BE6362BC512B20049C203 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE6352BC512B20049C203 /* HomeView.swift */; }; 284BE63E2BC55A080049C203 /* EthereumHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 284BE63D2BC55A080049C203 /* EthereumHelper.swift */; }; + F0B964702D376989008A3FE1 /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B9646F2D376983008A3FE1 /* LoadingView.swift */; }; F0EB92902D27C1270024D038 /* mpc-core-kit-swift in Frameworks */ = {isa = PBXBuildFile; productRef = F0EB928F2D27C1270024D038 /* mpc-core-kit-swift */; }; F0EB92922D27C12A0024D038 /* MpcProviderSwift in Frameworks */ = {isa = PBXBuildFile; productRef = F0EB92912D27C12A0024D038 /* MpcProviderSwift */; }; /* End PBXBuildFile section */ @@ -60,6 +61,8 @@ 284BE6332BC512A80049C203 /* RecoveryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecoveryView.swift; sourceTree = ""; }; 284BE6352BC512B20049C203 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; 284BE63D2BC55A080049C203 /* EthereumHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthereumHelper.swift; sourceTree = ""; }; + F09C56682D2F93C00056861D /* mpc-core-kit-ios-quick-start.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "mpc-core-kit-ios-quick-start.entitlements"; sourceTree = ""; }; + F0B9646F2D376983008A3FE1 /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -113,6 +116,7 @@ 284BE5FC2BC509500049C203 /* mpc-core-kit-ios-quick-start */ = { isa = PBXGroup; children = ( + F09C56682D2F93C00056861D /* mpc-core-kit-ios-quick-start.entitlements */, 284BE6302BC50C3C0049C203 /* Helpers */, 284BE62B2BC50A0E0049C203 /* Models */, 284BE62A2BC50A080049C203 /* Views */, @@ -151,6 +155,7 @@ 284BE62A2BC50A080049C203 /* Views */ = { isa = PBXGroup; children = ( + F0B9646F2D376983008A3FE1 /* LoadingView.swift */, 284BE5FF2BC509500049C203 /* ContentView.swift */, 284BE62C2BC50A1F0049C203 /* LoginView.swift */, 284BE6332BC512A80049C203 /* RecoveryView.swift */, @@ -324,6 +329,7 @@ files = ( 284712242BFB94450088411D /* Extension.swift in Sources */, 284BE62D2BC50A1F0049C203 /* LoginView.swift in Sources */, + F0B964702D376989008A3FE1 /* LoadingView.swift in Sources */, 284BE6362BC512B20049C203 /* HomeView.swift in Sources */, 284BE6002BC509500049C203 /* ContentView.swift in Sources */, 284BE5FE2BC509500049C203 /* mpc_core_kit_ios_quick_startApp.swift in Sources */, @@ -491,6 +497,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"mpc-core-kit-ios-quick-start/Preview Content\""; @@ -520,6 +527,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"mpc-core-kit-ios-quick-start/Preview Content\""; @@ -666,7 +674,7 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; requirement = { - branch = update_dependencies; + branch = feat/signer; kind = branch; }; }; diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index c24b64b6..0df5bce1 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -60,8 +60,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/mpc-core-kit-swift", "state" : { - "branch" : "update_dependencies", - "revision" : "742afd28c5a7319933c1f41f6796d864581fe0dc" + "branch" : "feat/signer", + "revision" : "31261336790df3227a34d365fd038e10b3c3c7f2" } }, { @@ -195,8 +195,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/tkey/tkey-mpc-swift", "state" : { - "revision" : "b6d9d1013f21f51105e845a0c16ee39b2f01fd1c", - "version" : "4.0.1" + "revision" : "74ea5301e316163b48e653ba107fd9edd4fe6bf8", + "version" : "4.0.2" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate index 116c819a14324ecd82162580c54936c083fb1ea0..6c49afb33a75f2347e28b4c438507138051c7214 100644 GIT binary patch literal 60584 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 F{{Z`cE6)G` literal 32326 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 iHGMzHVN&9x=1E diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 00000000..fc54be70 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift index 792ade59..165b43cf 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift @@ -16,6 +16,10 @@ class MainViewModel: ObservableObject { @Published var isRecoveryRequired: Bool = false @Published var factorPubs: [String] = [] + @Published var showAlert: Bool = false + + @Published var isLoaderVisible: Bool = false + var publicAddress: String! @@ -23,10 +27,14 @@ class MainViewModel: ObservableObject { private var ethereumClient: EthereumClient! private var mpcEthereumProvider: MPCEthereumProvider! + + var alertContent: String = "" + var loaderContent: String = "" + func initialize() throws { mpcCoreKit = try MpcCoreKit( - options: .init(web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", - web3AuthNetwork: .SAPPHIRE_MAINNET, storage: UserStorage() + options: .init(web3AuthClientId: "BHgArYmWwSeq21czpcarYh0EVq2WWOzflX-NTK-tY1-1pauPzHKRRLgpABkmYiIV_og9jAvoIxQ8L3Smrwe04Lw", + web3AuthNetwork: .SAPPHIRE_DEVNET, storage: UserStorage() ) ) @@ -57,7 +65,7 @@ class MainViewModel: ObservableObject { Task { do { let result = try await mpcCoreKit.loginWithOAuth( - singleLoginParams: .init(typeOfLogin: .google, verifier: "w3a-google-demo", clientId: "519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com") + singleLoginParams: .init(typeOfLogin: .google, verifier: "w3a-sfa-web-google", clientId: "519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com") ) DispatchQueue.main.async { @@ -78,7 +86,8 @@ class MainViewModel: ObservableObject { do { try await mpcCoreKit.resetAccount() DispatchQueue.main.async { - self.isRecoveryRequired.toggle() + self.isRecoveryRequired = false + self.isLoggedIn = false } } catch let error { print(error.localizedDescription) @@ -101,9 +110,10 @@ class MainViewModel: ObservableObject { func signMessage(onSigned: @escaping (_ signedMessage: String?, _ error: String?) -> ()){ Task { do { + let signature = try mpcCoreKit.sign(message: "YOUR_MESSAGE".data(using: .ascii)!) print(mpcCoreKit.debugDescription) - let signature = try mpcEthereumProvider.signMessage(message: "YOUR_MESSAGE".data(using: .ascii)!) - onSigned(signature, nil) +// let signature = try mpcEthereumProvider.signMessage(message: "YOUR_MESSAGE".data(using: .ascii)!) + onSigned(signature.hexString, nil) } catch let error { onSigned(nil, error.localizedDescription) } @@ -213,6 +223,15 @@ class MainViewModel: ObservableObject { } } + func logout() { + Task { + do { + try await mpcCoreKit.logout() + toggleIsLoggedIn() + } + } + } + private func login() async throws { mpcEthereumProvider = MPCEthereumProvider(evmSigner: mpcCoreKit) publicAddress = mpcEthereumProvider.address.toChecksumAddress() @@ -233,4 +252,24 @@ class MainViewModel: ObservableObject { self.isLoggedIn.toggle() } } + + func showLoader(_ message: String) { + loaderContent = message + DispatchQueue.main.async { + self.isLoaderVisible = true + } + } + + func hideLoader() { + DispatchQueue.main.async { + self.isLoaderVisible = false + } + } + + func showAlert(message: String) { + alertContent = message + DispatchQueue.main.async { + self.showAlert = true + } + } } diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift index 357b354e..b91f51ed 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift @@ -17,107 +17,130 @@ struct HomeView: View { var body: some View { NavigationView { - Form { - Section(header: Text("Public Address")) { - Button( - action: { - UIPasteboard.general.string = viewModel.publicAddress - }, label: { - Text(viewModel.publicAddress) - }) + LoadingView(viewModel: viewModel, content: { + Form { + Section(header: Text("Public Address")) { + Button( + action: { + UIPasteboard.general.string = viewModel.publicAddress + }, label: { + Text(viewModel.publicAddress) + }) + + } - } - - Section(header: Text("Chain Interactions")) { - Button( - action: { - viewModel.signMessage{ - result, error in - if result != nil { - signedMessage = result + Section(header: Text("Chain Interactions")) { + Button( + action: { + viewModel.signMessage{ + result, error in + if result != nil { + signedMessage = result + } } + }, + label: { + Text("Sign Message") } - }, - label: { - Text("Sign Message") + ) + + if signedMessage != nil { + Text(signedMessage!) } - ) - - if signedMessage != nil { - Text(signedMessage!) - } - - Button( - action: { - viewModel.sendTransaction{ - result, error in - if result != nil { - hash = result + + Button( + action: { + viewModel.sendTransaction{ + result, error in + if result != nil { + hash = result + } } + }, + label: { + Text("Send 0.001 ETH") } - }, - label: { - Text("Send 0.001 ETH") + ) + + if(hash != nil) { + Link( + hash!, + destination: URL( + string: "https://sepolia.etherscan.io/tx/\(hash!)" + )! + ).underline() } - ) - - if(hash != nil) { - Link( - hash!, - destination: URL( - string: "https://sepolia.etherscan.io/tx/\(hash!)" - )! - ).underline() + + Text("The sample uses Eth Sepolia, you can choose any EVM network of your choice. Send 0.001 ETH will perform self transfer of ETH. You'll need to have Sepolia faucet to perform transaction.").font(.caption) + } - Text("The sample uses Eth Sepolia, you can choose any EVM network of your choice. Send 0.001 ETH will perform self transfer of ETH. You'll need to have Sepolia faucet to perform transaction.").font(.caption) - - } - - if(!viewModel.factorPubs.isEmpty) { - Section(header: Text("TSS Factors PubKey")) { - ForEach(Array(viewModel.factorPubs), id: \.self) { factorPub in - HStack( - alignment: .top, - spacing: 24, - content: { - Text(factorPub) - Button(action: { - withAnimation { - viewModel.deleteFactor( - factorPub: factorPub - ) + if(!viewModel.factorPubs.isEmpty) { + Section(header: Text("TSS Factors PubKey")) { + ForEach(Array(viewModel.factorPubs), id: \.self) { factorPub in + HStack( + alignment: .top, + spacing: 24, + content: { + Text(factorPub) + Button(action: { + withAnimation { + viewModel.deleteFactor( + factorPub: factorPub + ) + } + }) { + Label("",systemImage: "trash") } - }) { - Label("",systemImage: "trash") } - } - ) + ) + } } } + + Section( + header: Text("TSS Operations") + ) { + Button( + action: { + viewModel.enableMFA() + }, + label: { + Text("Enable MFA") + } + ) + Button( + action: { + viewModel.showAlert(message: "creating factor...") + viewModel.createNewTssFactor() + viewModel.hideLoader() + }, + label: { + Text("Create new Factor") + } + ) + Button( + action: { + viewModel.logout() + }, + label: { + Text("Logout") + } + ) + + Button( + action: { + viewModel.resetAccount() + }, + label: { + Text("Reset") + } + ) + } } - - Section( - header: Text("TSS Operations") - ) { - Button( - action: { - viewModel.enableMFA() - }, - label: { - Text("Enable MFA") - } - ) - Button( - action: { - viewModel.createNewTssFactor() - }, - label: { - Text("Create new Factor") - } - ) - } - } - } + }) + }.alert(isPresented: $viewModel.showAlert, content: { + Alert(title: Text(viewModel.alertContent)) + }) } } diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoadingView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoadingView.swift new file mode 100644 index 00000000..ddf9e692 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoadingView.swift @@ -0,0 +1,50 @@ +// +// Loading.swift +// mpc-core-kit-ios-quick-start +// +// Created by CW Lee on 15/01/2025. +// + +import SwiftUI + +struct ActivityIndicator: UIViewRepresentable { + + @Binding var isAnimating: Bool + let style: UIActivityIndicatorView.Style + + func makeUIView(context: UIViewRepresentableContext) -> UIActivityIndicatorView { + return UIActivityIndicatorView(style: style) + } + + func updateUIView(_ uiView: UIActivityIndicatorView, context: UIViewRepresentableContext) { + isAnimating ? uiView.startAnimating() : uiView.stopAnimating() + } +} + +struct LoadingView: View where Content: View { + @StateObject var viewModel: MainViewModel + var content: () -> Content + + var body: some View { + GeometryReader { geometry in + ZStack(alignment: .center) { + + self.content() + .disabled(viewModel.isLoaderVisible) + .blur(radius: viewModel.isLoaderVisible ? 3 : 0) + + VStack { + Text(viewModel.loaderContent) + ActivityIndicator(isAnimating: .constant(true), style: .large) + } + .frame(width: geometry.size.width / 2, + height: geometry.size.height / 5) + .background(Color.secondary.colorInvert()) + .foregroundColor(Color.primary) + .cornerRadius(20) + .opacity(viewModel.isLoaderVisible ? 1 : 0) + + } + } + } +} diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements new file mode 100644 index 00000000..fbad0237 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.entitlements @@ -0,0 +1,8 @@ + + + + + keychain-access-groups + + + From 16fe36e63ada56ab4b0babae194433513a318929 Mon Sep 17 00:00:00 2001 From: metalurgical <97008724+metalurgical@users.noreply.github.com> Date: Wed, 15 Jan 2025 10:41:22 +0200 Subject: [PATCH 05/11] fix: update codebase to correct head --- .../project.pbxproj | 2 +- .../xcshareddata/swiftpm/Package.resolved | 6 ++-- .../UserInterfaceState.xcuserstate | Bin 0 -> 25163 bytes .../xcschemes/xcschememanagement.plist | 14 ++++++++ .../Models/MainViewModel.swift | 34 +++++++----------- 5 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/dmstrider.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/dmstrider.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj index 9060c427..34a36c52 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.pbxproj @@ -672,7 +672,7 @@ /* Begin XCRemoteSwiftPackageReference section */ F0EB928C2D27B02B0024D038 /* XCRemoteSwiftPackageReference "mpc-core-kit-swift" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "https://github.com/tkey/mpc-core-kit-swift"; + repositoryURL = "https://github.com/web3auth/mpc-core-kit-swift"; requirement = { branch = feat/signer; kind = branch; diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 0df5bce1..583ff71d 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,5 +1,5 @@ { - "originHash" : "85823ce731e504f26e228ca4424bd5103974c9a0e33aa647daf561a6cc5a403d", + "originHash" : "24dbe6a6a12ff57d0f65bcadc8dc07e5c4c4d2f8da5daf9ba0042c506c57383a", "pins" : [ { "identity" : "bigint", @@ -58,10 +58,10 @@ { "identity" : "mpc-core-kit-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/tkey/mpc-core-kit-swift", + "location" : "https://github.com/web3auth/mpc-core-kit-swift", "state" : { "branch" : "feat/signer", - "revision" : "31261336790df3227a34d365fd038e10b3c3c7f2" + "revision" : "4773dfc6808250dcd3b831214abcf5ec5a763585" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/dmstrider.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/dmstrider.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..5d28a0d1efd32d2ac4b758b1e475bd057abc4a11 GIT binary patch literal 25163 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 RDDl(IyF(lA_|X3N{{Zr*86W@v literal 0 HcmV?d00001 diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/dmstrider.xcuserdatad/xcschemes/xcschememanagement.plist b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/dmstrider.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..25816725 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/dmstrider.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + mpc-core-kit-ios-quick-start.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift index 165b43cf..296f00eb 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift @@ -50,9 +50,7 @@ class MainViewModel: ObservableObject { idToken: "String" ) - DispatchQueue.main.async { - self.isRecoveryRequired = result.requiredFactors > 0 - } + self.isRecoveryRequired = result.requiredFactors > 0 try await login() } catch let error { @@ -68,9 +66,7 @@ class MainViewModel: ObservableObject { singleLoginParams: .init(typeOfLogin: .google, verifier: "w3a-sfa-web-google", clientId: "519228911939-cri01h55lsjbsia1k7ll6qpalrus75ps.apps.googleusercontent.com") ) - DispatchQueue.main.async { - self.isRecoveryRequired = result.requiredFactors > 0 - } + self.isRecoveryRequired = result.requiredFactors > 0 try await login() @@ -84,11 +80,9 @@ class MainViewModel: ObservableObject { func resetAccount() { Task { do { - try await mpcCoreKit.resetAccount() - DispatchQueue.main.async { - self.isRecoveryRequired = false - self.isLoggedIn = false - } + try await mpc_core_kit_swift.resetAccount(coreKitInstance: mpcCoreKit) + self.isRecoveryRequired = false + self.isLoggedIn = false } catch let error { print(error.localizedDescription) } @@ -176,8 +170,8 @@ class MainViewModel: ObservableObject { factorDescription: .SeedPhrase ) - let seedPhrase = try mpcCoreKit.keyToMnemonic( - factorKey: factor + let seedPhrase = try FactorSerialization.keyToMnemonic(tkey: mpcCoreKit.tkey!, + shareHex: factor ) print(seedPhrase) @@ -191,21 +185,19 @@ class MainViewModel: ObservableObject { func recoverUsingSeedPhrase(seedPhrase: String) { Task { do { - let factorKey = try mpcCoreKit.mnemonicToKey( + let factorKey = try FactorSerialization.mnemonicToKey(tkey: mpcCoreKit.tkey!, shareMnemonic: seedPhrase ) print(factorKey.count) - try await mpcCoreKit.inputFactor( + try await mpcCoreKit.inputFactorKey( factorKey: factorKey ) try await login() - - DispatchQueue.main.async { - self.isRecoveryRequired.toggle() - } + + self.isRecoveryRequired.toggle() } catch let error { print(error.localizedDescription) } @@ -242,9 +234,7 @@ class MainViewModel: ObservableObject { private func refreshFactorPubs() async throws { let localFactorPubs = try await mpcCoreKit.getAllFactorPubs() - DispatchQueue.main.async { - self.factorPubs = localFactorPubs - } + self.factorPubs = localFactorPubs } func toggleIsLoggedIn() { From c810995a023947b3d62ae5f04ccb599444e60032 Mon Sep 17 00:00:00 2001 From: metalurgical <97008724+metalurgical@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:09:48 +0200 Subject: [PATCH 06/11] update --- .../UserInterfaceState.xcuserstate | Bin 25163 -> 35383 bytes .../Models/MainViewModel.swift | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/dmstrider.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/dmstrider.xcuserdatad/UserInterfaceState.xcuserstate index 5d28a0d1efd32d2ac4b758b1e475bd057abc4a11..2a55a015a0bd2f52efce90f15f93242df44b9c9b 100644 GIT binary patch literal 35383 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 ZGdXDTsL7)hXDG(XU-3+DAL-=u{|B_qmSz9| delta 12865 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 j Date: Mon, 20 Jan 2025 13:55:15 +0800 Subject: [PATCH 07/11] fix: sign message, add mock login --- .../UserInterfaceState.xcuserstate | Bin 0 -> 33719 bytes .../xcschemes/xcschememanagement.plist | 14 + .../xcshareddata/swiftpm/Package.resolved | 18 +- .../UserInterfaceState.xcuserstate | Bin 60584 -> 101271 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 778 +++++++++++++++++- .../Models/MainViewModel.swift | 80 +- .../Views/HomeView.swift | 11 + .../Views/LoginView.swift | 9 + .../src/App.tsx | 72 ++ 9 files changed, 962 insertions(+), 20 deletions(-) create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1ef4dedcd09323326a251c69cfdf89f11039a1cf GIT binary patch literal 33719 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 ZYd_O|u03za8^+l1DV{NW8sD{F{(mny%?bbj literal 0 HcmV?d00001 diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..ead12ed7 --- /dev/null +++ b/mpc-core-kit-ios/mpc-core-kit-ios-auth0/mpc-core-kit-ios-auth0.xcodeproj/xcuserdata/apollo.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + mpc-core-kit-ios-auth0.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 583ff71d..321eff2b 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -33,8 +33,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/torusresearch/fetch-node-details-swift", "state" : { - "revision" : "52fb5efaa94e0fe3775913ab00964bcb51601c2a", - "version" : "8.0.0" + "revision" : "5b42dd1675f8a51ffe64feb688db7b1d764d5fc0", + "version" : "8.0.1" } }, { @@ -61,7 +61,7 @@ "location" : "https://github.com/web3auth/mpc-core-kit-swift", "state" : { "branch" : "feat/signer", - "revision" : "4773dfc6808250dcd3b831214abcf5ec5a763585" + "revision" : "537891b6fcffe3ae8c90b0e864fac36a86d23da9" } }, { @@ -70,7 +70,7 @@ "location" : "https://github.com/tkey/MpcProviderSwift", "state" : { "branch" : "feat/update-dependency", - "revision" : "1e8aa2e96cfea11488736b79ff29a81d0e1fbac2" + "revision" : "d9e9fb09ee98a01a2d46c65b4fa954affdca31cc" } }, { @@ -141,8 +141,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-nio.git", "state" : { - "revision" : "dca6594f65308c761a9c409e09fbf35f48d50d34", - "version" : "2.77.0" + "revision" : "ba72f31e11275fc5bf060c966cf6c1f36842a291", + "version" : "2.79.0" } }, { @@ -202,10 +202,10 @@ { "identity" : "torus-utils-swift", "kind" : "remoteSourceControl", - "location" : "https://github.com/torusresearch/torus-utils-swift", + "location" : "https://github.com/torusresearch/torus-utils-swift.git", "state" : { - "revision" : "baa822fc67bdb208ed1a2dc5b3c10485cfca15df", - "version" : "10.0.0" + "revision" : "235a70839d3ff5723402df95d665b15b8c551ad8", + "version" : "10.0.1" } }, { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/project.xcworkspace/xcuserdata/apollo.xcuserdatad/UserInterfaceState.xcuserstate index 6c49afb33a75f2347e28b4c438507138051c7214..a50cea3a105733949547821a00223a6be713b558 100644 GIT binary patch literal 101271 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 literal 60584 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 F{{Z`cE6)G` diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index fc54be70..92c4fbe5 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start.xcodeproj/xcuserdata/apollo.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -24,7 +24,7 @@ BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift index 2fff3960..b81d0874 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Models/MainViewModel.swift @@ -41,13 +41,70 @@ import UIKit ethereumClient = EthereumClient() } + func mockLogin(email: String) async throws -> Data { + // Create URL + let url = URL(string: "https://li6lnimoyrwgn2iuqtgdwlrwvq0upwtr.lambda-url.eu-west-1.on.aws/")! + + // Create URLRequest + var request = URLRequest(url: url) + request.httpMethod = "POST" + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + // Create JSON data to send in the request body + // verifier: "torus-key-test", scope: "email", extraPayload: { email }, alg: "ES256" + let jsonObject: [String: Any] = [ + "verifier": "torus-test-health", + "iss" : "torus-key-test", + "aud" : "torus-key-test", + "emailVerified": true, + "email": email, + "scope": email, + "extraPayload": [ + "email": email, + ], + "alg": "ES256", + ] + let jsonData = try JSONSerialization.data(withJSONObject: jsonObject) + request.httpBody = jsonData + + // Perform the request asynchronously + let (data, _) = try await URLSession.shared.data(for: request) + + return data + } + + func loginWithJWT() { Task { do { + let verifierId = "testiosEmail11mfa11-1" + let verifier = "torus-test-health" + let clientId = "torus-test-health" + let email = verifierId + + let mockResult = try await mockLogin(email: email) + + guard let mockResult = try JSONSerialization.jsonObject(with: mockResult) as? [String: Any] else { + throw NSError(domain: "", code: 0, userInfo: nil) + + } + guard let token = mockResult["token"] as? String else { + throw NSError(domain: "", code: 0, userInfo: nil) + + } + print(token) + + + mpcCoreKit = try MpcCoreKit( + options: .init(web3AuthClientId: clientId, + web3AuthNetwork: .SAPPHIRE_DEVNET, storage: UserStorage() + ) + ) + let result = try await mpcCoreKit.loginWithJwt( - verifier: "w3a-firebase-demo", - verifierId: "", - idToken: "String" + verifier: verifier, + verifierId: email, + idToken: token ) self.isRecoveryRequired = result.requiredFactors > 0 @@ -104,10 +161,8 @@ import UIKit func signMessage(onSigned: @escaping (_ signedMessage: String?, _ error: String?) -> ()){ Task { do { - let signature = try mpcCoreKit.sign(message: "YOUR_MESSAGE".data(using: .ascii)!) - print(mpcCoreKit.debugDescription) -// let signature = try mpcEthereumProvider.signMessage(message: "YOUR_MESSAGE".data(using: .ascii)!) - onSigned(signature.hexString, nil) + let signature = try mpcEthereumProvider.signMessage(message: "YOUR_MESSAGE".data(using: .ascii)!) + onSigned(signature, nil) } catch let error { onSigned(nil, error.localizedDescription) } @@ -204,6 +259,17 @@ import UIKit } } + func getKeyDetails() { + Task { + do { + let keyDetails = try await mpcCoreKit.getKeyDetails() + print(keyDetails) + } catch let error { + print(error) + } + } + } + func enableMFA() { Task { do { diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift index b91f51ed..3e42e6c9 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/HomeView.swift @@ -111,6 +111,7 @@ struct HomeView: View { ) Button( action: { + viewModel.showAlert(message: "creating factor...") viewModel.createNewTssFactor() viewModel.hideLoader() @@ -119,6 +120,16 @@ struct HomeView: View { Text("Create new Factor") } ) + Button( + action: { + + viewModel.getKeyDetails() + }, + label: { + Text("Get Key Details") + } + ) + Button( action: { viewModel.logout() diff --git a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift index e0d783f0..39899e28 100644 --- a/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift +++ b/mpc-core-kit-ios/mpc-core-kit-ios-quick-start/mpc-core-kit-ios-quick-start/Views/LoginView.swift @@ -24,6 +24,15 @@ struct LoginView: View { Text("Sign in with Google") } ).buttonStyle(.bordered) + Button( + action: { + viewModel.loginWithJWT() + }, + label: { + Text("Sign in with Mock") + } + ).buttonStyle(.bordered) + Spacer() }.onAppear { try? viewModel.initialize() diff --git a/mpc-core-kit-web/quick-starts/mpc-core-kit-react-quick-start/src/App.tsx b/mpc-core-kit-web/quick-starts/mpc-core-kit-react-quick-start/src/App.tsx index 7853ef4f..ee384955 100644 --- a/mpc-core-kit-web/quick-starts/mpc-core-kit-react-quick-start/src/App.tsx +++ b/mpc-core-kit-web/quick-starts/mpc-core-kit-react-quick-start/src/App.tsx @@ -23,6 +23,9 @@ import { BN } from "bn.js"; import { initializeApp } from "firebase/app"; import { getAuth, GoogleAuthProvider, signInWithEmailAndPassword, signInWithPopup, UserCredential } from "firebase/auth"; import { useEffect, useState } from "react"; +import { createWalletClient, custom, TypedData, verifyTypedData } from 'viem' +import { baseSepolia } from 'viem/chains' + // IMP END - Quick Start // IMP START - Blockchain Calls @@ -382,6 +385,70 @@ function App() { console.log(...args); } + + async function viemSignTypedData() { + const chainConfig = { + chainId: '0x14a34', + displayName: 'Base Sepolia Testnet', + chainNamespace: CHAIN_NAMESPACES.EIP155, + tickerName: 'Vastlink Token', + ticker: 'VAST', + decimals: 18, + rpcTarget: "https://base-sepolia-rpc.publicnode.com", + blockExplorerUrl: "https://sepolia.basescan.org", + } + + const evmProvider = new EthereumSigningProvider({ config: { chainConfig } }); + evmProvider.setupProvider(makeEthereumSigner(coreKitInstance)); + const userWalletClient = createWalletClient({ + chain: baseSepolia, + transport: custom(evmProvider), + }) + + const domain = { + name: 'Ether Mail', + version: '1', + chainId: 84532, + verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC', + } as const + + const types : TypedData = { + Person: [ + { name: 'name', type: 'string' }, + { name: 'wallet', type: 'address' }, + ], + Mail: [ + { name: 'from', type: 'Person' }, + { name: 'to', type: 'Person' }, + { name: 'contents', type: 'string' }, + ], + } as const + + const [account] = await userWalletClient.getAddresses() + const params = { + account, + domain, + types, + primaryType: 'Mail', + message: { + from: { + name: 'Cow', + wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826', + }, + to: { + name: 'Bob', + wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB', + }, + contents: 'Hello, Bob!', + }, + } + + const signature = await userWalletClient.signTypedData(params as any) + + console.log(signature) + console.log(await verifyTypedData( {...params, signature, address: account} ) ) + + } const loggedInView = (
@@ -414,6 +481,11 @@ function App() { Sign Message
+
+ +