1→// !$*UTF8*$! 2→{ 3→ archiveVersion = 1; 4→ classes = { 5→ }; 6→ objectVersion = 56; 7→ objects = { 8→ 9→/* Begin PBXBuildFile section */ 10→ F001 /* BCBDashboardApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E001; }; 11→ F002 /* Currency.swift in Sources */ = {isa = PBXBuildFile; fileRef = E002; }; 12→ F003 /* TimeSeries.swift in Sources */ = {isa = PBXBuildFile; fileRef = E003; }; 13→ F004 /* Institution.swift in Sources */ = {isa = PBXBuildFile; fileRef = E004; }; 14→ F005 /* BCBAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E005; }; 15→ F015 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E015; }; 16→ F006 /* DashboardViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E006; }; 17→ F007 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E007; }; 18→ F008 /* DashboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E008; }; 19→ F009 /* CurrencyListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E009; }; 20→ F010 /* RatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E010; }; 21→ F011 /* InstitutionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E011; }; 22→ F012 /* PIXStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E012; }; 23→ F013 /* ExpectationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E013; }; 24→ F014 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E014; }; 25→ F016 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E016; }; 26→/* End PBXBuildFile section */ 27→ 28→/* Begin PBXFileReference section */ 29→ A001 /* BCBDashboard.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BCBDashboard.app; sourceTree = BUILT_PRODUCTS_DIR; }; 30→ E001 /* BCBDashboardApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BCBDashboardApp.swift; sourceTree = ""; }; 31→ E002 /* Currency.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Currency.swift; sourceTree = ""; }; 32→ E003 /* TimeSeries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeSeries.swift; sourceTree = ""; }; 33→ E004 /* Institution.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Institution.swift; sourceTree = ""; }; 34→ E005 /* BCBAPIClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BCBAPIClient.swift; sourceTree = ""; }; 35→ E015 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = ""; }; 36→ E006 /* DashboardViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardViewModel.swift; sourceTree = ""; }; 37→ E007 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 38→ E008 /* DashboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardView.swift; sourceTree = ""; }; 39→ E009 /* CurrencyListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyListView.swift; sourceTree = ""; }; 40→ E010 /* RatesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RatesView.swift; sourceTree = ""; }; 41→ E011 /* InstitutionsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstitutionsView.swift; sourceTree = ""; }; 42→ E012 /* PIXStatsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PIXStatsView.swift; sourceTree = ""; }; 43→ E013 /* ExpectationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpectationsView.swift; sourceTree = ""; }; 44→ E014 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; 45→ E016 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 46→/* End PBXFileReference section */ 47→ 48→/* Begin PBXFrameworksBuildPhase section */ 49→ B001 /* Frameworks */ = { 50→ isa = PBXFrameworksBuildPhase; 51→ buildActionMask = 2147483647; 52→ files = ( 53→ ); 54→ runOnlyForDeploymentPostprocessing = 0; 55→ }; 56→/* End PBXFrameworksBuildPhase section */ 57→ 58→/* Begin PBXResourcesBuildPhase section */ 59→ R001 /* Resources */ = { 60→ isa = PBXResourcesBuildPhase; 61→ buildActionMask = 2147483647; 62→ files = ( 63→ F016 /* Assets.xcassets in Resources */, 64→ ); 65→ runOnlyForDeploymentPostprocessing = 0; 66→ }; 67→/* End PBXResourcesBuildPhase section */ 68→ 69→/* Begin PBXGroup section */ 70→ G001 = { 71→ isa = PBXGroup; 72→ children = ( 73→ G002 /* BCBDashboard */, 74→ G010 /* Products */, 75→ ); 76→ sourceTree = ""; 77→ }; 78→ G002 /* BCBDashboard */ = { 79→ isa = PBXGroup; 80→ children = ( 81→ E001 /* BCBDashboardApp.swift */, 82→ G003 /* Models */, 83→ G004 /* Services */, 84→ G005 /* ViewModels */, 85→ G006 /* Views */, 86→ G009 /* Extensions */, 87→ E016 /* Assets.xcassets */, 88→ ); 89→ path = ""; 90→ sourceTree = ""; 91→ }; 92→ G003 /* Models */ = { 93→ isa = PBXGroup; 94→ children = ( 95→ E002 /* Currency.swift */, 96→ E003 /* TimeSeries.swift */, 97→ E004 /* Institution.swift */, 98→ ); 99→ path = Models; 100→ sourceTree = ""; 101→ }; 102→ G004 /* Services */ = { 103→ isa = PBXGroup; 104→ children = ( 105→ E005 /* BCBAPIClient.swift */, 106→ E015 /* NotificationService.swift */, 107→ ); 108→ path = Services; 109→ sourceTree = ""; 110→ }; 111→ G005 /* ViewModels */ = { 112→ isa = PBXGroup; 113→ children = ( 114→ E006 /* DashboardViewModel.swift */, 115→ ); 116→ path = ViewModels; 117→ sourceTree = ""; 118→ }; 119→ G006 /* Views */ = { 120→ isa = PBXGroup; 121→ children = ( 122→ E007 /* ContentView.swift */, 123→ G007 /* Dashboard */, 124→ G008 /* Currency */, 125→ G008A /* Rates */, 126→ G008B /* Institutions */, 127→ G008C /* PIX */, 128→ G008D /* Expectations */, 129→ ); 130→ path = Views; 131→ sourceTree = ""; 132→ }; 133→ G007 /* Dashboard */ = { 134→ isa = PBXGroup; 135→ children = ( 136→ E008 /* DashboardView.swift */, 137→ ); 138→ path = Dashboard; 139→ sourceTree = ""; 140→ }; 141→ G008 /* Currency */ = { 142→ isa = PBXGroup; 143→ children = ( 144→ E009 /* CurrencyListView.swift */, 145→ ); 146→ path = Currency; 147→ sourceTree = ""; 148→ }; 149→ G008A /* Rates */ = { 150→ isa = PBXGroup; 151→ children = ( 152→ E010 /* RatesView.swift */, 153→ ); 154→ path = Rates; 155→ sourceTree = ""; 156→ }; 157→ G008B /* Institutions */ = { 158→ isa = PBXGroup; 159→ children = ( 160→ E011 /* InstitutionsView.swift */, 161→ ); 162→ path = Institutions; 163→ sourceTree = ""; 164→ }; 165→ G008C /* PIX */ = { 166→ isa = PBXGroup; 167→ children = ( 168→ E012 /* PIXStatsView.swift */, 169→ ); 170→ path = PIX; 171→ sourceTree = ""; 172→ }; 173→ G008D /* Expectations */ = { 174→ isa = PBXGroup; 175→ children = ( 176→ E013 /* ExpectationsView.swift */, 177→ ); 178→ path = Expectations; 179→ sourceTree = ""; 180→ }; 181→ G009 /* Extensions */ = { 182→ isa = PBXGroup; 183→ children = ( 184→ E014 /* Extensions.swift */, 185→ ); 186→ path = Extensions; 187→ sourceTree = ""; 188→ }; 189→ G010 /* Products */ = { 190→ isa = PBXGroup; 191→ children = ( 192→ A001 /* BCBDashboard.app */, 193→ ); 194→ name = Products; 195→ sourceTree = ""; 196→ }; 197→/* End PBXGroup section */ 198→ 199→/* Begin PBXNativeTarget section */ 200→ T001 /* BCBDashboard */ = { 201→ isa = PBXNativeTarget; 202→ buildConfigurationList = C003 /* Build configuration list for PBXNativeTarget "BCBDashboard" */; 203→ buildPhases = ( 204→ S001 /* Sources */, 205→ B001 /* Frameworks */, 206→ R001 /* Resources */, 207→ ); 208→ buildRules = ( 209→ ); 210→ dependencies = ( 211→ ); 212→ name = BCBDashboard; 213→ productName = BCBDashboard; 214→ productReference = A001 /* BCBDashboard.app */; 215→ productType = "com.apple.product-type.application"; 216→ }; 217→/* End PBXNativeTarget section */ 218→ 219→/* Begin PBXProject section */ 220→ P001 /* Project object */ = { 221→ isa = PBXProject; 222→ attributes = { 223→ BuildIndependentTargetsInParallel = 1; 224→ LastSwiftUpdateCheck = 1500; 225→ LastUpgradeCheck = 1500; 226→ TargetAttributes = { 227→ T001 = { 228→ CreatedOnToolsVersion = 15.0; 229→ }; 230→ }; 231→ }; 232→ buildConfigurationList = C001 /* Build configuration list for PBXProject "BCBDashboard" */; 233→ compatibilityVersion = "Xcode 14.0"; 234→ developmentRegion = en; 235→ hasScannedForEncodings = 0; 236→ knownRegions = ( 237→ en, 238→ Base, 239→ ); 240→ mainGroup = G001; 241→ productRefGroup = G010 /* Products */; 242→ projectDirPath = ""; 243→ projectRoot = ""; 244→ targets = ( 245→ T001 /* BCBDashboard */, 246→ ); 247→ }; 248→/* End PBXProject section */ 249→ 250→/* Begin PBXSourcesBuildPhase section */ 251→ S001 /* Sources */ = { 252→ isa = PBXSourcesBuildPhase; 253→ buildActionMask = 2147483647; 254→ files = ( 255→ F001 /* BCBDashboardApp.swift in Sources */, 256→ F002 /* Currency.swift in Sources */, 257→ F003 /* TimeSeries.swift in Sources */, 258→ F004 /* Institution.swift in Sources */, 259→ F005 /* BCBAPIClient.swift in Sources */, 260→ F015 /* NotificationService.swift in Sources */, 261→ F006 /* DashboardViewModel.swift in Sources */, 262→ F007 /* ContentView.swift in Sources */, 263→ F008 /* DashboardView.swift in Sources */, 264→ F009 /* CurrencyListView.swift in Sources */, 265→ F010 /* RatesView.swift in Sources */, 266→ F011 /* InstitutionsView.swift in Sources */, 267→ F012 /* PIXStatsView.swift in Sources */, 268→ F013 /* ExpectationsView.swift in Sources */, 269→ F014 /* Extensions.swift in Sources */, 270→ ); 271→ runOnlyForDeploymentPostprocessing = 0; 272→ }; 273→/* End PBXSourcesBuildPhase section */ 274→ 275→/* Begin XCBuildConfiguration section */ 276→ C001D /* Debug */ = { 277→ isa = XCBuildConfiguration; 278→ buildSettings = { 279→ ALWAYS_SEARCH_USER_PATHS = NO; 280→ CLANG_ANALYZER_NONNULL = YES; 281→ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 282→ CLANG_ENABLE_MODULES = YES; 283→ CLANG_ENABLE_OBJC_ARC = YES; 284→ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 285→ CLANG_WARN_BOOL_CONVERSION = YES; 286→ CLANG_WARN_COMMA = YES; 287→ CLANG_WARN_CONSTANT_CONVERSION = YES; 288→ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 289→ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 290→ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 291→ CLANG_WARN_EMPTY_BODY = YES; 292→ CLANG_WARN_ENUM_CONVERSION = YES; 293→ CLANG_WARN_INFINITE_RECURSION = YES; 294→ CLANG_WARN_INT_CONVERSION = YES; 295→ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 296→ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 297→ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 298→ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 299→ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 300→ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 301→ CLANG_WARN_STRICT_PROTOTYPES = YES; 302→ CLANG_WARN_SUSPICIOUS_MOVE = YES; 303→ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 304→ CLANG_WARN_UNREACHABLE_CODE = YES; 305→ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 306→ COPY_PHASE_STRIP = NO; 307→ DEBUG_INFORMATION_FORMAT = dwarf; 308→ ENABLE_STRICT_OBJC_MSGSEND = YES; 309→ ENABLE_TESTABILITY = YES; 310→ GCC_C_LANGUAGE_STANDARD = gnu17; 311→ GCC_DYNAMIC_NO_PIC = NO; 312→ GCC_NO_COMMON_BLOCKS = YES; 313→ GCC_OPTIMIZATION_LEVEL = 0; 314→ GCC_PREPROCESSOR_DEFINITIONS = ( 315→ "DEBUG=1", 316→ "$(inherited)", 317→ ); 318→ GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 319→ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 320→ GCC_WARN_UNDECLARED_SELECTOR = YES; 321→ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 322→ GCC_WARN_UNUSED_FUNCTION = YES; 323→ GCC_WARN_UNUSED_VARIABLE = YES; 324→ MACOSX_DEPLOYMENT_TARGET = 14.0; 325→ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 326→ MTL_FAST_MATH = YES; 327→ ONLY_ACTIVE_ARCH = YES; 328→ SDKROOT = macosx; 329→ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 330→ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 331→ }; 332→ name = Debug; 333→ }; 334→ C001R /* Release */ = { 335→ isa = XCBuildConfiguration; 336→ buildSettings = { 337→ ALWAYS_SEARCH_USER_PATHS = NO; 338→ CLANG_ANALYZER_NONNULL = YES; 339→ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 340→ CLANG_ENABLE_MODULES = YES; 341→ CLANG_ENABLE_OBJC_ARC = YES; 342→ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 343→ CLANG_WARN_BOOL_CONVERSION = YES; 344→ CLANG_WARN_COMMA = YES; 345→ CLANG_WARN_CONSTANT_CONVERSION = YES; 346→ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 347→ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 348→ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 349→ CLANG_WARN_EMPTY_BODY = YES; 350→ CLANG_WARN_ENUM_CONVERSION = YES; 351→ CLANG_WARN_INFINITE_RECURSION = YES; 352→ CLANG_WARN_INT_CONVERSION = YES; 353→ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 354→ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 355→ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 356→ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 357→ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 358→ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 359→ CLANG_WARN_STRICT_PROTOTYPES = YES; 360→ CLANG_WARN_SUSPICIOUS_MOVE = YES; 361→ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 362→ CLANG_WARN_UNREACHABLE_CODE = YES; 363→ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 364→ COPY_PHASE_STRIP = NO; 365→ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 366→ ENABLE_NS_ASSERTIONS = NO; 367→ ENABLE_STRICT_OBJC_MSGSEND = YES; 368→ GCC_C_LANGUAGE_STANDARD = gnu17; 369→ GCC_NO_COMMON_BLOCKS = YES; 370→ GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 371→ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 372→ GCC_WARN_UNDECLARED_SELECTOR = YES; 373→ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 374→ GCC_WARN_UNUSED_FUNCTION = YES; 375→ GCC_WARN_UNUSED_VARIABLE = YES; 376→ MACOSX_DEPLOYMENT_TARGET = 14.0; 377→ MTL_ENABLE_DEBUG_INFO = NO; 378→ MTL_FAST_MATH = YES; 379→ SDKROOT = macosx; 380→ SWIFT_COMPILATION_MODE = wholemodule; 381→ SWIFT_OPTIMIZATION_LEVEL = "-O"; 382→ }; 383→ name = Release; 384→ }; 385→ C003D /* Debug */ = { 386→ isa = XCBuildConfiguration; 387→ buildSettings = { 388→ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 389→ CODE_SIGN_ENTITLEMENTS = ""; 390→ CODE_SIGN_STYLE = Automatic; 391→ COMBINE_HIDPI_IMAGES = YES; 392→ CURRENT_PROJECT_VERSION = 1; 393→ DEVELOPMENT_TEAM = ""; 394→ ENABLE_HARDENED_RUNTIME = YES; 395→ GENERATE_INFOPLIST_FILE = YES; 396→ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; 397→ INFOPLIST_KEY_NSHumanReadableCopyright = ""; 398→ INFOPLIST_KEY_NSMainStoryboardFile = ""; 399→ INFOPLIST_KEY_NSPrincipalClass = NSApplication; 400→ LD_RUNPATH_SEARCH_PATHS = ( 401→ "$(inherited)", 402→ "@executable_path/../Frameworks", 403→ ); 404→ MARKETING_VERSION = 1.0; 405→ PRODUCT_BUNDLE_IDENTIFIER = com.neog.BCBDashboard; 406→ PRODUCT_NAME = "$(TARGET_NAME)"; 407→ SWIFT_EMIT_LOC_STRINGS = YES; 408→ SWIFT_VERSION = 5.0; 409→ }; 410→ name = Debug; 411→ }; 412→ C003R /* Release */ = { 413→ isa = XCBuildConfiguration; 414→ buildSettings = { 415→ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 416→ CODE_SIGN_ENTITLEMENTS = ""; 417→ CODE_SIGN_STYLE = Automatic; 418→ COMBINE_HIDPI_IMAGES = YES; 419→ CURRENT_PROJECT_VERSION = 1; 420→ DEVELOPMENT_TEAM = ""; 421→ ENABLE_HARDENED_RUNTIME = YES; 422→ GENERATE_INFOPLIST_FILE = YES; 423→ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance"; 424→ INFOPLIST_KEY_NSHumanReadableCopyright = ""; 425→ INFOPLIST_KEY_NSMainStoryboardFile = ""; 426→ INFOPLIST_KEY_NSPrincipalClass = NSApplication; 427→ LD_RUNPATH_SEARCH_PATHS = ( 428→ "$(inherited)", 429→ "@executable_path/../Frameworks", 430→ ); 431→ MARKETING_VERSION = 1.0; 432→ PRODUCT_BUNDLE_IDENTIFIER = com.neog.BCBDashboard; 433→ PRODUCT_NAME = "$(TARGET_NAME)"; 434→ SWIFT_EMIT_LOC_STRINGS = YES; 435→ SWIFT_VERSION = 5.0; 436→ }; 437→ name = Release; 438→ }; 439→/* End XCBuildConfiguration section */ 440→ 441→/* Begin XCConfigurationList section */ 442→ C001 /* Build configuration list for PBXProject "BCBDashboard" */ = { 443→ isa = XCConfigurationList; 444→ buildConfigurations = ( 445→ C001D /* Debug */, 446→ C001R /* Release */, 447→ ); 448→ defaultConfigurationIsVisible = 0; 449→ defaultConfigurationName = Release; 450→ }; 451→ C003 /* Build configuration list for PBXNativeTarget "BCBDashboard" */ = { 452→ isa = XCConfigurationList; 453→ buildConfigurations = ( 454→ C003D /* Debug */, 455→ C003R /* Release */, 456→ ); 457→ defaultConfigurationIsVisible = 0; 458→ defaultConfigurationName = Release; 459→ }; 460→/* End XCConfigurationList section */ 461→ }; 462→ rootObject = P001 /* Project object */; 463→} 464→ Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.