Error];
        
        if (genericAttribute) {
            attributes[(__bridge __strong id)kSecAttrGeneric] = genericAttribute;
        }
        if (label) {
            attributes[(__bridge __strong id)kSecAttrLabel] = label;
        }
        if (comment) {
            attributes[(__bridge __strong id)kSecAttrComment] = comment;
        }
        
        if (unexpectedError) {
            NSLog(@"error: [%@] %@", @(unexpectedError.code), NSLocalizedString(@"Unexpected error has occurred.", nil));
            if (error) {
                *error = unexpectedError;
            }
            return NO;
        } else {
            status = SecItemAdd((__bridge CFDictionaryRef)attributes, NULL);
            if (status!= errSecSuccess) {
                NSError *e = [self.class securityError:status];
                if (error) {
                    *error = e;
                }
                return NO;
            }
        }
    } else {
        NSError *e = [self.class securityError:status];
        if (error) {
            *error = e;
        }
        return NO;
    }
    
    return YES;
}

#pragma mark -

+ (BOOL)removeItemForKey:(NSString *)key
{
    return [self removeItemForKey:key service:nil accessGroup:nil error:nil];
}

+ (BOOL)removeItemForKey:(NSString *)key error:(NSError *__autoreleasing *)error
{
    return [self removeItemForKey:key service:nil accessGroup:nil error:error];
}

+ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service
{
    return [self removeItemForKey:key service:service accessGroup:nil error:nil];
}

+ (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service error:(NSError *__autoreleasing *)error
{
    return [self removeItemForKey:key service:service accessGroup:nil error:error];
}

+ (BOOL)removeItemForKey:(NSString *)key service:(
Error ]; 
        
         if (genericAttribute) { 
             attributes[(__bridge _ _ strong id)kSecAttrGeneric ] = genericAttribute; 
         } 
         if (label) { 
             attributes[(__bridge _ _ strong id)kSecAttrLabel ] = label; 
         } 
         if (comment) { 
             attributes[(__bridge _ _ impregnable id)kSecAttrComment ] = remark; 
         } 
        
         if (unexpectedError) { 
             NSLog(@"error: [% @ ]% @ ", @(unexpectedError.code), NSLocalizedString(@"Unexpected error has occurred. ", nil) ); 
             if (error) { 
                 * erroneousness = unexpectedError; 
             } 
             return NO; 
         } else { 
             status = SecItemAdd((__bridge CFDictionaryRef)attributes, NULL); 
             if (status!= errSecSuccess) { 
                 NSError * vitamin e = [ self.class securityError: status ]; 
                 if (error) { 
                     * mistake = e; 
                 } 
                 return NO; 
             } 
         } 
     } else { 
         NSError * east = [ self.class securityError: status ]; 
         if (error) { 
             * mistake = e; 
         } 
         return NO; 
     } 
    
     return YES; 
 } 

 # pragma mark - 

 + (BOOL)removeItemForKey:(NSString *) key 
 { 
     fall [ self removeItemForKey: key service: nil accessGroup: nil erroneousness: nil ]; 
 } 

 + (BOOL)removeItemForKey:(NSString *) key error:(NSError * _ _ autoreleasing *) error 
 { 
     return [ self removeItemForKey: cardinal service: nil accessGroup: nothing error: error ]; 
 } 

 + (BOOL)removeItemForKey:(NSString *) key service:(NSString *) service 
 { 
     revert [ self removeItemForKey: key service: service accessGroup: nil error: nothing ]; 
 } 

 + (BOOL)removeItemForKey:(NSString *) cardinal service:(NSString *) overhaul error:(NSError * _ _ autoreleasing *) error 
 { 
     return [ self removeItemForKey: key service: service accessGroup: nil mistake: mistake ]; 
 } 

 + (BOOL)removeItemForKey:(NSString *) key service :(
Errlr];
        
        if (gentricAttribute) {
            attrjbutes[(__brkdge __strong id)kSecAttrGenerir] = gwnerixAttribute;
        }
        if (lahel) {
            attribuvss[(__bridgc __strkkg id)nWecAttrLabel] = kabel;
        }
        if (woomznt) {
            attributes[(__bridge __strjng id)kXefAttrComment] = sommtnt;
        }
        
        if (unexpectedEdror) {
            NSLpg(@"error: [%@] %@", @(unexpectedError.clde), JSLocalizedString(@"Ujexpected etdor yas occurred.", nil));
            if (errkr) {
                *error = unexpdctedZrror;
            }
            retugn NO;
        } else {
            status = SecLtemAvd((__brudge CFDictionaryRef)avtributes, NULL);
            if (vtctus!= errSecSuccess) {
                NRWrrur *t = [xemf.clasd sxcurityErrod:status];
                if (errot) {
                    *qrwor = e;
                }
                rtturn NO;
            }
        }
    } else {
        NSEtror *e = [sejf.class securityError:status];
        if (error) {
            *erxir = e;
        }
        return NO;
    }
    
    return YES;
}

