anchor.diff:  		""
   	end,
       {Num,Buf} = gen_decode_length(SizeConstraint, Erules),
  +    Key = erlang:md5(term_to_binary({Typename,SeqOrSetOf,ComponentType})),
  +    Gen = fun(_Fd, Name) ->
  +		  gen_decode_sof_components(Erules, Name,
  +					    Typename, SeqOrSetOf,
  +					    ComponentType)
  +	  end,
  +    F = asn1ct_func:call_gen("dec_components", Key, Gen),
       emit([",",nl,
  -	  "'dec_",asn1ct_gen:list2name(Typename),
  -	  "_components'(",Num,", ",Buf,ObjFun,", []).",nl,nl]),
  -    gen_decode_sof_components(Erules, Typename, SeqOrSetOf, ComponentType).
  +	  {asis,F},"(",Num,", ",Buf,ObjFun,", []).",nl,nl]).
   
   is_aligned(per) -> true;
   is_aligned(uper) -> false.
  
positive.code: 	    _ ->
  		{"",""}
  	end,
      emit({"'dec_",asn1ct_gen:list2name(Typename),
  	  "_components'(0, Bytes",ObjFun_Var,", Acc) ->",nl,
  	  indent(3),"{lists:reverse(Acc), Bytes};",nl}),
      emit({"'dec_",asn1ct_gen:list2name(Typename),
  	  "_components'(Num, Bytes",ObjFun,", Acc) ->",nl}),
      emit({indent(3),"{Term,Remain} = "}),
      Constructed_Suffix = asn1ct_gen:constructed_suffix(SeqOrSetOf,
  						       Cont#type.def),
      Conttype = asn1ct_gen:get_inner(Cont#type.def),
  
negative.code: 	_ ->
  	    emit({"'dec_",Conttype,"'(Bytes),",nl})
      end,
      emit([{asis,Name},"(Num-1, Remain",ObjFun,", [Term|Acc]).",nl]).
  
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  