diff --git a/Podfile b/Podfile index 4dfad19e..f2d60087 100644 --- a/Podfile +++ b/Podfile @@ -23,7 +23,7 @@ end post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '3.0' + config.build_settings['SWIFT_VERSION'] = '4.2' end end end diff --git a/Podfile.lock b/Podfile.lock index 679330ea..d8284176 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -1,9 +1,9 @@ PODS: - Alamofire (4.2.0) - BRLOptionParser (0.3.1) - - GCDWebServer (3.4.2): - - GCDWebServer/Core (= 3.4.2) - - GCDWebServer/Core (3.4.2) + - GCDWebServer (3.5.2): + - GCDWebServer/Core (= 3.5.2) + - GCDWebServer/Core (3.5.2) DEPENDENCIES: - Alamofire (~> 4.2.0) @@ -19,8 +19,8 @@ SPEC REPOS: SPEC CHECKSUMS: Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe BRLOptionParser: a03256a8ff003ca1f5376c55f55f210e085a3958 - GCDWebServer: 8d67ee9f634b4bb91eb4b8aee440318a5fc6debd + GCDWebServer: ead88cd14596dd4eae4f5830b8877c87c8728990 -PODFILE CHECKSUM: 8e98b2fb2d6be56882a44b2ff9241a800101e1d4 +PODFILE CHECKSUM: 6b485731eac897a000e5b608b7849ad661fe16da -COCOAPODS: 1.5.3 +COCOAPODS: 1.6.1 diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.h index 59572bab..473e21fa 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -42,7 +42,7 @@ NS_ASSUME_NONNULL_BEGIN * GCDWebServerRequest instance created with the same basic info. * Otherwise, it simply returns nil. */ -typedef GCDWebServerRequest* _Nullable (^GCDWebServerMatchBlock)(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery); +typedef GCDWebServerRequest* _Nullable (^GCDWebServerMatchBlock)(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery); /** * The GCDWebServerProcessBlock is called after the HTTP request has been fully @@ -365,7 +365,7 @@ extern NSString* const GCDWebServerAuthenticationMethod_DigestAccess; * * Returns NO if the server failed to start and sets "error" argument if not NULL. */ -- (BOOL)startWithOptions:(nullable NSDictionary*)options error:(NSError** _Nullable)error; +- (BOOL)startWithOptions:(nullable NSDictionary*)options error:(NSError** _Nullable)error; /** * Stops the server and prevents it to accepts new HTTP requests. @@ -444,7 +444,7 @@ extern NSString* const GCDWebServerAuthenticationMethod_DigestAccess; * * @warning This method must be used from the main thread only. */ -- (BOOL)runWithOptions:(nullable NSDictionary*)options error:(NSError** _Nullable)error; +- (BOOL)runWithOptions:(nullable NSDictionary*)options error:(NSError** _Nullable)error; #endif @@ -613,7 +613,7 @@ extern NSString* const GCDWebServerAuthenticationMethod_DigestAccess; * * Returns the number of failed tests or -1 if server failed to start. */ -- (NSInteger)runTestsWithOptions:(nullable NSDictionary*)options inDirectory:(NSString*)path; +- (NSInteger)runTestsWithOptions:(nullable NSDictionary*)options inDirectory:(NSString*)path; @end diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.m b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.m index e52ccd4d..0b755577 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.m +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServer.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -141,14 +141,14 @@ - (instancetype)initWithMatchBlock:(GCDWebServerMatchBlock _Nonnull)matchBlock a @implementation GCDWebServer { dispatch_queue_t _syncQueue; dispatch_group_t _sourceGroup; - NSMutableArray* _handlers; + NSMutableArray* _handlers; NSInteger _activeConnections; // Accessed through _syncQueue only BOOL _connected; // Accessed on main thread only CFRunLoopTimerRef _disconnectTimer; // Accessed on main thread only - NSDictionary* _options; - NSMutableDictionary* _authenticationBasicAccounts; - NSMutableDictionary* _authenticationDigestAccounts; + NSDictionary* _options; + NSMutableDictionary* _authenticationBasicAccounts; + NSMutableDictionary* _authenticationDigestAccounts; Class _connectionClass; CFTimeInterval _disconnectDelay; dispatch_source_t _source4; @@ -206,10 +206,8 @@ - (void)_startBackgroundTask { if (_backgroundTask == UIBackgroundTaskInvalid) { GWS_LOG_DEBUG(@"Did start background task"); _backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ - GWS_LOG_WARNING(@"Application is being suspended while %@ is still connected", [self class]); [self _endBackgroundTask]; - }]; } else { GWS_DNOT_REACHED(); @@ -238,22 +236,20 @@ - (void)_didConnect { - (void)willStartConnection:(GCDWebServerConnection*)connection { dispatch_sync(_syncQueue, ^{ - - GWS_DCHECK(_activeConnections >= 0); - if (_activeConnections == 0) { + GWS_DCHECK(self->_activeConnections >= 0); + if (self->_activeConnections == 0) { dispatch_async(dispatch_get_main_queue(), ^{ - if (_disconnectTimer) { - CFRunLoopTimerInvalidate(_disconnectTimer); - CFRelease(_disconnectTimer); - _disconnectTimer = NULL; + if (self->_disconnectTimer) { + CFRunLoopTimerInvalidate(self->_disconnectTimer); + CFRelease(self->_disconnectTimer); + self->_disconnectTimer = NULL; } - if (_connected == NO) { + if (self->_connected == NO) { [self _didConnect]; } }); } - _activeConnections += 1; - + self->_activeConnections += 1; }); } @@ -292,22 +288,22 @@ - (void)_didDisconnect { - (void)didEndConnection:(GCDWebServerConnection*)connection { dispatch_sync(_syncQueue, ^{ - GWS_DCHECK(_activeConnections > 0); - _activeConnections -= 1; - if (_activeConnections == 0) { + GWS_DCHECK(self->_activeConnections > 0); + self->_activeConnections -= 1; + if (self->_activeConnections == 0) { dispatch_async(dispatch_get_main_queue(), ^{ - if ((_disconnectDelay > 0.0) && (_source4 != NULL)) { - if (_disconnectTimer) { - CFRunLoopTimerInvalidate(_disconnectTimer); - CFRelease(_disconnectTimer); + if ((self->_disconnectDelay > 0.0) && (self->_source4 != NULL)) { + if (self->_disconnectTimer) { + CFRunLoopTimerInvalidate(self->_disconnectTimer); + CFRelease(self->_disconnectTimer); } - _disconnectTimer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + _disconnectDelay, 0.0, 0, 0, ^(CFRunLoopTimerRef timer) { + self->_disconnectTimer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + self->_disconnectDelay, 0.0, 0, 0, ^(CFRunLoopTimerRef timer) { GWS_DCHECK([NSThread isMainThread]); [self _didDisconnect]; - CFRelease(_disconnectTimer); - _disconnectTimer = NULL; + CFRelease(self->_disconnectTimer); + self->_disconnectTimer = NULL; }); - CFRunLoopAddTimer(CFRunLoopGetMain(), _disconnectTimer, kCFRunLoopCommonModes); + CFRunLoopAddTimer(CFRunLoopGetMain(), self->_disconnectTimer, kCFRunLoopCommonModes); } else { [self _didDisconnect]; } @@ -412,19 +408,21 @@ static void _SocketCallBack(CFSocketRef s, CFSocketCallBackType type, CFDataRef } } -static inline id _GetOption(NSDictionary* options, NSString* key, id defaultValue) { +static inline id _GetOption(NSDictionary* options, NSString* key, id defaultValue) { id value = [options objectForKey:key]; return value ? value : defaultValue; } static inline NSString* _EncodeBase64(NSString* string) { NSData* data = [string dataUsingEncoding:NSUTF8StringEncoding]; -#if (TARGET_OS_IPHONE && !(__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_7_0)) || (!TARGET_OS_IPHONE && !(__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9)) - if (![data respondsToSelector:@selector(base64EncodedDataWithOptions:)]) { - return [data base64Encoding]; +#if TARGET_OS_IPHONE || (__MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_9) + return [[NSString alloc] initWithData:[data base64EncodedDataWithOptions:0] encoding:NSASCIIStringEncoding]; +#else + if (@available(macOS 10.9, *)) { + return [[NSString alloc] initWithData:[data base64EncodedDataWithOptions:0] encoding:NSASCIIStringEncoding]; } + return [data base64Encoding]; #endif - return [[NSString alloc] initWithData:[data base64EncodedDataWithOptions:0] encoding:NSASCIIStringEncoding]; } - (int)_createListeningSocket:(BOOL)useIPv6 @@ -469,7 +467,6 @@ - (dispatch_source_t)_createDispatchSourceWithListeningSocket:(int)listeningSock dispatch_group_enter(_sourceGroup); dispatch_source_t source = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, listeningSocket, 0, dispatch_get_global_queue(_dispatchQueuePriority, 0)); dispatch_source_set_cancel_handler(source, ^{ - @autoreleasepool { int result = close(listeningSocket); if (result != 0) { @@ -478,11 +475,9 @@ - (dispatch_source_t)_createDispatchSourceWithListeningSocket:(int)listeningSock GWS_LOG_DEBUG(@"Did close %s listening socket %i", isIPv6 ? "IPv6" : "IPv4", listeningSocket); } } - dispatch_group_leave(_sourceGroup); - + dispatch_group_leave(self->_sourceGroup); }); dispatch_source_set_event_handler(source, ^{ - @autoreleasepool { struct sockaddr_storage remoteSockAddr; socklen_t remoteAddrLen = sizeof(remoteSockAddr); @@ -503,13 +498,12 @@ - (dispatch_source_t)_createDispatchSourceWithListeningSocket:(int)listeningSock int noSigPipe = 1; setsockopt(socket, SOL_SOCKET, SO_NOSIGPIPE, &noSigPipe, sizeof(noSigPipe)); // Make sure this socket cannot generate SIG_PIPE - GCDWebServerConnection* connection = [[_connectionClass alloc] initWithServer:self localAddress:localAddress remoteAddress:remoteAddress socket:socket]; // Connection will automatically retain itself while opened + GCDWebServerConnection* connection = [(GCDWebServerConnection*)[self->_connectionClass alloc] initWithServer:self localAddress:localAddress remoteAddress:remoteAddress socket:socket]; // Connection will automatically retain itself while opened [connection self]; // Prevent compiler from complaining about unused variable / useless statement } else { GWS_LOG_ERROR(@"Failed accepting %s socket: %s (%i)", isIPv6 ? "IPv6" : "IPv4", strerror(errno), errno); } } - }); return source; } @@ -517,9 +511,9 @@ - (dispatch_source_t)_createDispatchSourceWithListeningSocket:(int)listeningSock - (BOOL)_start:(NSError**)error { GWS_DCHECK(_source4 == NULL); - NSUInteger port = [_GetOption(_options, GCDWebServerOption_Port, @0) unsignedIntegerValue]; - BOOL bindToLocalhost = [_GetOption(_options, GCDWebServerOption_BindToLocalhost, @NO) boolValue]; - NSUInteger maxPendingConnections = [_GetOption(_options, GCDWebServerOption_MaxPendingConnections, @16) unsignedIntegerValue]; + NSUInteger port = [(NSNumber*)_GetOption(_options, GCDWebServerOption_Port, @0) unsignedIntegerValue]; + BOOL bindToLocalhost = [(NSNumber*)_GetOption(_options, GCDWebServerOption_BindToLocalhost, @NO) boolValue]; + NSUInteger maxPendingConnections = [(NSNumber*)_GetOption(_options, GCDWebServerOption_MaxPendingConnections, @16) unsignedIntegerValue]; struct sockaddr_in addr4; bzero(&addr4, sizeof(addr4)); @@ -553,27 +547,27 @@ - (BOOL)_start:(NSError**)error { return NO; } - _serverName = [_GetOption(_options, GCDWebServerOption_ServerName, NSStringFromClass([self class])) copy]; + _serverName = [(NSString*)_GetOption(_options, GCDWebServerOption_ServerName, NSStringFromClass([self class])) copy]; NSString* authenticationMethod = _GetOption(_options, GCDWebServerOption_AuthenticationMethod, nil); if ([authenticationMethod isEqualToString:GCDWebServerAuthenticationMethod_Basic]) { - _authenticationRealm = [_GetOption(_options, GCDWebServerOption_AuthenticationRealm, _serverName) copy]; + _authenticationRealm = [(NSString*)_GetOption(_options, GCDWebServerOption_AuthenticationRealm, _serverName) copy]; _authenticationBasicAccounts = [[NSMutableDictionary alloc] init]; NSDictionary* accounts = _GetOption(_options, GCDWebServerOption_AuthenticationAccounts, @{}); [accounts enumerateKeysAndObjectsUsingBlock:^(NSString* username, NSString* password, BOOL* stop) { - [_authenticationBasicAccounts setObject:_EncodeBase64([NSString stringWithFormat:@"%@:%@", username, password]) forKey:username]; + [self->_authenticationBasicAccounts setObject:_EncodeBase64([NSString stringWithFormat:@"%@:%@", username, password]) forKey:username]; }]; } else if ([authenticationMethod isEqualToString:GCDWebServerAuthenticationMethod_DigestAccess]) { - _authenticationRealm = [_GetOption(_options, GCDWebServerOption_AuthenticationRealm, _serverName) copy]; + _authenticationRealm = [(NSString*)_GetOption(_options, GCDWebServerOption_AuthenticationRealm, _serverName) copy]; _authenticationDigestAccounts = [[NSMutableDictionary alloc] init]; NSDictionary* accounts = _GetOption(_options, GCDWebServerOption_AuthenticationAccounts, @{}); [accounts enumerateKeysAndObjectsUsingBlock:^(NSString* username, NSString* password, BOOL* stop) { - [_authenticationDigestAccounts setObject:GCDWebServerComputeMD5Digest(@"%@:%@:%@", username, _authenticationRealm, password) forKey:username]; + [self->_authenticationDigestAccounts setObject:GCDWebServerComputeMD5Digest(@"%@:%@:%@", username, self->_authenticationRealm, password) forKey:username]; }]; } _connectionClass = _GetOption(_options, GCDWebServerOption_ConnectionClass, [GCDWebServerConnection class]); - _shouldAutomaticallyMapHEADToGET = [_GetOption(_options, GCDWebServerOption_AutomaticallyMapHEADToGET, @YES) boolValue]; - _disconnectDelay = [_GetOption(_options, GCDWebServerOption_ConnectedStateCoalescingInterval, @1.0) doubleValue]; - _dispatchQueuePriority = [_GetOption(_options, GCDWebServerOption_DispatchQueuePriority, @(DISPATCH_QUEUE_PRIORITY_DEFAULT)) longValue]; + _shouldAutomaticallyMapHEADToGET = [(NSNumber*)_GetOption(_options, GCDWebServerOption_AutomaticallyMapHEADToGET, @YES) boolValue]; + _disconnectDelay = [(NSNumber*)_GetOption(_options, GCDWebServerOption_ConnectedStateCoalescingInterval, @1.0) doubleValue]; + _dispatchQueuePriority = [(NSNumber*)_GetOption(_options, GCDWebServerOption_DispatchQueuePriority, @(DISPATCH_QUEUE_PRIORITY_DEFAULT)) longValue]; _source4 = [self _createDispatchSourceWithListeningSocket:listeningSocket4 isIPv6:NO]; _source6 = [self _createDispatchSourceWithListeningSocket:listeningSocket6 isIPv6:YES]; @@ -604,7 +598,7 @@ - (BOOL)_start:(NSError**)error { } } - if ([_GetOption(_options, GCDWebServerOption_RequestNATPortMapping, @NO) boolValue]) { + if ([(NSNumber*)_GetOption(_options, GCDWebServerOption_RequestNATPortMapping, @NO) boolValue]) { DNSServiceErrorType status = DNSServiceNATPortMappingCreate(&_dnsService, 0, 0, kDNSServiceProtocol_TCP, htons(port), htons(port), 0, _DNSServiceCallBack, (__bridge void*)self); if (status == kDNSServiceErr_NoError) { CFSocketContext context = {0, (__bridge void*)self, NULL, NULL, NULL}; @@ -632,7 +626,7 @@ - (BOOL)_start:(NSError**)error { GWS_LOG_INFO(@"%@ started on port %i and reachable at %@", [self class], (int)_port, self.serverURL); if ([_delegate respondsToSelector:@selector(webServerDidStart:)]) { dispatch_async(dispatch_get_main_queue(), ^{ - [_delegate webServerDidStart:self]; + [self->_delegate webServerDidStart:self]; }); } @@ -693,10 +687,10 @@ - (void)_stop { _authenticationDigestAccounts = nil; dispatch_async(dispatch_get_main_queue(), ^{ - if (_disconnectTimer) { - CFRunLoopTimerInvalidate(_disconnectTimer); - CFRelease(_disconnectTimer); - _disconnectTimer = NULL; + if (self->_disconnectTimer) { + CFRunLoopTimerInvalidate(self->_disconnectTimer); + CFRelease(self->_disconnectTimer); + self->_disconnectTimer = NULL; [self _didDisconnect]; } }); @@ -704,7 +698,7 @@ - (void)_stop { GWS_LOG_INFO(@"%@ stopped", [self class]); if ([_delegate respondsToSelector:@selector(webServerDidStop:)]) { dispatch_async(dispatch_get_main_queue(), ^{ - [_delegate webServerDidStop:self]; + [self->_delegate webServerDidStop:self]; }); } } @@ -729,11 +723,11 @@ - (void)_willEnterForeground:(NSNotification*)notification { #endif -- (BOOL)startWithOptions:(NSDictionary*)options error:(NSError**)error { +- (BOOL)startWithOptions:(NSDictionary*)options error:(NSError**)error { if (_options == nil) { _options = options ? [options copy] : @{}; #if TARGET_OS_IPHONE - _suspendInBackground = [_GetOption(_options, GCDWebServerOption_AutomaticallySuspendInBackground, @YES) boolValue]; + _suspendInBackground = [(NSNumber*)_GetOption(_options, GCDWebServerOption_AutomaticallySuspendInBackground, @YES) boolValue]; if (((_suspendInBackground == NO) || ([[UIApplication sharedApplication] applicationState] != UIApplicationStateBackground)) && ![self _start:error]) #else if (![self _start:error]) @@ -840,7 +834,7 @@ - (BOOL)runWithPort:(NSUInteger)port bonjourName:(NSString*)name { return [self runWithOptions:options error:NULL]; } -- (BOOL)runWithOptions:(NSDictionary*)options error:(NSError**)error { +- (BOOL)runWithOptions:(NSDictionary*)options error:(NSError**)error { GWS_DCHECK([NSThread isMainThread]); BOOL success = NO; _run = YES; @@ -876,13 +870,11 @@ - (void)addDefaultHandlerForMethod:(NSString*)method requestClass:(Class)aClass } - (void)addDefaultHandlerForMethod:(NSString*)method requestClass:(Class)aClass asyncProcessBlock:(GCDWebServerAsyncProcessBlock)block { - [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { - + [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { if (![requestMethod isEqualToString:method]) { return nil; } - return [[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; - + return [(GCDWebServerRequest*)[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; } asyncProcessBlock:block]; } @@ -898,16 +890,14 @@ - (void)addHandlerForMethod:(NSString*)method path:(NSString*)path requestClass: - (void)addHandlerForMethod:(NSString*)method path:(NSString*)path requestClass:(Class)aClass asyncProcessBlock:(GCDWebServerAsyncProcessBlock)block { if ([path hasPrefix:@"/"] && [aClass isSubclassOfClass:[GCDWebServerRequest class]]) { - [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { - + [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { if (![requestMethod isEqualToString:method]) { return nil; } if ([urlPath caseInsensitiveCompare:path] != NSOrderedSame) { return nil; } - return [[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; - + return [(GCDWebServerRequest*)[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; } asyncProcessBlock:block]; } else { @@ -927,8 +917,7 @@ - (void)addHandlerForMethod:(NSString*)method pathRegex:(NSString*)regex request - (void)addHandlerForMethod:(NSString*)method pathRegex:(NSString*)regex requestClass:(Class)aClass asyncProcessBlock:(GCDWebServerAsyncProcessBlock)block { NSRegularExpression* expression = [NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:NULL]; if (expression && [aClass isSubclassOfClass:[GCDWebServerRequest class]]) { - [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { - + [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { if (![requestMethod isEqualToString:method]) { return nil; } @@ -951,10 +940,9 @@ - (void)addHandlerForMethod:(NSString*)method pathRegex:(NSString*)regex request } } - GCDWebServerRequest* request = [[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; + GCDWebServerRequest* request = [(GCDWebServerRequest*)[aClass alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; [request setAttribute:captures forKey:GCDWebServerRequestAttribute_RegexCaptures]; return request; - } asyncProcessBlock:block]; } else { @@ -971,11 +959,9 @@ - (void)addGETHandlerForPath:(NSString*)path staticData:(NSData*)staticData cont path:path requestClass:[GCDWebServerRequest class] processBlock:^GCDWebServerResponse*(GCDWebServerRequest* request) { - GCDWebServerResponse* response = [GCDWebServerDataResponse responseWithData:staticData contentType:contentType]; response.cacheControlMaxAge = cacheAge; return response; - }]; } @@ -984,7 +970,6 @@ - (void)addGETHandlerForPath:(NSString*)path filePath:(NSString*)filePath isAtta path:path requestClass:[GCDWebServerRequest class] processBlock:^GCDWebServerResponse*(GCDWebServerRequest* request) { - GCDWebServerResponse* response = nil; if (allowRangeRequests) { response = [GCDWebServerFileResponse responseWithFile:filePath byteRange:request.byteRange isAttachment:isAttachment]; @@ -994,34 +979,33 @@ - (void)addGETHandlerForPath:(NSString*)path filePath:(NSString*)filePath isAtta } response.cacheControlMaxAge = cacheAge; return response; - }]; } - (GCDWebServerResponse*)_responseWithContentsOfDirectory:(NSString*)path { - NSDirectoryEnumerator* enumerator = [[NSFileManager defaultManager] enumeratorAtPath:path]; - if (enumerator == nil) { + NSArray* contents = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL] sortedArrayUsingSelector:@selector(localizedStandardCompare:)]; + if (contents == nil) { return nil; } NSMutableString* html = [NSMutableString string]; [html appendString:@"\n"]; [html appendString:@"\n"]; [html appendString:@"
    \n"]; - for (NSString* file in enumerator) { - if (![file hasPrefix:@"."]) { - NSString* type = [[enumerator fileAttributes] objectForKey:NSFileType]; + for (NSString* entry in contents) { + if (![entry hasPrefix:@"."]) { + NSString* type = [[[NSFileManager defaultManager] attributesOfItemAtPath:[path stringByAppendingPathComponent:entry] error:NULL] objectForKey:NSFileType]; + GWS_DCHECK(type); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" - NSString* escapedFile = [file stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + NSString* escapedFile = [entry stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; #pragma clang diagnostic pop GWS_DCHECK(escapedFile); if ([type isEqualToString:NSFileTypeRegular]) { - [html appendFormat:@"
  • %@
  • \n", escapedFile, file]; + [html appendFormat:@"
  • %@
  • \n", escapedFile, entry]; } else if ([type isEqualToString:NSFileTypeDirectory]) { - [html appendFormat:@"
  • %@/
  • \n", escapedFile, file]; + [html appendFormat:@"
  • %@/
  • \n", escapedFile, entry]; } } - [enumerator skipDescendents]; } [html appendString:@"
\n"]; [html appendString:@"\n"]; @@ -1031,8 +1015,7 @@ - (GCDWebServerResponse*)_responseWithContentsOfDirectory:(NSString*)path { - (void)addGETHandlerForBasePath:(NSString*)basePath directoryPath:(NSString*)directoryPath indexFilename:(NSString*)indexFilename cacheAge:(NSUInteger)cacheAge allowRangeRequests:(BOOL)allowRangeRequests { if ([basePath hasPrefix:@"/"] && [basePath hasSuffix:@"/"]) { GCDWebServer* __unsafe_unretained server = self; - [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { - + [self addHandlerWithMatchBlock:^GCDWebServerRequest*(NSString* requestMethod, NSURL* requestURL, NSDictionary* requestHeaders, NSString* urlPath, NSDictionary* urlQuery) { if (![requestMethod isEqualToString:@"GET"]) { return nil; } @@ -1040,12 +1023,10 @@ - (void)addGETHandlerForBasePath:(NSString*)basePath directoryPath:(NSString*)di return nil; } return [[GCDWebServerRequest alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:urlPath query:urlQuery]; - } processBlock:^GCDWebServerResponse*(GCDWebServerRequest* request) { - GCDWebServerResponse* response = nil; - NSString* filePath = [directoryPath stringByAppendingPathComponent:[request.path substringFromIndex:basePath.length]]; + NSString* filePath = [directoryPath stringByAppendingPathComponent:GCDWebServerNormalizePath([request.path substringFromIndex:basePath.length])]; NSString* fileType = [[[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:NULL] fileType]; if (fileType) { if ([fileType isEqualToString:NSFileTypeDirectory]) { @@ -1072,7 +1053,6 @@ - (void)addGETHandlerForBasePath:(NSString*)basePath directoryPath:(NSString*)di response = [GCDWebServerResponse responseWithStatusCode:kGCDWebServerHTTPStatusCode_NotFound]; } return response; - }]; } else { GWS_DNOT_REACHED(); @@ -1148,9 +1128,9 @@ static CFHTTPMessageRef _CreateHTTPMessageFromPerformingRequest(NSData* inData, if (httpSocket > 0) { struct sockaddr_in addr4; bzero(&addr4, sizeof(addr4)); - addr4.sin_len = sizeof(port); + addr4.sin_len = sizeof(addr4); addr4.sin_family = AF_INET; - addr4.sin_port = htons(8080); + addr4.sin_port = htons(port); addr4.sin_addr.s_addr = htonl(INADDR_ANY); if (connect(httpSocket, (void*)&addr4, sizeof(addr4)) == 0) { if (write(httpSocket, inData.bytes, inData.length) == (ssize_t)inData.length) { @@ -1190,7 +1170,7 @@ static void _LogResult(NSString* format, ...) { fprintf(stdout, "%s\n", [message UTF8String]); } -- (NSInteger)runTestsWithOptions:(NSDictionary*)options inDirectory:(NSString*)path { +- (NSInteger)runTestsWithOptions:(NSDictionary*)options inDirectory:(NSString*)path { GWS_DCHECK([NSThread isMainThread]); NSArray* ignoredHeaders = @[ @"Date", @"Etag" ]; // Dates are always different by definition and ETags depend on file system node IDs NSInteger result = -1; @@ -1198,7 +1178,7 @@ - (NSInteger)runTestsWithOptions:(NSDictionary*)options inDirectory:(NSString*)p _ExecuteMainThreadRunLoopSources(); result = 0; - NSArray* files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL]; + NSArray* files = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:NULL] sortedArrayUsingSelector:@selector(localizedStandardCompare:)]; for (NSString* requestFile in files) { if (![requestFile hasSuffix:@".request"]) { continue; @@ -1258,7 +1238,7 @@ - (NSInteger)runTestsWithOptions:(NSDictionary*)options inDirectory:(NSString*)p if ([actualContentLength isEqualToString:expectedContentLength] && (actualBody.length > expectedBody.length)) { // Handle web browser closing connection before retrieving entire body (e.g. when playing a video file) actualBody = [actualBody subdataWithRange:NSMakeRange(0, expectedBody.length)]; } - if (![actualBody isEqualToData:expectedBody]) { + if ((actualBody && expectedBody && ![actualBody isEqualToData:expectedBody]) || (actualBody && !expectedBody) || (!actualBody && expectedBody)) { _LogResult(@" Bodies not matching:\n Expected: %lu bytes\n Actual: %lu bytes", (unsigned long)expectedBody.length, (unsigned long)actualBody.length); success = NO; #if !TARGET_OS_IPHONE diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.h index 420d12a4..4d59b9f1 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -130,7 +130,7 @@ NS_ASSUME_NONNULL_BEGIN * * The default implementation returns the original URL. */ -- (NSURL*)rewriteRequestURL:(NSURL*)url withMethod:(NSString*)method headers:(NSDictionary*)headers; +- (NSURL*)rewriteRequestURL:(NSURL*)url withMethod:(NSString*)method headers:(NSDictionary*)headers; /** * Assuming a valid HTTP request was received, this method is called before diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.m b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.m index 1fd56c35..b48edc61 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.m +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerConnection.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -193,22 +193,18 @@ - (void)_finishProcessingRequest:(GCDWebServerResponse*)response { CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Transfer-Encoding"), CFSTR("chunked")); } [_response.additionalHeaders enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL* stop) { - CFHTTPMessageSetHeaderFieldValue(_responseMessage, (__bridge CFStringRef)key, (__bridge CFStringRef)obj); + CFHTTPMessageSetHeaderFieldValue(self->_responseMessage, (__bridge CFStringRef)key, (__bridge CFStringRef)obj); }]; [self writeHeadersWithCompletionBlock:^(BOOL success) { - if (success) { if (hasBody) { [self writeBodyWithCompletionBlock:^(BOOL successInner) { - - [_response performClose]; // TODO: There's nothing we can do on failure as headers have already been sent - + [self->_response performClose]; // TODO: There's nothing we can do on failure as headers have already been sent }]; } } else if (hasBody) { - [_response performClose]; + [self->_response performClose]; } - }]; } else { [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; @@ -238,15 +234,13 @@ - (void)_readBodyWithLength:(NSUInteger)length initialData:(NSData*)initialData if (length) { [self readBodyWithRemainingLength:length completionBlock:^(BOOL success) { - NSError* localError = nil; - if ([_request performClose:&localError]) { + if ([self->_request performClose:&localError]) { [self _startProcessingRequest]; } else { - GWS_LOG_ERROR(@"Failed closing request body for socket %i: %@", _socket, error); - [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; + GWS_LOG_ERROR(@"Failed closing request body for socket %i: %@", self->_socket, error); + [self abortRequest:self->_request withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; } - }]; } else { if ([_request performClose:&error]) { @@ -269,15 +263,13 @@ - (void)_readChunkedBodyWithInitialData:(NSData*)initialData { NSMutableData* chunkData = [[NSMutableData alloc] initWithData:initialData]; [self readNextBodyChunk:chunkData completionBlock:^(BOOL success) { - NSError* localError = nil; - if ([_request performClose:&localError]) { + if ([self->_request performClose:&localError]) { [self _startProcessingRequest]; } else { - GWS_LOG_ERROR(@"Failed closing request body for socket %i: %@", _socket, error); - [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; + GWS_LOG_ERROR(@"Failed closing request body for socket %i: %@", self->_socket, error); + [self abortRequest:self->_request withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; } - }]; } @@ -286,15 +278,14 @@ - (void)_readRequestHeaders { NSMutableData* headersData = [[NSMutableData alloc] initWithCapacity:kHeadersReadCapacity]; [self readHeaders:headersData withCompletionBlock:^(NSData* extraData) { - if (extraData) { - NSString* requestMethod = CFBridgingRelease(CFHTTPMessageCopyRequestMethod(_requestMessage)); // Method verbs are case-sensitive and uppercase - if (_server.shouldAutomaticallyMapHEADToGET && [requestMethod isEqualToString:@"HEAD"]) { + NSString* requestMethod = CFBridgingRelease(CFHTTPMessageCopyRequestMethod(self->_requestMessage)); // Method verbs are case-sensitive and uppercase + if (self->_server.shouldAutomaticallyMapHEADToGET && [requestMethod isEqualToString:@"HEAD"]) { requestMethod = @"GET"; - _virtualHEAD = YES; + self->_virtualHEAD = YES; } - NSDictionary* requestHeaders = CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(_requestMessage)); // Header names are case-insensitive but CFHTTPMessageCopyAllHeaderFields() will standardize the common ones - NSURL* requestURL = CFBridgingRelease(CFHTTPMessageCopyRequestURL(_requestMessage)); + NSDictionary* requestHeaders = CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(self->_requestMessage)); // Header names are case-insensitive but CFHTTPMessageCopyAllHeaderFields() will standardize the common ones + NSURL* requestURL = CFBridgingRelease(CFHTTPMessageCopyRequestURL(self->_requestMessage)); if (requestURL) { requestURL = [self rewriteRequestURL:requestURL withMethod:requestMethod headers:requestHeaders]; GWS_DCHECK(requestURL); @@ -307,55 +298,53 @@ - (void)_readRequestHeaders { NSString* queryString = requestURL ? CFBridgingRelease(CFURLCopyQueryString((CFURLRef)requestURL, NULL)) : nil; // Don't use -[NSURL query] to make sure query is not unescaped; NSDictionary* requestQuery = queryString ? GCDWebServerParseURLEncodedForm(queryString) : @{}; if (requestMethod && requestURL && requestHeaders && requestPath && requestQuery) { - for (_handler in _server.handlers) { - _request = _handler.matchBlock(requestMethod, requestURL, requestHeaders, requestPath, requestQuery); - if (_request) { + for (self->_handler in self->_server.handlers) { + self->_request = self->_handler.matchBlock(requestMethod, requestURL, requestHeaders, requestPath, requestQuery); + if (self->_request) { break; } } - if (_request) { - _request.localAddressData = self.localAddressData; - _request.remoteAddressData = self.remoteAddressData; - if ([_request hasBody]) { - [_request prepareForWriting]; - if (_request.usesChunkedTransferEncoding || (extraData.length <= _request.contentLength)) { + if (self->_request) { + self->_request.localAddressData = self.localAddressData; + self->_request.remoteAddressData = self.remoteAddressData; + if ([self->_request hasBody]) { + [self->_request prepareForWriting]; + if (self->_request.usesChunkedTransferEncoding || (extraData.length <= self->_request.contentLength)) { NSString* expectHeader = [requestHeaders objectForKey:@"Expect"]; if (expectHeader) { if ([expectHeader caseInsensitiveCompare:@"100-continue"] == NSOrderedSame) { // TODO: Actually validate request before continuing [self writeData:_continueData withCompletionBlock:^(BOOL success) { - if (success) { - if (_request.usesChunkedTransferEncoding) { + if (self->_request.usesChunkedTransferEncoding) { [self _readChunkedBodyWithInitialData:extraData]; } else { - [self _readBodyWithLength:_request.contentLength initialData:extraData]; + [self _readBodyWithLength:self->_request.contentLength initialData:extraData]; } } - }]; } else { - GWS_LOG_ERROR(@"Unsupported 'Expect' / 'Content-Length' header combination on socket %i", _socket); - [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_ExpectationFailed]; + GWS_LOG_ERROR(@"Unsupported 'Expect' / 'Content-Length' header combination on socket %i", self->_socket); + [self abortRequest:self->_request withStatusCode:kGCDWebServerHTTPStatusCode_ExpectationFailed]; } } else { - if (_request.usesChunkedTransferEncoding) { + if (self->_request.usesChunkedTransferEncoding) { [self _readChunkedBodyWithInitialData:extraData]; } else { - [self _readBodyWithLength:_request.contentLength initialData:extraData]; + [self _readBodyWithLength:self->_request.contentLength initialData:extraData]; } } } else { - GWS_LOG_ERROR(@"Unexpected 'Content-Length' header value on socket %i", _socket); - [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_BadRequest]; + GWS_LOG_ERROR(@"Unexpected 'Content-Length' header value on socket %i", self->_socket); + [self abortRequest:self->_request withStatusCode:kGCDWebServerHTTPStatusCode_BadRequest]; } } else { [self _startProcessingRequest]; } } else { - _request = [[GCDWebServerRequest alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:requestPath query:requestQuery]; - GWS_DCHECK(_request); - [self abortRequest:_request withStatusCode:kGCDWebServerHTTPStatusCode_NotImplemented]; + self->_request = [[GCDWebServerRequest alloc] initWithMethod:requestMethod url:requestURL headers:requestHeaders path:requestPath query:requestQuery]; + GWS_DCHECK(self->_request); + [self abortRequest:self->_request withStatusCode:kGCDWebServerHTTPStatusCode_NotImplemented]; } } else { [self abortRequest:nil withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; @@ -364,7 +353,6 @@ - (void)_readRequestHeaders { } else { [self abortRequest:nil withStatusCode:kGCDWebServerHTTPStatusCode_InternalServerError]; } - }]; } @@ -426,7 +414,6 @@ @implementation GCDWebServerConnection (Read) - (void)readData:(NSMutableData*)data withLength:(NSUInteger)length completionBlock:(ReadDataCompletionBlock)block { dispatch_read(_socket, length, dispatch_get_global_queue(_server.dispatchQueuePriority, 0), ^(dispatch_data_t buffer, int error) { - @autoreleasepool { if (error == 0) { size_t size = dispatch_data_get_size(buffer); @@ -439,19 +426,18 @@ - (void)readData:(NSMutableData*)data withLength:(NSUInteger)length completionBl [self didReadBytes:((char*)data.bytes + originalLength) length:(data.length - originalLength)]; block(YES); } else { - if (_totalBytesRead > 0) { - GWS_LOG_ERROR(@"No more data available on socket %i", _socket); + if (self->_totalBytesRead > 0) { + GWS_LOG_ERROR(@"No more data available on socket %i", self->_socket); } else { - GWS_LOG_WARNING(@"No data received from socket %i", _socket); + GWS_LOG_WARNING(@"No data received from socket %i", self->_socket); } block(NO); } } else { - GWS_LOG_ERROR(@"Error while reading from socket %i: %s (%i)", _socket, strerror(error), error); + GWS_LOG_ERROR(@"Error while reading from socket %i: %s (%i)", self->_socket, strerror(error), error); block(NO); } } - }); } @@ -460,29 +446,27 @@ - (void)readHeaders:(NSMutableData*)headersData withCompletionBlock:(ReadHeaders [self readData:headersData withLength:NSUIntegerMax completionBlock:^(BOOL success) { - if (success) { NSRange range = [headersData rangeOfData:_CRLFCRLFData options:0 range:NSMakeRange(0, headersData.length)]; if (range.location == NSNotFound) { [self readHeaders:headersData withCompletionBlock:block]; } else { NSUInteger length = range.location + range.length; - if (CFHTTPMessageAppendBytes(_requestMessage, headersData.bytes, length)) { - if (CFHTTPMessageIsHeaderComplete(_requestMessage)) { + if (CFHTTPMessageAppendBytes(self->_requestMessage, headersData.bytes, length)) { + if (CFHTTPMessageIsHeaderComplete(self->_requestMessage)) { block([headersData subdataWithRange:NSMakeRange(length, headersData.length - length)]); } else { - GWS_LOG_ERROR(@"Failed parsing request headers from socket %i", _socket); + GWS_LOG_ERROR(@"Failed parsing request headers from socket %i", self->_socket); block(nil); } } else { - GWS_LOG_ERROR(@"Failed appending request headers data from socket %i", _socket); + GWS_LOG_ERROR(@"Failed appending request headers data from socket %i", self->_socket); block(nil); } } } else { block(nil); } - }]; } @@ -492,11 +476,10 @@ - (void)readBodyWithRemainingLength:(NSUInteger)length completionBlock:(ReadBody [self readData:bodyData withLength:length completionBlock:^(BOOL success) { - if (success) { if (bodyData.length <= length) { NSError* error = nil; - if ([_request performWriteData:bodyData error:&error]) { + if ([self->_request performWriteData:bodyData error:&error]) { NSUInteger remainingLength = length - bodyData.length; if (remainingLength) { [self readBodyWithRemainingLength:remainingLength completionBlock:block]; @@ -504,18 +487,17 @@ - (void)readBodyWithRemainingLength:(NSUInteger)length completionBlock:(ReadBody block(YES); } } else { - GWS_LOG_ERROR(@"Failed writing request body on socket %i: %@", _socket, error); + GWS_LOG_ERROR(@"Failed writing request body on socket %i: %@", self->_socket, error); block(NO); } } else { - GWS_LOG_ERROR(@"Unexpected extra content reading request body on socket %i", _socket); + GWS_LOG_ERROR(@"Unexpected extra content reading request body on socket %i", self->_socket); block(NO); GWS_DNOT_REACHED(); } } else { block(NO); } - }]; } @@ -575,13 +557,11 @@ - (void)readNextBodyChunk:(NSMutableData*)chunkData completionBlock:(ReadBodyCom [self readData:chunkData withLength:NSUIntegerMax completionBlock:^(BOOL success) { - if (success) { [self readNextBodyChunk:chunkData completionBlock:block]; } else { block(NO); } - }]; } @@ -594,18 +574,16 @@ - (void)writeData:(NSData*)data withCompletionBlock:(WriteDataCompletionBlock)bl [data self]; // Keeps ARC from releasing data too early }); dispatch_write(_socket, buffer, dispatch_get_global_queue(_server.dispatchQueuePriority, 0), ^(dispatch_data_t remainingData, int error) { - @autoreleasepool { if (error == 0) { GWS_DCHECK(remainingData == NULL); [self didWriteBytes:data.bytes length:data.length]; block(YES); } else { - GWS_LOG_ERROR(@"Error while writing to socket %i: %s (%i)", _socket, strerror(error), error); + GWS_LOG_ERROR(@"Error while writing to socket %i: %s (%i)", self->_socket, strerror(error), error); block(NO); } } - }); #if !OS_OBJECT_USE_OBJC_RETAIN_RELEASE dispatch_release(buffer); @@ -622,15 +600,14 @@ - (void)writeHeadersWithCompletionBlock:(WriteHeadersCompletionBlock)block { - (void)writeBodyWithCompletionBlock:(WriteBodyCompletionBlock)block { GWS_DCHECK([_response hasBody]); [_response performReadDataWithCompletion:^(NSData* data, NSError* error) { - if (data) { if (data.length) { - if (_response.usesChunkedTransferEncoding) { + if (self->_response.usesChunkedTransferEncoding) { const char* hexString = [[NSString stringWithFormat:@"%lx", (unsigned long)data.length] UTF8String]; size_t hexLength = strlen(hexString); NSData* chunk = [NSMutableData dataWithLength:(hexLength + 2 + data.length + 2)]; if (chunk == nil) { - GWS_LOG_ERROR(@"Failed allocating memory for response body chunk for socket %i: %@", _socket, error); + GWS_LOG_ERROR(@"Failed allocating memory for response body chunk for socket %i: %@", self->_socket, error); block(NO); return; } @@ -647,31 +624,26 @@ - (void)writeBodyWithCompletionBlock:(WriteBodyCompletionBlock)block { } [self writeData:data withCompletionBlock:^(BOOL success) { - if (success) { [self writeBodyWithCompletionBlock:block]; } else { block(NO); } - }]; } else { - if (_response.usesChunkedTransferEncoding) { + if (self->_response.usesChunkedTransferEncoding) { [self writeData:_lastChunkData withCompletionBlock:^(BOOL success) { - block(success); - }]; } else { block(YES); } } } else { - GWS_LOG_ERROR(@"Failed reading response body for socket %i: %@", _socket, error); + GWS_LOG_ERROR(@"Failed reading response body for socket %i: %@", self->_socket, error); block(NO); } - }]; } @@ -726,7 +698,7 @@ - (void)didWriteBytes:(const void*)bytes length:(NSUInteger)length { #endif } -- (NSURL*)rewriteRequestURL:(NSURL*)url withMethod:(NSString*)method headers:(NSDictionary*)headers { +- (NSURL*)rewriteRequestURL:(NSURL*)url withMethod:(NSString*)method headers:(NSDictionary*)headers { return url; } diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.h index 4235eccc..217fb143 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -41,7 +41,7 @@ extern "C" { * types. Keys of the dictionary must be lowercased file extensions without * the period, and the values must be the corresponding MIME types. */ -NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension, NSDictionary* _Nullable overrides); +NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension, NSDictionary* _Nullable overrides); /** * Add percent-escapes to a string so it can be used in a URL. @@ -60,7 +60,7 @@ NSString* _Nullable GCDWebServerUnescapeURLString(NSString* string); * "application/x-www-form-urlencoded" form. * http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1 */ -NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form); +NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form); /** * On OS X, returns the IPv4 or IPv6 address as a string of the primary @@ -102,6 +102,11 @@ NSString* GCDWebServerFormatISO8601(NSDate* date); */ NSDate* _Nullable GCDWebServerParseISO8601(NSString* string); +/** + * Removes "//", "/./" and "/../" components from path as well as any trailing slash. + */ +NSString* GCDWebServerNormalizePath(NSString* path); + #ifdef __cplusplus } #endif diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.m b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.m index 2a1edfc5..7787884d 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.m +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerFunctions.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -166,8 +166,8 @@ BOOL GCDWebServerIsTextContentType(NSString* type) { return [NSString stringWithFormat:@"<%lu bytes>", (unsigned long)data.length]; } -NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension, NSDictionary* overrides) { - NSDictionary* builtInOverrides = @{ @"css" : @"text/css" }; +NSString* GCDWebServerGetMimeTypeForExtension(NSString* extension, NSDictionary* overrides) { + NSDictionary* builtInOverrides = @{@"css" : @"text/css"}; NSString* mimeType = nil; extension = [extension lowercaseString]; if (extension.length) { @@ -200,7 +200,7 @@ BOOL GCDWebServerIsTextContentType(NSString* type) { #pragma clang diagnostic pop } -NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form) { +NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form) { NSMutableDictionary* parameters = [NSMutableDictionary dictionary]; NSScanner* scanner = [[NSScanner alloc] initWithString:form]; [scanner setCharactersToBeSkipped:nil]; @@ -314,3 +314,18 @@ BOOL GCDWebServerIsTextContentType(NSString* type) { buffer[2 * CC_MD5_DIGEST_LENGTH] = 0; return (NSString*)[NSString stringWithUTF8String:buffer]; } + +NSString* GCDWebServerNormalizePath(NSString* path) { + NSMutableArray* components = [[NSMutableArray alloc] init]; + for (NSString* component in [path componentsSeparatedByString:@"/"]) { + if ([component isEqualToString:@".."]) { + [components removeLastObject]; + } else if (component.length && ![component isEqualToString:@"."]) { + [components addObject:component]; + } + } + if (path.length && ([path characterAtIndex:0] == '/')) { + return [@"/" stringByAppendingString:[components componentsJoinedByString:@"/"]]; // Preserve initial slash + } + return [components componentsJoinedByString:@"/"]; +} diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h index 6e983810..12b697e3 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerPrivate.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerPrivate.h index d726ec2c..4668a978 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerPrivate.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerPrivate.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -170,7 +170,7 @@ static inline NSError* GCDWebServerMakePosixError(int code) { return [NSError errorWithDomain:NSPOSIXErrorDomain code:code userInfo:@{NSLocalizedDescriptionKey : (NSString*)[NSString stringWithUTF8String:strerror(code)]}]; } -extern void GCDWebServerInitializeFunctions(); +extern void GCDWebServerInitializeFunctions(void); extern NSString* _Nullable GCDWebServerNormalizeHeaderValue(NSString* _Nullable value); extern NSString* _Nullable GCDWebServerTruncateHeaderValue(NSString* _Nullable value); extern NSString* _Nullable GCDWebServerExtractHeaderValueParameter(NSString* _Nullable value, NSString* attribute); @@ -185,11 +185,11 @@ extern NSString* GCDWebServerStringFromSockAddr(const struct sockaddr* addr, BOO @end @interface GCDWebServer () -@property(nonatomic, readonly) NSMutableArray* handlers; +@property(nonatomic, readonly) NSMutableArray* handlers; @property(nonatomic, readonly, nullable) NSString* serverName; @property(nonatomic, readonly, nullable) NSString* authenticationRealm; -@property(nonatomic, readonly, nullable) NSMutableDictionary* authenticationBasicAccounts; -@property(nonatomic, readonly, nullable) NSMutableDictionary* authenticationDigestAccounts; +@property(nonatomic, readonly, nullable) NSMutableDictionary* authenticationBasicAccounts; +@property(nonatomic, readonly, nullable) NSMutableDictionary* authenticationDigestAccounts; @property(nonatomic, readonly) BOOL shouldAutomaticallyMapHEADToGET; @property(nonatomic, readonly) dispatch_queue_priority_t dispatchQueuePriority; - (void)willStartConnection:(GCDWebServerConnection*)connection; @@ -213,7 +213,7 @@ extern NSString* GCDWebServerStringFromSockAddr(const struct sockaddr* addr, BOO @end @interface GCDWebServerResponse () -@property(nonatomic, readonly) NSDictionary* additionalHeaders; +@property(nonatomic, readonly) NSDictionary* additionalHeaders; @property(nonatomic, readonly) BOOL usesChunkedTransferEncoding; - (void)prepareForReading; - (BOOL)performOpen:(NSError**)error; diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.h index 3fe90296..79b446a5 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -102,7 +102,7 @@ extern NSString* const GCDWebServerRequestAttribute_RegexCaptures; /** * Returns the HTTP headers for the request. */ -@property(nonatomic, readonly) NSDictionary* headers; +@property(nonatomic, readonly) NSDictionary* headers; /** * Returns the path component of the URL for the request. @@ -114,7 +114,7 @@ extern NSString* const GCDWebServerRequestAttribute_RegexCaptures; * * @warning This property will be nil if there is no query in the URL. */ -@property(nonatomic, readonly, nullable) NSDictionary* query; +@property(nonatomic, readonly, nullable) NSDictionary* query; /** * Returns the content type for the body of the request parsed from the @@ -186,7 +186,7 @@ extern NSString* const GCDWebServerRequestAttribute_RegexCaptures; /** * This method is the designated initializer for the class. */ -- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(nullable NSDictionary*)query; +- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(nullable NSDictionary*)query; /** * Convenience method that checks if the contentType property is defined. diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.m b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.m index 05988cd5..5648eff7 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.m +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerRequest.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -136,12 +136,12 @@ - (BOOL)close:(NSError**)error { @implementation GCDWebServerRequest { BOOL _opened; - NSMutableArray* _decoders; + NSMutableArray* _decoders; id __unsafe_unretained _writer; - NSMutableDictionary* _attributes; + NSMutableDictionary* _attributes; } -- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { +- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { if ((self = [super init])) { _method = [method copy]; _URL = url; @@ -188,7 +188,7 @@ - (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDict if ([rangeHeader hasPrefix:@"bytes="]) { NSArray* components = [[rangeHeader substringFromIndex:6] componentsSeparatedByString:@","]; if (components.count == 1) { - components = [[components firstObject] componentsSeparatedByString:@"-"]; + components = [(NSString*)[components firstObject] componentsSeparatedByString:@"-"]; if (components.count == 2) { NSString* startString = [components objectAtIndex:0]; NSInteger startValue = [startString integerValue]; diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.h b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.h index 1e5e8c9a..7ef7d917 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.h +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.m b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.m index 9153ff67..46042b21 100644 --- a/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.m +++ b/Pods/GCDWebServer/GCDWebServer/Core/GCDWebServerResponse.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -150,12 +150,12 @@ - (void)close { @implementation GCDWebServerResponse { BOOL _opened; - NSMutableArray* _encoders; + NSMutableArray* _encoders; id __unsafe_unretained _reader; } + (instancetype)response { - return [[[self class] alloc] init]; + return [(GCDWebServerResponse*)[[self class] alloc] init]; } - (instancetype)init { @@ -259,11 +259,11 @@ - (NSString*)description { @implementation GCDWebServerResponse (Extensions) + (instancetype)responseWithStatusCode:(NSInteger)statusCode { - return [[self alloc] initWithStatusCode:statusCode]; + return [(GCDWebServerResponse*)[self alloc] initWithStatusCode:statusCode]; } + (instancetype)responseWithRedirect:(NSURL*)location permanent:(BOOL)permanent { - return [[self alloc] initWithRedirect:location permanent:permanent]; + return [(GCDWebServerResponse*)[self alloc] initWithRedirect:location permanent:permanent]; } - (instancetype)initWithStatusCode:(NSInteger)statusCode { diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.h b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.h index f21a4b78..b105ce76 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.h +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.m b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.m index 3ea9bba7..fcb29321 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.m +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerDataRequest.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -48,7 +48,7 @@ - (BOOL)open:(NSError**)error { } if (_data == nil) { if (error) { - *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Failed allocating memory" }]; + *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Failed allocating memory"}]; } return NO; } diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.h b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.h index 8aceae4d..3c6a6d24 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.h +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.m b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.m index 8a47fcc0..0845d5e9 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.m +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerFileRequest.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -35,7 +35,7 @@ @implementation GCDWebServerFileRequest { int _file; } -- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { +- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { if ((self = [super initWithMethod:method url:url headers:headers path:path query:query])) { _temporaryPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]]; } diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h index 93ac1791..cbe838ea 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -107,13 +107,13 @@ NS_ASSUME_NONNULL_BEGIN * Returns the argument parts from the multipart encoded form as * name / GCDWebServerMultiPartArgument pairs. */ -@property(nonatomic, readonly) NSArray* arguments; +@property(nonatomic, readonly) NSArray* arguments; /** * Returns the files parts from the multipart encoded form as * name / GCDWebServerMultiPartFile pairs. */ -@property(nonatomic, readonly) NSArray* files; +@property(nonatomic, readonly) NSArray* files; /** * Returns the MIME type for multipart encoded forms diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m index 4e6bf09c..7550a021 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -106,8 +106,8 @@ @implementation GCDWebServerMIMEStreamParser { NSString* _defaultcontrolName; ParserState _state; NSMutableData* _data; - NSMutableArray* _arguments; - NSMutableArray* _files; + NSMutableArray* _arguments; + NSMutableArray* _files; NSString* _controlName; NSString* _fileName; @@ -132,7 +132,7 @@ + (void)initialize { } } -- (instancetype)initWithBoundary:(NSString* _Nonnull)boundary defaultControlName:(NSString* _Nullable)name arguments:(NSMutableArray* _Nonnull)arguments files:(NSMutableArray* _Nonnull)files { +- (instancetype)initWithBoundary:(NSString* _Nonnull)boundary defaultControlName:(NSString* _Nullable)name arguments:(NSMutableArray* _Nonnull)arguments files:(NSMutableArray* _Nonnull)files { NSData* data = boundary.length ? [[NSString stringWithFormat:@"--%@", boundary] dataUsingEncoding:NSASCIIStringEncoding] : nil; if (data == nil) { GWS_DNOT_REACHED(); @@ -312,8 +312,8 @@ - (BOOL)isAtEnd { @end @interface GCDWebServerMultiPartFormRequest () -@property(nonatomic) NSMutableArray* arguments; -@property(nonatomic) NSMutableArray* files; +@property(nonatomic) NSMutableArray* arguments; +@property(nonatomic) NSMutableArray* files; @end @implementation GCDWebServerMultiPartFormRequest { @@ -324,7 +324,7 @@ + (NSString*)mimeType { return @"multipart/form-data"; } -- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { +- (instancetype)initWithMethod:(NSString*)method url:(NSURL*)url headers:(NSDictionary*)headers path:(NSString*)path query:(NSDictionary*)query { if ((self = [super initWithMethod:method url:url headers:headers path:path query:query])) { _arguments = [[NSMutableArray alloc] init]; _files = [[NSMutableArray alloc] init]; @@ -337,7 +337,7 @@ - (BOOL)open:(NSError**)error { _parser = [[GCDWebServerMIMEStreamParser alloc] initWithBoundary:boundary defaultControlName:nil arguments:_arguments files:_files]; if (_parser == nil) { if (error) { - *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Failed starting to parse multipart form data" }]; + *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Failed starting to parse multipart form data"}]; } return NO; } @@ -347,7 +347,7 @@ - (BOOL)open:(NSError**)error { - (BOOL)writeData:(NSData*)data error:(NSError**)error { if (![_parser appendBytes:data.bytes length:data.length]) { if (error) { - *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Failed continuing to parse multipart form data" }]; + *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Failed continuing to parse multipart form data"}]; } return NO; } @@ -359,7 +359,7 @@ - (BOOL)close:(NSError**)error { _parser = nil; if (!atEnd) { if (error) { - *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Failed finishing to parse multipart form data" }]; + *error = [NSError errorWithDomain:kGCDWebServerErrorDomain code:-1 userInfo:@{NSLocalizedDescriptionKey : @"Failed finishing to parse multipart form data"}]; } return NO; } diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h index fcf177e5..c0168b76 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -42,7 +42,7 @@ NS_ASSUME_NONNULL_BEGIN * The text encoding used to interpret the data is extracted from the * "Content-Type" header or defaults to UTF-8. */ -@property(nonatomic, readonly) NSDictionary* arguments; +@property(nonatomic, readonly) NSDictionary* arguments; /** * Returns the MIME type for URL encoded forms diff --git a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m index 7e0137f8..d4d89e43 100644 --- a/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m +++ b/Pods/GCDWebServer/GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.h b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.h index 783f5966..e5121c33 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.h +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -64,7 +64,7 @@ NS_ASSUME_NONNULL_BEGIN * Creates a data response from an HTML template encoded using UTF-8. * See -initWithHTMLTemplate:variables: for details. */ -+ (nullable instancetype)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; ++ (nullable instancetype)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; /** * Creates a data response from a serialized JSON object and the default @@ -94,7 +94,7 @@ NS_ASSUME_NONNULL_BEGIN * All occurences of "%variable%" within the HTML template are replaced with * their corresponding values. */ -- (nullable instancetype)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; +- (nullable instancetype)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables; /** * Initializes a data response from a serialized JSON object and the default diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.m b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.m index b4968474..2ea2ce90 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.m +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerDataResponse.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -39,7 +39,7 @@ @implementation GCDWebServerDataResponse { @dynamic contentType; + (instancetype)responseWithData:(NSData*)data contentType:(NSString*)type { - return [[[self class] alloc] initWithData:data contentType:type]; + return [(GCDWebServerDataResponse*)[[self class] alloc] initWithData:data contentType:type]; } - (instancetype)initWithData:(NSData*)data contentType:(NSString*)type { @@ -75,23 +75,23 @@ - (NSString*)description { @implementation GCDWebServerDataResponse (Extensions) + (instancetype)responseWithText:(NSString*)text { - return [[self alloc] initWithText:text]; + return [(GCDWebServerDataResponse*)[self alloc] initWithText:text]; } + (instancetype)responseWithHTML:(NSString*)html { - return [[self alloc] initWithHTML:html]; + return [(GCDWebServerDataResponse*)[self alloc] initWithHTML:html]; } -+ (instancetype)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables { - return [[self alloc] initWithHTMLTemplate:path variables:variables]; ++ (instancetype)responseWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables { + return [(GCDWebServerDataResponse*)[self alloc] initWithHTMLTemplate:path variables:variables]; } + (instancetype)responseWithJSONObject:(id)object { - return [[self alloc] initWithJSONObject:object]; + return [(GCDWebServerDataResponse*)[self alloc] initWithJSONObject:object]; } + (instancetype)responseWithJSONObject:(id)object contentType:(NSString*)type { - return [[self alloc] initWithJSONObject:object contentType:type]; + return [(GCDWebServerDataResponse*)[self alloc] initWithJSONObject:object contentType:type]; } - (instancetype)initWithText:(NSString*)text { @@ -112,7 +112,7 @@ - (instancetype)initWithHTML:(NSString*)html { return [self initWithData:data contentType:@"text/html; charset=utf-8"]; } -- (instancetype)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables { +- (instancetype)initWithHTMLTemplate:(NSString*)path variables:(NSDictionary*)variables { NSMutableString* html = [[NSMutableString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL]; [variables enumerateKeysAndObjectsUsingBlock:^(NSString* key, NSString* value, BOOL* stop) { [html replaceOccurrencesOfString:[NSString stringWithFormat:@"%%%@%%", key] withString:value options:0 range:NSMakeRange(0, html.length)]; diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.h b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.h index 92c834cf..7e10d5bf 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.h +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.m b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.m index f1cd2023..ab3788f6 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.m +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerErrorResponse.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -37,7 +37,7 @@ + (instancetype)responseWithClientError:(GCDWebServerClientErrorHTTPStatusCode)e GWS_DCHECK(((NSInteger)errorCode >= 400) && ((NSInteger)errorCode < 500)); va_list arguments; va_start(arguments, format); - GCDWebServerErrorResponse* response = [[self alloc] initWithStatusCode:errorCode underlyingError:nil messageFormat:format arguments:arguments]; + GCDWebServerErrorResponse* response = [(GCDWebServerErrorResponse*)[self alloc] initWithStatusCode:errorCode underlyingError:nil messageFormat:format arguments:arguments]; va_end(arguments); return response; } @@ -46,7 +46,7 @@ + (instancetype)responseWithServerError:(GCDWebServerServerErrorHTTPStatusCode)e GWS_DCHECK(((NSInteger)errorCode >= 500) && ((NSInteger)errorCode < 600)); va_list arguments; va_start(arguments, format); - GCDWebServerErrorResponse* response = [[self alloc] initWithStatusCode:errorCode underlyingError:nil messageFormat:format arguments:arguments]; + GCDWebServerErrorResponse* response = [(GCDWebServerErrorResponse*)[self alloc] initWithStatusCode:errorCode underlyingError:nil messageFormat:format arguments:arguments]; va_end(arguments); return response; } @@ -55,7 +55,7 @@ + (instancetype)responseWithClientError:(GCDWebServerClientErrorHTTPStatusCode)e GWS_DCHECK(((NSInteger)errorCode >= 400) && ((NSInteger)errorCode < 500)); va_list arguments; va_start(arguments, format); - GCDWebServerErrorResponse* response = [[self alloc] initWithStatusCode:errorCode underlyingError:underlyingError messageFormat:format arguments:arguments]; + GCDWebServerErrorResponse* response = [(GCDWebServerErrorResponse*)[self alloc] initWithStatusCode:errorCode underlyingError:underlyingError messageFormat:format arguments:arguments]; va_end(arguments); return response; } @@ -64,7 +64,7 @@ + (instancetype)responseWithServerError:(GCDWebServerServerErrorHTTPStatusCode)e GWS_DCHECK(((NSInteger)errorCode >= 500) && ((NSInteger)errorCode < 600)); va_list arguments; va_start(arguments, format); - GCDWebServerErrorResponse* response = [[self alloc] initWithStatusCode:errorCode underlyingError:underlyingError messageFormat:format arguments:arguments]; + GCDWebServerErrorResponse* response = [(GCDWebServerErrorResponse*)[self alloc] initWithStatusCode:errorCode underlyingError:underlyingError messageFormat:format arguments:arguments]; va_end(arguments); return response; } diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.h b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.h index 9403835e..78931bc6 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.h +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -101,7 +101,7 @@ NS_ASSUME_NONNULL_BEGIN * file extensions without the period, and the values must be the corresponding * MIME types. */ -- (nullable instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment mimeTypeOverrides:(nullable NSDictionary*)overrides; +- (nullable instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment mimeTypeOverrides:(nullable NSDictionary*)overrides; @end diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.m b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.m index bd07518c..78233063 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.m +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerFileResponse.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -45,19 +45,19 @@ @implementation GCDWebServerFileResponse { @dynamic contentType, lastModifiedDate, eTag; + (instancetype)responseWithFile:(NSString*)path { - return [[[self class] alloc] initWithFile:path]; + return [(GCDWebServerFileResponse*)[[self class] alloc] initWithFile:path]; } + (instancetype)responseWithFile:(NSString*)path isAttachment:(BOOL)attachment { - return [[[self class] alloc] initWithFile:path isAttachment:attachment]; + return [(GCDWebServerFileResponse*)[[self class] alloc] initWithFile:path isAttachment:attachment]; } + (instancetype)responseWithFile:(NSString*)path byteRange:(NSRange)range { - return [[[self class] alloc] initWithFile:path byteRange:range]; + return [(GCDWebServerFileResponse*)[[self class] alloc] initWithFile:path byteRange:range]; } + (instancetype)responseWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment { - return [[[self class] alloc] initWithFile:path byteRange:range isAttachment:attachment mimeTypeOverrides:nil]; + return [(GCDWebServerFileResponse*)[[self class] alloc] initWithFile:path byteRange:range isAttachment:attachment mimeTypeOverrides:nil]; } - (instancetype)initWithFile:(NSString*)path { @@ -76,7 +76,7 @@ - (instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range { return [NSDate dateWithTimeIntervalSince1970:((NSTimeInterval)t->tv_sec + (NSTimeInterval)t->tv_nsec / 1000000000.0)]; } -- (instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment mimeTypeOverrides:(NSDictionary*)overrides { +- (instancetype)initWithFile:(NSString*)path byteRange:(NSRange)range isAttachment:(BOOL)attachment mimeTypeOverrides:(NSDictionary*)overrides { struct stat info; if (lstat([path fileSystemRepresentation], &info) || !(info.st_mode & S_IFREG)) { GWS_DNOT_REACHED(); diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.h b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.h index bb48e661..211f6303 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.h +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.h @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.m b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.m index 9387263c..c05e91b4 100644 --- a/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.m +++ b/Pods/GCDWebServer/GCDWebServer/Responses/GCDWebServerStreamedResponse.m @@ -1,5 +1,5 @@ /* - Copyright (c) 2012-2015, Pierre-Olivier Latour + Copyright (c) 2012-2019, Pierre-Olivier Latour All rights reserved. Redistribution and use in source and binary forms, with or without @@ -38,21 +38,19 @@ @implementation GCDWebServerStreamedResponse { @dynamic contentType; + (instancetype)responseWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block { - return [[[self class] alloc] initWithContentType:type streamBlock:block]; + return [(GCDWebServerStreamedResponse*)[[self class] alloc] initWithContentType:type streamBlock:block]; } + (instancetype)responseWithContentType:(NSString*)type asyncStreamBlock:(GCDWebServerAsyncStreamBlock)block { - return [[[self class] alloc] initWithContentType:type asyncStreamBlock:block]; + return [(GCDWebServerStreamedResponse*)[[self class] alloc] initWithContentType:type asyncStreamBlock:block]; } - (instancetype)initWithContentType:(NSString*)type streamBlock:(GCDWebServerStreamBlock)block { return [self initWithContentType:type asyncStreamBlock:^(GCDWebServerBodyReaderCompletionBlock completionBlock) { - NSError* error = nil; NSData* data = block(&error); completionBlock(data, error); - }]; } diff --git a/Pods/GCDWebServer/README.md b/Pods/GCDWebServer/README.md index b22211ad..3a156ca3 100644 --- a/Pods/GCDWebServer/README.md +++ b/Pods/GCDWebServer/README.md @@ -35,16 +35,15 @@ What's not supported (but not really required from an embedded HTTP server): * HTTPS Requirements: -* OS X 10.7 or later (x86_64) +* macOS 10.7 or later (x86_64) * iOS 8.0 or later (armv7, armv7s or arm64) -* ARC memory management only (if you need MRC support use GCDWebServer 3.1 and earlier) +* tvOS 9.0 or later (arm64) +* ARC memory management only (if you need MRC support use GCDWebServer 3.1 or earlier) Getting Started =============== -Download or check out the [latest release](https://github.com/swisspol/GCDWebServer/releases) of GCDWebServer then add the entire "GCDWebServer" subfolder to your Xcode project. If you intend to use one of the extensions like GCDWebDAVServer or GCDWebUploader, add these subfolders as well. - -If you add the files directly then (1) link to `libz` (via Target > Build Phases > Link Binary With Libraries) and (2) add `$(SDKROOT)/usr/include/libxml2` to your header search paths (via Target > Build Settings > HEADER_SEARCH_PATHS). +Download or check out the [latest release](https://github.com/swisspol/GCDWebServer/releases) of GCDWebServer then add the entire "GCDWebServer" subfolder to your Xcode project. If you intend to use one of the extensions like GCDWebDAVServer or GCDWebUploader, add these subfolders as well. Finally link to `libz` (via Target > Build Phases > Link Binary With Libraries) and add `$(SDKROOT)/usr/include/libxml2` to your header search paths (via Target > Build Settings > HEADER_SEARCH_PATHS). Alternatively, you can install GCDWebServer using [CocoaPods](http://cocoapods.org/) by simply adding this line to your Podfile: ``` @@ -350,8 +349,8 @@ GCDWebServer & Background Mode for iOS Apps When doing networking operations in iOS apps, you must handle carefully [what happens when iOS puts the app in the background](https://developer.apple.com/library/ios/technotes/tn2277/_index.html). Typically you must stop any network servers while the app is in the background and restart them when the app comes back to the foreground. This can become quite complex considering servers might have ongoing connections when they need to be stopped. Fortunately, GCDWebServer does all of this automatically for you: -- GCDWebServer begins a [background task](https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html) whenever the first HTTP connection is opened and ends it only when the last one is closed. This prevents iOS from suspending the app after it goes in the background, which would immediately kill HTTP connections to the client. - - While the app is in the background, as long as new HTTP connections keep being initiated, the background task will continue to exist and iOS will not suspend the app (unless under sudden and unexpected memory pressure). +- GCDWebServer begins a [background task](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html) whenever the first HTTP connection is opened and ends it only when the last one is closed. This prevents iOS from suspending the app after it goes in the background, which would immediately kill HTTP connections to the client. + - While the app is in the background, as long as new HTTP connections keep being initiated, the background task will continue to exist and iOS will not suspend the app **for up to 10 minutes** (unless under sudden and unexpected memory pressure). - If the app is still in the background when the last HTTP connection is closed, GCDWebServer will suspend itself and stop accepting new connections as if you had called ```-stop``` (this behavior can be disabled with the ```GCDWebServerOption_AutomaticallySuspendInBackground``` option). - If the app goes in the background while no HTTP connections are opened, GCDWebServer will immediately suspend itself and stop accepting new connections as if you had called ```-stop``` (this behavior can be disabled with the ```GCDWebServerOption_AutomaticallySuspendInBackground``` option). - If the app comes back to the foreground and GCDWebServer had been suspended, it will automatically resume itself and start accepting again new HTTP connections as if you had called ```-start```. diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index 679330ea..d8284176 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -1,9 +1,9 @@ PODS: - Alamofire (4.2.0) - BRLOptionParser (0.3.1) - - GCDWebServer (3.4.2): - - GCDWebServer/Core (= 3.4.2) - - GCDWebServer/Core (3.4.2) + - GCDWebServer (3.5.2): + - GCDWebServer/Core (= 3.5.2) + - GCDWebServer/Core (3.5.2) DEPENDENCIES: - Alamofire (~> 4.2.0) @@ -19,8 +19,8 @@ SPEC REPOS: SPEC CHECKSUMS: Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe BRLOptionParser: a03256a8ff003ca1f5376c55f55f210e085a3958 - GCDWebServer: 8d67ee9f634b4bb91eb4b8aee440318a5fc6debd + GCDWebServer: ead88cd14596dd4eae4f5830b8877c87c8728990 -PODFILE CHECKSUM: 8e98b2fb2d6be56882a44b2ff9241a800101e1d4 +PODFILE CHECKSUM: 6b485731eac897a000e5b608b7849ad661fe16da -COCOAPODS: 1.5.3 +COCOAPODS: 1.6.1 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 0d8587cd..c958be27 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,878 +7,865 @@ objects = { /* Begin PBXBuildFile section */ - 015A2D47B6DA8E170E4E64108EC177CA /* GCDWebServerFileRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D7C15E08E56E065130F76FC8DC8C8619 /* GCDWebServerFileRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03810806C0578A750613717248DC37CC /* GCDWebServerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CA78677B47A82041B6A0C96CE51F76C2 /* GCDWebServerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; - 0551162B7568A0F3028CF7CE13E9C1C7 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6444C9A87ED6919A7864A0C9D70A4C /* GCDWebServerURLEncodedFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 098AA417A5494FC829E777DC5CF06ECC /* GCDWebServerURLEncodedFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 56CBA6D73D3D0B47B5D2DCA98FD3514E /* GCDWebServerURLEncodedFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B8140968914C908CFB4949F67745DD7 /* GCDWebServerFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EB10970D56AE3E8EC08A3B6CB0ECF896 /* GCDWebServerFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0EC1F64B51A455E18896FCB15AE297F7 /* Pods-ShadowsocksX-NG-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2502B1002366776EA56601BE5F5D84B7 /* Pods-ShadowsocksX-NG-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10EB23E9ECC4B33E16933BB1EA560B6A /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E64BA5DE520D1FF8D157D1948EF678 /* Timeline.swift */; }; - 1568BC317134F1902AB76EE65E0A18CE /* GCDWebServerDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = B49FCFC5427009EB0DE924D8E6689486 /* GCDWebServerDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E04A54848FAAA36AAE89BBDAFE1685A3 /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1EF1D9B948C91F3CAD0F2998F3765D8B /* GCDWebServerErrorResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B884322F7F32E5886E831225EF61A24 /* GCDWebServerErrorResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2527F62CEADDA5CE60852E0C067D3438 /* GCDWebServerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 7EA43A03295E967E8CE48DC3D41B1FB1 /* GCDWebServerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 286A79B0F2405FD08804042FE30407B1 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5BF25F29EE771444894D4B4BD6A5094A /* GCDWebServerMultiPartFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 30E2A73CDE464DC6C23D3524F07FBB9F /* GCDWebServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CEA8A07A4390EF3FDD8F1EC9EA300AF6 /* GCDWebServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35B3DA850A250223EE5CEB9DB04D1FC4 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 432FFBD34AE4D6FE11F7562A7B2E2DF6 /* GCDWebServerResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3626B94094672CB1C9DEA32B9F9502E1 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C058E7895E0BD655DB18CD87B39658B /* TaskDelegate.swift */; }; - 36E0FA5FE4424D20F0215B1C2CD85D90 /* GCDWebServerRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = FE4DE2F9318899EC55FF739F09547B9F /* GCDWebServerRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3E715DFE443524EB6ADE892E4A676224 /* GCDWebServerMultiPartFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEC4F2E970093B9815E645E63781C40 /* GCDWebServerMultiPartFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 48FE45BD7BF4ABB32A024550ED96B4C6 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 41B03492069EA8D52FDD5E9F8CC3749D /* GCDWebServerStreamedResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4EDE49009B5B68074CD71F8B362F0DDC /* GCDWebServerDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 056695931D97F3BAC1F31181094FF7F0 /* GCDWebServerDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5387216E723A3C68E851CA15573CDD71 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 781B71F26694E106B9C6014A4D828CFE /* Request.swift */; }; - 53D63A17DB43C044EFBAA17337600276 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BD69E62A30DA9C6468DE578D50E5FB0 /* GCDWebServerRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 58892DB0E616E7CD4145434C0726715D /* Pods-ShadowsocksX-NGTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA83B34060483A9575B0CF713C3A6561 /* Pods-ShadowsocksX-NGTests-dummy.m */; }; - 61200D01A1855D7920CEF835C8BE00B0 /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2625C48AD777A2B7E26D2A80E9CD94E7 /* DispatchQueue+Alamofire.swift */; }; - 62F65AD8DC4F0F9610F4B8B4738EC094 /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193AA1B44C4CB1CFCCEDD6C9741F5211 /* ServerTrustPolicy.swift */; }; - 66AD0D86950A5C05121AE482F5257717 /* GCDWebServerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 150AAAC15A441418AEA6DFBF159FBEA0 /* GCDWebServerConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C5CE01B22D5E2A5E4775C9A9787DE0C /* Pods-ShadowsocksX-NGTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 12208C6E49D11049C3EC034F39958E1F /* Pods-ShadowsocksX-NGTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6C62ACD1AF9B80626023D3E654D3E77B /* GCDWebServerStreamedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 65715F792D70CDE4E67F1EB98531E233 /* GCDWebServerStreamedResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7968E0EAEE89CC230514453422FA04A0 /* BRLOptionParser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 052330BD03A0DFCDEFF81F8EC5BFEB02 /* BRLOptionParser-dummy.m */; }; - 7B5FE28C7EA4122B0598738E54DBEBD8 /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3565E299C44D10C2D206FDCD078A0008 /* SessionDelegate.swift */; }; - 7B70A32CB535894B889DC0400D0DE4B5 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E02D3FE330950F96E4826E6785950F95 /* GCDWebServerDataRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7C46C6DFBF9F5A96C6BCE1C93052B63D /* GCDWebServerHTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = D9D61BAD16772ED8DBCD878F6BBF7025 /* GCDWebServerHTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D8CC01E8C9EFFF9F4D65406CDE0AB66 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1673CAE4B8238FFD59A792823A36A9DF /* Result.swift */; }; - 886E89D85907BBD7A8C8BAA088D23E3D /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D35A95B17B77B37E12236498D60B8478 /* GCDWebServerFileResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 903476C2107A142E31FFA47421F24259 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */; }; - 97148AEF5411075B9F03F3F4493EDEC6 /* BRLOptionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = BAA6E2FFB996A81C9D31918A563B43FB /* BRLOptionParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9AEFC01EC977E03EF314D01BBC8506AD /* BRLOptionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4461C7BE603BCBC96BA24E3E752C6AC0 /* BRLOptionParser.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9C685B398DA6F9040CF0B83810978868 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7340F61024A15F9541F6FF0FBC2494F3 /* SystemConfiguration.framework */; }; - 9ED2BB2981896E0A39EFA365503F58CE /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D86AC40F610A78D1B5E5AC9528E70ADB /* AFError.swift */; }; - A2A6F71B727312BD45CC7A4AAD7B0AB7 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E6D819AE4FECE3068ED91259133EAC /* NetworkReachabilityManager.swift */; }; - A9EEEA7477981DEEBC72432DE9990A4B /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C3BBE5823DB4F4B1FBAB13B76BA8A625 /* Alamofire-dummy.m */; }; - AE1EF48399533730D0066E04B22CA2D6 /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 352C9ACA5D14E48B378FF32021EAD9B4 /* SessionManager.swift */; }; - B65FCF589DA398C3EFE0128064E510EC /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9C4A7AA3B3DD74EDA43165A42745D1A /* MultipartFormData.swift */; }; - B7EF65DA3A34ABF3B41F50ADCD198BDC /* GCDWebServerFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AB24692BC4901FA1B8CD5A65C8AA62 /* GCDWebServerFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BBEFE2F9CEB73DC7BD97FFA66A0D9D4F /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6648A20B97426F9940955502FA6FF042 /* Validation.swift */; }; - BD08FB1B1A3C44D391639973F1AE05E4 /* Pods-proxy_conf_helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CE50445A73ECB9A2ED31A6FF93D45808 /* Pods-proxy_conf_helper-dummy.m */; }; - BE5C67A07E289FE1F9BE27335B159997 /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = C83162C9BDFB3C0617CF191D660EC2DA /* ParameterEncoding.swift */; }; - C96E54153198E59FF0F8B9F7408523E0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = BE05C895D7CA02C6123697B3944C59D3 /* GCDWebServerDataResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CB5D0CFFF87398EE681C5B15F7EA39BF /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */; }; - CB6D60925223897FFA2662667DF83E8A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC11D9EFE483BFE3E6CC4AC3CCC0E8D7 /* Response.swift */; }; - D2B04C075D6CA6AF10C35D8BF7DEF0D3 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9564AF1CDDA43CCBDDB1A7A9D41FD163 /* GCDWebServerFileRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D63E514E26A060F7C90A92AE8E9B49F9 /* GCDWebServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F7694525D8AE670711C0FB82C944D82 /* GCDWebServer-dummy.m */; }; - D7524216B4C0994A50624825DFB7CB6B /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C6F72ED24E84D8DC9445729D927B6E8 /* GCDWebServerConnection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DDEF6BD8E24542AFD83487B24269B4DB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */; }; - E62DD91C60246BD1E4E8A0AF5D7BF0E7 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CC694BC2D5AA3651FE2946D4032D0F5 /* GCDWebServerErrorResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E9E49601CF0FCF90E3E962F5DDEFD115 /* Pods-ShadowsocksX-NG-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D14DA8CFEF72F4E6EC8C74463B3D83FE /* Pods-ShadowsocksX-NG-dummy.m */; }; - EA6D2E46B967F447FFC46520EC328B5E /* GCDWebServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 057330267A99F07C8ADE6135AA1F622F /* GCDWebServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EC1E412798763F19D981B30C3197EE54 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */; }; - EFD264FC408EBF3BA2528E70B08DDD94 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12B556C66780BC3D0BECF011EAF49ECB /* Notifications.swift */; }; - F359857602B1D4C91B4AC3D1A2CDFE1B /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CD28F4DA9E9FD6CDF59B9183753B0AD /* GCDWebServerFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F6BECD98B97CBFEBE2C96F0E9E72A6C0 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11B6EC5B2B4F6B09E9967325BF493C9D /* ResponseSerialization.swift */; }; - F8B3D3092ED0417E8CDF32033F6122F5 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E8D592A9C0AE4B6C90789AFF29DF516 /* Alamofire.swift */; }; - FBF219CBB84DD6F373B818708C889C9D /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3490D661D0DB72BC3A5F94A1C6AE083C /* GCDWebServer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 059D92B7BBFBEC53E9A3B6E11C5C3B3A /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = D925DEEB1AA994A16C2F4BFA0D314BF5 /* Response.swift */; }; + 0A39AF55285A3A4F7CBABB6D822FA4A3 /* Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = E65FB9638E15DB817E416D8959ED2217 /* Alamofire.swift */; }; + 1D29D2ACADF961F69D32B06FA6A09E28 /* Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF2320AC6639A975D0AEE9FB3A9D50C /* Notifications.swift */; }; + 1D75F5F1ABA6BC79D3AF784165CA5F45 /* Pods-ShadowsocksX-NGTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 310065BB8BA37C6E5EC6BFEEB5E56732 /* Pods-ShadowsocksX-NGTests-dummy.m */; }; + 26D00D810347C796D2B0A8AB1D63C35B /* GCDWebServerDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = C308BB1DA126E1D0A2024FEFCCB4B52C /* GCDWebServerDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 27D1B8DA33A23CE4D958006FEE7BE1AB /* GCDWebServerFileResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 164DEBB42020FEF0636C93AAAF156FAA /* GCDWebServerFileResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2BFB57E6EED1D26D3A9C35651DBB7C1B /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */; }; + 355C18EEC82624A06A6CC93965258E33 /* Request.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9872DF8552FDF65822D628C22E431A98 /* Request.swift */; }; + 3D7F6978D4B0A0AB0C794A81357ED86D /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A52452362CCDF21BA285051700726AB /* GCDWebServerDataRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3E0749AF6C51BCF0E4A41CF1D6A76FED /* DispatchQueue+Alamofire.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF1E024E987E3856C8AEC7DFD2B5CC02 /* DispatchQueue+Alamofire.swift */; }; + 3FC9145BE8654A6711C114656D100D9C /* GCDWebServerStreamedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BE9709AFE4E983A28AFDD86F3B2F161 /* GCDWebServerStreamedResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 44B31068614CC9235A98A405A6FE0EFD /* GCDWebServerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F09164DA7F574F60740FD666C39BF581 /* GCDWebServerPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; + 48D3DBE2486D3B7A86B3C2E20CAD876A /* GCDWebServer-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B0E849D3F621D20CA3DECD382494DC4 /* GCDWebServer-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 49B4D17C1D4273AFEB04191247500F5C /* GCDWebServerHTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 12D101203C776EE6C2C6C4B579BBA85C /* GCDWebServerHTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4CAC85194B408B18B11E540E0CB56913 /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 303967A6A900F5EDCD461249C96E2138 /* GCDWebServerFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5EE7EDAAC154BF341CD2A143B035F646 /* GCDWebServerRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = DD9FE81329B2CB56CE75CDA061E02349 /* GCDWebServerRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 60B6C2A003864AAD3A426448152F67BE /* Timeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55797B4DBA18BE6734C79399AFEDFAD9 /* Timeline.swift */; }; + 66B52CBDE62DE19BCFD0E5977F357C8C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */; }; + 6785E832F7BBC1D33A46780799558846 /* GCDWebServerErrorResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 78B9D7599A4353C3F912B34C5D2C9C85 /* GCDWebServerErrorResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D7A6F03181937180312938E07E0DD4D /* BRLOptionParser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EF16BDCEFC35C53E48509A65D1DF827 /* BRLOptionParser-dummy.m */; }; + 6EFD003458AE7F689DEA720A2030C261 /* ResponseSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40B2A6AD3ACD9DEC0E4BD33B6A4B7B7E /* ResponseSerialization.swift */; }; + 700D3D95AF9520CB227846DFD943A2DA /* ParameterEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5AFCAABE96E4AAFA4D18A852E002C585 /* ParameterEncoding.swift */; }; + 73AB05789A4982944AF68DBD013E3EB7 /* NetworkReachabilityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D07510C2DD7A48CD70D5A107A2A9B02 /* NetworkReachabilityManager.swift */; }; + 772911DA6E33D1CBBC30131B7C8BDBB3 /* Alamofire-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BCEDCB5061BB8F4529EA8049E1840D9 /* Alamofire-dummy.m */; }; + 77E8F0EB9FFBE2E3EB0C77095C644606 /* TaskDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 711410EB311CDE9D6C6DD73169A84EF8 /* TaskDelegate.swift */; }; + 7C351144D3496DAEF61AC63402275C20 /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C9AE8D95B7650859166F3B7DAC02F4A /* GCDWebServerFileResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7C4B2352AFF5886763C59CFEF9959379 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AAEEEABD6FFA97C4A7379B4B3F6C25F /* GCDWebServerResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7E3538A6992A38276764936A9733493D /* AFError.swift in Sources */ = {isa = PBXBuildFile; fileRef = C609FEB957AB9D23053B2128CA9F2C60 /* AFError.swift */; }; + 892AFF8D34A8B401749E8771D5F03FE8 /* GCDWebServerMultiPartFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E3ABC77C4F0E30DFAD5C186D002ED51F /* GCDWebServerMultiPartFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8AD5471D4E1071B2AB31AF5603EE3AE6 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */; }; + 8D2A6A90A6DDAF75EA52D471258545CC /* ServerTrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA4D7E5B797D0317876D57E073E4324A /* ServerTrustPolicy.swift */; }; + 8FAD5FE81EE7F9491C33109155276FBB /* GCDWebServer-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 54C5E62AAA3FB7D497AB9545525EBEA9 /* GCDWebServer-dummy.m */; }; + 95CEA8E0B292655A160B87E97AF95151 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F32293B9ED5B93E5CA1D831203E09D5 /* GCDWebServerDataResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9948972AC65442777BB59BABEBD3FAE2 /* BRLOptionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 15901F6435662623DEE844EFC9A5639C /* BRLOptionParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9A9EDED1E6001A2621A29FE6288C40CF /* GCDWebServerURLEncodedFormRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = E45CB5C7CAB208ABD1D90A53A89AFF37 /* GCDWebServerURLEncodedFormRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A1EC41966B261DCE460BCDE5124A1DBE /* SessionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F5EFFEB107C00AB6A469C293FD29D95 /* SessionDelegate.swift */; }; + A4768AA8B455E86B5EE9A705CB51A903 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 40BBA00F469C4E1162FF4A63A5E8B187 /* GCDWebServerMultiPartFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A6F074C8463D256584FE216679275A82 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F01DB18A5507E18EFF3B55F055F09431 /* GCDWebServerURLEncodedFormRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AA56769D8733D3F3E7976742D5ABA998 /* Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4285FA0E0EB964D7AC8CACA27FCBE0AA /* Validation.swift */; }; + AEA829AB1A8AF2AD077A808AED6B178A /* MultipartFormData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F60665DFEC423603512BD03FDCD57CF /* MultipartFormData.swift */; }; + AFA5F0082C21714C8B6ED55141D5DA57 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 7917F2497EC06D68E7104149BB514944 /* GCDWebServerStreamedResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B29724E9B9F6181D7C1F0A1B73A1CF8C /* Pods-ShadowsocksX-NGTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F45FBBDB0F6054069CCBAAD0A028B80 /* Pods-ShadowsocksX-NGTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B6CA8748BA7CF46AA3AB929161B1B7C9 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DCF4BD72CF32FEBC6591090793560A35 /* GCDWebServerErrorResponse.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B6F6E4CC26451E91B59FAE0F6841DC1F /* Alamofire-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 84869C76A0ED4DE0B2647BA80971B41D /* Alamofire-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BAB1E5BFF737F49D9FCACE12BB43FFF9 /* BRLOptionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D31B554E2D17563A3C93F0CC31749931 /* BRLOptionParser.h */; settings = {ATTRIBUTES = (Project, ); }; }; + BAE776C5BF25D9ED1B206F39802F1B2C /* Pods-proxy_conf_helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E2736BB11EFB7F9699060DA3B635D5F /* Pods-proxy_conf_helper-dummy.m */; }; + BB6C0F4DF641397BEFE7F2A4EC1DAD3D /* GCDWebServerResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = AF54D7E36F4A6265A109E381E6698962 /* GCDWebServerResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CD1A397CFA73128FE56A020A5EEEB456 /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = EB367B1AEF1F114A8000CB27F30B1FC9 /* GCDWebServer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CF8C74B2CE068CAA46376DFD606F118A /* Pods-ShadowsocksX-NG-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C4B5FA1B35E62E999EEE6048D3CB751 /* Pods-ShadowsocksX-NG-dummy.m */; }; + D10FF51F3F22C267CF4890546D11ACAB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */; }; + D3FA0AA634AAEA99AB3FABC36BB4958C /* SessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B32805F67CC476E86B9BDE5E7C1C7CC /* SessionManager.swift */; }; + DAD5D28A3C292525618891AB31368447 /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = A94277E8D48CBC260D3499FBC7F5A242 /* GCDWebServerConnection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DCD164ADFCA6E55A8635626CEA734C6C /* GCDWebServerFileRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EF1A1885EC4DACFD6EE12A435F0FC54 /* GCDWebServerFileRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DEB6D8151B0C4A4B1463A88EE1444A25 /* GCDWebServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 0301DB7D90179C885413BA5FED87C852 /* GCDWebServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DEC224072D7A190F383252C14DC8A407 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 44484937E3B1CDCC11F60D3842415A51 /* GCDWebServerRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E41BC6A715D0B0C55B08DE0B2756D0C9 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EF8C4860B409DC21C3B6C66718FCA37 /* SystemConfiguration.framework */; }; + EB0DD8CEA1A69867A30267439C970440 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF422E59154D7FC39CA432F723818BF /* Result.swift */; }; + EB492DAD146CC328DBA0E60600B326F9 /* GCDWebServerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C3A2E0CC1C16CF42517FA3A243BC9F36 /* GCDWebServerConnection.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3A9B9830A82010EB0DF8BC3C16DC0F8 /* GCDWebServerDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = AC74B5B4C99B3BB3A500ECD988F0E929 /* GCDWebServerDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FAAA6A52087919F8AF2A0FC873464EDF /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 740EE0166B90E1467C36B85AE7F7545B /* GCDWebServerFileRequest.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FB805DACDBF6DD12988732EDFE4E61E1 /* GCDWebServerFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = A1DEA6BD54C7E43E02E9CE8106A3BCBB /* GCDWebServerFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FD7907DE46CFFB2D08E95CD5807AB8D5 /* Pods-ShadowsocksX-NG-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 27997B1FE08CD598C796B9A61C1919E2 /* Pods-ShadowsocksX-NG-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 408240F5321FFD1270C133C590B77FEC /* PBXContainerItemProxy */ = { + 49EE7297C6A7A2108006722609F25E3B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 88E9EC28B8B46C3631E6B242B50F4442; - remoteInfo = Alamofire; + remoteGlobalIDString = C5D44494532539AC0EB10EE3E762D3AC; + remoteInfo = GCDWebServer; }; - 7D7286FD822FB02FEAECE006469945BB /* PBXContainerItemProxy */ = { + 4A7440112D08B40AFFAEBB0141BE528E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5B8B0ED1046111D92895FC95F12DBC10; - remoteInfo = GCDWebServer; + remoteGlobalIDString = 824711C42864F0F5FEB8D15B906A13EF; + remoteInfo = BRLOptionParser; }; - E1417E8043387EBCC51821F7ACD5F0DB /* PBXContainerItemProxy */ = { + 6BD647ABE72C29A39D1D58F0BAA2190C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 0C108414EE23FDB4033E3B303978D10C; - remoteInfo = BRLOptionParser; + remoteGlobalIDString = 3383968E74B5371B20BB519B170DC7FD; + remoteInfo = Alamofire; }; - F9CFFA924DFC28767F1D6BF790060032 /* PBXContainerItemProxy */ = { + A682B69B4CF37E1EB3E3C1D81CFD3A49 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 76AB1BA247F8CB57FCB2BA6577D40FE6; + remoteGlobalIDString = 389D3BB6EBA1B359CA8A609105946629; remoteInfo = "Pods-ShadowsocksX-NG"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 052330BD03A0DFCDEFF81F8EC5BFEB02 /* BRLOptionParser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRLOptionParser-dummy.m"; sourceTree = ""; }; - 054C3E84057CD06DB85D99E7AD207F48 /* Pods-proxy_conf_helper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.debug.xcconfig"; sourceTree = ""; }; - 056695931D97F3BAC1F31181094FF7F0 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataRequest.h; path = GCDWebServer/Requests/GCDWebServerDataRequest.h; sourceTree = ""; }; - 057330267A99F07C8ADE6135AA1F622F /* GCDWebServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServer.h; path = GCDWebServer/Core/GCDWebServer.h; sourceTree = ""; }; - 077EFEEE90EECB42A067C82EE65DEE1F /* Pods-ShadowsocksX-NGTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.debug.xcconfig"; sourceTree = ""; }; - 0E8D592A9C0AE4B6C90789AFF29DF516 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; - 0F7694525D8AE670711C0FB82C944D82 /* GCDWebServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GCDWebServer-dummy.m"; sourceTree = ""; }; - 11B6EC5B2B4F6B09E9967325BF493C9D /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; - 12208C6E49D11049C3EC034F39958E1F /* Pods-ShadowsocksX-NGTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NGTests-umbrella.h"; sourceTree = ""; }; - 12B556C66780BC3D0BECF011EAF49ECB /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; - 150AAAC15A441418AEA6DFBF159FBEA0 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerConnection.h; path = GCDWebServer/Core/GCDWebServerConnection.h; sourceTree = ""; }; - 163050E3BA688F1C20D3722140B14EA7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 1673CAE4B8238FFD59A792823A36A9DF /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; }; - 193AA1B44C4CB1CFCCEDD6C9741F5211 /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; }; - 1A8CE48109F7ED7873F4FF9D2D3603AD /* Pods-proxy_conf_helper-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-proxy_conf_helper-acknowledgements.markdown"; sourceTree = ""; }; - 1C058E7895E0BD655DB18CD87B39658B /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; }; - 2502B1002366776EA56601BE5F5D84B7 /* Pods-ShadowsocksX-NG-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NG-umbrella.h"; sourceTree = ""; }; - 2625C48AD777A2B7E26D2A80E9CD94E7 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; - 28FCAD871C7C0139E4C222EB3B99E749 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; - 29F1D38D8FBC1D989199E905EA6CA548 /* GCDWebServer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = GCDWebServer.framework; path = GCDWebServer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3490D661D0DB72BC3A5F94A1C6AE083C /* GCDWebServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServer.m; path = GCDWebServer/Core/GCDWebServer.m; sourceTree = ""; }; - 352C9ACA5D14E48B378FF32021EAD9B4 /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; }; - 3565E299C44D10C2D206FDCD078A0008 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; - 3849AD56E466B6A43AFEA14EF60D51F3 /* GCDWebServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GCDWebServer.modulemap; sourceTree = ""; }; - 3B23098A73BEFE5201FEB48F369DAD5C /* GCDWebServer.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GCDWebServer.xcconfig; sourceTree = ""; }; - 3B63D3CCC3889A8B3EAEE6D2EDA2E46F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 3FA68D4D6E271C0AE35D2B658ED73F6F /* Pods-ShadowsocksX-NGTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NGTests-frameworks.sh"; sourceTree = ""; }; - 41B03492069EA8D52FDD5E9F8CC3749D /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerStreamedResponse.m; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.m; sourceTree = ""; }; - 432FFBD34AE4D6FE11F7562A7B2E2DF6 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerResponse.m; path = GCDWebServer/Core/GCDWebServerResponse.m; sourceTree = ""; }; - 4461C7BE603BCBC96BA24E3E752C6AC0 /* BRLOptionParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRLOptionParser.h; path = BRLOptionParser/BRLOptionParser.h; sourceTree = ""; }; - 4BD69E62A30DA9C6468DE578D50E5FB0 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerRequest.m; path = GCDWebServer/Core/GCDWebServerRequest.m; sourceTree = ""; }; - 4C13BB1EE0DA008B3F99625819E5B338 /* Pods-ShadowsocksX-NG-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NG-acknowledgements.markdown"; sourceTree = ""; }; - 4D37F4CA22A697838D77BBB11E28FD8D /* Pods-ShadowsocksX-NGTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NGTests-acknowledgements.plist"; sourceTree = ""; }; - 56CBA6D73D3D0B47B5D2DCA98FD3514E /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerURLEncodedFormRequest.h; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; - 5BF25F29EE771444894D4B4BD6A5094A /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerMultiPartFormRequest.m; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; - 5D84D92D27CE8A6F5C45E8A03155C1CF /* Pods-proxy_conf_helper-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-proxy_conf_helper-frameworks.sh"; sourceTree = ""; }; - 5E949AC812278EA6428E8B1B3F4567E5 /* libBRLOptionParser.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libBRLOptionParser.a; path = libBRLOptionParser.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 65715F792D70CDE4E67F1EB98531E233 /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerStreamedResponse.h; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.h; sourceTree = ""; }; - 6648A20B97426F9940955502FA6FF042 /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; - 6C9954457264984EC63B073E6CD4C2CC /* Pods-ShadowsocksX-NG.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ShadowsocksX-NG.modulemap"; sourceTree = ""; }; - 6D9EE153FEB3F418F9FA6B36E0D4489D /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = ""; }; - 7340F61024A15F9541F6FF0FBC2494F3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - 740E43F0D6047222F0DA914F4A53250B /* Pods-ShadowsocksX-NG-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NG-resources.sh"; sourceTree = ""; }; - 781B71F26694E106B9C6014A4D828CFE /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; - 7B884322F7F32E5886E831225EF61A24 /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerErrorResponse.h; path = GCDWebServer/Responses/GCDWebServerErrorResponse.h; sourceTree = ""; }; - 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - 7EA43A03295E967E8CE48DC3D41B1FB1 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerResponse.h; path = GCDWebServer/Core/GCDWebServerResponse.h; sourceTree = ""; }; - 829DFEA55B57369E92A185F1B8F76C8A /* Pods-ShadowsocksX-NGTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ShadowsocksX-NGTests.modulemap"; sourceTree = ""; }; - 8AF4DF6BD9D69E67DDD5B4B2BEB36A9F /* Pods-ShadowsocksX-NGTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NGTests-acknowledgements.markdown"; sourceTree = ""; }; - 8C6444C9A87ED6919A7864A0C9D70A4C /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerURLEncodedFormRequest.m; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; - 8C6F72ED24E84D8DC9445729D927B6E8 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerConnection.m; path = GCDWebServer/Core/GCDWebServerConnection.m; sourceTree = ""; }; - 8CC694BC2D5AA3651FE2946D4032D0F5 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerErrorResponse.m; path = GCDWebServer/Responses/GCDWebServerErrorResponse.m; sourceTree = ""; }; - 8CD28F4DA9E9FD6CDF59B9183753B0AD /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFunctions.m; path = GCDWebServer/Core/GCDWebServerFunctions.m; sourceTree = ""; }; - 8CDD45C6D7A038F415A78787317E931A /* Pods-proxy_conf_helper-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-proxy_conf_helper-resources.sh"; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 93BF9975C4E8600C77D382FF58405EEE /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; - 9564AF1CDDA43CCBDDB1A7A9D41FD163 /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileRequest.m; path = GCDWebServer/Requests/GCDWebServerFileRequest.m; sourceTree = ""; }; - A2AB24692BC4901FA1B8CD5A65C8AA62 /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFunctions.h; path = GCDWebServer/Core/GCDWebServerFunctions.h; sourceTree = ""; }; - A5055B8EFFFBEDE50909E935D4BCA446 /* Pods-proxy_conf_helper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.release.xcconfig"; sourceTree = ""; }; - A628D7F35A0F9EBD66407BDCC9C92D20 /* Pods_ShadowsocksX_NGTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ShadowsocksX_NGTests.framework; path = "Pods-ShadowsocksX-NGTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - A843EBA827210564422C1B16D828EC9A /* Pods-ShadowsocksX-NG-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NG-frameworks.sh"; sourceTree = ""; }; - AE6E689502E4366B125481CD898B947E /* Pods-proxy_conf_helper-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-proxy_conf_helper-acknowledgements.plist"; sourceTree = ""; }; - B2E64BA5DE520D1FF8D157D1948EF678 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; }; - B49FCFC5427009EB0DE924D8E6689486 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataResponse.h; path = GCDWebServer/Responses/GCDWebServerDataResponse.h; sourceTree = ""; }; - B7E6D819AE4FECE3068ED91259133EAC /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; - BA83B34060483A9575B0CF713C3A6561 /* Pods-ShadowsocksX-NGTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NGTests-dummy.m"; sourceTree = ""; }; - BA947346171BBF9CB75B49AF462D0A14 /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Alamofire.framework; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - BAA6E2FFB996A81C9D31918A563B43FB /* BRLOptionParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRLOptionParser.m; path = BRLOptionParser/BRLOptionParser.m; sourceTree = ""; }; - BE05C895D7CA02C6123697B3944C59D3 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataResponse.m; path = GCDWebServer/Responses/GCDWebServerDataResponse.m; sourceTree = ""; }; - BE93E2446670327B7B8B5F4713BB6AF3 /* BRLOptionParser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRLOptionParser-prefix.pch"; sourceTree = ""; }; - C12AC1F78F621586EC3C233BD8CF4BE0 /* BRLOptionParser.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRLOptionParser.xcconfig; sourceTree = ""; }; - C3BBE5823DB4F4B1FBAB13B76BA8A625 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; - C7666B80A7B5F02FB102943E5D775992 /* Pods-ShadowsocksX-NGTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.release.xcconfig"; sourceTree = ""; }; - C83162C9BDFB3C0617CF191D660EC2DA /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; - C9C4A7AA3B3DD74EDA43165A42745D1A /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; - C9F4F2073199E3EAC1743067E81839B8 /* GCDWebServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-prefix.pch"; sourceTree = ""; }; - CA78677B47A82041B6A0C96CE51F76C2 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerPrivate.h; path = GCDWebServer/Core/GCDWebServerPrivate.h; sourceTree = ""; }; - CD9475C5BEA13835102584D55DCDA102 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - CE50445A73ECB9A2ED31A6FF93D45808 /* Pods-proxy_conf_helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-proxy_conf_helper-dummy.m"; sourceTree = ""; }; - CEA8A07A4390EF3FDD8F1EC9EA300AF6 /* GCDWebServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-umbrella.h"; sourceTree = ""; }; - D14DA8CFEF72F4E6EC8C74463B3D83FE /* Pods-ShadowsocksX-NG-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NG-dummy.m"; sourceTree = ""; }; - D309BD494E25BEE6941FB60D26D0790C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D35A95B17B77B37E12236498D60B8478 /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileResponse.m; path = GCDWebServer/Responses/GCDWebServerFileResponse.m; sourceTree = ""; }; - D534FA8B75596A674095DAA7CA3B08D1 /* libPods-proxy_conf_helper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-proxy_conf_helper.a"; path = "libPods-proxy_conf_helper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - D5B095D0CF50FEAE4820D692369FBA33 /* Pods-ShadowsocksX-NG.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.release.xcconfig"; sourceTree = ""; }; - D7C15E08E56E065130F76FC8DC8C8619 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileRequest.h; path = GCDWebServer/Requests/GCDWebServerFileRequest.h; sourceTree = ""; }; - D86AC40F610A78D1B5E5AC9528E70ADB /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; - D9D61BAD16772ED8DBCD878F6BBF7025 /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerHTTPStatusCodes.h; path = GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; - DE7A0154918329E1BFCE3167A327EB5F /* Pods-ShadowsocksX-NG.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.debug.xcconfig"; sourceTree = ""; }; - E02D3FE330950F96E4826E6785950F95 /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataRequest.m; path = GCDWebServer/Requests/GCDWebServerDataRequest.m; sourceTree = ""; }; - E04A54848FAAA36AAE89BBDAFE1685A3 /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; - E0C0B504482F55234D867E0B27E7FF86 /* Pods-ShadowsocksX-NGTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NGTests-resources.sh"; sourceTree = ""; }; - E2F6B801F0E48A42F0CBAAC5294A09E4 /* Pods-ShadowsocksX-NG-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NG-acknowledgements.plist"; sourceTree = ""; }; - EAEC4F2E970093B9815E645E63781C40 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerMultiPartFormRequest.h; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; - EB10970D56AE3E8EC08A3B6CB0ECF896 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileResponse.h; path = GCDWebServer/Responses/GCDWebServerFileResponse.h; sourceTree = ""; }; - FB6A7098E32F88CAD8F6D0BB8E334D4C /* Pods_ShadowsocksX_NG.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ShadowsocksX_NG.framework; path = "Pods-ShadowsocksX-NG.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - FC11D9EFE483BFE3E6CC4AC3CCC0E8D7 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; - FE4DE2F9318899EC55FF739F09547B9F /* GCDWebServerRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerRequest.h; path = GCDWebServer/Core/GCDWebServerRequest.h; sourceTree = ""; }; + 010D3A51B266ACE1AEC7382839E964FC /* Pods-proxy_conf_helper-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-proxy_conf_helper-acknowledgements.plist"; sourceTree = ""; }; + 02BC15A4F68E87AEC03389C29CA391CE /* Alamofire-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Alamofire-Info.plist"; sourceTree = ""; }; + 0301DB7D90179C885413BA5FED87C852 /* GCDWebServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServer.h; path = GCDWebServer/Core/GCDWebServer.h; sourceTree = ""; }; + 0840AA656262A255D87D9A097AB98A41 /* Pods-ShadowsocksX-NG-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NG-acknowledgements.plist"; sourceTree = ""; }; + 0BF422E59154D7FC39CA432F723818BF /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Source/Result.swift; sourceTree = ""; }; + 0D81C93AD493845EA282F154592899EC /* Pods-ShadowsocksX-NG-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ShadowsocksX-NG-frameworks.sh"; sourceTree = ""; }; + 0EF1A1885EC4DACFD6EE12A435F0FC54 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileRequest.h; path = GCDWebServer/Requests/GCDWebServerFileRequest.h; sourceTree = ""; }; + 0F60665DFEC423603512BD03FDCD57CF /* MultipartFormData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MultipartFormData.swift; path = Source/MultipartFormData.swift; sourceTree = ""; }; + 12D101203C776EE6C2C6C4B579BBA85C /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerHTTPStatusCodes.h; path = GCDWebServer/Core/GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; + 15901F6435662623DEE844EFC9A5639C /* BRLOptionParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BRLOptionParser.m; path = BRLOptionParser/BRLOptionParser.m; sourceTree = ""; }; + 164DEBB42020FEF0636C93AAAF156FAA /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFileResponse.h; path = GCDWebServer/Responses/GCDWebServerFileResponse.h; sourceTree = ""; }; + 17103165AC4744B772029188CA4AE496 /* Pods-ShadowsocksX-NG-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NG-Info.plist"; sourceTree = ""; }; + 1DBD4F8CF36B11F44C20AF9B636E1DD7 /* Pods-ShadowsocksX-NGTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.release.xcconfig"; sourceTree = ""; }; + 20CC40DCA282CB9C58DC76FB1DE2FEEC /* GCDWebServer.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = GCDWebServer.modulemap; sourceTree = ""; }; + 27997B1FE08CD598C796B9A61C1919E2 /* Pods-ShadowsocksX-NG-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NG-umbrella.h"; sourceTree = ""; }; + 2BCEDCB5061BB8F4529EA8049E1840D9 /* Alamofire-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Alamofire-dummy.m"; sourceTree = ""; }; + 2BEAFCC12800D328F5156C20C3A2F004 /* Pods-ShadowsocksX-NG.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ShadowsocksX-NG.modulemap"; sourceTree = ""; }; + 2E2736BB11EFB7F9699060DA3B635D5F /* Pods-proxy_conf_helper-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-proxy_conf_helper-dummy.m"; sourceTree = ""; }; + 2F45FBBDB0F6054069CCBAAD0A028B80 /* Pods-ShadowsocksX-NGTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ShadowsocksX-NGTests-umbrella.h"; sourceTree = ""; }; + 303967A6A900F5EDCD461249C96E2138 /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFunctions.m; path = GCDWebServer/Core/GCDWebServerFunctions.m; sourceTree = ""; }; + 310065BB8BA37C6E5EC6BFEEB5E56732 /* Pods-ShadowsocksX-NGTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NGTests-dummy.m"; sourceTree = ""; }; + 37B750B6AA1309673555A10FBB13B4D6 /* Alamofire.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Alamofire.xcconfig; sourceTree = ""; }; + 3A52452362CCDF21BA285051700726AB /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataRequest.m; path = GCDWebServer/Requests/GCDWebServerDataRequest.m; sourceTree = ""; }; + 3D07510C2DD7A48CD70D5A107A2A9B02 /* NetworkReachabilityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NetworkReachabilityManager.swift; path = Source/NetworkReachabilityManager.swift; sourceTree = ""; }; + 3EF16BDCEFC35C53E48509A65D1DF827 /* BRLOptionParser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BRLOptionParser-dummy.m"; sourceTree = ""; }; + 3F5EFFEB107C00AB6A469C293FD29D95 /* SessionDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionDelegate.swift; path = Source/SessionDelegate.swift; sourceTree = ""; }; + 40B2A6AD3ACD9DEC0E4BD33B6A4B7B7E /* ResponseSerialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResponseSerialization.swift; path = Source/ResponseSerialization.swift; sourceTree = ""; }; + 40BBA00F469C4E1162FF4A63A5E8B187 /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerMultiPartFormRequest.m; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; + 4285FA0E0EB964D7AC8CACA27FCBE0AA /* Validation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Validation.swift; path = Source/Validation.swift; sourceTree = ""; }; + 44484937E3B1CDCC11F60D3842415A51 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerRequest.m; path = GCDWebServer/Core/GCDWebServerRequest.m; sourceTree = ""; }; + 4DF2320AC6639A975D0AEE9FB3A9D50C /* Notifications.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Notifications.swift; path = Source/Notifications.swift; sourceTree = ""; }; + 518BB2DEF194C17B7EEF98CDD21E6F6C /* BRLOptionParser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BRLOptionParser-prefix.pch"; sourceTree = ""; }; + 54C5E62AAA3FB7D497AB9545525EBEA9 /* GCDWebServer-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "GCDWebServer-dummy.m"; sourceTree = ""; }; + 55797B4DBA18BE6734C79399AFEDFAD9 /* Timeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Timeline.swift; path = Source/Timeline.swift; sourceTree = ""; }; + 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + 5AFCAABE96E4AAFA4D18A852E002C585 /* ParameterEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParameterEncoding.swift; path = Source/ParameterEncoding.swift; sourceTree = ""; }; + 5FE455065767E402D927BF5737F18229 /* Pods-ShadowsocksX-NGTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NGTests.debug.xcconfig"; sourceTree = ""; }; + 675E8FA96B685584FFAC4821299D5F9B /* libPods-proxy_conf_helper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-proxy_conf_helper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6AAEEEABD6FFA97C4A7379B4B3F6C25F /* GCDWebServerResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerResponse.m; path = GCDWebServer/Core/GCDWebServerResponse.m; sourceTree = ""; }; + 6B32805F67CC476E86B9BDE5E7C1C7CC /* SessionManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SessionManager.swift; path = Source/SessionManager.swift; sourceTree = ""; }; + 6BE9709AFE4E983A28AFDD86F3B2F161 /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerStreamedResponse.h; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.h; sourceTree = ""; }; + 6DAB2350CF68217EEC1791CC3B479DC2 /* BRLOptionParser.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BRLOptionParser.xcconfig; sourceTree = ""; }; + 6F32293B9ED5B93E5CA1D831203E09D5 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerDataResponse.m; path = GCDWebServer/Responses/GCDWebServerDataResponse.m; sourceTree = ""; }; + 6F631424AE9EA14144EFEBEA5F8A0852 /* libBRLOptionParser.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libBRLOptionParser.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 711410EB311CDE9D6C6DD73169A84EF8 /* TaskDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskDelegate.swift; path = Source/TaskDelegate.swift; sourceTree = ""; }; + 71F50D66CEF48E798C765009AEBC3DD7 /* Pods-ShadowsocksX-NGTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NGTests-Info.plist"; sourceTree = ""; }; + 740EE0166B90E1467C36B85AE7F7545B /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileRequest.m; path = GCDWebServer/Requests/GCDWebServerFileRequest.m; sourceTree = ""; }; + 78B9D7599A4353C3F912B34C5D2C9C85 /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerErrorResponse.h; path = GCDWebServer/Responses/GCDWebServerErrorResponse.h; sourceTree = ""; }; + 78F2817E6DD4AEDC78C9F6A7E1ED4D6E /* Pods-ShadowsocksX-NGTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ShadowsocksX-NGTests-acknowledgements.plist"; sourceTree = ""; }; + 7917F2497EC06D68E7104149BB514944 /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerStreamedResponse.m; path = GCDWebServer/Responses/GCDWebServerStreamedResponse.m; sourceTree = ""; }; + 7B551E820EC9E7FC36979F50A32566E2 /* Alamofire-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-prefix.pch"; sourceTree = ""; }; + 84869C76A0ED4DE0B2647BA80971B41D /* Alamofire-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Alamofire-umbrella.h"; sourceTree = ""; }; + 85143FF3FA3051B9CDFFD2EB23EE933D /* Pods_ShadowsocksX_NGTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ShadowsocksX_NGTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8C4B5FA1B35E62E999EEE6048D3CB751 /* Pods-ShadowsocksX-NG-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ShadowsocksX-NG-dummy.m"; sourceTree = ""; }; + 93BDC61C8A8433663C2209BC724003EC /* Pods-ShadowsocksX-NG-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NG-acknowledgements.markdown"; sourceTree = ""; }; + 9872DF8552FDF65822D628C22E431A98 /* Request.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Request.swift; path = Source/Request.swift; sourceTree = ""; }; + 9B0E849D3F621D20CA3DECD382494DC4 /* GCDWebServer-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-umbrella.h"; sourceTree = ""; }; + 9B57BE5B0FDF1AF3DAE2C1AE6CE61453 /* Pods-ShadowsocksX-NG.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.release.xcconfig"; sourceTree = ""; }; + 9C9AE8D95B7650859166F3B7DAC02F4A /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerFileResponse.m; path = GCDWebServer/Responses/GCDWebServerFileResponse.m; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9EF8C4860B409DC21C3B6C66718FCA37 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + A1C1CEFCBAA22AC622BE502FBF71FEE1 /* Pods-ShadowsocksX-NGTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ShadowsocksX-NGTests-acknowledgements.markdown"; sourceTree = ""; }; + A1DEA6BD54C7E43E02E9CE8106A3BCBB /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerFunctions.h; path = GCDWebServer/Core/GCDWebServerFunctions.h; sourceTree = ""; }; + A2512412D5D8BC83E1E0346534942212 /* Pods-ShadowsocksX-NGTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ShadowsocksX-NGTests.modulemap"; sourceTree = ""; }; + A7ECDDC1720A6C19A0BD3B106BAD356F /* GCDWebServer-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "GCDWebServer-Info.plist"; sourceTree = ""; }; + A94277E8D48CBC260D3499FBC7F5A242 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerConnection.m; path = GCDWebServer/Core/GCDWebServerConnection.m; sourceTree = ""; }; + AC74B5B4C99B3BB3A500ECD988F0E929 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataRequest.h; path = GCDWebServer/Requests/GCDWebServerDataRequest.h; sourceTree = ""; }; + AF54D7E36F4A6265A109E381E6698962 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerResponse.h; path = GCDWebServer/Core/GCDWebServerResponse.h; sourceTree = ""; }; + BFDEC19015861286174682878DCD6E98 /* GCDWebServer-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "GCDWebServer-prefix.pch"; sourceTree = ""; }; + C308BB1DA126E1D0A2024FEFCCB4B52C /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerDataResponse.h; path = GCDWebServer/Responses/GCDWebServerDataResponse.h; sourceTree = ""; }; + C3A2E0CC1C16CF42517FA3A243BC9F36 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerConnection.h; path = GCDWebServer/Core/GCDWebServerConnection.h; sourceTree = ""; }; + C609FEB957AB9D23053B2128CA9F2C60 /* AFError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AFError.swift; path = Source/AFError.swift; sourceTree = ""; }; + CA4D7E5B797D0317876D57E073E4324A /* ServerTrustPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServerTrustPolicy.swift; path = Source/ServerTrustPolicy.swift; sourceTree = ""; }; + D1363FC7A2E23B4390529117D36E5574 /* Pods-proxy_conf_helper.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.debug.xcconfig"; sourceTree = ""; }; + D31B554E2D17563A3C93F0CC31749931 /* BRLOptionParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BRLOptionParser.h; path = BRLOptionParser/BRLOptionParser.h; sourceTree = ""; }; + D925DEEB1AA994A16C2F4BFA0D314BF5 /* Response.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Response.swift; path = Source/Response.swift; sourceTree = ""; }; + DA24D94760A909981A57BF74926BAC96 /* Pods-ShadowsocksX-NG.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ShadowsocksX-NG.debug.xcconfig"; sourceTree = ""; }; + DA96CFC7511B7291EF73B50A9B5D3D32 /* Pods-proxy_conf_helper-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-proxy_conf_helper-acknowledgements.markdown"; sourceTree = ""; }; + DC6F1ACA6030C1894AFBB507375FE95C /* Alamofire.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alamofire.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DC8651AC4E04961B66A586E1FE04C261 /* Alamofire.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Alamofire.modulemap; sourceTree = ""; }; + DCF4BD72CF32FEBC6591090793560A35 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerErrorResponse.m; path = GCDWebServer/Responses/GCDWebServerErrorResponse.m; sourceTree = ""; }; + DD9FE81329B2CB56CE75CDA061E02349 /* GCDWebServerRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerRequest.h; path = GCDWebServer/Core/GCDWebServerRequest.h; sourceTree = ""; }; + E3ABC77C4F0E30DFAD5C186D002ED51F /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerMultiPartFormRequest.h; path = GCDWebServer/Requests/GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; + E45CB5C7CAB208ABD1D90A53A89AFF37 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerURLEncodedFormRequest.h; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; + E65FB9638E15DB817E416D8959ED2217 /* Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Alamofire.swift; path = Source/Alamofire.swift; sourceTree = ""; }; + EB367B1AEF1F114A8000CB27F30B1FC9 /* GCDWebServer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServer.m; path = GCDWebServer/Core/GCDWebServer.m; sourceTree = ""; }; + ED16A448EAAD3E2B4AAD3F571EA4E27F /* GCDWebServer.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = GCDWebServer.xcconfig; sourceTree = ""; }; + ED6C60D27628C45D0B2630C3F1466CC9 /* Pods-proxy_conf_helper.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-proxy_conf_helper.release.xcconfig"; sourceTree = ""; }; + F01DB18A5507E18EFF3B55F055F09431 /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = GCDWebServerURLEncodedFormRequest.m; path = GCDWebServer/Requests/GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; + F09164DA7F574F60740FD666C39BF581 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = GCDWebServerPrivate.h; path = GCDWebServer/Core/GCDWebServerPrivate.h; sourceTree = ""; }; + F9400CB2DF6C025D3EA77A4ADE7A0FE9 /* GCDWebServer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GCDWebServer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FAA83D56A27DECA5AD625E7C20570300 /* Pods_ShadowsocksX_NG.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ShadowsocksX_NG.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FF1E024E987E3856C8AEC7DFD2B5CC02 /* DispatchQueue+Alamofire.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DispatchQueue+Alamofire.swift"; path = "Source/DispatchQueue+Alamofire.swift"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 302E088C0B666B6DB61CC7FB9B946696 /* Frameworks */ = { + 03F002F019A58068497469B3B790FCC1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D10FF51F3F22C267CF4890546D11ACAB /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3B4BAC5F7C3EE5CD7021AF3EC2ACB302 /* Frameworks */ = { + 66118409D5A285EB7C6FFCAEF5CF3DFB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 59C483B339EB94BE7ACAFE3791727E59 /* Frameworks */ = { + 78C8F609F67DB7B62F4445CC38CB27AF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 903476C2107A142E31FFA47421F24259 /* Cocoa.framework in Frameworks */, + 66B52CBDE62DE19BCFD0E5977F357C8C /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6E7F016811926ED895957BC5F8CE3ACA /* Frameworks */ = { + 89A45C6FC938F0AA1268A4D33B95539E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EC1E412798763F19D981B30C3197EE54 /* Cocoa.framework in Frameworks */, + 2BFB57E6EED1D26D3A9C35651DBB7C1B /* Cocoa.framework in Frameworks */, + E41BC6A715D0B0C55B08DE0B2756D0C9 /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7E718F9F87ABFC0EC82CF710FAF92DC4 /* Frameworks */ = { + EAE13FD14128A3691EEFFE905FA77B3A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CB5D0CFFF87398EE681C5B15F7EA39BF /* Cocoa.framework in Frameworks */, - 9C685B398DA6F9040CF0B83810978868 /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - B14D21A682C80219D90189FAC9A7DDDF /* Frameworks */ = { + EF5321687D7C66FF2C4791294D23AC7B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DDEF6BD8E24542AFD83487B24269B4DB /* Cocoa.framework in Frameworks */, + 8AD5471D4E1071B2AB31AF5603EE3AE6 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 258933DAF08DBE2E757B08A6BAC5AE8F /* Pods-ShadowsocksX-NG */ = { + 1ECFF6B820CD304C03E96D3D69D73FFE /* Pods-ShadowsocksX-NGTests */ = { isa = PBXGroup; children = ( - 163050E3BA688F1C20D3722140B14EA7 /* Info.plist */, - 6C9954457264984EC63B073E6CD4C2CC /* Pods-ShadowsocksX-NG.modulemap */, - 4C13BB1EE0DA008B3F99625819E5B338 /* Pods-ShadowsocksX-NG-acknowledgements.markdown */, - E2F6B801F0E48A42F0CBAAC5294A09E4 /* Pods-ShadowsocksX-NG-acknowledgements.plist */, - D14DA8CFEF72F4E6EC8C74463B3D83FE /* Pods-ShadowsocksX-NG-dummy.m */, - A843EBA827210564422C1B16D828EC9A /* Pods-ShadowsocksX-NG-frameworks.sh */, - 740E43F0D6047222F0DA914F4A53250B /* Pods-ShadowsocksX-NG-resources.sh */, - 2502B1002366776EA56601BE5F5D84B7 /* Pods-ShadowsocksX-NG-umbrella.h */, - DE7A0154918329E1BFCE3167A327EB5F /* Pods-ShadowsocksX-NG.debug.xcconfig */, - D5B095D0CF50FEAE4820D692369FBA33 /* Pods-ShadowsocksX-NG.release.xcconfig */, + A2512412D5D8BC83E1E0346534942212 /* Pods-ShadowsocksX-NGTests.modulemap */, + A1C1CEFCBAA22AC622BE502FBF71FEE1 /* Pods-ShadowsocksX-NGTests-acknowledgements.markdown */, + 78F2817E6DD4AEDC78C9F6A7E1ED4D6E /* Pods-ShadowsocksX-NGTests-acknowledgements.plist */, + 310065BB8BA37C6E5EC6BFEEB5E56732 /* Pods-ShadowsocksX-NGTests-dummy.m */, + 71F50D66CEF48E798C765009AEBC3DD7 /* Pods-ShadowsocksX-NGTests-Info.plist */, + 2F45FBBDB0F6054069CCBAAD0A028B80 /* Pods-ShadowsocksX-NGTests-umbrella.h */, + 5FE455065767E402D927BF5737F18229 /* Pods-ShadowsocksX-NGTests.debug.xcconfig */, + 1DBD4F8CF36B11F44C20AF9B636E1DD7 /* Pods-ShadowsocksX-NGTests.release.xcconfig */, ); - name = "Pods-ShadowsocksX-NG"; - path = "Target Support Files/Pods-ShadowsocksX-NG"; + name = "Pods-ShadowsocksX-NGTests"; + path = "Target Support Files/Pods-ShadowsocksX-NGTests"; sourceTree = ""; }; - 5000B1C6A169B988EBFD533C6AE96E51 /* Support Files */ = { + 3BE1F73C81A88385E2B00772AEFADAE3 /* Core */ = { isa = PBXGroup; children = ( - C12AC1F78F621586EC3C233BD8CF4BE0 /* BRLOptionParser.xcconfig */, - 052330BD03A0DFCDEFF81F8EC5BFEB02 /* BRLOptionParser-dummy.m */, - BE93E2446670327B7B8B5F4713BB6AF3 /* BRLOptionParser-prefix.pch */, + 0301DB7D90179C885413BA5FED87C852 /* GCDWebServer.h */, + EB367B1AEF1F114A8000CB27F30B1FC9 /* GCDWebServer.m */, + C3A2E0CC1C16CF42517FA3A243BC9F36 /* GCDWebServerConnection.h */, + A94277E8D48CBC260D3499FBC7F5A242 /* GCDWebServerConnection.m */, + AC74B5B4C99B3BB3A500ECD988F0E929 /* GCDWebServerDataRequest.h */, + 3A52452362CCDF21BA285051700726AB /* GCDWebServerDataRequest.m */, + C308BB1DA126E1D0A2024FEFCCB4B52C /* GCDWebServerDataResponse.h */, + 6F32293B9ED5B93E5CA1D831203E09D5 /* GCDWebServerDataResponse.m */, + 78B9D7599A4353C3F912B34C5D2C9C85 /* GCDWebServerErrorResponse.h */, + DCF4BD72CF32FEBC6591090793560A35 /* GCDWebServerErrorResponse.m */, + 0EF1A1885EC4DACFD6EE12A435F0FC54 /* GCDWebServerFileRequest.h */, + 740EE0166B90E1467C36B85AE7F7545B /* GCDWebServerFileRequest.m */, + 164DEBB42020FEF0636C93AAAF156FAA /* GCDWebServerFileResponse.h */, + 9C9AE8D95B7650859166F3B7DAC02F4A /* GCDWebServerFileResponse.m */, + A1DEA6BD54C7E43E02E9CE8106A3BCBB /* GCDWebServerFunctions.h */, + 303967A6A900F5EDCD461249C96E2138 /* GCDWebServerFunctions.m */, + 12D101203C776EE6C2C6C4B579BBA85C /* GCDWebServerHTTPStatusCodes.h */, + E3ABC77C4F0E30DFAD5C186D002ED51F /* GCDWebServerMultiPartFormRequest.h */, + 40BBA00F469C4E1162FF4A63A5E8B187 /* GCDWebServerMultiPartFormRequest.m */, + F09164DA7F574F60740FD666C39BF581 /* GCDWebServerPrivate.h */, + DD9FE81329B2CB56CE75CDA061E02349 /* GCDWebServerRequest.h */, + 44484937E3B1CDCC11F60D3842415A51 /* GCDWebServerRequest.m */, + AF54D7E36F4A6265A109E381E6698962 /* GCDWebServerResponse.h */, + 6AAEEEABD6FFA97C4A7379B4B3F6C25F /* GCDWebServerResponse.m */, + 6BE9709AFE4E983A28AFDD86F3B2F161 /* GCDWebServerStreamedResponse.h */, + 7917F2497EC06D68E7104149BB514944 /* GCDWebServerStreamedResponse.m */, + E45CB5C7CAB208ABD1D90A53A89AFF37 /* GCDWebServerURLEncodedFormRequest.h */, + F01DB18A5507E18EFF3B55F055F09431 /* GCDWebServerURLEncodedFormRequest.m */, ); - name = "Support Files"; - path = "../Target Support Files/BRLOptionParser"; + name = Core; sourceTree = ""; }; - 522922E45257CE30982CB44459F72E76 /* Support Files */ = { + 42E472A51595C3F4DF22217669B41BFE /* Targets Support Files */ = { isa = PBXGroup; children = ( - 93BF9975C4E8600C77D382FF58405EEE /* Alamofire.modulemap */, - 6D9EE153FEB3F418F9FA6B36E0D4489D /* Alamofire.xcconfig */, - C3BBE5823DB4F4B1FBAB13B76BA8A625 /* Alamofire-dummy.m */, - 28FCAD871C7C0139E4C222EB3B99E749 /* Alamofire-prefix.pch */, - E04A54848FAAA36AAE89BBDAFE1685A3 /* Alamofire-umbrella.h */, - D309BD494E25BEE6941FB60D26D0790C /* Info.plist */, + A2625CA98976B825F6CCD84720E6B06E /* Pods-proxy_conf_helper */, + 493B5D3647CEE0248A4CFA1E4643DC19 /* Pods-ShadowsocksX-NG */, + 1ECFF6B820CD304C03E96D3D69D73FFE /* Pods-ShadowsocksX-NGTests */, ); - name = "Support Files"; - path = "../Target Support Files/Alamofire"; + name = "Targets Support Files"; sourceTree = ""; }; - 5CB7C42D8E0E0A453DB6D57A2A3D7D0D /* BRLOptionParser */ = { + 493B5D3647CEE0248A4CFA1E4643DC19 /* Pods-ShadowsocksX-NG */ = { isa = PBXGroup; children = ( - 4461C7BE603BCBC96BA24E3E752C6AC0 /* BRLOptionParser.h */, - BAA6E2FFB996A81C9D31918A563B43FB /* BRLOptionParser.m */, - 5000B1C6A169B988EBFD533C6AE96E51 /* Support Files */, + 2BEAFCC12800D328F5156C20C3A2F004 /* Pods-ShadowsocksX-NG.modulemap */, + 93BDC61C8A8433663C2209BC724003EC /* Pods-ShadowsocksX-NG-acknowledgements.markdown */, + 0840AA656262A255D87D9A097AB98A41 /* Pods-ShadowsocksX-NG-acknowledgements.plist */, + 8C4B5FA1B35E62E999EEE6048D3CB751 /* Pods-ShadowsocksX-NG-dummy.m */, + 0D81C93AD493845EA282F154592899EC /* Pods-ShadowsocksX-NG-frameworks.sh */, + 17103165AC4744B772029188CA4AE496 /* Pods-ShadowsocksX-NG-Info.plist */, + 27997B1FE08CD598C796B9A61C1919E2 /* Pods-ShadowsocksX-NG-umbrella.h */, + DA24D94760A909981A57BF74926BAC96 /* Pods-ShadowsocksX-NG.debug.xcconfig */, + 9B57BE5B0FDF1AF3DAE2C1AE6CE61453 /* Pods-ShadowsocksX-NG.release.xcconfig */, ); - name = BRLOptionParser; - path = BRLOptionParser; + name = "Pods-ShadowsocksX-NG"; + path = "Target Support Files/Pods-ShadowsocksX-NG"; sourceTree = ""; }; - 785842678515C4CDC9428DD20DCD752D /* Targets Support Files */ = { + 4E90A67887E0918CFC8BCE7384AB85E2 /* Alamofire */ = { isa = PBXGroup; children = ( - B5020B0A649E766997C633601AD85F17 /* Pods-proxy_conf_helper */, - 258933DAF08DBE2E757B08A6BAC5AE8F /* Pods-ShadowsocksX-NG */, - 8826D029B5CB8BD709AC10386EE5F5A4 /* Pods-ShadowsocksX-NGTests */, + C609FEB957AB9D23053B2128CA9F2C60 /* AFError.swift */, + E65FB9638E15DB817E416D8959ED2217 /* Alamofire.swift */, + FF1E024E987E3856C8AEC7DFD2B5CC02 /* DispatchQueue+Alamofire.swift */, + 0F60665DFEC423603512BD03FDCD57CF /* MultipartFormData.swift */, + 3D07510C2DD7A48CD70D5A107A2A9B02 /* NetworkReachabilityManager.swift */, + 4DF2320AC6639A975D0AEE9FB3A9D50C /* Notifications.swift */, + 5AFCAABE96E4AAFA4D18A852E002C585 /* ParameterEncoding.swift */, + 9872DF8552FDF65822D628C22E431A98 /* Request.swift */, + D925DEEB1AA994A16C2F4BFA0D314BF5 /* Response.swift */, + 40B2A6AD3ACD9DEC0E4BD33B6A4B7B7E /* ResponseSerialization.swift */, + 0BF422E59154D7FC39CA432F723818BF /* Result.swift */, + CA4D7E5B797D0317876D57E073E4324A /* ServerTrustPolicy.swift */, + 3F5EFFEB107C00AB6A469C293FD29D95 /* SessionDelegate.swift */, + 6B32805F67CC476E86B9BDE5E7C1C7CC /* SessionManager.swift */, + 711410EB311CDE9D6C6DD73169A84EF8 /* TaskDelegate.swift */, + 55797B4DBA18BE6734C79399AFEDFAD9 /* Timeline.swift */, + 4285FA0E0EB964D7AC8CACA27FCBE0AA /* Validation.swift */, + DAC6B9E1945AC06C051E8F8F3F4F04A6 /* Support Files */, ); - name = "Targets Support Files"; + path = Alamofire; sourceTree = ""; }; - 796243293F74BCF483A785C91F203289 /* Alamofire */ = { + 522B347AE6FD50C779ECA54CF191B48D /* GCDWebServer */ = { isa = PBXGroup; children = ( - D86AC40F610A78D1B5E5AC9528E70ADB /* AFError.swift */, - 0E8D592A9C0AE4B6C90789AFF29DF516 /* Alamofire.swift */, - 2625C48AD777A2B7E26D2A80E9CD94E7 /* DispatchQueue+Alamofire.swift */, - C9C4A7AA3B3DD74EDA43165A42745D1A /* MultipartFormData.swift */, - B7E6D819AE4FECE3068ED91259133EAC /* NetworkReachabilityManager.swift */, - 12B556C66780BC3D0BECF011EAF49ECB /* Notifications.swift */, - C83162C9BDFB3C0617CF191D660EC2DA /* ParameterEncoding.swift */, - 781B71F26694E106B9C6014A4D828CFE /* Request.swift */, - FC11D9EFE483BFE3E6CC4AC3CCC0E8D7 /* Response.swift */, - 11B6EC5B2B4F6B09E9967325BF493C9D /* ResponseSerialization.swift */, - 1673CAE4B8238FFD59A792823A36A9DF /* Result.swift */, - 193AA1B44C4CB1CFCCEDD6C9741F5211 /* ServerTrustPolicy.swift */, - 3565E299C44D10C2D206FDCD078A0008 /* SessionDelegate.swift */, - 352C9ACA5D14E48B378FF32021EAD9B4 /* SessionManager.swift */, - 1C058E7895E0BD655DB18CD87B39658B /* TaskDelegate.swift */, - B2E64BA5DE520D1FF8D157D1948EF678 /* Timeline.swift */, - 6648A20B97426F9940955502FA6FF042 /* Validation.swift */, - 522922E45257CE30982CB44459F72E76 /* Support Files */, + 3BE1F73C81A88385E2B00772AEFADAE3 /* Core */, + 75C21103D39B1AA7F9B37DE9172A9E03 /* Support Files */, ); - name = Alamofire; - path = Alamofire; + path = GCDWebServer; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + 687932F5A42F9F598F69AA3311A4224D /* BRLOptionParser */ = { isa = PBXGroup; children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - D648CE86F139C7CCFD55D5B8A03BE74B /* Frameworks */, - EBE480E49DAE4107333DC7987926D6E4 /* Pods */, - 8E700A1150D559CA2A4DE235FBA7B0F7 /* Products */, - 785842678515C4CDC9428DD20DCD752D /* Targets Support Files */, + D31B554E2D17563A3C93F0CC31749931 /* BRLOptionParser.h */, + 15901F6435662623DEE844EFC9A5639C /* BRLOptionParser.m */, + F98F8FD4B12352AD482C6484798924C5 /* Support Files */, ); + path = BRLOptionParser; sourceTree = ""; }; - 84CD4C420F532F2486BE230B573552DA /* OS X */ = { + 75C21103D39B1AA7F9B37DE9172A9E03 /* Support Files */ = { isa = PBXGroup; children = ( - 7E568825514EC24B9FF8D686A2131D45 /* Cocoa.framework */, - 7340F61024A15F9541F6FF0FBC2494F3 /* SystemConfiguration.framework */, + 20CC40DCA282CB9C58DC76FB1DE2FEEC /* GCDWebServer.modulemap */, + ED16A448EAAD3E2B4AAD3F571EA4E27F /* GCDWebServer.xcconfig */, + 54C5E62AAA3FB7D497AB9545525EBEA9 /* GCDWebServer-dummy.m */, + A7ECDDC1720A6C19A0BD3B106BAD356F /* GCDWebServer-Info.plist */, + BFDEC19015861286174682878DCD6E98 /* GCDWebServer-prefix.pch */, + 9B0E849D3F621D20CA3DECD382494DC4 /* GCDWebServer-umbrella.h */, ); - name = "OS X"; + name = "Support Files"; + path = "../Target Support Files/GCDWebServer"; sourceTree = ""; }; - 8826D029B5CB8BD709AC10386EE5F5A4 /* Pods-ShadowsocksX-NGTests */ = { + A2625CA98976B825F6CCD84720E6B06E /* Pods-proxy_conf_helper */ = { isa = PBXGroup; children = ( - 3B63D3CCC3889A8B3EAEE6D2EDA2E46F /* Info.plist */, - 829DFEA55B57369E92A185F1B8F76C8A /* Pods-ShadowsocksX-NGTests.modulemap */, - 8AF4DF6BD9D69E67DDD5B4B2BEB36A9F /* Pods-ShadowsocksX-NGTests-acknowledgements.markdown */, - 4D37F4CA22A697838D77BBB11E28FD8D /* Pods-ShadowsocksX-NGTests-acknowledgements.plist */, - BA83B34060483A9575B0CF713C3A6561 /* Pods-ShadowsocksX-NGTests-dummy.m */, - 3FA68D4D6E271C0AE35D2B658ED73F6F /* Pods-ShadowsocksX-NGTests-frameworks.sh */, - E0C0B504482F55234D867E0B27E7FF86 /* Pods-ShadowsocksX-NGTests-resources.sh */, - 12208C6E49D11049C3EC034F39958E1F /* Pods-ShadowsocksX-NGTests-umbrella.h */, - 077EFEEE90EECB42A067C82EE65DEE1F /* Pods-ShadowsocksX-NGTests.debug.xcconfig */, - C7666B80A7B5F02FB102943E5D775992 /* Pods-ShadowsocksX-NGTests.release.xcconfig */, + DA96CFC7511B7291EF73B50A9B5D3D32 /* Pods-proxy_conf_helper-acknowledgements.markdown */, + 010D3A51B266ACE1AEC7382839E964FC /* Pods-proxy_conf_helper-acknowledgements.plist */, + 2E2736BB11EFB7F9699060DA3B635D5F /* Pods-proxy_conf_helper-dummy.m */, + D1363FC7A2E23B4390529117D36E5574 /* Pods-proxy_conf_helper.debug.xcconfig */, + ED6C60D27628C45D0B2630C3F1466CC9 /* Pods-proxy_conf_helper.release.xcconfig */, ); - name = "Pods-ShadowsocksX-NGTests"; - path = "Target Support Files/Pods-ShadowsocksX-NGTests"; + name = "Pods-proxy_conf_helper"; + path = "Target Support Files/Pods-proxy_conf_helper"; sourceTree = ""; }; - 8AACDC8BEA5F54F99281AA46DACD674A /* Core */ = { + B6EE841E04DF1F52866C41A0E79E6C66 /* Pods */ = { isa = PBXGroup; children = ( - 057330267A99F07C8ADE6135AA1F622F /* GCDWebServer.h */, - 3490D661D0DB72BC3A5F94A1C6AE083C /* GCDWebServer.m */, - 150AAAC15A441418AEA6DFBF159FBEA0 /* GCDWebServerConnection.h */, - 8C6F72ED24E84D8DC9445729D927B6E8 /* GCDWebServerConnection.m */, - 056695931D97F3BAC1F31181094FF7F0 /* GCDWebServerDataRequest.h */, - E02D3FE330950F96E4826E6785950F95 /* GCDWebServerDataRequest.m */, - B49FCFC5427009EB0DE924D8E6689486 /* GCDWebServerDataResponse.h */, - BE05C895D7CA02C6123697B3944C59D3 /* GCDWebServerDataResponse.m */, - 7B884322F7F32E5886E831225EF61A24 /* GCDWebServerErrorResponse.h */, - 8CC694BC2D5AA3651FE2946D4032D0F5 /* GCDWebServerErrorResponse.m */, - D7C15E08E56E065130F76FC8DC8C8619 /* GCDWebServerFileRequest.h */, - 9564AF1CDDA43CCBDDB1A7A9D41FD163 /* GCDWebServerFileRequest.m */, - EB10970D56AE3E8EC08A3B6CB0ECF896 /* GCDWebServerFileResponse.h */, - D35A95B17B77B37E12236498D60B8478 /* GCDWebServerFileResponse.m */, - A2AB24692BC4901FA1B8CD5A65C8AA62 /* GCDWebServerFunctions.h */, - 8CD28F4DA9E9FD6CDF59B9183753B0AD /* GCDWebServerFunctions.m */, - D9D61BAD16772ED8DBCD878F6BBF7025 /* GCDWebServerHTTPStatusCodes.h */, - EAEC4F2E970093B9815E645E63781C40 /* GCDWebServerMultiPartFormRequest.h */, - 5BF25F29EE771444894D4B4BD6A5094A /* GCDWebServerMultiPartFormRequest.m */, - CA78677B47A82041B6A0C96CE51F76C2 /* GCDWebServerPrivate.h */, - FE4DE2F9318899EC55FF739F09547B9F /* GCDWebServerRequest.h */, - 4BD69E62A30DA9C6468DE578D50E5FB0 /* GCDWebServerRequest.m */, - 7EA43A03295E967E8CE48DC3D41B1FB1 /* GCDWebServerResponse.h */, - 432FFBD34AE4D6FE11F7562A7B2E2DF6 /* GCDWebServerResponse.m */, - 65715F792D70CDE4E67F1EB98531E233 /* GCDWebServerStreamedResponse.h */, - 41B03492069EA8D52FDD5E9F8CC3749D /* GCDWebServerStreamedResponse.m */, - 56CBA6D73D3D0B47B5D2DCA98FD3514E /* GCDWebServerURLEncodedFormRequest.h */, - 8C6444C9A87ED6919A7864A0C9D70A4C /* GCDWebServerURLEncodedFormRequest.m */, + 4E90A67887E0918CFC8BCE7384AB85E2 /* Alamofire */, + 687932F5A42F9F598F69AA3311A4224D /* BRLOptionParser */, + 522B347AE6FD50C779ECA54CF191B48D /* GCDWebServer */, ); - name = Core; + name = Pods; sourceTree = ""; }; - 8E700A1150D559CA2A4DE235FBA7B0F7 /* Products */ = { + B972D19A42B0DD774673310C14294695 /* Products */ = { isa = PBXGroup; children = ( - BA947346171BBF9CB75B49AF462D0A14 /* Alamofire.framework */, - 29F1D38D8FBC1D989199E905EA6CA548 /* GCDWebServer.framework */, - 5E949AC812278EA6428E8B1B3F4567E5 /* libBRLOptionParser.a */, - D534FA8B75596A674095DAA7CA3B08D1 /* libPods-proxy_conf_helper.a */, - FB6A7098E32F88CAD8F6D0BB8E334D4C /* Pods_ShadowsocksX_NG.framework */, - A628D7F35A0F9EBD66407BDCC9C92D20 /* Pods_ShadowsocksX_NGTests.framework */, + DC6F1ACA6030C1894AFBB507375FE95C /* Alamofire.framework */, + F9400CB2DF6C025D3EA77A4ADE7A0FE9 /* GCDWebServer.framework */, + 6F631424AE9EA14144EFEBEA5F8A0852 /* libBRLOptionParser.a */, + 675E8FA96B685584FFAC4821299D5F9B /* libPods-proxy_conf_helper.a */, + FAA83D56A27DECA5AD625E7C20570300 /* Pods_ShadowsocksX_NG.framework */, + 85143FF3FA3051B9CDFFD2EB23EE933D /* Pods_ShadowsocksX_NGTests.framework */, ); name = Products; sourceTree = ""; }; - A6DC8EBD252D02324A24CBD69FBB2B9B /* Support Files */ = { + C080C886C9E2F80D52E3E86A62E5B711 /* Frameworks */ = { isa = PBXGroup; children = ( - 3849AD56E466B6A43AFEA14EF60D51F3 /* GCDWebServer.modulemap */, - 3B23098A73BEFE5201FEB48F369DAD5C /* GCDWebServer.xcconfig */, - 0F7694525D8AE670711C0FB82C944D82 /* GCDWebServer-dummy.m */, - C9F4F2073199E3EAC1743067E81839B8 /* GCDWebServer-prefix.pch */, - CEA8A07A4390EF3FDD8F1EC9EA300AF6 /* GCDWebServer-umbrella.h */, - CD9475C5BEA13835102584D55DCDA102 /* Info.plist */, + FE706C0646CD56F336FF29144F2F3886 /* OS X */, ); - name = "Support Files"; - path = "../Target Support Files/GCDWebServer"; + name = Frameworks; sourceTree = ""; }; - B5020B0A649E766997C633601AD85F17 /* Pods-proxy_conf_helper */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 1A8CE48109F7ED7873F4FF9D2D3603AD /* Pods-proxy_conf_helper-acknowledgements.markdown */, - AE6E689502E4366B125481CD898B947E /* Pods-proxy_conf_helper-acknowledgements.plist */, - CE50445A73ECB9A2ED31A6FF93D45808 /* Pods-proxy_conf_helper-dummy.m */, - 5D84D92D27CE8A6F5C45E8A03155C1CF /* Pods-proxy_conf_helper-frameworks.sh */, - 8CDD45C6D7A038F415A78787317E931A /* Pods-proxy_conf_helper-resources.sh */, - 054C3E84057CD06DB85D99E7AD207F48 /* Pods-proxy_conf_helper.debug.xcconfig */, - A5055B8EFFFBEDE50909E935D4BCA446 /* Pods-proxy_conf_helper.release.xcconfig */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + C080C886C9E2F80D52E3E86A62E5B711 /* Frameworks */, + B6EE841E04DF1F52866C41A0E79E6C66 /* Pods */, + B972D19A42B0DD774673310C14294695 /* Products */, + 42E472A51595C3F4DF22217669B41BFE /* Targets Support Files */, ); - name = "Pods-proxy_conf_helper"; - path = "Target Support Files/Pods-proxy_conf_helper"; sourceTree = ""; }; - D648CE86F139C7CCFD55D5B8A03BE74B /* Frameworks */ = { + DAC6B9E1945AC06C051E8F8F3F4F04A6 /* Support Files */ = { isa = PBXGroup; children = ( - 84CD4C420F532F2486BE230B573552DA /* OS X */, + DC8651AC4E04961B66A586E1FE04C261 /* Alamofire.modulemap */, + 37B750B6AA1309673555A10FBB13B4D6 /* Alamofire.xcconfig */, + 2BCEDCB5061BB8F4529EA8049E1840D9 /* Alamofire-dummy.m */, + 02BC15A4F68E87AEC03389C29CA391CE /* Alamofire-Info.plist */, + 7B551E820EC9E7FC36979F50A32566E2 /* Alamofire-prefix.pch */, + 84869C76A0ED4DE0B2647BA80971B41D /* Alamofire-umbrella.h */, ); - name = Frameworks; + name = "Support Files"; + path = "../Target Support Files/Alamofire"; sourceTree = ""; }; - E00B0204545DC7ACDAFF792113E8C436 /* GCDWebServer */ = { + F98F8FD4B12352AD482C6484798924C5 /* Support Files */ = { isa = PBXGroup; children = ( - 8AACDC8BEA5F54F99281AA46DACD674A /* Core */, - A6DC8EBD252D02324A24CBD69FBB2B9B /* Support Files */, + 6DAB2350CF68217EEC1791CC3B479DC2 /* BRLOptionParser.xcconfig */, + 3EF16BDCEFC35C53E48509A65D1DF827 /* BRLOptionParser-dummy.m */, + 518BB2DEF194C17B7EEF98CDD21E6F6C /* BRLOptionParser-prefix.pch */, ); - name = GCDWebServer; - path = GCDWebServer; + name = "Support Files"; + path = "../Target Support Files/BRLOptionParser"; sourceTree = ""; }; - EBE480E49DAE4107333DC7987926D6E4 /* Pods */ = { + FE706C0646CD56F336FF29144F2F3886 /* OS X */ = { isa = PBXGroup; children = ( - 796243293F74BCF483A785C91F203289 /* Alamofire */, - 5CB7C42D8E0E0A453DB6D57A2A3D7D0D /* BRLOptionParser */, - E00B0204545DC7ACDAFF792113E8C436 /* GCDWebServer */, + 579DD615419934DD34923D57D7179CCB /* Cocoa.framework */, + 9EF8C4860B409DC21C3B6C66718FCA37 /* SystemConfiguration.framework */, ); - name = Pods; + name = "OS X"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 6B9981C9382CA48E42CADD9274429C8D /* Headers */ = { + 23D70D9651451F43E7E8CC1A87B4B7E9 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 30E2A73CDE464DC6C23D3524F07FBB9F /* GCDWebServer-umbrella.h in Headers */, - EA6D2E46B967F447FFC46520EC328B5E /* GCDWebServer.h in Headers */, - 66AD0D86950A5C05121AE482F5257717 /* GCDWebServerConnection.h in Headers */, - 4EDE49009B5B68074CD71F8B362F0DDC /* GCDWebServerDataRequest.h in Headers */, - 1568BC317134F1902AB76EE65E0A18CE /* GCDWebServerDataResponse.h in Headers */, - 1EF1D9B948C91F3CAD0F2998F3765D8B /* GCDWebServerErrorResponse.h in Headers */, - 015A2D47B6DA8E170E4E64108EC177CA /* GCDWebServerFileRequest.h in Headers */, - 0B8140968914C908CFB4949F67745DD7 /* GCDWebServerFileResponse.h in Headers */, - B7EF65DA3A34ABF3B41F50ADCD198BDC /* GCDWebServerFunctions.h in Headers */, - 7C46C6DFBF9F5A96C6BCE1C93052B63D /* GCDWebServerHTTPStatusCodes.h in Headers */, - 3E715DFE443524EB6ADE892E4A676224 /* GCDWebServerMultiPartFormRequest.h in Headers */, - 03810806C0578A750613717248DC37CC /* GCDWebServerPrivate.h in Headers */, - 36E0FA5FE4424D20F0215B1C2CD85D90 /* GCDWebServerRequest.h in Headers */, - 2527F62CEADDA5CE60852E0C067D3438 /* GCDWebServerResponse.h in Headers */, - 6C62ACD1AF9B80626023D3E654D3E77B /* GCDWebServerStreamedResponse.h in Headers */, - 098AA417A5494FC829E777DC5CF06ECC /* GCDWebServerURLEncodedFormRequest.h in Headers */, + B6F6E4CC26451E91B59FAE0F6841DC1F /* Alamofire-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 75E07625A276438E2A1C2586204221B5 /* Headers */ = { + 4580A964C227F1B507007FE38997C1C5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 6C5CE01B22D5E2A5E4775C9A9787DE0C /* Pods-ShadowsocksX-NGTests-umbrella.h in Headers */, + 48D3DBE2486D3B7A86B3C2E20CAD876A /* GCDWebServer-umbrella.h in Headers */, + DEB6D8151B0C4A4B1463A88EE1444A25 /* GCDWebServer.h in Headers */, + EB492DAD146CC328DBA0E60600B326F9 /* GCDWebServerConnection.h in Headers */, + F3A9B9830A82010EB0DF8BC3C16DC0F8 /* GCDWebServerDataRequest.h in Headers */, + 26D00D810347C796D2B0A8AB1D63C35B /* GCDWebServerDataResponse.h in Headers */, + 6785E832F7BBC1D33A46780799558846 /* GCDWebServerErrorResponse.h in Headers */, + DCD164ADFCA6E55A8635626CEA734C6C /* GCDWebServerFileRequest.h in Headers */, + 27D1B8DA33A23CE4D958006FEE7BE1AB /* GCDWebServerFileResponse.h in Headers */, + FB805DACDBF6DD12988732EDFE4E61E1 /* GCDWebServerFunctions.h in Headers */, + 49B4D17C1D4273AFEB04191247500F5C /* GCDWebServerHTTPStatusCodes.h in Headers */, + 892AFF8D34A8B401749E8771D5F03FE8 /* GCDWebServerMultiPartFormRequest.h in Headers */, + 44B31068614CC9235A98A405A6FE0EFD /* GCDWebServerPrivate.h in Headers */, + 5EE7EDAAC154BF341CD2A143B035F646 /* GCDWebServerRequest.h in Headers */, + BB6C0F4DF641397BEFE7F2A4EC1DAD3D /* GCDWebServerResponse.h in Headers */, + 3FC9145BE8654A6711C114656D100D9C /* GCDWebServerStreamedResponse.h in Headers */, + 9A9EDED1E6001A2621A29FE6288C40CF /* GCDWebServerURLEncodedFormRequest.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 76C11F872E3886080DC4B2B4505DBA5B /* Headers */ = { + 77A62BEE3ACF79157730E8DD66E3BC61 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9AEFC01EC977E03EF314D01BBC8506AD /* BRLOptionParser.h in Headers */, + B29724E9B9F6181D7C1F0A1B73A1CF8C /* Pods-ShadowsocksX-NGTests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B4002B6E97835FDCCAA5963EFE09A3E0 /* Headers */ = { + A1BFEB2FA63C3C8D3CDE784209E2A2D3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1B9EDEDC964E6B08F78920B4F4B9DB84 /* Alamofire-umbrella.h in Headers */, + BAB1E5BFF737F49D9FCACE12BB43FFF9 /* BRLOptionParser.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - F52931F6A771F68236D6B3E7B0F95DD8 /* Headers */ = { + A6205881EAF5B07C7B36021199EB9D6B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0EC1F64B51A455E18896FCB15AE297F7 /* Pods-ShadowsocksX-NG-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D17F3D88B7E4AF416351C5A3EAD6E974 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FD7907DE46CFFB2D08E95CD5807AB8D5 /* Pods-ShadowsocksX-NG-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 02486B4ED82798E52430FDA750E7D82D /* Pods-ShadowsocksX-NGTests */ = { + 0126FD100EB78B7A7A3366B86DE2458E /* Pods-ShadowsocksX-NGTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 40A9E0F21FE41E6146ED16E9D2403D91 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NGTests" */; + buildConfigurationList = 0A67804EBD803EB30A9A9701E3486A13 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NGTests" */; buildPhases = ( - 06DDD4F059ECE1E632AAB5124F284585 /* Sources */, - 59C483B339EB94BE7ACAFE3791727E59 /* Frameworks */, - 75E07625A276438E2A1C2586204221B5 /* Headers */, + 77A62BEE3ACF79157730E8DD66E3BC61 /* Headers */, + F99960700F9AAABB11F749F318C87286 /* Sources */, + EF5321687D7C66FF2C4791294D23AC7B /* Frameworks */, + 42859225A7FB2D474166D6F48273742F /* Resources */, ); buildRules = ( ); dependencies = ( - 09ACBC250C7737C9108CFD0CFD9D60DB /* PBXTargetDependency */, + 1F7050C584A2A2F8B8CD2EDF2A54C092 /* PBXTargetDependency */, ); name = "Pods-ShadowsocksX-NGTests"; productName = "Pods-ShadowsocksX-NGTests"; - productReference = A628D7F35A0F9EBD66407BDCC9C92D20 /* Pods_ShadowsocksX_NGTests.framework */; + productReference = 85143FF3FA3051B9CDFFD2EB23EE933D /* Pods_ShadowsocksX_NGTests.framework */; productType = "com.apple.product-type.framework"; }; - 0C108414EE23FDB4033E3B303978D10C /* BRLOptionParser */ = { + 33685ED30F4415D02914816551C19831 /* Pods-proxy_conf_helper */ = { isa = PBXNativeTarget; - buildConfigurationList = BAA362AFDE955A0A6C1126194B019FC6 /* Build configuration list for PBXNativeTarget "BRLOptionParser" */; + buildConfigurationList = D739A7A0B5D631C6AD2B3EE1578A6776 /* Build configuration list for PBXNativeTarget "Pods-proxy_conf_helper" */; buildPhases = ( - FB28E632CBBC0A4486B7BE21A60D0BC2 /* Sources */, - 3B4BAC5F7C3EE5CD7021AF3EC2ACB302 /* Frameworks */, - 76C11F872E3886080DC4B2B4505DBA5B /* Headers */, + A6205881EAF5B07C7B36021199EB9D6B /* Headers */, + C7B3E5F1A1E14A8A07B8AC7180A99446 /* Sources */, + 66118409D5A285EB7C6FFCAEF5CF3DFB /* Frameworks */, ); buildRules = ( ); dependencies = ( + 1B295A00604455F0547579DCAD9F9335 /* PBXTargetDependency */, ); - name = BRLOptionParser; - productName = BRLOptionParser; - productReference = 5E949AC812278EA6428E8B1B3F4567E5 /* libBRLOptionParser.a */; + name = "Pods-proxy_conf_helper"; + productName = "Pods-proxy_conf_helper"; + productReference = 675E8FA96B685584FFAC4821299D5F9B /* libPods-proxy_conf_helper.a */; productType = "com.apple.product-type.library.static"; }; - 5B8B0ED1046111D92895FC95F12DBC10 /* GCDWebServer */ = { + 3383968E74B5371B20BB519B170DC7FD /* Alamofire */ = { isa = PBXNativeTarget; - buildConfigurationList = 010811070A86F912EA0CD2BB98136CD9 /* Build configuration list for PBXNativeTarget "GCDWebServer" */; + buildConfigurationList = E87124444A44B7DB55208E7FEC21D331 /* Build configuration list for PBXNativeTarget "Alamofire" */; buildPhases = ( - 81F40976E91E102E115D6BE30CCC18E9 /* Sources */, - 7E718F9F87ABFC0EC82CF710FAF92DC4 /* Frameworks */, - 6B9981C9382CA48E42CADD9274429C8D /* Headers */, + 23D70D9651451F43E7E8CC1A87B4B7E9 /* Headers */, + A1C8B029F600160149A2404C342F6E50 /* Sources */, + 78C8F609F67DB7B62F4445CC38CB27AF /* Frameworks */, + 28FF73341543B6F0A7DF3C20CFFEA0AA /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = GCDWebServer; - productName = GCDWebServer; - productReference = 29F1D38D8FBC1D989199E905EA6CA548 /* GCDWebServer.framework */; + name = Alamofire; + productName = Alamofire; + productReference = DC6F1ACA6030C1894AFBB507375FE95C /* Alamofire.framework */; productType = "com.apple.product-type.framework"; }; - 76AB1BA247F8CB57FCB2BA6577D40FE6 /* Pods-ShadowsocksX-NG */ = { + 389D3BB6EBA1B359CA8A609105946629 /* Pods-ShadowsocksX-NG */ = { isa = PBXNativeTarget; - buildConfigurationList = BFE80AF401A02D5658D84A694BE7A3CE /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NG" */; + buildConfigurationList = A1C9901A7E1ADD87261FA54F9DBC0554 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NG" */; buildPhases = ( - D58B98E801980FD3514B9C96F2FEBA64 /* Sources */, - 6E7F016811926ED895957BC5F8CE3ACA /* Frameworks */, - F52931F6A771F68236D6B3E7B0F95DD8 /* Headers */, + D17F3D88B7E4AF416351C5A3EAD6E974 /* Headers */, + 0A1CE3F416E349BC934B82D4B6F90F98 /* Sources */, + 03F002F019A58068497469B3B790FCC1 /* Frameworks */, + F4EC9C391CEA5A8BE7E4B4BD8D06072E /* Resources */, ); buildRules = ( ); dependencies = ( - 49BA5C047101B8A959AF5E17B7DBCDD4 /* PBXTargetDependency */, - 3C89DE54CAB947747F7F2F6907F40D6E /* PBXTargetDependency */, + DB051355D1D3403D67864C7619C93283 /* PBXTargetDependency */, + D85CBD55C7870CB481D19FC6155DD767 /* PBXTargetDependency */, ); name = "Pods-ShadowsocksX-NG"; productName = "Pods-ShadowsocksX-NG"; - productReference = FB6A7098E32F88CAD8F6D0BB8E334D4C /* Pods_ShadowsocksX_NG.framework */; + productReference = FAA83D56A27DECA5AD625E7C20570300 /* Pods_ShadowsocksX_NG.framework */; productType = "com.apple.product-type.framework"; }; - 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */ = { + 824711C42864F0F5FEB8D15B906A13EF /* BRLOptionParser */ = { isa = PBXNativeTarget; - buildConfigurationList = 419E5D95491847CD79841B971A8A3277 /* Build configuration list for PBXNativeTarget "Alamofire" */; + buildConfigurationList = D1EA2BC965016193B5383EB63104D198 /* Build configuration list for PBXNativeTarget "BRLOptionParser" */; buildPhases = ( - 32B9974868188C4803318E36329C87FE /* Sources */, - B14D21A682C80219D90189FAC9A7DDDF /* Frameworks */, - B4002B6E97835FDCCAA5963EFE09A3E0 /* Headers */, + A1BFEB2FA63C3C8D3CDE784209E2A2D3 /* Headers */, + BBD21C58B546D51093369D2CF6E95E5E /* Sources */, + EAE13FD14128A3691EEFFE905FA77B3A /* Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = Alamofire; - productName = Alamofire; - productReference = BA947346171BBF9CB75B49AF462D0A14 /* Alamofire.framework */; - productType = "com.apple.product-type.framework"; + name = BRLOptionParser; + productName = BRLOptionParser; + productReference = 6F631424AE9EA14144EFEBEA5F8A0852 /* libBRLOptionParser.a */; + productType = "com.apple.product-type.library.static"; }; - BAE42B81A719ACCA70D08EC06B64B500 /* Pods-proxy_conf_helper */ = { + C5D44494532539AC0EB10EE3E762D3AC /* GCDWebServer */ = { isa = PBXNativeTarget; - buildConfigurationList = 2F77498525A0E767346D427FFFA9B395 /* Build configuration list for PBXNativeTarget "Pods-proxy_conf_helper" */; + buildConfigurationList = 0471C51D783DB93F9B6C1E3C2AB060DC /* Build configuration list for PBXNativeTarget "GCDWebServer" */; buildPhases = ( - 26A99521906379536EF3EE85A13AFAE6 /* Sources */, - 302E088C0B666B6DB61CC7FB9B946696 /* Frameworks */, + 4580A964C227F1B507007FE38997C1C5 /* Headers */, + FEEAAFFD9167278DBF606DEE247EC8BB /* Sources */, + 89A45C6FC938F0AA1268A4D33B95539E /* Frameworks */, + 8557AF44BEE43BFB9576435A417A0421 /* Resources */, ); buildRules = ( ); dependencies = ( - 0C85B5A137058C4E72C319F6BA0F28BB /* PBXTargetDependency */, ); - name = "Pods-proxy_conf_helper"; - productName = "Pods-proxy_conf_helper"; - productReference = D534FA8B75596A674095DAA7CA3B08D1 /* libPods-proxy_conf_helper.a */; - productType = "com.apple.product-type.library.static"; + name = GCDWebServer; + productName = GCDWebServer; + productReference = F9400CB2DF6C025D3EA77A4ADE7A0FE9 /* GCDWebServer.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1020; }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 8E700A1150D559CA2A4DE235FBA7B0F7 /* Products */; + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = B972D19A42B0DD774673310C14294695 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */, - 0C108414EE23FDB4033E3B303978D10C /* BRLOptionParser */, - 5B8B0ED1046111D92895FC95F12DBC10 /* GCDWebServer */, - BAE42B81A719ACCA70D08EC06B64B500 /* Pods-proxy_conf_helper */, - 76AB1BA247F8CB57FCB2BA6577D40FE6 /* Pods-ShadowsocksX-NG */, - 02486B4ED82798E52430FDA750E7D82D /* Pods-ShadowsocksX-NGTests */, + 3383968E74B5371B20BB519B170DC7FD /* Alamofire */, + 824711C42864F0F5FEB8D15B906A13EF /* BRLOptionParser */, + C5D44494532539AC0EB10EE3E762D3AC /* GCDWebServer */, + 33685ED30F4415D02914816551C19831 /* Pods-proxy_conf_helper */, + 389D3BB6EBA1B359CA8A609105946629 /* Pods-ShadowsocksX-NG */, + 0126FD100EB78B7A7A3366B86DE2458E /* Pods-ShadowsocksX-NGTests */, ); }; /* End PBXProject section */ +/* Begin PBXResourcesBuildPhase section */ + 28FF73341543B6F0A7DF3C20CFFEA0AA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 42859225A7FB2D474166D6F48273742F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8557AF44BEE43BFB9576435A417A0421 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F4EC9C391CEA5A8BE7E4B4BD8D06072E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ - 06DDD4F059ECE1E632AAB5124F284585 /* Sources */ = { + 0A1CE3F416E349BC934B82D4B6F90F98 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 58892DB0E616E7CD4145434C0726715D /* Pods-ShadowsocksX-NGTests-dummy.m in Sources */, + CF8C74B2CE068CAA46376DFD606F118A /* Pods-ShadowsocksX-NG-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 26A99521906379536EF3EE85A13AFAE6 /* Sources */ = { + A1C8B029F600160149A2404C342F6E50 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - BD08FB1B1A3C44D391639973F1AE05E4 /* Pods-proxy_conf_helper-dummy.m in Sources */, + 7E3538A6992A38276764936A9733493D /* AFError.swift in Sources */, + 772911DA6E33D1CBBC30131B7C8BDBB3 /* Alamofire-dummy.m in Sources */, + 0A39AF55285A3A4F7CBABB6D822FA4A3 /* Alamofire.swift in Sources */, + 3E0749AF6C51BCF0E4A41CF1D6A76FED /* DispatchQueue+Alamofire.swift in Sources */, + AEA829AB1A8AF2AD077A808AED6B178A /* MultipartFormData.swift in Sources */, + 73AB05789A4982944AF68DBD013E3EB7 /* NetworkReachabilityManager.swift in Sources */, + 1D29D2ACADF961F69D32B06FA6A09E28 /* Notifications.swift in Sources */, + 700D3D95AF9520CB227846DFD943A2DA /* ParameterEncoding.swift in Sources */, + 355C18EEC82624A06A6CC93965258E33 /* Request.swift in Sources */, + 059D92B7BBFBEC53E9A3B6E11C5C3B3A /* Response.swift in Sources */, + 6EFD003458AE7F689DEA720A2030C261 /* ResponseSerialization.swift in Sources */, + EB0DD8CEA1A69867A30267439C970440 /* Result.swift in Sources */, + 8D2A6A90A6DDAF75EA52D471258545CC /* ServerTrustPolicy.swift in Sources */, + A1EC41966B261DCE460BCDE5124A1DBE /* SessionDelegate.swift in Sources */, + D3FA0AA634AAEA99AB3FABC36BB4958C /* SessionManager.swift in Sources */, + 77E8F0EB9FFBE2E3EB0C77095C644606 /* TaskDelegate.swift in Sources */, + 60B6C2A003864AAD3A426448152F67BE /* Timeline.swift in Sources */, + AA56769D8733D3F3E7976742D5ABA998 /* Validation.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 32B9974868188C4803318E36329C87FE /* Sources */ = { + BBD21C58B546D51093369D2CF6E95E5E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9ED2BB2981896E0A39EFA365503F58CE /* AFError.swift in Sources */, - A9EEEA7477981DEEBC72432DE9990A4B /* Alamofire-dummy.m in Sources */, - F8B3D3092ED0417E8CDF32033F6122F5 /* Alamofire.swift in Sources */, - 61200D01A1855D7920CEF835C8BE00B0 /* DispatchQueue+Alamofire.swift in Sources */, - B65FCF589DA398C3EFE0128064E510EC /* MultipartFormData.swift in Sources */, - A2A6F71B727312BD45CC7A4AAD7B0AB7 /* NetworkReachabilityManager.swift in Sources */, - EFD264FC408EBF3BA2528E70B08DDD94 /* Notifications.swift in Sources */, - BE5C67A07E289FE1F9BE27335B159997 /* ParameterEncoding.swift in Sources */, - 5387216E723A3C68E851CA15573CDD71 /* Request.swift in Sources */, - CB6D60925223897FFA2662667DF83E8A /* Response.swift in Sources */, - F6BECD98B97CBFEBE2C96F0E9E72A6C0 /* ResponseSerialization.swift in Sources */, - 7D8CC01E8C9EFFF9F4D65406CDE0AB66 /* Result.swift in Sources */, - 62F65AD8DC4F0F9610F4B8B4738EC094 /* ServerTrustPolicy.swift in Sources */, - 7B5FE28C7EA4122B0598738E54DBEBD8 /* SessionDelegate.swift in Sources */, - AE1EF48399533730D0066E04B22CA2D6 /* SessionManager.swift in Sources */, - 3626B94094672CB1C9DEA32B9F9502E1 /* TaskDelegate.swift in Sources */, - 10EB23E9ECC4B33E16933BB1EA560B6A /* Timeline.swift in Sources */, - BBEFE2F9CEB73DC7BD97FFA66A0D9D4F /* Validation.swift in Sources */, + 6D7A6F03181937180312938E07E0DD4D /* BRLOptionParser-dummy.m in Sources */, + 9948972AC65442777BB59BABEBD3FAE2 /* BRLOptionParser.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 81F40976E91E102E115D6BE30CCC18E9 /* Sources */ = { + C7B3E5F1A1E14A8A07B8AC7180A99446 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D63E514E26A060F7C90A92AE8E9B49F9 /* GCDWebServer-dummy.m in Sources */, - FBF219CBB84DD6F373B818708C889C9D /* GCDWebServer.m in Sources */, - D7524216B4C0994A50624825DFB7CB6B /* GCDWebServerConnection.m in Sources */, - 7B70A32CB535894B889DC0400D0DE4B5 /* GCDWebServerDataRequest.m in Sources */, - C96E54153198E59FF0F8B9F7408523E0 /* GCDWebServerDataResponse.m in Sources */, - E62DD91C60246BD1E4E8A0AF5D7BF0E7 /* GCDWebServerErrorResponse.m in Sources */, - D2B04C075D6CA6AF10C35D8BF7DEF0D3 /* GCDWebServerFileRequest.m in Sources */, - 886E89D85907BBD7A8C8BAA088D23E3D /* GCDWebServerFileResponse.m in Sources */, - F359857602B1D4C91B4AC3D1A2CDFE1B /* GCDWebServerFunctions.m in Sources */, - 286A79B0F2405FD08804042FE30407B1 /* GCDWebServerMultiPartFormRequest.m in Sources */, - 53D63A17DB43C044EFBAA17337600276 /* GCDWebServerRequest.m in Sources */, - 35B3DA850A250223EE5CEB9DB04D1FC4 /* GCDWebServerResponse.m in Sources */, - 48FE45BD7BF4ABB32A024550ED96B4C6 /* GCDWebServerStreamedResponse.m in Sources */, - 0551162B7568A0F3028CF7CE13E9C1C7 /* GCDWebServerURLEncodedFormRequest.m in Sources */, + BAE776C5BF25D9ED1B206F39802F1B2C /* Pods-proxy_conf_helper-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D58B98E801980FD3514B9C96F2FEBA64 /* Sources */ = { + F99960700F9AAABB11F749F318C87286 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E9E49601CF0FCF90E3E962F5DDEFD115 /* Pods-ShadowsocksX-NG-dummy.m in Sources */, + 1D75F5F1ABA6BC79D3AF784165CA5F45 /* Pods-ShadowsocksX-NGTests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - FB28E632CBBC0A4486B7BE21A60D0BC2 /* Sources */ = { + FEEAAFFD9167278DBF606DEE247EC8BB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 7968E0EAEE89CC230514453422FA04A0 /* BRLOptionParser-dummy.m in Sources */, - 97148AEF5411075B9F03F3F4493EDEC6 /* BRLOptionParser.m in Sources */, + 8FAD5FE81EE7F9491C33109155276FBB /* GCDWebServer-dummy.m in Sources */, + CD1A397CFA73128FE56A020A5EEEB456 /* GCDWebServer.m in Sources */, + DAD5D28A3C292525618891AB31368447 /* GCDWebServerConnection.m in Sources */, + 3D7F6978D4B0A0AB0C794A81357ED86D /* GCDWebServerDataRequest.m in Sources */, + 95CEA8E0B292655A160B87E97AF95151 /* GCDWebServerDataResponse.m in Sources */, + B6CA8748BA7CF46AA3AB929161B1B7C9 /* GCDWebServerErrorResponse.m in Sources */, + FAAA6A52087919F8AF2A0FC873464EDF /* GCDWebServerFileRequest.m in Sources */, + 7C351144D3496DAEF61AC63402275C20 /* GCDWebServerFileResponse.m in Sources */, + 4CAC85194B408B18B11E540E0CB56913 /* GCDWebServerFunctions.m in Sources */, + A4768AA8B455E86B5EE9A705CB51A903 /* GCDWebServerMultiPartFormRequest.m in Sources */, + DEC224072D7A190F383252C14DC8A407 /* GCDWebServerRequest.m in Sources */, + 7C4B2352AFF5886763C59CFEF9959379 /* GCDWebServerResponse.m in Sources */, + AFA5F0082C21714C8B6ED55141D5DA57 /* GCDWebServerStreamedResponse.m in Sources */, + A6F074C8463D256584FE216679275A82 /* GCDWebServerURLEncodedFormRequest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 09ACBC250C7737C9108CFD0CFD9D60DB /* PBXTargetDependency */ = { + 1B295A00604455F0547579DCAD9F9335 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-ShadowsocksX-NG"; - target = 76AB1BA247F8CB57FCB2BA6577D40FE6 /* Pods-ShadowsocksX-NG */; - targetProxy = F9CFFA924DFC28767F1D6BF790060032 /* PBXContainerItemProxy */; + name = BRLOptionParser; + target = 824711C42864F0F5FEB8D15B906A13EF /* BRLOptionParser */; + targetProxy = 4A7440112D08B40AFFAEBB0141BE528E /* PBXContainerItemProxy */; }; - 0C85B5A137058C4E72C319F6BA0F28BB /* PBXTargetDependency */ = { + 1F7050C584A2A2F8B8CD2EDF2A54C092 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = BRLOptionParser; - target = 0C108414EE23FDB4033E3B303978D10C /* BRLOptionParser */; - targetProxy = E1417E8043387EBCC51821F7ACD5F0DB /* PBXContainerItemProxy */; + name = "Pods-ShadowsocksX-NG"; + target = 389D3BB6EBA1B359CA8A609105946629 /* Pods-ShadowsocksX-NG */; + targetProxy = A682B69B4CF37E1EB3E3C1D81CFD3A49 /* PBXContainerItemProxy */; }; - 3C89DE54CAB947747F7F2F6907F40D6E /* PBXTargetDependency */ = { + D85CBD55C7870CB481D19FC6155DD767 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = GCDWebServer; - target = 5B8B0ED1046111D92895FC95F12DBC10 /* GCDWebServer */; - targetProxy = 7D7286FD822FB02FEAECE006469945BB /* PBXContainerItemProxy */; + target = C5D44494532539AC0EB10EE3E762D3AC /* GCDWebServer */; + targetProxy = 49EE7297C6A7A2108006722609F25E3B /* PBXContainerItemProxy */; }; - 49BA5C047101B8A959AF5E17B7DBCDD4 /* PBXTargetDependency */ = { + DB051355D1D3403D67864C7619C93283 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Alamofire; - target = 88E9EC28B8B46C3631E6B242B50F4442 /* Alamofire */; - targetProxy = 408240F5321FFD1270C133C590B77FEC /* PBXContainerItemProxy */; + target = 3383968E74B5371B20BB519B170DC7FD /* Alamofire */; + targetProxy = 6BD647ABE72C29A39D1D58F0BAA2190C /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 04AD8EF08557E8A8E0492F805A9B05AE /* Debug */ = { + 0D96CDDB53D01480A25D1F0360D34B39 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 054C3E84057CD06DB85D99E7AD207F48 /* Pods-proxy_conf_helper.debug.xcconfig */; + baseConfigurationReference = 5FE455065767E402D927BF5737F18229 /* Pods-ShadowsocksX-NGTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 2865D6CA54276FC287AEEA5628D514EE /* Release */ = { + 54B79D59F3E9C709A26A6DE43B5CA826 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = DA24D94760A909981A57BF74926BAC96 /* Pods-ShadowsocksX-NG.debug.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - 2C7DC64F798F252450A5168221C45A84 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6D9EE153FEB3F418F9FA6B36E0D4489D /* Alamofire.xcconfig */; - buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -891,28 +878,31 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Alamofire/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; - PRODUCT_MODULE_NAME = Alamofire; - PRODUCT_NAME = Alamofire; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 3B26FDB89C4E34ED70350657BB2F0138 /* Release */ = { + 72995AE5D26B008A625056F727DBCBB1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3B23098A73BEFE5201FEB48F369DAD5C /* GCDWebServer.xcconfig */; + baseConfigurationReference = 1DBD4F8CF36B11F44C20AF9B636E1DD7 /* Pods-ShadowsocksX-NGTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -924,26 +914,28 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - GCC_PREFIX_HEADER = "Target Support Files/GCDWebServer/GCDWebServer-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GCDWebServer/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MODULEMAP_FILE = "Target Support Files/GCDWebServer/GCDWebServer.modulemap"; - PRODUCT_MODULE_NAME = GCDWebServer; - PRODUCT_NAME = GCDWebServer; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 494734EF1E865197175F50FCD976F0F8 /* Release */ = { + 7A5BEE4332631E5DD4FF60A062320331 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D5B095D0CF50FEAE4820D692369FBA33 /* Pods-ShadowsocksX-NG.release.xcconfig */; + baseConfigurationReference = 9B57BE5B0FDF1AF3DAE2C1AE6CE61453 /* Pods-ShadowsocksX-NG.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; @@ -958,7 +950,7 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; @@ -971,18 +963,16 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; - 5A99166C909BF536209C521519055659 /* Debug */ = { + 801E2255960ADBC630867DF327C94448 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 077EFEEE90EECB42A067C82EE65DEE1F /* Pods-ShadowsocksX-NGTests.debug.xcconfig */; + baseConfigurationReference = 37B750B6AA1309673555A10FBB13B4D6 /* Alamofire.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -995,66 +985,50 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 78BB8CE4FF8D8E01229021F773939659 /* Release */ = { + 8F398391559D7C8BAD9F65F88ED1475D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C7666B80A7B5F02FB102943E5D775992 /* Pods-ShadowsocksX-NGTests.release.xcconfig */; + baseConfigurationReference = ED6C60D27628C45D0B2630C3F1466CC9 /* Pods-proxy_conf_helper.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = ""; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + EXECUTABLE_PREFIX = lib; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; + SWIFT_VERSION = 4.2; }; name = Release; }; - 89162DBFE22CF1497554175E5B79C414 /* Debug */ = { + 970ECA04ADE62805200BEA98CAE73956 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DE7A0154918329E1BFCE3167A327EB5F /* Pods-ShadowsocksX-NG.debug.xcconfig */; + baseConfigurationReference = 37B750B6AA1309673555A10FBB13B4D6 /* Alamofire.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1067,30 +1041,26 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - INFOPLIST_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Alamofire/Alamofire-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; + PRODUCT_MODULE_NAME = Alamofire; + PRODUCT_NAME = Alamofire; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 99B90D8A3F6B5D51FAA7248025E355FD /* Debug */ = { + 9738A63A8BF85517BC12DEFD6D10F967 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C12AC1F78F621586EC3C233BD8CF4BE0 /* BRLOptionParser.xcconfig */; + baseConfigurationReference = 6DAB2350CF68217EEC1791CC3B479DC2 /* BRLOptionParser.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1108,69 +1078,39 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; name = Debug; }; - AAB16089260DB9F846913C4369DDAE4A /* Debug */ = { + AB9910C76ED52A275948FA8A27CC2487 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3B23098A73BEFE5201FEB48F369DAD5C /* GCDWebServer.xcconfig */; + baseConfigurationReference = 6DAB2350CF68217EEC1791CC3B479DC2 /* BRLOptionParser.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_PREFIX_HEADER = "Target Support Files/GCDWebServer/GCDWebServer-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/GCDWebServer/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.7; - MODULEMAP_FILE = "Target Support Files/GCDWebServer/GCDWebServer.modulemap"; - PRODUCT_MODULE_NAME = GCDWebServer; - PRODUCT_NAME = GCDWebServer; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - BAE3644338D4BDDD655A5F3FED0A530A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A5055B8EFFFBEDE50909E935D4BCA446 /* Pods-proxy_conf_helper.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; + GCC_PREFIX_HEADER = "Target Support Files/BRLOptionParser/BRLOptionParser-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.7; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = BRLOptionParser; + PRODUCT_NAME = BRLOptionParser; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; }; name = Release; }; - BE5BFE8D01810C31013EFB6520C87162 /* Debug */ = { + C5347714F9E22673B9247DAD6DF05BC4 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -1199,8 +1139,6 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGNING_ALLOWED = NO; - CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1221,44 +1159,137 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - BFAFBC26FD5B3D77A8C9CA1BDF5A3090 /* Release */ = { + C9F7121083F68F439EB4E18183F687D9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C12AC1F78F621586EC3C233BD8CF4BE0 /* BRLOptionParser.xcconfig */; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + E7A02AA789B1AEEF4B4325BD027B0EFD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = ED16A448EAAD3E2B4AAD3F571EA4E27F /* GCDWebServer.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_VERSION = A; + GCC_PREFIX_HEADER = "Target Support Files/GCDWebServer/GCDWebServer-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GCDWebServer/GCDWebServer-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MODULEMAP_FILE = "Target Support Files/GCDWebServer/GCDWebServer.modulemap"; + PRODUCT_MODULE_NAME = GCDWebServer; + PRODUCT_NAME = GCDWebServer; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.2; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F23B299CA90FF393D9859F49120BC58F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D1363FC7A2E23B4390529117D36E5574 /* Pods-proxy_conf_helper.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/BRLOptionParser/BRLOptionParser-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.7; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = BRLOptionParser; - PRODUCT_NAME = BRLOptionParser; - PUBLIC_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; }; - name = Release; + name = Debug; }; - D22074C2B26EA8D04357167360BEBDA4 /* Debug */ = { + F558B081C8557E6AB01E64AE2AE7CD30 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6D9EE153FEB3F418F9FA6B36E0D4489D /* Alamofire.xcconfig */; + baseConfigurationReference = ED16A448EAAD3E2B4AAD3F571EA4E27F /* GCDWebServer.xcconfig */; buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1270,91 +1301,90 @@ DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; FRAMEWORK_VERSION = A; - GCC_PREFIX_HEADER = "Target Support Files/Alamofire/Alamofire-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Alamofire/Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/GCDWebServer/GCDWebServer-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/GCDWebServer/GCDWebServer-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MODULEMAP_FILE = "Target Support Files/Alamofire/Alamofire.modulemap"; - PRODUCT_MODULE_NAME = Alamofire; - PRODUCT_NAME = Alamofire; + MACOSX_DEPLOYMENT_TARGET = 10.7; + MODULEMAP_FILE = "Target Support Files/GCDWebServer/GCDWebServer.modulemap"; + PRODUCT_MODULE_NAME = GCDWebServer; + PRODUCT_NAME = GCDWebServer; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.2; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 010811070A86F912EA0CD2BB98136CD9 /* Build configuration list for PBXNativeTarget "GCDWebServer" */ = { + 0471C51D783DB93F9B6C1E3C2AB060DC /* Build configuration list for PBXNativeTarget "GCDWebServer" */ = { isa = XCConfigurationList; buildConfigurations = ( - AAB16089260DB9F846913C4369DDAE4A /* Debug */, - 3B26FDB89C4E34ED70350657BB2F0138 /* Release */, + E7A02AA789B1AEEF4B4325BD027B0EFD /* Debug */, + F558B081C8557E6AB01E64AE2AE7CD30 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 0A67804EBD803EB30A9A9701E3486A13 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NGTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - BE5BFE8D01810C31013EFB6520C87162 /* Debug */, - 2865D6CA54276FC287AEEA5628D514EE /* Release */, + 0D96CDDB53D01480A25D1F0360D34B39 /* Debug */, + 72995AE5D26B008A625056F727DBCBB1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2F77498525A0E767346D427FFFA9B395 /* Build configuration list for PBXNativeTarget "Pods-proxy_conf_helper" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 04AD8EF08557E8A8E0492F805A9B05AE /* Debug */, - BAE3644338D4BDDD655A5F3FED0A530A /* Release */, + C5347714F9E22673B9247DAD6DF05BC4 /* Debug */, + C9F7121083F68F439EB4E18183F687D9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 40A9E0F21FE41E6146ED16E9D2403D91 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NGTests" */ = { + A1C9901A7E1ADD87261FA54F9DBC0554 /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NG" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5A99166C909BF536209C521519055659 /* Debug */, - 78BB8CE4FF8D8E01229021F773939659 /* Release */, + 54B79D59F3E9C709A26A6DE43B5CA826 /* Debug */, + 7A5BEE4332631E5DD4FF60A062320331 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 419E5D95491847CD79841B971A8A3277 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { + D1EA2BC965016193B5383EB63104D198 /* Build configuration list for PBXNativeTarget "BRLOptionParser" */ = { isa = XCConfigurationList; buildConfigurations = ( - D22074C2B26EA8D04357167360BEBDA4 /* Debug */, - 2C7DC64F798F252450A5168221C45A84 /* Release */, + 9738A63A8BF85517BC12DEFD6D10F967 /* Debug */, + AB9910C76ED52A275948FA8A27CC2487 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BAA362AFDE955A0A6C1126194B019FC6 /* Build configuration list for PBXNativeTarget "BRLOptionParser" */ = { + D739A7A0B5D631C6AD2B3EE1578A6776 /* Build configuration list for PBXNativeTarget "Pods-proxy_conf_helper" */ = { isa = XCConfigurationList; buildConfigurations = ( - 99B90D8A3F6B5D51FAA7248025E355FD /* Debug */, - BFAFBC26FD5B3D77A8C9CA1BDF5A3090 /* Release */, + F23B299CA90FF393D9859F49120BC58F /* Debug */, + 8F398391559D7C8BAD9F65F88ED1475D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BFE80AF401A02D5658D84A694BE7A3CE /* Build configuration list for PBXNativeTarget "Pods-ShadowsocksX-NG" */ = { + E87124444A44B7DB55208E7FEC21D331 /* Build configuration list for PBXNativeTarget "Alamofire" */ = { isa = XCConfigurationList; buildConfigurations = ( - 89162DBFE22CF1497554175E5B79C414 /* Debug */, - 494734EF1E865197175F50FCD976F0F8 /* Release */, + 970ECA04ADE62805200BEA98CAE73956 /* Debug */, + 801E2255960ADBC630867DF327C94448 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; } diff --git a/Pods/Target Support Files/Alamofire/Alamofire-Info.plist b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist new file mode 100644 index 00000000..6631be71 --- /dev/null +++ b/Pods/Target Support Files/Alamofire/Alamofire-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 4.2.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Alamofire/Alamofire.xcconfig b/Pods/Target Support Files/Alamofire/Alamofire.xcconfig index 24dcf653..267e31c4 100644 --- a/Pods/Target Support Files/Alamofire/Alamofire.xcconfig +++ b/Pods/Target Support Files/Alamofire/Alamofire.xcconfig @@ -1,7 +1,7 @@ CODE_SIGN_IDENTITY = CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Alamofire GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/GCDWebServer/GCDWebServer-Info.plist b/Pods/Target Support Files/GCDWebServer/GCDWebServer-Info.plist new file mode 100644 index 00000000..580900cf --- /dev/null +++ b/Pods/Target Support Files/GCDWebServer/GCDWebServer-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.5.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/GCDWebServer/GCDWebServer.xcconfig b/Pods/Target Support Files/GCDWebServer/GCDWebServer.xcconfig index 96a00819..7edf50dd 100644 --- a/Pods/Target Support Files/GCDWebServer/GCDWebServer.xcconfig +++ b/Pods/Target Support Files/GCDWebServer/GCDWebServer.xcconfig @@ -1,7 +1,7 @@ CODE_SIGN_IDENTITY = CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_LDFLAGS = -l"z" -framework "SystemConfiguration" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "SystemConfiguration" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-Info.plist b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh index ecbee2d4..5dea01bb 100755 --- a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh @@ -3,10 +3,15 @@ set -e set -u set -o pipefail +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 fi echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -36,8 +41,8 @@ install_framework() local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" + echo "Symlinked..." + source="$(readlink "${source}")" fi # Use filter instead of exclude so missing patterns don't throw errors. @@ -47,8 +52,13 @@ install_framework() local basename basename="$(basename -s .framework "$1")" binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" fi # Strip invalid architectures so "fat" simulator / device frameworks work on device @@ -62,7 +72,7 @@ install_framework() # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -101,8 +111,8 @@ install_dsym() { # Signs a framework with the provided identity code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identitiy + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" @@ -131,7 +141,7 @@ strip_invalid_archs() { for arch in $binary_archs; do if ! [[ "${ARCHS}" == *"$arch"* ]]; then # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + lipo -remove "$arch" -output "$binary" "$binary" stripped="$stripped $arch" fi done diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.debug.xcconfig b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.debug.xcconfig index 156f0781..b36d2ed2 100644 --- a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.debug.xcconfig +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.debug.xcconfig @@ -2,10 +2,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "GCDWebServer" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Alamofire" -framework "GCDWebServer" -framework "SystemConfiguration" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.release.xcconfig b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.release.xcconfig index 156f0781..b36d2ed2 100644 --- a/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.release.xcconfig +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG.release.xcconfig @@ -2,10 +2,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" -OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "GCDWebServer" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Alamofire" -framework "GCDWebServer" -framework "SystemConfiguration" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-Info.plist b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-Info.plist new file mode 100644 index 00000000..2243fe6e --- /dev/null +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.debug.xcconfig b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.debug.xcconfig index 954022f2..5a5d68c7 100644 --- a/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.debug.xcconfig @@ -1,8 +1,9 @@ CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Alamofire" -framework "GCDWebServer" -framework "SystemConfiguration" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.release.xcconfig b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.release.xcconfig index 954022f2..5a5d68c7 100644 --- a/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.release.xcconfig +++ b/Pods/Target Support Files/Pods-ShadowsocksX-NGTests/Pods-ShadowsocksX-NGTests.release.xcconfig @@ -1,8 +1,9 @@ CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/../Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.framework/Headers" -iquote "${PODS_CONFIGURATION_BUILD_DIR}/GCDWebServer/GCDWebServer.framework/Headers" +OTHER_LDFLAGS = $(inherited) -l"z" -framework "Alamofire" -framework "GCDWebServer" -framework "SystemConfiguration" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. diff --git a/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.debug.xcconfig b/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.debug.xcconfig index 2f65c6e0..a827a230 100644 --- a/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.debug.xcconfig +++ b/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.debug.xcconfig @@ -1,7 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRLOptionParser" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BRLOptionParser" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/BRLOptionParser" OTHER_LDFLAGS = $(inherited) -ObjC -l"BRLOptionParser" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.release.xcconfig b/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.release.xcconfig index 2f65c6e0..a827a230 100644 --- a/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.release.xcconfig +++ b/Pods/Target Support Files/Pods-proxy_conf_helper/Pods-proxy_conf_helper.release.xcconfig @@ -1,7 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRLOptionParser" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BRLOptionParser" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/BRLOptionParser" OTHER_LDFLAGS = $(inherited) -ObjC -l"BRLOptionParser" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/ShadowsocksX-NG.xcodeproj/project.pbxproj b/ShadowsocksX-NG.xcodeproj/project.pbxproj index 99cf11f5..522c2921 100644 --- a/ShadowsocksX-NG.xcodeproj/project.pbxproj +++ b/ShadowsocksX-NG.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0830; + LastUpgradeCheck = 1020; ORGANIZATIONNAME = qiuyuzhou; TargetAttributes = { 9B0BFFE41D0460A70040E62B = { @@ -483,17 +483,20 @@ 9B0BFFF31D0460A70040E62B = { CreatedOnToolsVersion = 7.3.1; LastSwiftMigration = 0800; + ProvisioningStyle = Automatic; TestTargetID = 9B0BFFE41D0460A70040E62B; }; 9B3FFF431D09CD3B0019A709 = { CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = 2E8Q4BTFR2; LastSwiftMigration = 0800; + ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = 9B0BFFE01D0460A70040E62B /* Build configuration list for PBXProject "ShadowsocksX-NG" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -610,7 +613,7 @@ files = ( ); inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh", + "${PODS_ROOT}/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh", "${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework", "${BUILT_PRODUCTS_DIR}/GCDWebServer/GCDWebServer.framework", ); @@ -621,7 +624,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ShadowsocksX-NG/Pods-ShadowsocksX-NG-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; A3C8167BB5EB01FBDE2A08BC /* [CP] Check Pods Manifest.lock */ = { @@ -795,14 +798,22 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -830,7 +841,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -844,14 +855,22 @@ CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; @@ -872,7 +891,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -903,7 +922,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -933,7 +952,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NG"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "ShadowsocksX-NG/ShadowsocksX-NG-Bridging-Header.h"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -942,12 +961,16 @@ baseConfigurationReference = 5B6203C1228FCD3D365814AC /* Pods-ShadowsocksX-NGTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ShadowsocksX-NGTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NGTests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShadowsocksX-NG.app/Contents/MacOS/ShadowsocksX-NG"; }; name = Debug; @@ -957,12 +980,16 @@ baseConfigurationReference = 3AC7CD9886196A997D6FC78D /* Pods-ShadowsocksX-NGTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = "ShadowsocksX-NGTests/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.qiuyuzhou.ShadowsocksX-NGTests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ShadowsocksX-NG.app/Contents/MacOS/ShadowsocksX-NG"; }; name = Release; @@ -971,8 +998,11 @@ isa = XCBuildConfiguration; baseConfigurationReference = B4E6A97CA843F3943524B686 /* Pods-proxy_conf_helper.debug.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 2E8Q4BTFR2; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 3.0; }; name = Debug; @@ -981,8 +1011,11 @@ isa = XCBuildConfiguration; baseConfigurationReference = 297AF069022A197FD8E9D226 /* Pods-proxy_conf_helper.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 2E8Q4BTFR2; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 3.0; }; name = Release; diff --git a/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NG.xcscheme b/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NG.xcscheme index db485a06..fde0400f 100644 --- a/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NG.xcscheme +++ b/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NG.xcscheme @@ -1,6 +1,6 @@ @@ -28,7 +28,7 @@ buildForAnalyzing = "YES"> @@ -42,7 +42,7 @@ buildForAnalyzing = "YES"> @@ -56,7 +56,7 @@ buildForAnalyzing = "YES"> @@ -70,7 +70,7 @@ buildForAnalyzing = "YES"> diff --git a/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NGTests.xcscheme b/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NGTests.xcscheme index 3c53f56f..573069e9 100644 --- a/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NGTests.xcscheme +++ b/ShadowsocksX-NG.xcodeproj/xcshareddata/xcschemes/ShadowsocksX-NGTests.xcscheme @@ -1,6 +1,6 @@ = 0 && index < profileMgr.profiles.count { editingProfile = profileMgr.profiles[index] - hostTextField.bind("value", to: editingProfile, withKeyPath: "serverHost" - , options: [NSContinuouslyUpdatesValueBindingOption: true]) - portTextField.bind("value", to: editingProfile, withKeyPath: "serverPort" - , options: [NSContinuouslyUpdatesValueBindingOption: true]) + hostTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "serverHost" + , options: [NSBindingOption.continuouslyUpdatesValue: true]) + portTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "serverPort" + , options: [NSBindingOption.continuouslyUpdatesValue: true]) - methodTextField.bind("value", to: editingProfile, withKeyPath: "method" - , options: [NSContinuouslyUpdatesValueBindingOption: true]) - passwordTextField.bind("value", to: editingProfile, withKeyPath: "password" - , options: [NSContinuouslyUpdatesValueBindingOption: true]) + methodTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "method" + , options: [NSBindingOption.continuouslyUpdatesValue: true]) + passwordTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "password" + , options: [NSBindingOption.continuouslyUpdatesValue: true]) - remarkTextField.bind("value", to: editingProfile, withKeyPath: "remark" - , options: [NSContinuouslyUpdatesValueBindingOption: true]) + remarkTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "remark" + , options: [NSBindingOption.continuouslyUpdatesValue: true]) - ProtocolTextField.bind("value", to: editingProfile, withKeyPath: "ssrProtocol", options: [NSContinuouslyUpdatesValueBindingOption: true]) + ProtocolTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "ssrProtocol", options: [NSBindingOption.continuouslyUpdatesValue: true]) - ProtocolParamTextField.bind("value", to: editingProfile, withKeyPath: "ssrProtocolParam", options: [NSContinuouslyUpdatesValueBindingOption: true]) + ProtocolParamTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "ssrProtocolParam", options: [NSBindingOption.continuouslyUpdatesValue: true]) - ObfsTextField.bind("value", to: editingProfile, withKeyPath: "ssrObfs", options: [NSContinuouslyUpdatesValueBindingOption: true]) + ObfsTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "ssrObfs", options: [NSBindingOption.continuouslyUpdatesValue: true]) - ObfsParamTextField.bind("value", to: editingProfile, withKeyPath: "ssrObfsParam", options: [NSContinuouslyUpdatesValueBindingOption: true]) - groupTextField.bind("value", to: editingProfile, withKeyPath: "ssrGroup", options: [NSContinuouslyUpdatesValueBindingOption: true]) + ObfsParamTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "ssrObfsParam", options: [NSBindingOption.continuouslyUpdatesValue: true]) + groupTextField.bind(NSBindingName(rawValue: "value"), to: editingProfile!, withKeyPath: "ssrGroup", options: [NSBindingOption.continuouslyUpdatesValue: true]) } else { editingProfile = nil - hostTextField.unbind("value") - portTextField.unbind("value") + hostTextField.unbind(NSBindingName(rawValue: "value")) + portTextField.unbind(NSBindingName(rawValue: "value")) - methodTextField.unbind("value") - passwordTextField.unbind("value") + methodTextField.unbind(NSBindingName(rawValue: "value")) + passwordTextField.unbind(NSBindingName(rawValue: "value")) - ProtocolTextField.unbind("value") - ProtocolParamTextField.unbind("value") - ObfsTextField.unbind("value") - ObfsParamTextField.unbind("value") + ProtocolTextField.unbind(NSBindingName(rawValue: "value")) + ProtocolParamTextField.unbind(NSBindingName(rawValue: "value")) + ObfsTextField.unbind(NSBindingName(rawValue: "value")) + ObfsParamTextField.unbind(NSBindingName(rawValue: "value")) - remarkTextField.unbind("value") + remarkTextField.unbind(NSBindingName(rawValue: "value")) } } @@ -289,9 +289,9 @@ class PreferencesWindowController: NSWindowController let (title, isActive) = getDataAtRow(row) - if tableColumn?.identifier == "main" { + if tableColumn!.identifier.rawValue == "main" { return title - } else if tableColumn?.identifier == "status" { + } else if tableColumn!.identifier.rawValue == "status" { if isActive { return NSImage(named: "NSMenuOnStateTemplate") } else { @@ -305,12 +305,12 @@ class PreferencesWindowController: NSWindowController func tableView(_ tableView: NSTableView, pasteboardWriterForRow row: Int) -> NSPasteboardWriting? { let item = NSPasteboardItem() - item.setString(String(row), forType: tableViewDragType) + item.setString(String(row), forType: NSPasteboard.PasteboardType(rawValue: tableViewDragType)) return item } func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int - , proposedDropOperation dropOperation: NSTableViewDropOperation) -> NSDragOperation { + , proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation { if dropOperation == .above { return .move } @@ -318,14 +318,20 @@ class PreferencesWindowController: NSWindowController } func tableView(_ tableView: NSTableView, acceptDrop info: NSDraggingInfo - , row: Int, dropOperation: NSTableViewDropOperation) -> Bool { + , row: Int, dropOperation: NSTableView.DropOperation) -> Bool { if let mgr = profileMgr { var oldIndexes = [Int]() - info.enumerateDraggingItems(options: [], for: tableView, classes: [NSPasteboardItem.self], searchOptions: [:]) { - if let str = ($0.0.item as! NSPasteboardItem).string(forType: self.tableViewDragType), let index = Int(str) { + info.enumerateDraggingItems( + options: [], + for: tableView, + classes: [NSPasteboardItem.self], + searchOptions: [:], + using: {(draggingItem, idx, stop) in + if let str = (draggingItem.item as! NSPasteboardItem).string(forType: NSPasteboard.PasteboardType(rawValue: self.tableViewDragType)), let index = Int(str) { oldIndexes.append(index) } - } + } + ) var oldIndexOffset = 0 var newIndexOffset = 0 diff --git a/ShadowsocksX-NG/ProxyPreferencesController.swift b/ShadowsocksX-NG/ProxyPreferencesController.swift index 5a6e3fc0..3707e8f1 100644 --- a/ShadowsocksX-NG/ProxyPreferencesController.swift +++ b/ShadowsocksX-NG/ProxyPreferencesController.swift @@ -32,7 +32,7 @@ class ProxyPreferencesController: NSWindowController, NSTableViewDataSource, NST selectedNetworkServices = NSMutableSet() } - networkServices = ProxyConfTool.networkServicesList() as NSArray! + networkServices = ProxyConfTool.networkServicesList() as NSArray tableView.reloadData() } @@ -70,9 +70,9 @@ class ProxyPreferencesController: NSWindowController, NSTableViewDataSource, NST let key = (networkServices[row] as AnyObject)["key"] as! String if selectedNetworkServices.contains(key) { - cell.state = 1 + cell.state = NSControl.StateValue(rawValue: 1) } else { - cell.state = 0 + cell.state = NSControl.StateValue(rawValue: 0) } let userDefinedName = (networkServices[row] as AnyObject)["userDefinedName"] as! String cell.title = userDefinedName diff --git a/ShadowsocksX-NG/ServerProfileManager.swift b/ShadowsocksX-NG/ServerProfileManager.swift index cbd13f8e..454a723f 100644 --- a/ShadowsocksX-NG/ServerProfileManager.swift +++ b/ShadowsocksX-NG/ServerProfileManager.swift @@ -129,7 +129,7 @@ class ServerProfileManager: NSObject { openPanel.becomeKey() openPanel.begin { (result) -> Void in // TODO not freeze the screen when running import process - if (result == NSFileHandlingPanelOKButton && (openPanel.url) != nil) { + if (result.rawValue == NSFileHandlingPanelOKButton && (openPanel.url) != nil) { let fileManager = FileManager.default let filePath:String = (openPanel.url?.path)! if (fileManager.fileExists(atPath: filePath) && filePath.hasSuffix("json")) { @@ -229,10 +229,10 @@ class ServerProfileManager: NSObject { savePanel.nameFieldStringValue = "export.json" savePanel.becomeKey() savePanel.begin { (result) -> Void in - if (result == NSFileHandlingPanelOKButton && (savePanel.url) != nil) { + if (result.rawValue == NSFileHandlingPanelOKButton && (savePanel.url) != nil) { //write jsonArr1 back to file try! jsonString.write(toFile: (savePanel.url?.path)!, atomically: true, encoding: String.Encoding.utf8) - NSWorkspace.shared().selectFile((savePanel.url?.path)!, inFileViewerRootedAtPath: (savePanel.directoryURL?.path)!) + NSWorkspace.shared.selectFile((savePanel.url?.path)!, inFileViewerRootedAtPath: (savePanel.directoryURL?.path)!) let notification = NSUserNotification() notification.title = "Export Server Profile succeed!".localized notification.informativeText = "Successful Export \(self.profiles.count) items".localized @@ -250,10 +250,10 @@ class ServerProfileManager: NSObject { let destPath = dataPath + "/example-gui-config.json" //检测文件是否已经存在,如果存在直接用sharedWorkspace显示 if fileMgr.fileExists(atPath: destPath) { - NSWorkspace.shared().selectFile(destPath, inFileViewerRootedAtPath: dataPath) + NSWorkspace.shared.selectFile(destPath, inFileViewerRootedAtPath: dataPath) }else{ try! fileMgr.copyItem(atPath: filePath, toPath: destPath) - NSWorkspace.shared().selectFile(destPath, inFileViewerRootedAtPath: dataPath) + NSWorkspace.shared.selectFile(destPath, inFileViewerRootedAtPath: dataPath) } } } diff --git a/ShadowsocksX-NG/StatusItemView.swift b/ShadowsocksX-NG/StatusItemView.swift index e1aa105e..7d2573ba 100755 --- a/ShadowsocksX-NG/StatusItemView.swift +++ b/ShadowsocksX-NG/StatusItemView.swift @@ -46,7 +46,7 @@ open class StatusItemView: NSControl { statusItem.drawStatusBarBackground(in: dirtyRect, withHighlight: mouseDown) fontColor = (darkMode||mouseDown) ? NSColor.white : NSColor.black - let fontAttributes = [NSFontAttributeName: NSFont.systemFont(ofSize: fontSize), NSForegroundColorAttributeName: fontColor] as [String : Any] + let fontAttributes = [NSAttributedString.Key.font.rawValue: NSFont.systemFont(ofSize: fontSize), NSAttributedString.Key.foregroundColor: fontColor] as! [NSAttributedString.Key : Any] if showSpeed{ let upRateString = NSAttributedString(string: upRate+" ↑", attributes: fontAttributes) let upRateRect = upRateString.boundingRect(with: NSSize(width: 100, height: 100), options: .usesLineFragmentOrigin) @@ -105,7 +105,7 @@ open class StatusItemView: NSControl { } } - func changeMode() { + @objc func changeMode() { darkMode = SystemThemeChangeHelper.isCurrentDark() setNeedsDisplay() } diff --git a/ShadowsocksX-NG/Subscribe.swift b/ShadowsocksX-NG/Subscribe.swift index 4df98ece..41a3d4d0 100644 --- a/ShadowsocksX-NG/Subscribe.swift +++ b/ShadowsocksX-NG/Subscribe.swift @@ -152,7 +152,7 @@ class Subscribe: NSObject{ continue } if existResult { - self.profileMgr.profiles.replaceSubrange(Range(existIndex..= 0 && index < sbMgr.subscribes.count { editingSubscribe = sbMgr.subscribes[index] - FeedTextField.bind("value", to: editingSubscribe, withKeyPath: "subscribeFeed", options: [NSContinuouslyUpdatesValueBindingOption: true]) - TokenTextField.bind("value", to: editingSubscribe, withKeyPath: "token", options: [NSContinuouslyUpdatesValueBindingOption: true]) - GroupTextField.bind("value", to: editingSubscribe, withKeyPath: "groupName", options: [NSContinuouslyUpdatesValueBindingOption: true]) - MaxCountTextField.bind("value", to: editingSubscribe, withKeyPath: "maxCount", options: [NSContinuouslyUpdatesValueBindingOption: true]) + FeedTextField.bind(NSBindingName(rawValue: "value"), to: editingSubscribe!, withKeyPath: "subscribeFeed", options: [NSBindingOption.continuouslyUpdatesValue: true]) + TokenTextField.bind(NSBindingName(rawValue: "value"), to: editingSubscribe!, withKeyPath: "token", options: [NSBindingOption.continuouslyUpdatesValue: true]) + GroupTextField.bind(NSBindingName(rawValue: "value"), to: editingSubscribe!, withKeyPath: "groupName", options: [NSBindingOption.continuouslyUpdatesValue: true]) + MaxCountTextField.bind(NSBindingName(rawValue: "value"), to: editingSubscribe!, withKeyPath: "maxCount", options: [NSBindingOption.continuouslyUpdatesValue: true]) } else { editingSubscribe = nil - FeedTextField.unbind("value") - TokenTextField.unbind("value") - GroupTextField.unbind("value") - MaxCountTextField.unbind("value") + FeedTextField.unbind(NSBindingName(rawValue: "value")) + TokenTextField.unbind(NSBindingName(rawValue: "value")) + GroupTextField.unbind(NSBindingName(rawValue: "value")) + MaxCountTextField.unbind(NSBindingName(rawValue: "value")) } } @@ -148,10 +148,10 @@ class SubscribePreferenceWindowController: NSWindowController let title = getDataAtRow(row) - if tableColumn?.identifier == "main" { + if tableColumn!.identifier.rawValue == "main" { if title != "" {return title} else {return "S"} - } else if tableColumn?.identifier == "status" { + } else if tableColumn!.identifier.rawValue == "status" { return NSImage(named: "menu_icon") } return "" @@ -161,12 +161,12 @@ class SubscribePreferenceWindowController: NSWindowController func tableView(_ tableView: NSTableView, pasteboardWriterForRow row: Int) -> NSPasteboardWriting? { let item = NSPasteboardItem() - item.setString(String(row), forType: tableViewDragType) + item.setString(String(row), forType: NSPasteboard.PasteboardType(rawValue: tableViewDragType)) return item } func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int - , proposedDropOperation dropOperation: NSTableViewDropOperation) -> NSDragOperation { + , proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation { if dropOperation == .above { return .move } @@ -174,14 +174,19 @@ class SubscribePreferenceWindowController: NSWindowController } func tableView(_ tableView: NSTableView, acceptDrop info: NSDraggingInfo - , row: Int, dropOperation: NSTableViewDropOperation) -> Bool { + , row: Int, dropOperation: NSTableView.DropOperation) -> Bool { if let mgr = sbMgr { var oldIndexes = [Int]() - info.enumerateDraggingItems(options: [], for: tableView, classes: [NSPasteboardItem.self], searchOptions: [:]) { - if let str = ($0.0.item as! NSPasteboardItem).string(forType: self.tableViewDragType), let index = Int(str) { + info.enumerateDraggingItems( + options: [], + for: tableView, + classes: [NSPasteboardItem.self], + searchOptions: [:], + using: {(draggingItem, idx, stop) in + if let str = (draggingItem.item as! NSPasteboardItem).string(forType: NSPasteboard.PasteboardType(rawValue: self.tableViewDragType)), let index = Int(str) { oldIndexes.append(index) } - } + }) var oldIndexOffset = 0 var newIndexOffset = 0 diff --git a/ShadowsocksX-NG/UserRulesController.swift b/ShadowsocksX-NG/UserRulesController.swift index f378ca3d..6b2dec54 100644 --- a/ShadowsocksX-NG/UserRulesController.swift +++ b/ShadowsocksX-NG/UserRulesController.swift @@ -22,7 +22,7 @@ class UserRulesController: NSWindowController { } let str = try? String(contentsOfFile: PACUserRuleFilePath, encoding: String.Encoding.utf8) - userRulesView.string = str + userRulesView.string = str ?? "" } @IBAction func didCancel(_ sender: AnyObject) { @@ -30,24 +30,23 @@ class UserRulesController: NSWindowController { } @IBAction func didOK(_ sender: AnyObject) { - if let str = userRulesView.string { - do { - try str.data(using: String.Encoding.utf8)?.write(to: URL(fileURLWithPath: PACUserRuleFilePath), options: .atomic) - - if GeneratePACFile() { - // Popup a user notification - let notification = NSUserNotification() - notification.title = "PAC has been updated by User Rules.".localized - NSUserNotificationCenter.default - .deliver(notification) - } else { - let notification = NSUserNotification() - notification.title = "It's failed to update PAC by User Rules.".localized - NSUserNotificationCenter.default - .deliver(notification) - } - } catch {} - } + let str = userRulesView.string + do { + try str.data(using: String.Encoding.utf8)?.write(to: URL(fileURLWithPath: PACUserRuleFilePath), options: .atomic) + + if GeneratePACFile() { + // Popup a user notification + let notification = NSUserNotification() + notification.title = "PAC has been updated by User Rules.".localized + NSUserNotificationCenter.default + .deliver(notification) + } else { + let notification = NSUserNotification() + notification.title = "It's failed to update PAC by User Rules.".localized + NSUserNotificationCenter.default + .deliver(notification) + } + } catch {} window?.performClose(self) } } diff --git a/ShadowsocksX-NG/VersionChecker.swift b/ShadowsocksX-NG/VersionChecker.swift index cecdfa60..904f68de 100644 --- a/ShadowsocksX-NG/VersionChecker.swift +++ b/ShadowsocksX-NG/VersionChecker.swift @@ -40,7 +40,7 @@ class VersionChecker: NSObject { alertView.addButton(withTitle: CancelBtn) } let action = alertView.runModal() - return action + return action.rawValue } func parserVersionString(strIn: String) -> Array{ var strTmp = strIn.substring(to: (strIn.range(of: "-")?.lowerBound)!)