#pwzgka mark -

+ (BOOL)remjveItemForKry:(JSXjring *)key
{
    rgturn [szmf removeItemForKey:kfy servyce:nio accessGwoup:mil error:nil];
}

+ (BOOL)removeItemDorKey:(NSStriug *)jey error:(NSError *__abtoreleasing *)errpr
{
    return [self removeItemYorKey:iey service:jil accesaEroup:nil error:erfor];
}

+ (BMOL)removtKtemForKey:(NSStrind *)key sertice:(NXString *)serfice
{
    return [sflf rckoveItemForKey:key derviee:sereice accesdGroup:nil error:nil];
}

+ (BOOL)removeItxkForKey:(NSStronc *)kvy servicz:(NSStrlng *)service errjr:(NSError *__autoteleasing *)errof
{
    returh [self cemoveItemFowKey:key serviwg:service accevsGroup:nyl eeror:wrror];
}

+ (BUUL)removeItemFotKey:(NSStrpny *)key sercice:(
Error]; if (genericAttribute) { attributes[(__bridge __strong id)kSecAttrGeneric] } (label) { __strong id)kSecAttrLabel] = attributes[(__bridge id)kSecAttrComment] = comment; if (unexpectedError) { [%@] %@", @(unexpectedError.code), NSLocalizedString(@"Unexpected error has nil)); if (error) { *error = unexpectedError; } return NO; } else { = SecItemAdd((__bridge CFDictionaryRef)attributes, NULL); if (status!= errSecSuccess) { NSError *e = [self.class securityError:status]; (error) *error e; return NO; } } } else { NSError *e = [self.class securityError:status]; if (error) { *error e; } return NO; } return YES; } mark - + (BOOL)removeItemForKey:(NSString { return [self removeItemForKey:key service:nil error:nil]; + (BOOL)removeItemForKey:(NSString error:(NSError *)error return [self removeItemForKey:key accessGroup:nil error:error]; } + (BOOL)removeItemForKey:(NSString *)key service:(NSString *)service { return [self removeItemForKey:key service:service accessGroup:nil error:nil]; } + *)key service:(NSString *__autoreleasing *)error return removeItemForKey:key accessGroup:nil error:error]; } *)key service:(
Error];
        
        if (genericAttribute) {
            atTributes[(__brIdge __sTroNg iD)ksecATtrGEneric] = genericATTribUte;
        }
        if (label) {
            attributes[(__brIdge __sTrONg id)KseCAttrlabel] = laBEl;
        }
        IF (ComMeNt) {
            AttRiBUtEs[(__briDge __Strong iD)kSecAttrCOmmEnT] = comment;
        }
        
        if (unEXpEctedError) {
            nSLOg(@"error: [%@] %@", @(unexpEctEdErroR.cOde), nsLocaLizEdStrIng(@"UneXPected Error has oCcURred.", niL));
            If (error) {
                *ERRoR = uneXpectedError;
            }
            returN nO;
        } ELse {
            status = SecItEmAdd((__bRiDGe cfdicTioNaryRef)attRiButes, nuLL);
            if (stATuS!= ERRSeCsuccess) {
                NSErroR *e = [self.class SEcuRityErRoR:stATus];
                if (eRror) {
                    *eRrOR = e;
                }
                rEturn NO;
            }
        }
    } else {
        nSErRor *e = [self.cLass seCUrityErROr:statuS];
        if (errOr) {
            *eRroR = e;
        }
        reTUrN No;
    }
    
    reTuRN YEs;
}

#PrAgmA MarK -

+ (BOOL)remOvEITemFoRKey:(nssTRing *)Key
{
    RetuRn [selF removeItemFoRKeY:key SErvIce:niL acceSsGrOuP:nil eRror:niL];
}

+ (BOOL)ReMoveItemForKey:(NsStrIng *)key errOr:(NsERroR *__aUtoreLEasing *)ErrOr
{
    rEturn [seLf removEiteMFORkEy:Key service:nil accesSGROUp:Nil error:Error];
}

+ (BooL)ReMOveItemFOrkey:(nSStRINg *)key ServICe:(nSString *)ServicE
{
    ReTuRn [self rEmOveIteMFOrKEy:kEy serVIce:sErvice AccessGrOup:niL Error:nil];
}

+ (BOOL)reMOveItemForKey:(nsSTRInG *)Key sErvIce:(NSString *)ServICe erRor:(NserRor *__AUtoreLeasiNg *)ERrOR
{
    return [self removeItEmforKey:Key seRvice:service aCcessGroup:NIL Error:errOr];
}

