anchor.diff:  %% DIAMETER_INVALID_AVP_LENGTH (5014). A module specified to a
   %% @custom_types tag in a dictionary file can also raise an error of
   %% this form.
  -rc({'DIAMETER', 5014 = RC, _}, #diameter_avp{name = AvpName} = Avp, Opts, Mod) ->
  -    {RC, Avp#diameter_avp{data = Mod:empty_value(AvpName, Opts)}};
  +rc({'DIAMETER', 5014 = RC, _}, #diameter_avp{name = AvpName} = A, Opts, Mod) ->
  +    {RC, A#diameter_avp{data = Mod:empty_value(AvpName, Opts)}};
   
   %% 3588:
   %%
  
positive.code: %%      the offending AVP that exceeded the maximum number of occurrences
  %%
  
  pack(_, 1, _, Avp, _, {Rec, Failed}) ->
      {Rec, [{5009, Avp} | Failed]};
  
  pack(L, {_, Max}, F, Avp, Mod, {Rec, Failed}) ->
      case '*' /= Max andalso has_prefix(Max+1, L) of
          true ->
              {Rec, [{5009, Avp} | Failed]};
          false when F == 'AVP' ->
              {Mod:'#set-'({F, [Avp | L]}, Rec), Failed};
          false ->
              {Mod:'#set-'({F, [Avp#diameter_avp.value | L]}, Rec), Failed}
      end.
  
  %% ---------------------------------------------------------------------------
  %% # grouped_avp/3
  
negative.code: 
  %% decode_error/7
  
  decode_error(Name, [_|Rec], _, #{failed_avp := true} = Opts, Mod, Avp, Acc) ->
      decode_AVP(Name, Avp#diameter_avp{value = Rec}, Opts, Mod, Acc);
  
  decode_error(Name, _, _, #{failed_avp := true} = Opts, Mod, Avp, Acc) ->
  