| 
					
				 | 
			
			
				@@ -0,0 +1,198 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//  UserDetailModel.m 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//  Created by Steven  on 2024/7/23 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//  Copyright (c) 2024 __MyCompanyName__. All rights reserved. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#import "UserDetailModel.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelId = @"id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelUserVip = @"userVip"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendNickname = @"friendNickname"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelMemo = @"memo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendAvatar = @"friendAvatar"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelRoleType = @"roleType"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendGender = @"friendGender"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendBirthdate = @"friendBirthdate"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelUserId = @"userId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendType = @"friendType"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelCreateTime = @"createTime"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendId = @"friendId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelFriendSubjectName = @"friendSubjectName"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelImFriendId = @"imFriendId"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NSString *const kUserDetailModelUpdateTime = @"updateTime"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@interface UserDetailModel () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@implementation UserDetailModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize internalBaseClassIdentifier = _internalBaseClassIdentifier; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize userVip = _userVip; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendNickname = _friendNickname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize memo = _memo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendAvatar = _friendAvatar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize roleType = _roleType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendGender = _friendGender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendBirthdate = _friendBirthdate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize userId = _userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendType = _friendType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize createTime = _createTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendId = _friendId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize friendSubjectName = _friendSubjectName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize imFriendId = _imFriendId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@synthesize updateTime = _updateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				++ (instancetype)modelObjectWithDictionary:(NSDictionary *)dict 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return [[self alloc] initWithDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (instancetype)initWithDictionary:(NSDictionary *)dict 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self = [super init]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // This check serves to make sure that a non-NSDictionary object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // passed into the model class doesn't break the parsing. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(self && [dict isKindOfClass:[NSDictionary class]]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.internalBaseClassIdentifier = [self objectOrNilForKey:kUserDetailModelId fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.userVip = [UserVip modelObjectWithDictionary:[dict objectForKey:kUserDetailModelUserVip]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendNickname = [self objectOrNilForKey:kUserDetailModelFriendNickname fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.memo = [self objectOrNilForKey:kUserDetailModelMemo fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendAvatar = [self objectOrNilForKey:kUserDetailModelFriendAvatar fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.roleType = [self objectOrNilForKey:kUserDetailModelRoleType fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendGender = [[self objectOrNilForKey:kUserDetailModelFriendGender fromDictionary:dict] doubleValue]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendBirthdate = [self objectOrNilForKey:kUserDetailModelFriendBirthdate fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.userId = [self objectOrNilForKey:kUserDetailModelUserId fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendType = [self objectOrNilForKey:kUserDetailModelFriendType fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.createTime = [self objectOrNilForKey:kUserDetailModelCreateTime fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendId = [self objectOrNilForKey:kUserDetailModelFriendId fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.friendSubjectName = [self objectOrNilForKey:kUserDetailModelFriendSubjectName fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.imFriendId = [self objectOrNilForKey:kUserDetailModelImFriendId fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.updateTime = [self objectOrNilForKey:kUserDetailModelUpdateTime fromDictionary:dict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (NSDictionary *)dictionaryRepresentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NSMutableDictionary *mutableDict = [NSMutableDictionary dictionary]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.internalBaseClassIdentifier forKey:kUserDetailModelId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:[self.userVip dictionaryRepresentation] forKey:kUserDetailModelUserVip]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendNickname forKey:kUserDetailModelFriendNickname]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.memo forKey:kUserDetailModelMemo]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendAvatar forKey:kUserDetailModelFriendAvatar]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.roleType forKey:kUserDetailModelRoleType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:[NSNumber numberWithDouble:self.friendGender] forKey:kUserDetailModelFriendGender]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendBirthdate forKey:kUserDetailModelFriendBirthdate]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.userId forKey:kUserDetailModelUserId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendType forKey:kUserDetailModelFriendType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.createTime forKey:kUserDetailModelCreateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendId forKey:kUserDetailModelFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.friendSubjectName forKey:kUserDetailModelFriendSubjectName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.imFriendId forKey:kUserDetailModelImFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [mutableDict setValue:self.updateTime forKey:kUserDetailModelUpdateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return [NSDictionary dictionaryWithDictionary:mutableDict]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (NSString *)description 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return [NSString stringWithFormat:@"%@", [self dictionaryRepresentation]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#pragma mark - Helper Method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (id)objectOrNilForKey:(id)aKey fromDictionary:(NSDictionary *)dict 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    id object = [dict objectForKey:aKey]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ([object isKindOfClass:[NSNumber class]]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        NSNumber *number = object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        object = [number stringValue]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return [object isEqual:[NSNull null]] ? nil : object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#pragma mark - NSCoding Methods 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (id)initWithCoder:(NSCoder *)aDecoder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self = [super init]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.internalBaseClassIdentifier = [aDecoder decodeObjectForKey:kUserDetailModelId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.userVip = [aDecoder decodeObjectForKey:kUserDetailModelUserVip]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendNickname = [aDecoder decodeObjectForKey:kUserDetailModelFriendNickname]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.memo = [aDecoder decodeObjectForKey:kUserDetailModelMemo]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendAvatar = [aDecoder decodeObjectForKey:kUserDetailModelFriendAvatar]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.roleType = [aDecoder decodeObjectForKey:kUserDetailModelRoleType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendGender = [aDecoder decodeDoubleForKey:kUserDetailModelFriendGender]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendBirthdate = [aDecoder decodeObjectForKey:kUserDetailModelFriendBirthdate]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.userId = [aDecoder decodeObjectForKey:kUserDetailModelUserId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendType = [aDecoder decodeObjectForKey:kUserDetailModelFriendType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.createTime = [aDecoder decodeObjectForKey:kUserDetailModelCreateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendId = [aDecoder decodeObjectForKey:kUserDetailModelFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.friendSubjectName = [aDecoder decodeObjectForKey:kUserDetailModelFriendSubjectName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.imFriendId = [aDecoder decodeObjectForKey:kUserDetailModelImFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.updateTime = [aDecoder decodeObjectForKey:kUserDetailModelUpdateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return self; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (void)encodeWithCoder:(NSCoder *)aCoder 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_internalBaseClassIdentifier forKey:kUserDetailModelId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_userVip forKey:kUserDetailModelUserVip]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendNickname forKey:kUserDetailModelFriendNickname]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_memo forKey:kUserDetailModelMemo]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendAvatar forKey:kUserDetailModelFriendAvatar]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_roleType forKey:kUserDetailModelRoleType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeDouble:_friendGender forKey:kUserDetailModelFriendGender]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendBirthdate forKey:kUserDetailModelFriendBirthdate]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_userId forKey:kUserDetailModelUserId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendType forKey:kUserDetailModelFriendType]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_createTime forKey:kUserDetailModelCreateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendId forKey:kUserDetailModelFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_friendSubjectName forKey:kUserDetailModelFriendSubjectName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_imFriendId forKey:kUserDetailModelImFriendId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [aCoder encodeObject:_updateTime forKey:kUserDetailModelUpdateTime]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (id)copyWithZone:(NSZone *)zone 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UserDetailModel *copy = [[UserDetailModel alloc] init]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (copy) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.internalBaseClassIdentifier = [self.internalBaseClassIdentifier copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.userVip = [self.userVip copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendNickname = [self.friendNickname copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.memo = [self.memo copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendAvatar = [self.friendAvatar copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.roleType = [self.roleType copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendGender = self.friendGender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendBirthdate = [self.friendBirthdate copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.userId = [self.userId copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendType = [self.friendType copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.createTime = [self.createTime copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendId = [self.friendId copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.friendSubjectName = [self.friendSubjectName copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.imFriendId = [self.imFriendId copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        copy.updateTime = [self.updateTime copyWithZone:zone]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return copy; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@end 
			 |