github.com/psiphon-Labs/psiphon-tunnel-core@v2.0.28+incompatible/MobileLibrary/iOS/PsiphonTunnel/PsiphonTunnel.xcodeproj/project.pbxproj (about)

     1  // !$*UTF8*$!
     2  {
     3  	archiveVersion = 1;
     4  	classes = {
     5  	};
     6  	objectVersion = 52;
     7  	objects = {
     8  
     9  /* Begin PBXBuildFile section */
    10  		29EA5B41281B01640092BA56 /* Psi.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 29EA5B3E281B00EE0092BA56 /* Psi.xcframework */; };
    11  		4E89F7FE1E2ED3CE00005F4C /* LookupIPv6.c in Sources */ = {isa = PBXBuildFile; fileRef = 4E89F7FC1E2ED3CE00005F4C /* LookupIPv6.c */; };
    12  		4E89F7FF1E2ED3CE00005F4C /* LookupIPv6.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E89F7FD1E2ED3CE00005F4C /* LookupIPv6.h */; };
    13  		52BE676825B8A615002DB553 /* PsiphonClientPlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 52BE676725B8A615002DB553 /* PsiphonClientPlatform.h */; settings = {ATTRIBUTES = (Public, ); }; };
    14  		52BE676D25B8A635002DB553 /* PsiphonClientPlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 52BE676B25B8A635002DB553 /* PsiphonClientPlatform.m */; };
    15  		662659271DD270E900872F6C /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 662659251DD270E900872F6C /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; };
    16  		662659281DD270E900872F6C /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 662659261DD270E900872F6C /* Reachability.m */; };
    17  		669541B71EF9FECF0038E125 /* build-git-commit.txt in Resources */ = {isa = PBXBuildFile; fileRef = 669541B61EF9FECF0038E125 /* build-git-commit.txt */; };
    18  		66BAD3351E525FBC00CD06DE /* JailbreakCheck.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BAD3331E525FBC00CD06DE /* JailbreakCheck.h */; settings = {ATTRIBUTES = (Public, ); }; };
    19  		66BAD3361E525FBC00CD06DE /* JailbreakCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BAD3341E525FBC00CD06DE /* JailbreakCheck.m */; };
    20  		66BDB02A1DA6BFCC0079384C /* PsiphonTunnel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66BDB0201DA6BFCC0079384C /* PsiphonTunnel.framework */; };
    21  		66BDB02F1DA6BFCC0079384C /* PsiphonTunnelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB02E1DA6BFCC0079384C /* PsiphonTunnelTests.m */; };
    22  		66BDB0311DA6BFCC0079384C /* PsiphonTunnel.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0231DA6BFCC0079384C /* PsiphonTunnel.h */; settings = {ATTRIBUTES = (Public, ); }; };
    23  		66BDB0441DA6C7DD0079384C /* PsiphonTunnel.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0431DA6C7DD0079384C /* PsiphonTunnel.m */; };
    24  		66BDB05A1DC26CCC0079384C /* SBJson4.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB04B1DC26CCC0079384C /* SBJson4.h */; };
    25  		66BDB05B1DC26CCC0079384C /* SBJson4Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB04C1DC26CCC0079384C /* SBJson4Parser.h */; };
    26  		66BDB05C1DC26CCC0079384C /* SBJson4Parser.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB04D1DC26CCC0079384C /* SBJson4Parser.m */; };
    27  		66BDB05D1DC26CCC0079384C /* SBJson4StreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB04E1DC26CCC0079384C /* SBJson4StreamParser.h */; };
    28  		66BDB05E1DC26CCC0079384C /* SBJson4StreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB04F1DC26CCC0079384C /* SBJson4StreamParser.m */; };
    29  		66BDB05F1DC26CCC0079384C /* SBJson4StreamParserState.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0501DC26CCC0079384C /* SBJson4StreamParserState.h */; };
    30  		66BDB0601DC26CCC0079384C /* SBJson4StreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0511DC26CCC0079384C /* SBJson4StreamParserState.m */; };
    31  		66BDB0611DC26CCC0079384C /* SBJson4StreamTokeniser.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0521DC26CCC0079384C /* SBJson4StreamTokeniser.h */; };
    32  		66BDB0621DC26CCC0079384C /* SBJson4StreamTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0531DC26CCC0079384C /* SBJson4StreamTokeniser.m */; };
    33  		66BDB0631DC26CCC0079384C /* SBJson4StreamWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0541DC26CCC0079384C /* SBJson4StreamWriter.h */; };
    34  		66BDB0641DC26CCC0079384C /* SBJson4StreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0551DC26CCC0079384C /* SBJson4StreamWriter.m */; };
    35  		66BDB0651DC26CCC0079384C /* SBJson4StreamWriterState.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0561DC26CCC0079384C /* SBJson4StreamWriterState.h */; };
    36  		66BDB0661DC26CCC0079384C /* SBJson4StreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0571DC26CCC0079384C /* SBJson4StreamWriterState.m */; };
    37  		66BDB0671DC26CCC0079384C /* SBJson4Writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 66BDB0581DC26CCC0079384C /* SBJson4Writer.h */; };
    38  		66BDB0681DC26CCC0079384C /* SBJson4Writer.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BDB0591DC26CCC0079384C /* SBJson4Writer.m */; };
    39  		CE3D1DA523906003009A4AF6 /* Backups.h in Headers */ = {isa = PBXBuildFile; fileRef = CE3D1DA323906003009A4AF6 /* Backups.h */; };
    40  		CE3D1DA623906003009A4AF6 /* Backups.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3D1DA423906003009A4AF6 /* Backups.m */; };
    41  		CE676F2525FA818200F7DB13 /* ReachabilityProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = CE676F2325FA818200F7DB13 /* ReachabilityProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; };
    42  		CE676F2A25FA82DA00F7DB13 /* DefaultRouteMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = CE676F2825FA82DA00F7DB13 /* DefaultRouteMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; };
    43  		CE676F2B25FA82DA00F7DB13 /* DefaultRouteMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = CE676F2925FA82DA00F7DB13 /* DefaultRouteMonitor.m */; };
    44  		CE676F2F25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = CE676F2D25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.h */; };
    45  		CE676F3025FA830C00F7DB13 /* Reachability+ReachabilityProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = CE676F2E25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.m */; };
    46  		CE9549F525C8AAEE00F9AF86 /* Redactor.h in Headers */ = {isa = PBXBuildFile; fileRef = CE9549F325C8AAEE00F9AF86 /* Redactor.h */; };
    47  		CE9549F625C8AAEE00F9AF86 /* Redactor.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9549F425C8AAEE00F9AF86 /* Redactor.m */; };
    48  		CEC229FC24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.h in Headers */ = {isa = PBXBuildFile; fileRef = CEC229FA24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.h */; };
    49  		CEC229FD24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC229FB24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.m */; };
    50  		CECF01442538D34100CD3E5C /* IPv6Synthesizer.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF01422538D34100CD3E5C /* IPv6Synthesizer.h */; };
    51  		CECF01452538D34100CD3E5C /* IPv6Synthesizer.m in Sources */ = {isa = PBXBuildFile; fileRef = CECF01432538D34100CD3E5C /* IPv6Synthesizer.m */; };
    52  		CECF01492538DD0B00CD3E5C /* PsiphonProviderNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF01472538DD0B00CD3E5C /* PsiphonProviderNetwork.h */; };
    53  		CECF014A2538DD0B00CD3E5C /* PsiphonProviderNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = CECF01482538DD0B00CD3E5C /* PsiphonProviderNetwork.m */; };
    54  		CECF01502538E14B00CD3E5C /* NetworkID.h in Headers */ = {isa = PBXBuildFile; fileRef = CECF014E2538E14B00CD3E5C /* NetworkID.h */; };
    55  		CECF01512538E14B00CD3E5C /* NetworkID.m in Sources */ = {isa = PBXBuildFile; fileRef = CECF014F2538E14B00CD3E5C /* NetworkID.m */; };
    56  		CEDBA51225B7737C007685E2 /* NetworkInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = CEDBA51025B7737C007685E2 /* NetworkInterface.h */; };
    57  		CEDBA51325B7737C007685E2 /* NetworkInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDBA51125B7737C007685E2 /* NetworkInterface.m */; };
    58  		CEDE547924EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.h in Headers */ = {isa = PBXBuildFile; fileRef = CEDE547724EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.h */; };
    59  		CEDE547A24EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDE547824EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.m */; };
    60  		CEFC764225B1F358003A2A52 /* Network.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEFC764125B1F358003A2A52 /* Network.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
    61  		EFED7EBF1F587F6E0078980F /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = EFED7EBE1F587F6E0078980F /* libresolv.tbd */; };
    62  /* End PBXBuildFile section */
    63  
    64  /* Begin PBXContainerItemProxy section */
    65  		66BDB02B1DA6BFCC0079384C /* PBXContainerItemProxy */ = {
    66  			isa = PBXContainerItemProxy;
    67  			containerPortal = 66BDB0171DA6BFCC0079384C /* Project object */;
    68  			proxyType = 1;
    69  			remoteGlobalIDString = 66BDB01F1DA6BFCC0079384C;
    70  			remoteInfo = PsiphonTunnel;
    71  		};
    72  /* End PBXContainerItemProxy section */
    73  
    74  /* Begin PBXFileReference section */
    75  		29EA5B3E281B00EE0092BA56 /* Psi.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Psi.xcframework; path = PsiphonTunnel/Psi.xcframework; sourceTree = "<group>"; };
    76  		4E89F7FC1E2ED3CE00005F4C /* LookupIPv6.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LookupIPv6.c; sourceTree = "<group>"; };
    77  		4E89F7FD1E2ED3CE00005F4C /* LookupIPv6.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LookupIPv6.h; sourceTree = "<group>"; };
    78  		52BE676725B8A615002DB553 /* PsiphonClientPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PsiphonClientPlatform.h; sourceTree = "<group>"; };
    79  		52BE676B25B8A635002DB553 /* PsiphonClientPlatform.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PsiphonClientPlatform.m; sourceTree = "<group>"; };
    80  		662659251DD270E900872F6C /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
    81  		662659261DD270E900872F6C /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
    82  		6685BDD81E300AC200F0E414 /* strip-frameworks.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = "strip-frameworks.sh"; path = "scripts/strip-frameworks.sh"; sourceTree = "<group>"; };
    83  		669541B61EF9FECF0038E125 /* build-git-commit.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "build-git-commit.txt"; sourceTree = "<group>"; };
    84  		66BAD3331E525FBC00CD06DE /* JailbreakCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JailbreakCheck.h; sourceTree = "<group>"; };
    85  		66BAD3341E525FBC00CD06DE /* JailbreakCheck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JailbreakCheck.m; sourceTree = "<group>"; };
    86  		66BDB0201DA6BFCC0079384C /* PsiphonTunnel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PsiphonTunnel.framework; sourceTree = BUILT_PRODUCTS_DIR; };
    87  		66BDB0231DA6BFCC0079384C /* PsiphonTunnel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PsiphonTunnel.h; sourceTree = "<group>"; };
    88  		66BDB0241DA6BFCC0079384C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
    89  		66BDB0291DA6BFCC0079384C /* PsiphonTunnelTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PsiphonTunnelTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
    90  		66BDB02E1DA6BFCC0079384C /* PsiphonTunnelTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PsiphonTunnelTests.m; sourceTree = "<group>"; };
    91  		66BDB0301DA6BFCC0079384C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
    92  		66BDB0431DA6C7DD0079384C /* PsiphonTunnel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PsiphonTunnel.m; sourceTree = "<group>"; };
    93  		66BDB04B1DC26CCC0079384C /* SBJson4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4.h; sourceTree = "<group>"; };
    94  		66BDB04C1DC26CCC0079384C /* SBJson4Parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4Parser.h; sourceTree = "<group>"; };
    95  		66BDB04D1DC26CCC0079384C /* SBJson4Parser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4Parser.m; sourceTree = "<group>"; };
    96  		66BDB04E1DC26CCC0079384C /* SBJson4StreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4StreamParser.h; sourceTree = "<group>"; };
    97  		66BDB04F1DC26CCC0079384C /* SBJson4StreamParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4StreamParser.m; sourceTree = "<group>"; };
    98  		66BDB0501DC26CCC0079384C /* SBJson4StreamParserState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4StreamParserState.h; sourceTree = "<group>"; };
    99  		66BDB0511DC26CCC0079384C /* SBJson4StreamParserState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4StreamParserState.m; sourceTree = "<group>"; };
   100  		66BDB0521DC26CCC0079384C /* SBJson4StreamTokeniser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4StreamTokeniser.h; sourceTree = "<group>"; };
   101  		66BDB0531DC26CCC0079384C /* SBJson4StreamTokeniser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4StreamTokeniser.m; sourceTree = "<group>"; };
   102  		66BDB0541DC26CCC0079384C /* SBJson4StreamWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4StreamWriter.h; sourceTree = "<group>"; };
   103  		66BDB0551DC26CCC0079384C /* SBJson4StreamWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4StreamWriter.m; sourceTree = "<group>"; };
   104  		66BDB0561DC26CCC0079384C /* SBJson4StreamWriterState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4StreamWriterState.h; sourceTree = "<group>"; };
   105  		66BDB0571DC26CCC0079384C /* SBJson4StreamWriterState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4StreamWriterState.m; sourceTree = "<group>"; };
   106  		66BDB0581DC26CCC0079384C /* SBJson4Writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson4Writer.h; sourceTree = "<group>"; };
   107  		66BDB0591DC26CCC0079384C /* SBJson4Writer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJson4Writer.m; sourceTree = "<group>"; };
   108  		CE3D1DA323906003009A4AF6 /* Backups.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Backups.h; sourceTree = "<group>"; };
   109  		CE3D1DA423906003009A4AF6 /* Backups.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Backups.m; sourceTree = "<group>"; };
   110  		CE676F2325FA818200F7DB13 /* ReachabilityProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReachabilityProtocol.h; sourceTree = "<group>"; };
   111  		CE676F2825FA82DA00F7DB13 /* DefaultRouteMonitor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DefaultRouteMonitor.h; sourceTree = "<group>"; };
   112  		CE676F2925FA82DA00F7DB13 /* DefaultRouteMonitor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DefaultRouteMonitor.m; sourceTree = "<group>"; };
   113  		CE676F2D25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Reachability+ReachabilityProtocol.h"; sourceTree = "<group>"; };
   114  		CE676F2E25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Reachability+ReachabilityProtocol.m"; sourceTree = "<group>"; };
   115  		CE9549F325C8AAEE00F9AF86 /* Redactor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Redactor.h; sourceTree = "<group>"; };
   116  		CE9549F425C8AAEE00F9AF86 /* Redactor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Redactor.m; sourceTree = "<group>"; };
   117  		CEC229FA24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PsiphonProviderNoticeHandlerShim.h; sourceTree = "<group>"; };
   118  		CEC229FB24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PsiphonProviderNoticeHandlerShim.m; sourceTree = "<group>"; };
   119  		CECF01422538D34100CD3E5C /* IPv6Synthesizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IPv6Synthesizer.h; sourceTree = "<group>"; };
   120  		CECF01432538D34100CD3E5C /* IPv6Synthesizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IPv6Synthesizer.m; sourceTree = "<group>"; };
   121  		CECF01472538DD0B00CD3E5C /* PsiphonProviderNetwork.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PsiphonProviderNetwork.h; sourceTree = "<group>"; };
   122  		CECF01482538DD0B00CD3E5C /* PsiphonProviderNetwork.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PsiphonProviderNetwork.m; sourceTree = "<group>"; };
   123  		CECF014E2538E14B00CD3E5C /* NetworkID.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkID.h; sourceTree = "<group>"; };
   124  		CECF014F2538E14B00CD3E5C /* NetworkID.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetworkID.m; sourceTree = "<group>"; };
   125  		CEDBA51025B7737C007685E2 /* NetworkInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkInterface.h; sourceTree = "<group>"; };
   126  		CEDBA51125B7737C007685E2 /* NetworkInterface.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetworkInterface.m; sourceTree = "<group>"; };
   127  		CEDE547724EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PsiphonProviderFeedbackHandlerShim.h; path = ../PsiphonProviderFeedbackHandlerShim.h; sourceTree = "<group>"; };
   128  		CEDE547824EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PsiphonProviderFeedbackHandlerShim.m; path = ../PsiphonProviderFeedbackHandlerShim.m; sourceTree = "<group>"; };
   129  		CEFC764125B1F358003A2A52 /* Network.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Network.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Network.framework; sourceTree = DEVELOPER_DIR; };
   130  		EFED7EBE1F587F6E0078980F /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
   131  /* End PBXFileReference section */
   132  
   133  /* Begin PBXFrameworksBuildPhase section */
   134  		66BDB01C1DA6BFCC0079384C /* Frameworks */ = {
   135  			isa = PBXFrameworksBuildPhase;
   136  			buildActionMask = 2147483647;
   137  			files = (
   138  				EFED7EBF1F587F6E0078980F /* libresolv.tbd in Frameworks */,
   139  				29EA5B41281B01640092BA56 /* Psi.xcframework in Frameworks */,
   140  				CEFC764225B1F358003A2A52 /* Network.framework in Frameworks */,
   141  			);
   142  			runOnlyForDeploymentPostprocessing = 0;
   143  		};
   144  		66BDB0261DA6BFCC0079384C /* Frameworks */ = {
   145  			isa = PBXFrameworksBuildPhase;
   146  			buildActionMask = 2147483647;
   147  			files = (
   148  				66BDB02A1DA6BFCC0079384C /* PsiphonTunnel.framework in Frameworks */,
   149  			);
   150  			runOnlyForDeploymentPostprocessing = 0;
   151  		};
   152  /* End PBXFrameworksBuildPhase section */
   153  
   154  /* Begin PBXGroup section */
   155  		662659241DD270E900872F6C /* Network */ = {
   156  			isa = PBXGroup;
   157  			children = (
   158  				CECF01542538FC5900CD3E5C /* Reachability */,
   159  				4E89F7FC1E2ED3CE00005F4C /* LookupIPv6.c */,
   160  				4E89F7FD1E2ED3CE00005F4C /* LookupIPv6.h */,
   161  				CECF01422538D34100CD3E5C /* IPv6Synthesizer.h */,
   162  				CECF01432538D34100CD3E5C /* IPv6Synthesizer.m */,
   163  				CECF014E2538E14B00CD3E5C /* NetworkID.h */,
   164  				CECF014F2538E14B00CD3E5C /* NetworkID.m */,
   165  				CEDBA51025B7737C007685E2 /* NetworkInterface.h */,
   166  				CEDBA51125B7737C007685E2 /* NetworkInterface.m */,
   167  			);
   168  			path = Network;
   169  			sourceTree = "<group>";
   170  		};
   171  		66BAD3321E525FBC00CD06DE /* JailbreakCheck */ = {
   172  			isa = PBXGroup;
   173  			children = (
   174  				66BAD3331E525FBC00CD06DE /* JailbreakCheck.h */,
   175  				66BAD3341E525FBC00CD06DE /* JailbreakCheck.m */,
   176  			);
   177  			path = JailbreakCheck;
   178  			sourceTree = "<group>";
   179  		};
   180  		66BDB0161DA6BFCC0079384C = {
   181  			isa = PBXGroup;
   182  			children = (
   183  				66BDB03C1DA6C7940079384C /* Resources */,
   184  				66BDB0221DA6BFCC0079384C /* PsiphonTunnel */,
   185  				66BDB02D1DA6BFCC0079384C /* PsiphonTunnelTests */,
   186  				66BDB0211DA6BFCC0079384C /* Products */,
   187  				EFED7EBD1F587F6E0078980F /* Frameworks */,
   188  			);
   189  			sourceTree = "<group>";
   190  		};
   191  		66BDB0211DA6BFCC0079384C /* Products */ = {
   192  			isa = PBXGroup;
   193  			children = (
   194  				66BDB0201DA6BFCC0079384C /* PsiphonTunnel.framework */,
   195  				66BDB0291DA6BFCC0079384C /* PsiphonTunnelTests.xctest */,
   196  			);
   197  			name = Products;
   198  			sourceTree = "<group>";
   199  		};
   200  		66BDB0221DA6BFCC0079384C /* PsiphonTunnel */ = {
   201  			isa = PBXGroup;
   202  			children = (
   203  				66BAD3321E525FBC00CD06DE /* JailbreakCheck */,
   204  				66BDB04A1DC26CCC0079384C /* json-framework */,
   205  				CEDE547B24EBF5A00053566E /* Psiphon */,
   206  				662659241DD270E900872F6C /* Network */,
   207  				CEC22A0624F0689000534D04 /* Utils */,
   208  				66BDB0231DA6BFCC0079384C /* PsiphonTunnel.h */,
   209  				66BDB0431DA6C7DD0079384C /* PsiphonTunnel.m */,
   210  				66BDB0241DA6BFCC0079384C /* Info.plist */,
   211  			);
   212  			path = PsiphonTunnel;
   213  			sourceTree = "<group>";
   214  		};
   215  		66BDB02D1DA6BFCC0079384C /* PsiphonTunnelTests */ = {
   216  			isa = PBXGroup;
   217  			children = (
   218  				66BDB02E1DA6BFCC0079384C /* PsiphonTunnelTests.m */,
   219  				66BDB0301DA6BFCC0079384C /* Info.plist */,
   220  			);
   221  			path = PsiphonTunnelTests;
   222  			sourceTree = "<group>";
   223  		};
   224  		66BDB03C1DA6C7940079384C /* Resources */ = {
   225  			isa = PBXGroup;
   226  			children = (
   227  				669541B61EF9FECF0038E125 /* build-git-commit.txt */,
   228  				6685BDD81E300AC200F0E414 /* strip-frameworks.sh */,
   229  			);
   230  			name = Resources;
   231  			sourceTree = "<group>";
   232  		};
   233  		66BDB04A1DC26CCC0079384C /* json-framework */ = {
   234  			isa = PBXGroup;
   235  			children = (
   236  				66BDB04B1DC26CCC0079384C /* SBJson4.h */,
   237  				66BDB04C1DC26CCC0079384C /* SBJson4Parser.h */,
   238  				66BDB04D1DC26CCC0079384C /* SBJson4Parser.m */,
   239  				66BDB04E1DC26CCC0079384C /* SBJson4StreamParser.h */,
   240  				66BDB04F1DC26CCC0079384C /* SBJson4StreamParser.m */,
   241  				66BDB0501DC26CCC0079384C /* SBJson4StreamParserState.h */,
   242  				66BDB0511DC26CCC0079384C /* SBJson4StreamParserState.m */,
   243  				66BDB0521DC26CCC0079384C /* SBJson4StreamTokeniser.h */,
   244  				66BDB0531DC26CCC0079384C /* SBJson4StreamTokeniser.m */,
   245  				66BDB0541DC26CCC0079384C /* SBJson4StreamWriter.h */,
   246  				66BDB0551DC26CCC0079384C /* SBJson4StreamWriter.m */,
   247  				66BDB0561DC26CCC0079384C /* SBJson4StreamWriterState.h */,
   248  				66BDB0571DC26CCC0079384C /* SBJson4StreamWriterState.m */,
   249  				66BDB0581DC26CCC0079384C /* SBJson4Writer.h */,
   250  				66BDB0591DC26CCC0079384C /* SBJson4Writer.m */,
   251  			);
   252  			path = "json-framework";
   253  			sourceTree = "<group>";
   254  		};
   255  		CEC22A0624F0689000534D04 /* Utils */ = {
   256  			isa = PBXGroup;
   257  			children = (
   258  				CE3D1DA323906003009A4AF6 /* Backups.h */,
   259  				CE3D1DA423906003009A4AF6 /* Backups.m */,
   260  				52BE676725B8A615002DB553 /* PsiphonClientPlatform.h */,
   261  				52BE676B25B8A635002DB553 /* PsiphonClientPlatform.m */,
   262  				CE9549F325C8AAEE00F9AF86 /* Redactor.h */,
   263  				CE9549F425C8AAEE00F9AF86 /* Redactor.m */,
   264  			);
   265  			path = Utils;
   266  			sourceTree = "<group>";
   267  		};
   268  		CECF01542538FC5900CD3E5C /* Reachability */ = {
   269  			isa = PBXGroup;
   270  			children = (
   271  				662659251DD270E900872F6C /* Reachability.h */,
   272  				662659261DD270E900872F6C /* Reachability.m */,
   273  				CE676F2325FA818200F7DB13 /* ReachabilityProtocol.h */,
   274  				CE676F2825FA82DA00F7DB13 /* DefaultRouteMonitor.h */,
   275  				CE676F2925FA82DA00F7DB13 /* DefaultRouteMonitor.m */,
   276  				CE676F2D25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.h */,
   277  				CE676F2E25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.m */,
   278  			);
   279  			path = Reachability;
   280  			sourceTree = "<group>";
   281  		};
   282  		CEDE547B24EBF5A00053566E /* Psiphon */ = {
   283  			isa = PBXGroup;
   284  			children = (
   285  				CEDE547724EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.h */,
   286  				CEDE547824EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.m */,
   287  				CEC229FA24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.h */,
   288  				CEC229FB24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.m */,
   289  				CECF01472538DD0B00CD3E5C /* PsiphonProviderNetwork.h */,
   290  				CECF01482538DD0B00CD3E5C /* PsiphonProviderNetwork.m */,
   291  			);
   292  			path = Psiphon;
   293  			sourceTree = "<group>";
   294  		};
   295  		EFED7EBD1F587F6E0078980F /* Frameworks */ = {
   296  			isa = PBXGroup;
   297  			children = (
   298  				29EA5B3E281B00EE0092BA56 /* Psi.xcframework */,
   299  				CEFC764125B1F358003A2A52 /* Network.framework */,
   300  				EFED7EBE1F587F6E0078980F /* libresolv.tbd */,
   301  			);
   302  			name = Frameworks;
   303  			sourceTree = "<group>";
   304  		};
   305  /* End PBXGroup section */
   306  
   307  /* Begin PBXHeadersBuildPhase section */
   308  		66BDB01D1DA6BFCC0079384C /* Headers */ = {
   309  			isa = PBXHeadersBuildPhase;
   310  			buildActionMask = 2147483647;
   311  			files = (
   312  				CE3D1DA523906003009A4AF6 /* Backups.h in Headers */,
   313  				66BAD3351E525FBC00CD06DE /* JailbreakCheck.h in Headers */,
   314  				4E89F7FF1E2ED3CE00005F4C /* LookupIPv6.h in Headers */,
   315  				CE676F2F25FA830C00F7DB13 /* Reachability+ReachabilityProtocol.h in Headers */,
   316  				CE676F2A25FA82DA00F7DB13 /* DefaultRouteMonitor.h in Headers */,
   317  				662659271DD270E900872F6C /* Reachability.h in Headers */,
   318  				66BDB05D1DC26CCC0079384C /* SBJson4StreamParser.h in Headers */,
   319  				52BE676825B8A615002DB553 /* PsiphonClientPlatform.h in Headers */,
   320  				CECF01492538DD0B00CD3E5C /* PsiphonProviderNetwork.h in Headers */,
   321  				66BDB05F1DC26CCC0079384C /* SBJson4StreamParserState.h in Headers */,
   322  				66BDB0311DA6BFCC0079384C /* PsiphonTunnel.h in Headers */,
   323  				CE9549F525C8AAEE00F9AF86 /* Redactor.h in Headers */,
   324  				66BDB0651DC26CCC0079384C /* SBJson4StreamWriterState.h in Headers */,
   325  				CECF01502538E14B00CD3E5C /* NetworkID.h in Headers */,
   326  				66BDB05B1DC26CCC0079384C /* SBJson4Parser.h in Headers */,
   327  				CEDBA51225B7737C007685E2 /* NetworkInterface.h in Headers */,
   328  				CEDE547924EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.h in Headers */,
   329  				66BDB05A1DC26CCC0079384C /* SBJson4.h in Headers */,
   330  				66BDB0611DC26CCC0079384C /* SBJson4StreamTokeniser.h in Headers */,
   331  				CEC229FC24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.h in Headers */,
   332  				66BDB0631DC26CCC0079384C /* SBJson4StreamWriter.h in Headers */,
   333  				CECF01442538D34100CD3E5C /* IPv6Synthesizer.h in Headers */,
   334  				66BDB0671DC26CCC0079384C /* SBJson4Writer.h in Headers */,
   335  				CE676F2525FA818200F7DB13 /* ReachabilityProtocol.h in Headers */,
   336  			);
   337  			runOnlyForDeploymentPostprocessing = 0;
   338  		};
   339  /* End PBXHeadersBuildPhase section */
   340  
   341  /* Begin PBXNativeTarget section */
   342  		66BDB01F1DA6BFCC0079384C /* PsiphonTunnel */ = {
   343  			isa = PBXNativeTarget;
   344  			buildConfigurationList = 66BDB0341DA6BFCC0079384C /* Build configuration list for PBXNativeTarget "PsiphonTunnel" */;
   345  			buildPhases = (
   346  				66BDB01B1DA6BFCC0079384C /* Sources */,
   347  				66BDB01C1DA6BFCC0079384C /* Frameworks */,
   348  				66BDB01D1DA6BFCC0079384C /* Headers */,
   349  				669541B51EF9FDB60038E125 /* ShellScript */,
   350  				66BDB01E1DA6BFCC0079384C /* Resources */,
   351  			);
   352  			buildRules = (
   353  			);
   354  			dependencies = (
   355  			);
   356  			name = PsiphonTunnel;
   357  			productName = PsiphonTunnel;
   358  			productReference = 66BDB0201DA6BFCC0079384C /* PsiphonTunnel.framework */;
   359  			productType = "com.apple.product-type.framework";
   360  		};
   361  		66BDB0281DA6BFCC0079384C /* PsiphonTunnelTests */ = {
   362  			isa = PBXNativeTarget;
   363  			buildConfigurationList = 66BDB0371DA6BFCC0079384C /* Build configuration list for PBXNativeTarget "PsiphonTunnelTests" */;
   364  			buildPhases = (
   365  				66BDB0251DA6BFCC0079384C /* Sources */,
   366  				66BDB0261DA6BFCC0079384C /* Frameworks */,
   367  				66BDB0271DA6BFCC0079384C /* Resources */,
   368  			);
   369  			buildRules = (
   370  			);
   371  			dependencies = (
   372  				66BDB02C1DA6BFCC0079384C /* PBXTargetDependency */,
   373  			);
   374  			name = PsiphonTunnelTests;
   375  			productName = PsiphonTunnelTests;
   376  			productReference = 66BDB0291DA6BFCC0079384C /* PsiphonTunnelTests.xctest */;
   377  			productType = "com.apple.product-type.bundle.unit-test";
   378  		};
   379  /* End PBXNativeTarget section */
   380  
   381  /* Begin PBXProject section */
   382  		66BDB0171DA6BFCC0079384C /* Project object */ = {
   383  			isa = PBXProject;
   384  			attributes = {
   385  				LastUpgradeCheck = 0820;
   386  				ORGANIZATIONNAME = "Psiphon Inc.";
   387  				TargetAttributes = {
   388  					66BDB01F1DA6BFCC0079384C = {
   389  						CreatedOnToolsVersion = 8.0;
   390  						DevelopmentTeam = Q6HLNEX92A;
   391  						ProvisioningStyle = Automatic;
   392  					};
   393  					66BDB0281DA6BFCC0079384C = {
   394  						CreatedOnToolsVersion = 8.0;
   395  						DevelopmentTeam = Q6HLNEX92A;
   396  						ProvisioningStyle = Automatic;
   397  					};
   398  				};
   399  			};
   400  			buildConfigurationList = 66BDB01A1DA6BFCC0079384C /* Build configuration list for PBXProject "PsiphonTunnel" */;
   401  			compatibilityVersion = "Xcode 3.2";
   402  			developmentRegion = English;
   403  			hasScannedForEncodings = 0;
   404  			knownRegions = (
   405  				English,
   406  				en,
   407  			);
   408  			mainGroup = 66BDB0161DA6BFCC0079384C;
   409  			productRefGroup = 66BDB0211DA6BFCC0079384C /* Products */;
   410  			projectDirPath = "";
   411  			projectRoot = "";
   412  			targets = (
   413  				66BDB01F1DA6BFCC0079384C /* PsiphonTunnel */,
   414  				66BDB0281DA6BFCC0079384C /* PsiphonTunnelTests */,
   415  			);
   416  		};
   417  /* End PBXProject section */
   418  
   419  /* Begin PBXResourcesBuildPhase section */
   420  		66BDB01E1DA6BFCC0079384C /* Resources */ = {
   421  			isa = PBXResourcesBuildPhase;
   422  			buildActionMask = 2147483647;
   423  			files = (
   424  				669541B71EF9FECF0038E125 /* build-git-commit.txt in Resources */,
   425  			);
   426  			runOnlyForDeploymentPostprocessing = 0;
   427  		};
   428  		66BDB0271DA6BFCC0079384C /* Resources */ = {
   429  			isa = PBXResourcesBuildPhase;
   430  			buildActionMask = 2147483647;
   431  			files = (
   432  			);
   433  			runOnlyForDeploymentPostprocessing = 0;
   434  		};
   435  /* End PBXResourcesBuildPhase section */
   436  
   437  /* Begin PBXShellScriptBuildPhase section */
   438  		669541B51EF9FDB60038E125 /* ShellScript */ = {
   439  			isa = PBXShellScriptBuildPhase;
   440  			buildActionMask = 2147483647;
   441  			files = (
   442  			);
   443  			inputPaths = (
   444  			);
   445  			outputPaths = (
   446  			);
   447  			runOnlyForDeploymentPostprocessing = 0;
   448  			shellPath = /bin/sh;
   449  			shellScript = "git rev-parse --verify HEAD > build-git-commit.txt\n";
   450  		};
   451  /* End PBXShellScriptBuildPhase section */
   452  
   453  /* Begin PBXSourcesBuildPhase section */
   454  		66BDB01B1DA6BFCC0079384C /* Sources */ = {
   455  			isa = PBXSourcesBuildPhase;
   456  			buildActionMask = 2147483647;
   457  			files = (
   458  				66BDB05E1DC26CCC0079384C /* SBJson4StreamParser.m in Sources */,
   459  				66BDB0641DC26CCC0079384C /* SBJson4StreamWriter.m in Sources */,
   460  				CEDE547A24EBF5980053566E /* PsiphonProviderFeedbackHandlerShim.m in Sources */,
   461  				52BE676D25B8A635002DB553 /* PsiphonClientPlatform.m in Sources */,
   462  				66BDB0661DC26CCC0079384C /* SBJson4StreamWriterState.m in Sources */,
   463  				CECF01452538D34100CD3E5C /* IPv6Synthesizer.m in Sources */,
   464  				66BDB05C1DC26CCC0079384C /* SBJson4Parser.m in Sources */,
   465  				4E89F7FE1E2ED3CE00005F4C /* LookupIPv6.c in Sources */,
   466  				CECF01512538E14B00CD3E5C /* NetworkID.m in Sources */,
   467  				66BAD3361E525FBC00CD06DE /* JailbreakCheck.m in Sources */,
   468  				CE676F2B25FA82DA00F7DB13 /* DefaultRouteMonitor.m in Sources */,
   469  				CEDBA51325B7737C007685E2 /* NetworkInterface.m in Sources */,
   470  				CE676F3025FA830C00F7DB13 /* Reachability+ReachabilityProtocol.m in Sources */,
   471  				66BDB0681DC26CCC0079384C /* SBJson4Writer.m in Sources */,
   472  				66BDB0621DC26CCC0079384C /* SBJson4StreamTokeniser.m in Sources */,
   473  				66BDB0441DA6C7DD0079384C /* PsiphonTunnel.m in Sources */,
   474  				CEC229FD24F047E700534D04 /* PsiphonProviderNoticeHandlerShim.m in Sources */,
   475  				CECF014A2538DD0B00CD3E5C /* PsiphonProviderNetwork.m in Sources */,
   476  				662659281DD270E900872F6C /* Reachability.m in Sources */,
   477  				66BDB0601DC26CCC0079384C /* SBJson4StreamParserState.m in Sources */,
   478  				CE3D1DA623906003009A4AF6 /* Backups.m in Sources */,
   479  				CE9549F625C8AAEE00F9AF86 /* Redactor.m in Sources */,
   480  			);
   481  			runOnlyForDeploymentPostprocessing = 0;
   482  		};
   483  		66BDB0251DA6BFCC0079384C /* Sources */ = {
   484  			isa = PBXSourcesBuildPhase;
   485  			buildActionMask = 2147483647;
   486  			files = (
   487  				66BDB02F1DA6BFCC0079384C /* PsiphonTunnelTests.m in Sources */,
   488  			);
   489  			runOnlyForDeploymentPostprocessing = 0;
   490  		};
   491  /* End PBXSourcesBuildPhase section */
   492  
   493  /* Begin PBXTargetDependency section */
   494  		66BDB02C1DA6BFCC0079384C /* PBXTargetDependency */ = {
   495  			isa = PBXTargetDependency;
   496  			target = 66BDB01F1DA6BFCC0079384C /* PsiphonTunnel */;
   497  			targetProxy = 66BDB02B1DA6BFCC0079384C /* PBXContainerItemProxy */;
   498  		};
   499  /* End PBXTargetDependency section */
   500  
   501  /* Begin XCBuildConfiguration section */
   502  		66BDB0321DA6BFCC0079384C /* Debug */ = {
   503  			isa = XCBuildConfiguration;
   504  			buildSettings = {
   505  				ALWAYS_SEARCH_USER_PATHS = NO;
   506  				CLANG_ANALYZER_NONNULL = YES;
   507  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   508  				CLANG_CXX_LIBRARY = "libc++";
   509  				CLANG_ENABLE_MODULES = YES;
   510  				CLANG_ENABLE_OBJC_ARC = YES;
   511  				CLANG_WARN_BOOL_CONVERSION = YES;
   512  				CLANG_WARN_CONSTANT_CONVERSION = YES;
   513  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
   514  				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
   515  				CLANG_WARN_EMPTY_BODY = YES;
   516  				CLANG_WARN_ENUM_CONVERSION = YES;
   517  				CLANG_WARN_INFINITE_RECURSION = YES;
   518  				CLANG_WARN_INT_CONVERSION = YES;
   519  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
   520  				CLANG_WARN_SUSPICIOUS_MOVE = YES;
   521  				CLANG_WARN_SUSPICIOUS_MOVES = YES;
   522  				CLANG_WARN_UNREACHABLE_CODE = YES;
   523  				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
   524  				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
   525  				COPY_PHASE_STRIP = NO;
   526  				CURRENT_PROJECT_VERSION = 1;
   527  				DEBUG_INFORMATION_FORMAT = dwarf;
   528  				ENABLE_STRICT_OBJC_MSGSEND = YES;
   529  				ENABLE_TESTABILITY = YES;
   530  				GCC_C_LANGUAGE_STANDARD = gnu99;
   531  				GCC_DYNAMIC_NO_PIC = NO;
   532  				GCC_NO_COMMON_BLOCKS = YES;
   533  				GCC_OPTIMIZATION_LEVEL = 0;
   534  				GCC_PREPROCESSOR_DEFINITIONS = (
   535  					"DEBUG=1",
   536  					"$(inherited)",
   537  				);
   538  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   539  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
   540  				GCC_WARN_UNDECLARED_SELECTOR = YES;
   541  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
   542  				GCC_WARN_UNUSED_FUNCTION = YES;
   543  				GCC_WARN_UNUSED_VARIABLE = YES;
   544  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   545  				MTL_ENABLE_DEBUG_INFO = YES;
   546  				ONLY_ACTIVE_ARCH = YES;
   547  				SDKROOT = iphoneos;
   548  				TARGETED_DEVICE_FAMILY = "1,2";
   549  				VERSIONING_SYSTEM = "apple-generic";
   550  				VERSION_INFO_PREFIX = "";
   551  			};
   552  			name = Debug;
   553  		};
   554  		66BDB0331DA6BFCC0079384C /* Release */ = {
   555  			isa = XCBuildConfiguration;
   556  			buildSettings = {
   557  				ALWAYS_SEARCH_USER_PATHS = NO;
   558  				CLANG_ANALYZER_NONNULL = YES;
   559  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   560  				CLANG_CXX_LIBRARY = "libc++";
   561  				CLANG_ENABLE_MODULES = YES;
   562  				CLANG_ENABLE_OBJC_ARC = YES;
   563  				CLANG_WARN_BOOL_CONVERSION = YES;
   564  				CLANG_WARN_CONSTANT_CONVERSION = YES;
   565  				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
   566  				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
   567  				CLANG_WARN_EMPTY_BODY = YES;
   568  				CLANG_WARN_ENUM_CONVERSION = YES;
   569  				CLANG_WARN_INFINITE_RECURSION = YES;
   570  				CLANG_WARN_INT_CONVERSION = YES;
   571  				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
   572  				CLANG_WARN_SUSPICIOUS_MOVE = YES;
   573  				CLANG_WARN_SUSPICIOUS_MOVES = YES;
   574  				CLANG_WARN_UNREACHABLE_CODE = YES;
   575  				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
   576  				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
   577  				COPY_PHASE_STRIP = NO;
   578  				CURRENT_PROJECT_VERSION = 1;
   579  				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
   580  				ENABLE_NS_ASSERTIONS = NO;
   581  				ENABLE_STRICT_OBJC_MSGSEND = YES;
   582  				GCC_C_LANGUAGE_STANDARD = gnu99;
   583  				GCC_NO_COMMON_BLOCKS = YES;
   584  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   585  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
   586  				GCC_WARN_UNDECLARED_SELECTOR = YES;
   587  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
   588  				GCC_WARN_UNUSED_FUNCTION = YES;
   589  				GCC_WARN_UNUSED_VARIABLE = YES;
   590  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   591  				MTL_ENABLE_DEBUG_INFO = NO;
   592  				SDKROOT = iphoneos;
   593  				TARGETED_DEVICE_FAMILY = "1,2";
   594  				VALIDATE_PRODUCT = YES;
   595  				VERSIONING_SYSTEM = "apple-generic";
   596  				VERSION_INFO_PREFIX = "";
   597  			};
   598  			name = Release;
   599  		};
   600  		66BDB0351DA6BFCC0079384C /* Debug */ = {
   601  			isa = XCBuildConfiguration;
   602  			buildSettings = {
   603  				APPLICATION_EXTENSION_API_ONLY = YES;
   604  				CODE_SIGN_IDENTITY = "";
   605  				DEFINES_MODULE = YES;
   606  				DEVELOPMENT_TEAM = Q6HLNEX92A;
   607  				DYLIB_COMPATIBILITY_VERSION = 1;
   608  				DYLIB_CURRENT_VERSION = 1;
   609  				DYLIB_INSTALL_NAME_BASE = "@rpath";
   610  				ENABLE_BITCODE = NO;
   611  				EXCLUDED_ARCHS = armv7;
   612  				INFOPLIST_FILE = PsiphonTunnel/Info.plist;
   613  				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
   614  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   615  				LD_RUNPATH_SEARCH_PATHS = (
   616  					"$(inherited)",
   617  					"@executable_path/Frameworks",
   618  					"@loader_path/Frameworks",
   619  				);
   620  				LIBRARY_SEARCH_PATHS = "$(inherited)";
   621  				PRODUCT_BUNDLE_IDENTIFIER = com.psiphon3.ios.PsiphonTunnel;
   622  				PRODUCT_NAME = "$(TARGET_NAME)";
   623  				SKIP_INSTALL = YES;
   624  				SUPPORTS_MACCATALYST = NO;
   625  				TARGETED_DEVICE_FAMILY = "1,2";
   626  			};
   627  			name = Debug;
   628  		};
   629  		66BDB0361DA6BFCC0079384C /* Release */ = {
   630  			isa = XCBuildConfiguration;
   631  			buildSettings = {
   632  				APPLICATION_EXTENSION_API_ONLY = YES;
   633  				CODE_SIGN_IDENTITY = "";
   634  				DEFINES_MODULE = YES;
   635  				DEVELOPMENT_TEAM = Q6HLNEX92A;
   636  				DYLIB_COMPATIBILITY_VERSION = 1;
   637  				DYLIB_CURRENT_VERSION = 1;
   638  				DYLIB_INSTALL_NAME_BASE = "@rpath";
   639  				ENABLE_BITCODE = NO;
   640  				EXCLUDED_ARCHS = armv7;
   641  				INFOPLIST_FILE = PsiphonTunnel/Info.plist;
   642  				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
   643  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   644  				LD_RUNPATH_SEARCH_PATHS = (
   645  					"$(inherited)",
   646  					"@executable_path/Frameworks",
   647  					"@loader_path/Frameworks",
   648  				);
   649  				LIBRARY_SEARCH_PATHS = "$(inherited)";
   650  				PRODUCT_BUNDLE_IDENTIFIER = com.psiphon3.ios.PsiphonTunnel;
   651  				PRODUCT_NAME = "$(TARGET_NAME)";
   652  				SKIP_INSTALL = YES;
   653  				SUPPORTS_MACCATALYST = NO;
   654  				TARGETED_DEVICE_FAMILY = "1,2";
   655  			};
   656  			name = Release;
   657  		};
   658  		66BDB0381DA6BFCC0079384C /* Debug */ = {
   659  			isa = XCBuildConfiguration;
   660  			buildSettings = {
   661  				DEVELOPMENT_TEAM = Q6HLNEX92A;
   662  				INFOPLIST_FILE = PsiphonTunnelTests/Info.plist;
   663  				LD_RUNPATH_SEARCH_PATHS = (
   664  					"$(inherited)",
   665  					"@executable_path/Frameworks",
   666  					"@loader_path/Frameworks",
   667  				);
   668  				PRODUCT_BUNDLE_IDENTIFIER = com.psiphon3.ios.PsiphonTunnelTests;
   669  				PRODUCT_NAME = "$(TARGET_NAME)";
   670  			};
   671  			name = Debug;
   672  		};
   673  		66BDB0391DA6BFCC0079384C /* Release */ = {
   674  			isa = XCBuildConfiguration;
   675  			buildSettings = {
   676  				DEVELOPMENT_TEAM = Q6HLNEX92A;
   677  				INFOPLIST_FILE = PsiphonTunnelTests/Info.plist;
   678  				LD_RUNPATH_SEARCH_PATHS = (
   679  					"$(inherited)",
   680  					"@executable_path/Frameworks",
   681  					"@loader_path/Frameworks",
   682  				);
   683  				PRODUCT_BUNDLE_IDENTIFIER = com.psiphon3.ios.PsiphonTunnelTests;
   684  				PRODUCT_NAME = "$(TARGET_NAME)";
   685  			};
   686  			name = Release;
   687  		};
   688  /* End XCBuildConfiguration section */
   689  
   690  /* Begin XCConfigurationList section */
   691  		66BDB01A1DA6BFCC0079384C /* Build configuration list for PBXProject "PsiphonTunnel" */ = {
   692  			isa = XCConfigurationList;
   693  			buildConfigurations = (
   694  				66BDB0321DA6BFCC0079384C /* Debug */,
   695  				66BDB0331DA6BFCC0079384C /* Release */,
   696  			);
   697  			defaultConfigurationIsVisible = 0;
   698  			defaultConfigurationName = Release;
   699  		};
   700  		66BDB0341DA6BFCC0079384C /* Build configuration list for PBXNativeTarget "PsiphonTunnel" */ = {
   701  			isa = XCConfigurationList;
   702  			buildConfigurations = (
   703  				66BDB0351DA6BFCC0079384C /* Debug */,
   704  				66BDB0361DA6BFCC0079384C /* Release */,
   705  			);
   706  			defaultConfigurationIsVisible = 0;
   707  			defaultConfigurationName = Release;
   708  		};
   709  		66BDB0371DA6BFCC0079384C /* Build configuration list for PBXNativeTarget "PsiphonTunnelTests" */ = {
   710  			isa = XCConfigurationList;
   711  			buildConfigurations = (
   712  				66BDB0381DA6BFCC0079384C /* Debug */,
   713  				66BDB0391DA6BFCC0079384C /* Release */,
   714  			);
   715  			defaultConfigurationIsVisible = 0;
   716  			defaultConfigurationName = Release;
   717  		};
   718  /* End XCConfigurationList section */
   719  	};
   720  	rootObject = 66BDB0171DA6BFCC0079384C /* Project object */;
   721  }