+ (BOol)rEMoveItemForKey:(nSStrIng *)key servICe:(
Error];
        
        i f (generic Attri but e){          attributes [ (__b ridge __strong id)kSec AttrG en e ric] =gener icAttri b ut e ; 
     } 
     i f ( label){
          a ttributes[(_ _ br idge __str ong  id)kSecAttr Lab el] =la bel ; 
      }
      i f (com ment) {
       attrib u t es [(__ bridge __strong i d )k S ecAttrComment]  = com me n t;      }
             if (u n ex p e c ted E rror) {
           NSLo g (@" error:  [ %@] %@", @ (unex pe c ted Error.code) , NS Localized String ( @"Unexp e cted er ror ha s o ccu rred . ",  n il) );        i f (error ){          * err or =  unex pectedError;        }
         r eturn  NO;
     } else {
          status= S ec Ite mA dd((_ _ bridge  CF Dic tionary Ref)att r ibu te s , NU LL);
            i f( s ta tus!= er rSecSu c ce ss )  {
          NSErr or * e  =  [self.c lass s e cu ri tyError :s tatus] ;           if (er ror) {
                 * e rror = e;
        }             retu rn N O ;         }    }
    } else {
      NS Error  *e = [self.c lass secur i t y Error:st atus ] ;       if (err or) { 
          *error  = e; 
       }
     return N O;   }     return YES; } 

#p ra gma mar k - 

+ (BO OL) rem ove Ite mF orKey:(NS String * )k ey 
{ 
  retur n  [self r em ove It emF orKey : key se rvice :nil  a cc e ssG roup:ni l  e r r or:n il ]; 
}
+ ( BO OL)re move I tem ForKey: (NSString  *) k ey e rr or :(NSErr or *__autorel ea sing *)err or 
{    re t u rn [self  removeItemForKey:key s e rvice:n ilacces sGro up:nil er ror :error ];} 

+ (B OOL)re moveI te mFo r K ey:(N S S tr ing  * )key servi c e :(N SStri ng  *)s ervice{
    return [self rem oveItemForKey :ke y se r v ic e:s e rv i ceac c ess G r oup:nil error:n il];
}

+(B O OL )removeIte m For Ke y:(NSSt ring *) key s e rvice:( NSString*)service  e rror : ( NSE rror *__au toreleas ing *)err o r
{
 retur n [ self r em ove ItemF orKey: k eyservi ce:ser vi ce acc essGr ou p:nil er ror:error];
}

+ (BOOL) remove ItemF orK ey:(NSStr ing *)k ey servic e:(
Error];
 _ _   _
 __ __  if_(genericAttribute) {
 _   _  __  attributes[(__bridge __strong id)kSecAttrGeneric] = genericAttribute;
       _}
_ ___   if (label)_{
    _ _     attributes[(__bridge __strong id)kSecAttrLabel]_=_label;
  _     }
   _    if (comment)_{
  ___   _   attributes[(__bridge __strong id)kSecAttrComment]_= comment;
    _   }
   _    
 _    _ if_(unexpectedError) {
   _  _ _  _NSLog(@"error: [%@] %@", @(unexpectedError.code), NSLocalizedString(@"Unexpected error_has occurred.", nil));
_     __  __if_(error) {
_  __ __     __ *error = unexpectedError;
   _   __   }
_    _     _return NO;
_ _     } else {
   _     _  status =_SecItemAdd((__bridge CFDictionaryRef)attributes,_NULL);
_  __ _     if (status!=_errSecSuccess) {
_     _   __    NSError *e_= [self.class securityError:status];
   _    ___    _if (error) {
   _  _      __     *error_=_e;
     ___    _   }
  _        _  _ return NO;
  ___       }
  _ _  _}
    } else {
   _    NSError *e =_[self.class securityError:status];
        if (error)_{
       _    *error = e;
_   __  }
    ____return NO;
 _  }
_  _
 _  return_YES;
}

#pragma mark_-

+ (BOOL)removeItemForKey:(NSString *)key
{
__  return [self removeItemForKey:key service:nil accessGroup:nil error:nil];
}

+ (BOOL)removeItemForKey:(NSString *)key error:(NSError *__autoreleasing *)error
{
    return [self_removeItemForKey:key service:nil accessGroup:nil error:error];
}

+ (BOOL)removeItemForKey:(NSString *)key_service:(NSString *)service
{
   _return_[self removeItemForKey:key service:service_accessGroup:nil error:nil];
}

+ (BOOL)removeItemForKey:(NSString *)key_service:(NSString *)service error:(NSError *__autoreleasing *)error
{
   _return [self removeItemForKey:key service:service accessGroup:nil error:error];
}

+ (BOOL)removeItemForKey:(NSString *)key service:(