github.com/patricebensoussan/go/codec@v1.2.99/values_codecgen_generated_test.go (about)

     1  //go:build go1.6 && (codecgen || generated)
     2  // +build go1.6
     3  // +build codecgen generated
     4  
     5  // Code generated by codecgen - DO NOT EDIT.
     6  
     7  package codec
     8  
     9  import (
    10  	"errors"
    11  	"runtime"
    12  	"strconv"
    13  	"time"
    14  )
    15  
    16  const (
    17  	// ----- content types ----
    18  	codecSelferCcUTF819780 = 1
    19  	codecSelferCcRAW19780  = 255
    20  	// ----- value types used ----
    21  	codecSelferValueTypeArray19780     = 10
    22  	codecSelferValueTypeMap19780       = 9
    23  	codecSelferValueTypeString19780    = 6
    24  	codecSelferValueTypeInt19780       = 2
    25  	codecSelferValueTypeUint19780      = 3
    26  	codecSelferValueTypeFloat19780     = 4
    27  	codecSelferValueTypeNil19780       = 1
    28  	codecSelferBitsize19780            = uint8(32 << (^uint(0) >> 63))
    29  	codecSelferDecContainerLenNil19780 = -2147483648
    30  )
    31  
    32  var (
    33  	errCodecSelferOnlyMapOrArrayEncodeToStruct19780 = errors.New(`only encoded map or array can be decoded into a struct`)
    34  )
    35  
    36  type codecSelfer19780 struct{}
    37  
    38  func codecSelfer19780False() bool { return false }
    39  func codecSelfer19780True() bool  { return true }
    40  
    41  func init() {
    42  	if GenVersion != 25 {
    43  		_, file, _, _ := runtime.Caller(0)
    44  		ver := strconv.FormatInt(int64(GenVersion), 10)
    45  		panic(errors.New("codecgen version mismatch: current: 25, need " + ver + ". Re-generate file: " + file))
    46  	}
    47  	if false { // reference the types, but skip this branch at build/run time
    48  		var _ time.Time
    49  	}
    50  }
    51  
    52  func (wrapSliceUint64) codecSelferViaCodecgen() {}
    53  func (x wrapSliceUint64) CodecEncodeSelf(e *Encoder) {
    54  	var h codecSelfer19780
    55  	z, r := GenHelper().Encoder(e)
    56  	_, _, _ = h, z, r
    57  	if x == nil {
    58  		r.EncodeNil()
    59  	} else {
    60  		z.F.EncSliceUint64V(([]uint64)(x), e)
    61  	} // end block: if x slice == nil
    62  }
    63  
    64  func (x *wrapSliceUint64) CodecDecodeSelf(d *Decoder) {
    65  	var h codecSelfer19780
    66  	z, r := GenHelper().Decoder(d)
    67  	_, _, _ = h, z, r
    68  	z.F.DecSliceUint64X((*[]uint64)(x), d)
    69  }
    70  
    71  func (wrapSliceString) codecSelferViaCodecgen() {}
    72  func (x wrapSliceString) CodecEncodeSelf(e *Encoder) {
    73  	var h codecSelfer19780
    74  	z, r := GenHelper().Encoder(e)
    75  	_, _, _ = h, z, r
    76  	if x == nil {
    77  		r.EncodeNil()
    78  	} else {
    79  		z.F.EncSliceStringV(([]string)(x), e)
    80  	} // end block: if x slice == nil
    81  }
    82  
    83  func (x *wrapSliceString) CodecDecodeSelf(d *Decoder) {
    84  	var h codecSelfer19780
    85  	z, r := GenHelper().Decoder(d)
    86  	_, _, _ = h, z, r
    87  	z.F.DecSliceStringX((*[]string)(x), d)
    88  }
    89  
    90  func (wrapUint64) codecSelferViaCodecgen() {}
    91  func (x wrapUint64) CodecEncodeSelf(e *Encoder) {
    92  	var h codecSelfer19780
    93  	z, r := GenHelper().Encoder(e)
    94  	_, _, _ = h, z, r
    95  	r.EncodeUint(uint64(x))
    96  }
    97  
    98  func (x *wrapUint64) CodecDecodeSelf(d *Decoder) {
    99  	var h codecSelfer19780
   100  	z, r := GenHelper().Decoder(d)
   101  	_, _, _ = h, z, r
   102  	*x = (wrapUint64)(r.DecodeUint64())
   103  }
   104  
   105  func (wrapString) codecSelferViaCodecgen() {}
   106  func (x wrapString) CodecEncodeSelf(e *Encoder) {
   107  	var h codecSelfer19780
   108  	z, r := GenHelper().Encoder(e)
   109  	_, _, _ = h, z, r
   110  	r.EncodeString(string(x))
   111  }
   112  
   113  func (x *wrapString) CodecDecodeSelf(d *Decoder) {
   114  	var h codecSelfer19780
   115  	z, r := GenHelper().Decoder(d)
   116  	_, _, _ = h, z, r
   117  	*x = (wrapString)(z.DecStringZC(r.DecodeStringAsBytes()))
   118  }
   119  
   120  func (wrapUint64Slice) codecSelferViaCodecgen() {}
   121  func (x wrapUint64Slice) CodecEncodeSelf(e *Encoder) {
   122  	var h codecSelfer19780
   123  	z, r := GenHelper().Encoder(e)
   124  	_, _, _ = h, z, r
   125  	if x == nil {
   126  		r.EncodeNil()
   127  	} else {
   128  		h.encwrapUint64Slice((wrapUint64Slice)(x), e)
   129  	} // end block: if x slice == nil
   130  }
   131  
   132  func (x *wrapUint64Slice) CodecDecodeSelf(d *Decoder) {
   133  	var h codecSelfer19780
   134  	z, r := GenHelper().Decoder(d)
   135  	_, _, _ = h, z, r
   136  	h.decwrapUint64Slice((*wrapUint64Slice)(x), d)
   137  }
   138  
   139  func (wrapStringSlice) codecSelferViaCodecgen() {}
   140  func (x wrapStringSlice) CodecEncodeSelf(e *Encoder) {
   141  	var h codecSelfer19780
   142  	z, r := GenHelper().Encoder(e)
   143  	_, _, _ = h, z, r
   144  	if x == nil {
   145  		r.EncodeNil()
   146  	} else {
   147  		h.encwrapStringSlice((wrapStringSlice)(x), e)
   148  	} // end block: if x slice == nil
   149  }
   150  
   151  func (x *wrapStringSlice) CodecDecodeSelf(d *Decoder) {
   152  	var h codecSelfer19780
   153  	z, r := GenHelper().Decoder(d)
   154  	_, _, _ = h, z, r
   155  	h.decwrapStringSlice((*wrapStringSlice)(x), d)
   156  }
   157  
   158  func (stringUint64T) codecSelferViaCodecgen() {}
   159  func (x *stringUint64T) CodecEncodeSelf(e *Encoder) {
   160  	var h codecSelfer19780
   161  	z, r := GenHelper().Encoder(e)
   162  	_, _, _ = h, z, r
   163  	if z.EncBasicHandle().CheckCircularRef {
   164  		z.EncEncode(x)
   165  		return
   166  	}
   167  	if x == nil {
   168  		r.EncodeNil()
   169  	} else {
   170  		yy2arr2 := z.EncBasicHandle().StructToArray
   171  		_ = yy2arr2
   172  		const yyr2 bool = false // struct tag has 'toArray'
   173  		if yyr2 || yy2arr2 {
   174  			z.EncWriteArrayStart(2)
   175  			z.EncWriteArrayElem()
   176  			r.EncodeString(string(x.S))
   177  			z.EncWriteArrayElem()
   178  			r.EncodeUint(uint64(x.U))
   179  			z.EncWriteArrayEnd()
   180  		} else {
   181  			z.EncWriteMapStart(2)
   182  			z.EncWriteMapElemKey()
   183  			if z.IsJSONHandle() {
   184  				z.WriteStr("\"S\"")
   185  			} else {
   186  				r.EncodeString(`S`)
   187  			}
   188  			z.EncWriteMapElemValue()
   189  			r.EncodeString(string(x.S))
   190  			z.EncWriteMapElemKey()
   191  			if z.IsJSONHandle() {
   192  				z.WriteStr("\"U\"")
   193  			} else {
   194  				r.EncodeString(`U`)
   195  			}
   196  			z.EncWriteMapElemValue()
   197  			r.EncodeUint(uint64(x.U))
   198  			z.EncWriteMapEnd()
   199  		}
   200  	}
   201  }
   202  
   203  func (x *stringUint64T) CodecDecodeSelf(d *Decoder) {
   204  	var h codecSelfer19780
   205  	z, r := GenHelper().Decoder(d)
   206  	_, _, _ = h, z, r
   207  	yyct2 := r.ContainerType()
   208  	if yyct2 == codecSelferValueTypeNil19780 {
   209  		*(x) = stringUint64T{}
   210  	} else if yyct2 == codecSelferValueTypeMap19780 {
   211  		yyl2 := z.DecReadMapStart()
   212  		if yyl2 == 0 {
   213  		} else {
   214  			x.codecDecodeSelfFromMap(yyl2, d)
   215  		}
   216  		z.DecReadMapEnd()
   217  	} else if yyct2 == codecSelferValueTypeArray19780 {
   218  		yyl2 := z.DecReadArrayStart()
   219  		if yyl2 != 0 {
   220  			x.codecDecodeSelfFromArray(yyl2, d)
   221  		}
   222  		z.DecReadArrayEnd()
   223  	} else {
   224  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
   225  	}
   226  }
   227  
   228  func (x *stringUint64T) codecDecodeSelfFromMap(l int, d *Decoder) {
   229  	var h codecSelfer19780
   230  	z, r := GenHelper().Decoder(d)
   231  	_, _, _ = h, z, r
   232  	var yyhl3 bool = l >= 0
   233  	for yyj3 := 0; ; yyj3++ {
   234  		if yyhl3 {
   235  			if yyj3 >= l {
   236  				break
   237  			}
   238  		} else {
   239  			if z.DecCheckBreak() {
   240  				break
   241  			}
   242  		}
   243  		z.DecReadMapElemKey()
   244  		yys3 := r.DecodeStringAsBytes()
   245  		z.DecReadMapElemValue()
   246  		switch string(yys3) {
   247  		case "S":
   248  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   249  		case "U":
   250  			x.U = (uint64)(r.DecodeUint64())
   251  		default:
   252  			z.DecStructFieldNotFound(-1, string(yys3))
   253  		} // end switch yys3
   254  	} // end for yyj3
   255  }
   256  
   257  func (x *stringUint64T) codecDecodeSelfFromArray(l int, d *Decoder) {
   258  	var h codecSelfer19780
   259  	z, r := GenHelper().Decoder(d)
   260  	_, _, _ = h, z, r
   261  	var yyj6 int
   262  	var yyb6 bool
   263  	var yyhl6 bool = l >= 0
   264  	yyj6++
   265  	if yyhl6 {
   266  		yyb6 = yyj6 > l
   267  	} else {
   268  		yyb6 = z.DecCheckBreak()
   269  	}
   270  	if yyb6 {
   271  		z.DecReadArrayEnd()
   272  		return
   273  	}
   274  	z.DecReadArrayElem()
   275  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   276  	yyj6++
   277  	if yyhl6 {
   278  		yyb6 = yyj6 > l
   279  	} else {
   280  		yyb6 = z.DecCheckBreak()
   281  	}
   282  	if yyb6 {
   283  		z.DecReadArrayEnd()
   284  		return
   285  	}
   286  	z.DecReadArrayElem()
   287  	x.U = (uint64)(r.DecodeUint64())
   288  	for {
   289  		yyj6++
   290  		if yyhl6 {
   291  			yyb6 = yyj6 > l
   292  		} else {
   293  			yyb6 = z.DecCheckBreak()
   294  		}
   295  		if yyb6 {
   296  			break
   297  		}
   298  		z.DecReadArrayElem()
   299  		z.DecStructFieldNotFound(yyj6-1, "")
   300  	}
   301  }
   302  
   303  func (x *stringUint64T) IsCodecEmpty() bool {
   304  	return !(x.S != "" || x.U != 0 || false)
   305  }
   306  
   307  func (AnonInTestStruc) codecSelferViaCodecgen() {}
   308  func (x *AnonInTestStruc) CodecEncodeSelf(e *Encoder) {
   309  	var h codecSelfer19780
   310  	z, r := GenHelper().Encoder(e)
   311  	_, _, _ = h, z, r
   312  	if z.EncBasicHandle().CheckCircularRef {
   313  		z.EncEncode(x)
   314  		return
   315  	}
   316  	if x == nil {
   317  		r.EncodeNil()
   318  	} else {
   319  		yy2arr2 := z.EncBasicHandle().StructToArray
   320  		_ = yy2arr2
   321  		const yyr2 bool = false // struct tag has 'toArray'
   322  		if yyr2 || yy2arr2 {
   323  			z.EncWriteArrayStart(17)
   324  			z.EncWriteArrayElem()
   325  			r.EncodeString(string(x.AS))
   326  			z.EncWriteArrayElem()
   327  			r.EncodeInt(int64(x.AI64))
   328  			z.EncWriteArrayElem()
   329  			r.EncodeInt(int64(x.AI16))
   330  			z.EncWriteArrayElem()
   331  			r.EncodeUint(uint64(x.AUi64))
   332  			z.EncWriteArrayElem()
   333  			if x.ASslice == nil {
   334  				r.EncodeNil()
   335  			} else {
   336  				z.F.EncSliceStringV(x.ASslice, e)
   337  			} // end block: if x.ASslice slice == nil
   338  			z.EncWriteArrayElem()
   339  			if x.AI64slice == nil {
   340  				r.EncodeNil()
   341  			} else {
   342  				z.F.EncSliceInt64V(x.AI64slice, e)
   343  			} // end block: if x.AI64slice slice == nil
   344  			z.EncWriteArrayElem()
   345  			if x.AUi64slice == nil {
   346  				r.EncodeNil()
   347  			} else {
   348  				z.F.EncSliceUint64V(x.AUi64slice, e)
   349  			} // end block: if x.AUi64slice slice == nil
   350  			z.EncWriteArrayElem()
   351  			if x.AF64slice == nil {
   352  				r.EncodeNil()
   353  			} else {
   354  				z.F.EncSliceFloat64V(x.AF64slice, e)
   355  			} // end block: if x.AF64slice slice == nil
   356  			z.EncWriteArrayElem()
   357  			if x.AF32slice == nil {
   358  				r.EncodeNil()
   359  			} else {
   360  				z.F.EncSliceFloat32V(x.AF32slice, e)
   361  			} // end block: if x.AF32slice slice == nil
   362  			z.EncWriteArrayElem()
   363  			if x.AMSS == nil {
   364  				r.EncodeNil()
   365  			} else {
   366  				z.F.EncMapStringStringV(x.AMSS, e)
   367  			} // end block: if x.AMSS map == nil
   368  			z.EncWriteArrayElem()
   369  			if x.AMSU64 == nil {
   370  				r.EncodeNil()
   371  			} else {
   372  				z.F.EncMapStringUint64V(x.AMSU64, e)
   373  			} // end block: if x.AMSU64 map == nil
   374  			z.EncWriteArrayElem()
   375  			yy31 := &x.AI64arr8
   376  			h.encArray8int64((*[8]int64)(yy31), e)
   377  			z.EncWriteArrayElem()
   378  			yy33 := &x.AI64arr0
   379  			h.encArray0int64((*[0]int64)(yy33), e)
   380  			z.EncWriteArrayElem()
   381  			if x.AI64slice0 == nil {
   382  				r.EncodeNil()
   383  			} else {
   384  				z.F.EncSliceInt64V(x.AI64slice0, e)
   385  			} // end block: if x.AI64slice0 slice == nil
   386  			z.EncWriteArrayElem()
   387  			if x.AUi64sliceN == nil {
   388  				r.EncodeNil()
   389  			} else {
   390  				z.F.EncSliceUint64V(x.AUi64sliceN, e)
   391  			} // end block: if x.AUi64sliceN slice == nil
   392  			z.EncWriteArrayElem()
   393  			if x.AMSU64N == nil {
   394  				r.EncodeNil()
   395  			} else {
   396  				z.F.EncMapStringUint64V(x.AMSU64N, e)
   397  			} // end block: if x.AMSU64N map == nil
   398  			z.EncWriteArrayElem()
   399  			if x.AMSU64E == nil {
   400  				r.EncodeNil()
   401  			} else {
   402  				z.F.EncMapStringUint64V(x.AMSU64E, e)
   403  			} // end block: if x.AMSU64E map == nil
   404  			z.EncWriteArrayEnd()
   405  		} else {
   406  			z.EncWriteMapStart(17)
   407  			z.EncWriteMapElemKey()
   408  			if z.IsJSONHandle() {
   409  				z.WriteStr("\"AS\"")
   410  			} else {
   411  				r.EncodeString(`AS`)
   412  			}
   413  			z.EncWriteMapElemValue()
   414  			r.EncodeString(string(x.AS))
   415  			z.EncWriteMapElemKey()
   416  			if z.IsJSONHandle() {
   417  				z.WriteStr("\"AI64\"")
   418  			} else {
   419  				r.EncodeString(`AI64`)
   420  			}
   421  			z.EncWriteMapElemValue()
   422  			r.EncodeInt(int64(x.AI64))
   423  			z.EncWriteMapElemKey()
   424  			if z.IsJSONHandle() {
   425  				z.WriteStr("\"AI16\"")
   426  			} else {
   427  				r.EncodeString(`AI16`)
   428  			}
   429  			z.EncWriteMapElemValue()
   430  			r.EncodeInt(int64(x.AI16))
   431  			z.EncWriteMapElemKey()
   432  			if z.IsJSONHandle() {
   433  				z.WriteStr("\"AUi64\"")
   434  			} else {
   435  				r.EncodeString(`AUi64`)
   436  			}
   437  			z.EncWriteMapElemValue()
   438  			r.EncodeUint(uint64(x.AUi64))
   439  			z.EncWriteMapElemKey()
   440  			if z.IsJSONHandle() {
   441  				z.WriteStr("\"ASslice\"")
   442  			} else {
   443  				r.EncodeString(`ASslice`)
   444  			}
   445  			z.EncWriteMapElemValue()
   446  			if x.ASslice == nil {
   447  				r.EncodeNil()
   448  			} else {
   449  				z.F.EncSliceStringV(x.ASslice, e)
   450  			} // end block: if x.ASslice slice == nil
   451  			z.EncWriteMapElemKey()
   452  			if z.IsJSONHandle() {
   453  				z.WriteStr("\"AI64slice\"")
   454  			} else {
   455  				r.EncodeString(`AI64slice`)
   456  			}
   457  			z.EncWriteMapElemValue()
   458  			if x.AI64slice == nil {
   459  				r.EncodeNil()
   460  			} else {
   461  				z.F.EncSliceInt64V(x.AI64slice, e)
   462  			} // end block: if x.AI64slice slice == nil
   463  			z.EncWriteMapElemKey()
   464  			if z.IsJSONHandle() {
   465  				z.WriteStr("\"AUi64slice\"")
   466  			} else {
   467  				r.EncodeString(`AUi64slice`)
   468  			}
   469  			z.EncWriteMapElemValue()
   470  			if x.AUi64slice == nil {
   471  				r.EncodeNil()
   472  			} else {
   473  				z.F.EncSliceUint64V(x.AUi64slice, e)
   474  			} // end block: if x.AUi64slice slice == nil
   475  			z.EncWriteMapElemKey()
   476  			if z.IsJSONHandle() {
   477  				z.WriteStr("\"AF64slice\"")
   478  			} else {
   479  				r.EncodeString(`AF64slice`)
   480  			}
   481  			z.EncWriteMapElemValue()
   482  			if x.AF64slice == nil {
   483  				r.EncodeNil()
   484  			} else {
   485  				z.F.EncSliceFloat64V(x.AF64slice, e)
   486  			} // end block: if x.AF64slice slice == nil
   487  			z.EncWriteMapElemKey()
   488  			if z.IsJSONHandle() {
   489  				z.WriteStr("\"AF32slice\"")
   490  			} else {
   491  				r.EncodeString(`AF32slice`)
   492  			}
   493  			z.EncWriteMapElemValue()
   494  			if x.AF32slice == nil {
   495  				r.EncodeNil()
   496  			} else {
   497  				z.F.EncSliceFloat32V(x.AF32slice, e)
   498  			} // end block: if x.AF32slice slice == nil
   499  			z.EncWriteMapElemKey()
   500  			if z.IsJSONHandle() {
   501  				z.WriteStr("\"AMSS\"")
   502  			} else {
   503  				r.EncodeString(`AMSS`)
   504  			}
   505  			z.EncWriteMapElemValue()
   506  			if x.AMSS == nil {
   507  				r.EncodeNil()
   508  			} else {
   509  				z.F.EncMapStringStringV(x.AMSS, e)
   510  			} // end block: if x.AMSS map == nil
   511  			z.EncWriteMapElemKey()
   512  			if z.IsJSONHandle() {
   513  				z.WriteStr("\"AMSU64\"")
   514  			} else {
   515  				r.EncodeString(`AMSU64`)
   516  			}
   517  			z.EncWriteMapElemValue()
   518  			if x.AMSU64 == nil {
   519  				r.EncodeNil()
   520  			} else {
   521  				z.F.EncMapStringUint64V(x.AMSU64, e)
   522  			} // end block: if x.AMSU64 map == nil
   523  			z.EncWriteMapElemKey()
   524  			if z.IsJSONHandle() {
   525  				z.WriteStr("\"AI64arr8\"")
   526  			} else {
   527  				r.EncodeString(`AI64arr8`)
   528  			}
   529  			z.EncWriteMapElemValue()
   530  			yy50 := &x.AI64arr8
   531  			h.encArray8int64((*[8]int64)(yy50), e)
   532  			z.EncWriteMapElemKey()
   533  			if z.IsJSONHandle() {
   534  				z.WriteStr("\"AI64arr0\"")
   535  			} else {
   536  				r.EncodeString(`AI64arr0`)
   537  			}
   538  			z.EncWriteMapElemValue()
   539  			yy52 := &x.AI64arr0
   540  			h.encArray0int64((*[0]int64)(yy52), e)
   541  			z.EncWriteMapElemKey()
   542  			if z.IsJSONHandle() {
   543  				z.WriteStr("\"AI64slice0\"")
   544  			} else {
   545  				r.EncodeString(`AI64slice0`)
   546  			}
   547  			z.EncWriteMapElemValue()
   548  			if x.AI64slice0 == nil {
   549  				r.EncodeNil()
   550  			} else {
   551  				z.F.EncSliceInt64V(x.AI64slice0, e)
   552  			} // end block: if x.AI64slice0 slice == nil
   553  			z.EncWriteMapElemKey()
   554  			if z.IsJSONHandle() {
   555  				z.WriteStr("\"AUi64sliceN\"")
   556  			} else {
   557  				r.EncodeString(`AUi64sliceN`)
   558  			}
   559  			z.EncWriteMapElemValue()
   560  			if x.AUi64sliceN == nil {
   561  				r.EncodeNil()
   562  			} else {
   563  				z.F.EncSliceUint64V(x.AUi64sliceN, e)
   564  			} // end block: if x.AUi64sliceN slice == nil
   565  			z.EncWriteMapElemKey()
   566  			if z.IsJSONHandle() {
   567  				z.WriteStr("\"AMSU64N\"")
   568  			} else {
   569  				r.EncodeString(`AMSU64N`)
   570  			}
   571  			z.EncWriteMapElemValue()
   572  			if x.AMSU64N == nil {
   573  				r.EncodeNil()
   574  			} else {
   575  				z.F.EncMapStringUint64V(x.AMSU64N, e)
   576  			} // end block: if x.AMSU64N map == nil
   577  			z.EncWriteMapElemKey()
   578  			if z.IsJSONHandle() {
   579  				z.WriteStr("\"AMSU64E\"")
   580  			} else {
   581  				r.EncodeString(`AMSU64E`)
   582  			}
   583  			z.EncWriteMapElemValue()
   584  			if x.AMSU64E == nil {
   585  				r.EncodeNil()
   586  			} else {
   587  				z.F.EncMapStringUint64V(x.AMSU64E, e)
   588  			} // end block: if x.AMSU64E map == nil
   589  			z.EncWriteMapEnd()
   590  		}
   591  	}
   592  }
   593  
   594  func (x *AnonInTestStruc) CodecDecodeSelf(d *Decoder) {
   595  	var h codecSelfer19780
   596  	z, r := GenHelper().Decoder(d)
   597  	_, _, _ = h, z, r
   598  	yyct2 := r.ContainerType()
   599  	if yyct2 == codecSelferValueTypeNil19780 {
   600  		*(x) = AnonInTestStruc{}
   601  	} else if yyct2 == codecSelferValueTypeMap19780 {
   602  		yyl2 := z.DecReadMapStart()
   603  		if yyl2 == 0 {
   604  		} else {
   605  			x.codecDecodeSelfFromMap(yyl2, d)
   606  		}
   607  		z.DecReadMapEnd()
   608  	} else if yyct2 == codecSelferValueTypeArray19780 {
   609  		yyl2 := z.DecReadArrayStart()
   610  		if yyl2 != 0 {
   611  			x.codecDecodeSelfFromArray(yyl2, d)
   612  		}
   613  		z.DecReadArrayEnd()
   614  	} else {
   615  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
   616  	}
   617  }
   618  
   619  func (x *AnonInTestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
   620  	var h codecSelfer19780
   621  	z, r := GenHelper().Decoder(d)
   622  	_, _, _ = h, z, r
   623  	var yyhl3 bool = l >= 0
   624  	for yyj3 := 0; ; yyj3++ {
   625  		if yyhl3 {
   626  			if yyj3 >= l {
   627  				break
   628  			}
   629  		} else {
   630  			if z.DecCheckBreak() {
   631  				break
   632  			}
   633  		}
   634  		z.DecReadMapElemKey()
   635  		yys3 := r.DecodeStringAsBytes()
   636  		z.DecReadMapElemValue()
   637  		switch string(yys3) {
   638  		case "AS":
   639  			x.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   640  		case "AI64":
   641  			x.AI64 = (int64)(r.DecodeInt64())
   642  		case "AI16":
   643  			x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
   644  		case "AUi64":
   645  			x.AUi64 = (uint64)(r.DecodeUint64())
   646  		case "ASslice":
   647  			z.F.DecSliceStringX(&x.ASslice, d)
   648  		case "AI64slice":
   649  			z.F.DecSliceInt64X(&x.AI64slice, d)
   650  		case "AUi64slice":
   651  			z.F.DecSliceUint64X(&x.AUi64slice, d)
   652  		case "AF64slice":
   653  			z.F.DecSliceFloat64X(&x.AF64slice, d)
   654  		case "AF32slice":
   655  			z.F.DecSliceFloat32X(&x.AF32slice, d)
   656  		case "AMSS":
   657  			z.F.DecMapStringStringX(&x.AMSS, d)
   658  		case "AMSU64":
   659  			z.F.DecMapStringUint64X(&x.AMSU64, d)
   660  		case "AI64arr8":
   661  			h.decArray8int64((*[8]int64)(&x.AI64arr8), d)
   662  		case "AI64arr0":
   663  			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
   664  		case "AI64slice0":
   665  			z.F.DecSliceInt64X(&x.AI64slice0, d)
   666  		case "AUi64sliceN":
   667  			z.F.DecSliceUint64X(&x.AUi64sliceN, d)
   668  		case "AMSU64N":
   669  			z.F.DecMapStringUint64X(&x.AMSU64N, d)
   670  		case "AMSU64E":
   671  			z.F.DecMapStringUint64X(&x.AMSU64E, d)
   672  		default:
   673  			z.DecStructFieldNotFound(-1, string(yys3))
   674  		} // end switch yys3
   675  	} // end for yyj3
   676  }
   677  
   678  func (x *AnonInTestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
   679  	var h codecSelfer19780
   680  	z, r := GenHelper().Decoder(d)
   681  	_, _, _ = h, z, r
   682  	var yyj34 int
   683  	var yyb34 bool
   684  	var yyhl34 bool = l >= 0
   685  	yyj34++
   686  	if yyhl34 {
   687  		yyb34 = yyj34 > l
   688  	} else {
   689  		yyb34 = z.DecCheckBreak()
   690  	}
   691  	if yyb34 {
   692  		z.DecReadArrayEnd()
   693  		return
   694  	}
   695  	z.DecReadArrayElem()
   696  	x.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   697  	yyj34++
   698  	if yyhl34 {
   699  		yyb34 = yyj34 > l
   700  	} else {
   701  		yyb34 = z.DecCheckBreak()
   702  	}
   703  	if yyb34 {
   704  		z.DecReadArrayEnd()
   705  		return
   706  	}
   707  	z.DecReadArrayElem()
   708  	x.AI64 = (int64)(r.DecodeInt64())
   709  	yyj34++
   710  	if yyhl34 {
   711  		yyb34 = yyj34 > l
   712  	} else {
   713  		yyb34 = z.DecCheckBreak()
   714  	}
   715  	if yyb34 {
   716  		z.DecReadArrayEnd()
   717  		return
   718  	}
   719  	z.DecReadArrayElem()
   720  	x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
   721  	yyj34++
   722  	if yyhl34 {
   723  		yyb34 = yyj34 > l
   724  	} else {
   725  		yyb34 = z.DecCheckBreak()
   726  	}
   727  	if yyb34 {
   728  		z.DecReadArrayEnd()
   729  		return
   730  	}
   731  	z.DecReadArrayElem()
   732  	x.AUi64 = (uint64)(r.DecodeUint64())
   733  	yyj34++
   734  	if yyhl34 {
   735  		yyb34 = yyj34 > l
   736  	} else {
   737  		yyb34 = z.DecCheckBreak()
   738  	}
   739  	if yyb34 {
   740  		z.DecReadArrayEnd()
   741  		return
   742  	}
   743  	z.DecReadArrayElem()
   744  	z.F.DecSliceStringX(&x.ASslice, d)
   745  	yyj34++
   746  	if yyhl34 {
   747  		yyb34 = yyj34 > l
   748  	} else {
   749  		yyb34 = z.DecCheckBreak()
   750  	}
   751  	if yyb34 {
   752  		z.DecReadArrayEnd()
   753  		return
   754  	}
   755  	z.DecReadArrayElem()
   756  	z.F.DecSliceInt64X(&x.AI64slice, d)
   757  	yyj34++
   758  	if yyhl34 {
   759  		yyb34 = yyj34 > l
   760  	} else {
   761  		yyb34 = z.DecCheckBreak()
   762  	}
   763  	if yyb34 {
   764  		z.DecReadArrayEnd()
   765  		return
   766  	}
   767  	z.DecReadArrayElem()
   768  	z.F.DecSliceUint64X(&x.AUi64slice, d)
   769  	yyj34++
   770  	if yyhl34 {
   771  		yyb34 = yyj34 > l
   772  	} else {
   773  		yyb34 = z.DecCheckBreak()
   774  	}
   775  	if yyb34 {
   776  		z.DecReadArrayEnd()
   777  		return
   778  	}
   779  	z.DecReadArrayElem()
   780  	z.F.DecSliceFloat64X(&x.AF64slice, d)
   781  	yyj34++
   782  	if yyhl34 {
   783  		yyb34 = yyj34 > l
   784  	} else {
   785  		yyb34 = z.DecCheckBreak()
   786  	}
   787  	if yyb34 {
   788  		z.DecReadArrayEnd()
   789  		return
   790  	}
   791  	z.DecReadArrayElem()
   792  	z.F.DecSliceFloat32X(&x.AF32slice, d)
   793  	yyj34++
   794  	if yyhl34 {
   795  		yyb34 = yyj34 > l
   796  	} else {
   797  		yyb34 = z.DecCheckBreak()
   798  	}
   799  	if yyb34 {
   800  		z.DecReadArrayEnd()
   801  		return
   802  	}
   803  	z.DecReadArrayElem()
   804  	z.F.DecMapStringStringX(&x.AMSS, d)
   805  	yyj34++
   806  	if yyhl34 {
   807  		yyb34 = yyj34 > l
   808  	} else {
   809  		yyb34 = z.DecCheckBreak()
   810  	}
   811  	if yyb34 {
   812  		z.DecReadArrayEnd()
   813  		return
   814  	}
   815  	z.DecReadArrayElem()
   816  	z.F.DecMapStringUint64X(&x.AMSU64, d)
   817  	yyj34++
   818  	if yyhl34 {
   819  		yyb34 = yyj34 > l
   820  	} else {
   821  		yyb34 = z.DecCheckBreak()
   822  	}
   823  	if yyb34 {
   824  		z.DecReadArrayEnd()
   825  		return
   826  	}
   827  	z.DecReadArrayElem()
   828  	h.decArray8int64((*[8]int64)(&x.AI64arr8), d)
   829  	yyj34++
   830  	if yyhl34 {
   831  		yyb34 = yyj34 > l
   832  	} else {
   833  		yyb34 = z.DecCheckBreak()
   834  	}
   835  	if yyb34 {
   836  		z.DecReadArrayEnd()
   837  		return
   838  	}
   839  	z.DecReadArrayElem()
   840  	h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
   841  	yyj34++
   842  	if yyhl34 {
   843  		yyb34 = yyj34 > l
   844  	} else {
   845  		yyb34 = z.DecCheckBreak()
   846  	}
   847  	if yyb34 {
   848  		z.DecReadArrayEnd()
   849  		return
   850  	}
   851  	z.DecReadArrayElem()
   852  	z.F.DecSliceInt64X(&x.AI64slice0, d)
   853  	yyj34++
   854  	if yyhl34 {
   855  		yyb34 = yyj34 > l
   856  	} else {
   857  		yyb34 = z.DecCheckBreak()
   858  	}
   859  	if yyb34 {
   860  		z.DecReadArrayEnd()
   861  		return
   862  	}
   863  	z.DecReadArrayElem()
   864  	z.F.DecSliceUint64X(&x.AUi64sliceN, d)
   865  	yyj34++
   866  	if yyhl34 {
   867  		yyb34 = yyj34 > l
   868  	} else {
   869  		yyb34 = z.DecCheckBreak()
   870  	}
   871  	if yyb34 {
   872  		z.DecReadArrayEnd()
   873  		return
   874  	}
   875  	z.DecReadArrayElem()
   876  	z.F.DecMapStringUint64X(&x.AMSU64N, d)
   877  	yyj34++
   878  	if yyhl34 {
   879  		yyb34 = yyj34 > l
   880  	} else {
   881  		yyb34 = z.DecCheckBreak()
   882  	}
   883  	if yyb34 {
   884  		z.DecReadArrayEnd()
   885  		return
   886  	}
   887  	z.DecReadArrayElem()
   888  	z.F.DecMapStringUint64X(&x.AMSU64E, d)
   889  	for {
   890  		yyj34++
   891  		if yyhl34 {
   892  			yyb34 = yyj34 > l
   893  		} else {
   894  			yyb34 = z.DecCheckBreak()
   895  		}
   896  		if yyb34 {
   897  			break
   898  		}
   899  		z.DecReadArrayElem()
   900  		z.DecStructFieldNotFound(yyj34-1, "")
   901  	}
   902  }
   903  
   904  func (x *AnonInTestStruc) IsCodecEmpty() bool {
   905  	return !(x.AS != "" || x.AI64 != 0 || x.AI16 != 0 || x.AUi64 != 0 || len(x.ASslice) != 0 || len(x.AI64slice) != 0 || len(x.AUi64slice) != 0 || len(x.AF64slice) != 0 || len(x.AF32slice) != 0 || len(x.AMSS) != 0 || len(x.AMSU64) != 0 || len(x.AI64arr8) != 0 || len(x.AI64arr0) != 0 || len(x.AI64slice0) != 0 || len(x.AUi64sliceN) != 0 || len(x.AMSU64N) != 0 || len(x.AMSU64E) != 0 || false)
   906  }
   907  
   908  func (testSimpleFields) codecSelferViaCodecgen() {}
   909  func (x *testSimpleFields) CodecEncodeSelf(e *Encoder) {
   910  	var h codecSelfer19780
   911  	z, r := GenHelper().Encoder(e)
   912  	_, _, _ = h, z, r
   913  	if z.EncBasicHandle().CheckCircularRef {
   914  		z.EncEncode(x)
   915  		return
   916  	}
   917  	if x == nil {
   918  		r.EncodeNil()
   919  	} else {
   920  		yy2arr2 := z.EncBasicHandle().StructToArray
   921  		_ = yy2arr2
   922  		const yyr2 bool = false // struct tag has 'toArray'
   923  		if yyr2 || yy2arr2 {
   924  			z.EncWriteArrayStart(17)
   925  			z.EncWriteArrayElem()
   926  			r.EncodeString(string(x.S))
   927  			z.EncWriteArrayElem()
   928  			r.EncodeInt(int64(x.I64))
   929  			z.EncWriteArrayElem()
   930  			r.EncodeInt(int64(x.I8))
   931  			z.EncWriteArrayElem()
   932  			r.EncodeUint(uint64(x.Ui64))
   933  			z.EncWriteArrayElem()
   934  			r.EncodeUint(uint64(x.Ui8))
   935  			z.EncWriteArrayElem()
   936  			r.EncodeFloat64(float64(x.F64))
   937  			z.EncWriteArrayElem()
   938  			r.EncodeFloat32(float32(x.F32))
   939  			z.EncWriteArrayElem()
   940  			r.EncodeBool(bool(x.B))
   941  			z.EncWriteArrayElem()
   942  			if x.Sslice == nil {
   943  				r.EncodeNil()
   944  			} else {
   945  				z.F.EncSliceStringV(x.Sslice, e)
   946  			} // end block: if x.Sslice slice == nil
   947  			z.EncWriteArrayElem()
   948  			if x.I32slice == nil {
   949  				r.EncodeNil()
   950  			} else {
   951  				z.F.EncSliceInt32V(x.I32slice, e)
   952  			} // end block: if x.I32slice slice == nil
   953  			z.EncWriteArrayElem()
   954  			if x.Ui64slice == nil {
   955  				r.EncodeNil()
   956  			} else {
   957  				z.F.EncSliceUint64V(x.Ui64slice, e)
   958  			} // end block: if x.Ui64slice slice == nil
   959  			z.EncWriteArrayElem()
   960  			if x.Ui8slice == nil {
   961  				r.EncodeNil()
   962  			} else {
   963  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
   964  			} // end block: if x.Ui8slice slice == nil
   965  			z.EncWriteArrayElem()
   966  			if x.Bslice == nil {
   967  				r.EncodeNil()
   968  			} else {
   969  				z.F.EncSliceBoolV(x.Bslice, e)
   970  			} // end block: if x.Bslice slice == nil
   971  			z.EncWriteArrayElem()
   972  			if x.Iptrslice == nil {
   973  				r.EncodeNil()
   974  			} else {
   975  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
   976  			} // end block: if x.Iptrslice slice == nil
   977  			z.EncWriteArrayElem()
   978  			if yyxt34 := z.Extension(x.WrapSliceInt64); yyxt34 != nil {
   979  				z.EncExtension(x.WrapSliceInt64, yyxt34)
   980  			} else {
   981  				x.WrapSliceInt64.CodecEncodeSelf(e)
   982  			}
   983  			z.EncWriteArrayElem()
   984  			if yyxt35 := z.Extension(x.WrapSliceString); yyxt35 != nil {
   985  				z.EncExtension(x.WrapSliceString, yyxt35)
   986  			} else {
   987  				x.WrapSliceString.CodecEncodeSelf(e)
   988  			}
   989  			z.EncWriteArrayElem()
   990  			if x.Msint == nil {
   991  				r.EncodeNil()
   992  			} else {
   993  				z.F.EncMapStringIntV(x.Msint, e)
   994  			} // end block: if x.Msint map == nil
   995  			z.EncWriteArrayEnd()
   996  		} else {
   997  			z.EncWriteMapStart(17)
   998  			z.EncWriteMapElemKey()
   999  			if z.IsJSONHandle() {
  1000  				z.WriteStr("\"S\"")
  1001  			} else {
  1002  				r.EncodeString(`S`)
  1003  			}
  1004  			z.EncWriteMapElemValue()
  1005  			r.EncodeString(string(x.S))
  1006  			z.EncWriteMapElemKey()
  1007  			if z.IsJSONHandle() {
  1008  				z.WriteStr("\"I64\"")
  1009  			} else {
  1010  				r.EncodeString(`I64`)
  1011  			}
  1012  			z.EncWriteMapElemValue()
  1013  			r.EncodeInt(int64(x.I64))
  1014  			z.EncWriteMapElemKey()
  1015  			if z.IsJSONHandle() {
  1016  				z.WriteStr("\"I8\"")
  1017  			} else {
  1018  				r.EncodeString(`I8`)
  1019  			}
  1020  			z.EncWriteMapElemValue()
  1021  			r.EncodeInt(int64(x.I8))
  1022  			z.EncWriteMapElemKey()
  1023  			if z.IsJSONHandle() {
  1024  				z.WriteStr("\"Ui64\"")
  1025  			} else {
  1026  				r.EncodeString(`Ui64`)
  1027  			}
  1028  			z.EncWriteMapElemValue()
  1029  			r.EncodeUint(uint64(x.Ui64))
  1030  			z.EncWriteMapElemKey()
  1031  			if z.IsJSONHandle() {
  1032  				z.WriteStr("\"Ui8\"")
  1033  			} else {
  1034  				r.EncodeString(`Ui8`)
  1035  			}
  1036  			z.EncWriteMapElemValue()
  1037  			r.EncodeUint(uint64(x.Ui8))
  1038  			z.EncWriteMapElemKey()
  1039  			if z.IsJSONHandle() {
  1040  				z.WriteStr("\"F64\"")
  1041  			} else {
  1042  				r.EncodeString(`F64`)
  1043  			}
  1044  			z.EncWriteMapElemValue()
  1045  			r.EncodeFloat64(float64(x.F64))
  1046  			z.EncWriteMapElemKey()
  1047  			if z.IsJSONHandle() {
  1048  				z.WriteStr("\"F32\"")
  1049  			} else {
  1050  				r.EncodeString(`F32`)
  1051  			}
  1052  			z.EncWriteMapElemValue()
  1053  			r.EncodeFloat32(float32(x.F32))
  1054  			z.EncWriteMapElemKey()
  1055  			if z.IsJSONHandle() {
  1056  				z.WriteStr("\"B\"")
  1057  			} else {
  1058  				r.EncodeString(`B`)
  1059  			}
  1060  			z.EncWriteMapElemValue()
  1061  			r.EncodeBool(bool(x.B))
  1062  			z.EncWriteMapElemKey()
  1063  			if z.IsJSONHandle() {
  1064  				z.WriteStr("\"Sslice\"")
  1065  			} else {
  1066  				r.EncodeString(`Sslice`)
  1067  			}
  1068  			z.EncWriteMapElemValue()
  1069  			if x.Sslice == nil {
  1070  				r.EncodeNil()
  1071  			} else {
  1072  				z.F.EncSliceStringV(x.Sslice, e)
  1073  			} // end block: if x.Sslice slice == nil
  1074  			z.EncWriteMapElemKey()
  1075  			if z.IsJSONHandle() {
  1076  				z.WriteStr("\"I32slice\"")
  1077  			} else {
  1078  				r.EncodeString(`I32slice`)
  1079  			}
  1080  			z.EncWriteMapElemValue()
  1081  			if x.I32slice == nil {
  1082  				r.EncodeNil()
  1083  			} else {
  1084  				z.F.EncSliceInt32V(x.I32slice, e)
  1085  			} // end block: if x.I32slice slice == nil
  1086  			z.EncWriteMapElemKey()
  1087  			if z.IsJSONHandle() {
  1088  				z.WriteStr("\"Ui64slice\"")
  1089  			} else {
  1090  				r.EncodeString(`Ui64slice`)
  1091  			}
  1092  			z.EncWriteMapElemValue()
  1093  			if x.Ui64slice == nil {
  1094  				r.EncodeNil()
  1095  			} else {
  1096  				z.F.EncSliceUint64V(x.Ui64slice, e)
  1097  			} // end block: if x.Ui64slice slice == nil
  1098  			z.EncWriteMapElemKey()
  1099  			if z.IsJSONHandle() {
  1100  				z.WriteStr("\"Ui8slice\"")
  1101  			} else {
  1102  				r.EncodeString(`Ui8slice`)
  1103  			}
  1104  			z.EncWriteMapElemValue()
  1105  			if x.Ui8slice == nil {
  1106  				r.EncodeNil()
  1107  			} else {
  1108  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1109  			} // end block: if x.Ui8slice slice == nil
  1110  			z.EncWriteMapElemKey()
  1111  			if z.IsJSONHandle() {
  1112  				z.WriteStr("\"Bslice\"")
  1113  			} else {
  1114  				r.EncodeString(`Bslice`)
  1115  			}
  1116  			z.EncWriteMapElemValue()
  1117  			if x.Bslice == nil {
  1118  				r.EncodeNil()
  1119  			} else {
  1120  				z.F.EncSliceBoolV(x.Bslice, e)
  1121  			} // end block: if x.Bslice slice == nil
  1122  			z.EncWriteMapElemKey()
  1123  			if z.IsJSONHandle() {
  1124  				z.WriteStr("\"Iptrslice\"")
  1125  			} else {
  1126  				r.EncodeString(`Iptrslice`)
  1127  			}
  1128  			z.EncWriteMapElemValue()
  1129  			if x.Iptrslice == nil {
  1130  				r.EncodeNil()
  1131  			} else {
  1132  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1133  			} // end block: if x.Iptrslice slice == nil
  1134  			z.EncWriteMapElemKey()
  1135  			if z.IsJSONHandle() {
  1136  				z.WriteStr("\"WrapSliceInt64\"")
  1137  			} else {
  1138  				r.EncodeString(`WrapSliceInt64`)
  1139  			}
  1140  			z.EncWriteMapElemValue()
  1141  			if yyxt51 := z.Extension(x.WrapSliceInt64); yyxt51 != nil {
  1142  				z.EncExtension(x.WrapSliceInt64, yyxt51)
  1143  			} else {
  1144  				x.WrapSliceInt64.CodecEncodeSelf(e)
  1145  			}
  1146  			z.EncWriteMapElemKey()
  1147  			if z.IsJSONHandle() {
  1148  				z.WriteStr("\"WrapSliceString\"")
  1149  			} else {
  1150  				r.EncodeString(`WrapSliceString`)
  1151  			}
  1152  			z.EncWriteMapElemValue()
  1153  			if yyxt52 := z.Extension(x.WrapSliceString); yyxt52 != nil {
  1154  				z.EncExtension(x.WrapSliceString, yyxt52)
  1155  			} else {
  1156  				x.WrapSliceString.CodecEncodeSelf(e)
  1157  			}
  1158  			z.EncWriteMapElemKey()
  1159  			if z.IsJSONHandle() {
  1160  				z.WriteStr("\"Msint\"")
  1161  			} else {
  1162  				r.EncodeString(`Msint`)
  1163  			}
  1164  			z.EncWriteMapElemValue()
  1165  			if x.Msint == nil {
  1166  				r.EncodeNil()
  1167  			} else {
  1168  				z.F.EncMapStringIntV(x.Msint, e)
  1169  			} // end block: if x.Msint map == nil
  1170  			z.EncWriteMapEnd()
  1171  		}
  1172  	}
  1173  }
  1174  
  1175  func (x *testSimpleFields) CodecDecodeSelf(d *Decoder) {
  1176  	var h codecSelfer19780
  1177  	z, r := GenHelper().Decoder(d)
  1178  	_, _, _ = h, z, r
  1179  	yyct2 := r.ContainerType()
  1180  	if yyct2 == codecSelferValueTypeNil19780 {
  1181  		*(x) = testSimpleFields{}
  1182  	} else if yyct2 == codecSelferValueTypeMap19780 {
  1183  		yyl2 := z.DecReadMapStart()
  1184  		if yyl2 == 0 {
  1185  		} else {
  1186  			x.codecDecodeSelfFromMap(yyl2, d)
  1187  		}
  1188  		z.DecReadMapEnd()
  1189  	} else if yyct2 == codecSelferValueTypeArray19780 {
  1190  		yyl2 := z.DecReadArrayStart()
  1191  		if yyl2 != 0 {
  1192  			x.codecDecodeSelfFromArray(yyl2, d)
  1193  		}
  1194  		z.DecReadArrayEnd()
  1195  	} else {
  1196  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  1197  	}
  1198  }
  1199  
  1200  func (x *testSimpleFields) codecDecodeSelfFromMap(l int, d *Decoder) {
  1201  	var h codecSelfer19780
  1202  	z, r := GenHelper().Decoder(d)
  1203  	_, _, _ = h, z, r
  1204  	var yyhl3 bool = l >= 0
  1205  	for yyj3 := 0; ; yyj3++ {
  1206  		if yyhl3 {
  1207  			if yyj3 >= l {
  1208  				break
  1209  			}
  1210  		} else {
  1211  			if z.DecCheckBreak() {
  1212  				break
  1213  			}
  1214  		}
  1215  		z.DecReadMapElemKey()
  1216  		yys3 := r.DecodeStringAsBytes()
  1217  		z.DecReadMapElemValue()
  1218  		switch string(yys3) {
  1219  		case "S":
  1220  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1221  		case "I64":
  1222  			x.I64 = (int64)(r.DecodeInt64())
  1223  		case "I8":
  1224  			x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  1225  		case "Ui64":
  1226  			x.Ui64 = (uint64)(r.DecodeUint64())
  1227  		case "Ui8":
  1228  			x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  1229  		case "F64":
  1230  			x.F64 = (float64)(r.DecodeFloat64())
  1231  		case "F32":
  1232  			x.F32 = (float32)(z.DecDecodeFloat32())
  1233  		case "B":
  1234  			x.B = (bool)(r.DecodeBool())
  1235  		case "Sslice":
  1236  			z.F.DecSliceStringX(&x.Sslice, d)
  1237  		case "I32slice":
  1238  			z.F.DecSliceInt32X(&x.I32slice, d)
  1239  		case "Ui64slice":
  1240  			z.F.DecSliceUint64X(&x.Ui64slice, d)
  1241  		case "Ui8slice":
  1242  			x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  1243  		case "Bslice":
  1244  			z.F.DecSliceBoolX(&x.Bslice, d)
  1245  		case "Iptrslice":
  1246  			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  1247  		case "WrapSliceInt64":
  1248  			if yyxt25 := z.Extension(x.WrapSliceInt64); yyxt25 != nil {
  1249  				z.DecExtension(&x.WrapSliceInt64, yyxt25)
  1250  			} else {
  1251  				x.WrapSliceInt64.CodecDecodeSelf(d)
  1252  			}
  1253  		case "WrapSliceString":
  1254  			if yyxt27 := z.Extension(x.WrapSliceString); yyxt27 != nil {
  1255  				z.DecExtension(&x.WrapSliceString, yyxt27)
  1256  			} else {
  1257  				x.WrapSliceString.CodecDecodeSelf(d)
  1258  			}
  1259  		case "Msint":
  1260  			z.F.DecMapStringIntX(&x.Msint, d)
  1261  		default:
  1262  			z.DecStructFieldNotFound(-1, string(yys3))
  1263  		} // end switch yys3
  1264  	} // end for yyj3
  1265  }
  1266  
  1267  func (x *testSimpleFields) codecDecodeSelfFromArray(l int, d *Decoder) {
  1268  	var h codecSelfer19780
  1269  	z, r := GenHelper().Decoder(d)
  1270  	_, _, _ = h, z, r
  1271  	var yyj30 int
  1272  	var yyb30 bool
  1273  	var yyhl30 bool = l >= 0
  1274  	yyj30++
  1275  	if yyhl30 {
  1276  		yyb30 = yyj30 > l
  1277  	} else {
  1278  		yyb30 = z.DecCheckBreak()
  1279  	}
  1280  	if yyb30 {
  1281  		z.DecReadArrayEnd()
  1282  		return
  1283  	}
  1284  	z.DecReadArrayElem()
  1285  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1286  	yyj30++
  1287  	if yyhl30 {
  1288  		yyb30 = yyj30 > l
  1289  	} else {
  1290  		yyb30 = z.DecCheckBreak()
  1291  	}
  1292  	if yyb30 {
  1293  		z.DecReadArrayEnd()
  1294  		return
  1295  	}
  1296  	z.DecReadArrayElem()
  1297  	x.I64 = (int64)(r.DecodeInt64())
  1298  	yyj30++
  1299  	if yyhl30 {
  1300  		yyb30 = yyj30 > l
  1301  	} else {
  1302  		yyb30 = z.DecCheckBreak()
  1303  	}
  1304  	if yyb30 {
  1305  		z.DecReadArrayEnd()
  1306  		return
  1307  	}
  1308  	z.DecReadArrayElem()
  1309  	x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  1310  	yyj30++
  1311  	if yyhl30 {
  1312  		yyb30 = yyj30 > l
  1313  	} else {
  1314  		yyb30 = z.DecCheckBreak()
  1315  	}
  1316  	if yyb30 {
  1317  		z.DecReadArrayEnd()
  1318  		return
  1319  	}
  1320  	z.DecReadArrayElem()
  1321  	x.Ui64 = (uint64)(r.DecodeUint64())
  1322  	yyj30++
  1323  	if yyhl30 {
  1324  		yyb30 = yyj30 > l
  1325  	} else {
  1326  		yyb30 = z.DecCheckBreak()
  1327  	}
  1328  	if yyb30 {
  1329  		z.DecReadArrayEnd()
  1330  		return
  1331  	}
  1332  	z.DecReadArrayElem()
  1333  	x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  1334  	yyj30++
  1335  	if yyhl30 {
  1336  		yyb30 = yyj30 > l
  1337  	} else {
  1338  		yyb30 = z.DecCheckBreak()
  1339  	}
  1340  	if yyb30 {
  1341  		z.DecReadArrayEnd()
  1342  		return
  1343  	}
  1344  	z.DecReadArrayElem()
  1345  	x.F64 = (float64)(r.DecodeFloat64())
  1346  	yyj30++
  1347  	if yyhl30 {
  1348  		yyb30 = yyj30 > l
  1349  	} else {
  1350  		yyb30 = z.DecCheckBreak()
  1351  	}
  1352  	if yyb30 {
  1353  		z.DecReadArrayEnd()
  1354  		return
  1355  	}
  1356  	z.DecReadArrayElem()
  1357  	x.F32 = (float32)(z.DecDecodeFloat32())
  1358  	yyj30++
  1359  	if yyhl30 {
  1360  		yyb30 = yyj30 > l
  1361  	} else {
  1362  		yyb30 = z.DecCheckBreak()
  1363  	}
  1364  	if yyb30 {
  1365  		z.DecReadArrayEnd()
  1366  		return
  1367  	}
  1368  	z.DecReadArrayElem()
  1369  	x.B = (bool)(r.DecodeBool())
  1370  	yyj30++
  1371  	if yyhl30 {
  1372  		yyb30 = yyj30 > l
  1373  	} else {
  1374  		yyb30 = z.DecCheckBreak()
  1375  	}
  1376  	if yyb30 {
  1377  		z.DecReadArrayEnd()
  1378  		return
  1379  	}
  1380  	z.DecReadArrayElem()
  1381  	z.F.DecSliceStringX(&x.Sslice, d)
  1382  	yyj30++
  1383  	if yyhl30 {
  1384  		yyb30 = yyj30 > l
  1385  	} else {
  1386  		yyb30 = z.DecCheckBreak()
  1387  	}
  1388  	if yyb30 {
  1389  		z.DecReadArrayEnd()
  1390  		return
  1391  	}
  1392  	z.DecReadArrayElem()
  1393  	z.F.DecSliceInt32X(&x.I32slice, d)
  1394  	yyj30++
  1395  	if yyhl30 {
  1396  		yyb30 = yyj30 > l
  1397  	} else {
  1398  		yyb30 = z.DecCheckBreak()
  1399  	}
  1400  	if yyb30 {
  1401  		z.DecReadArrayEnd()
  1402  		return
  1403  	}
  1404  	z.DecReadArrayElem()
  1405  	z.F.DecSliceUint64X(&x.Ui64slice, d)
  1406  	yyj30++
  1407  	if yyhl30 {
  1408  		yyb30 = yyj30 > l
  1409  	} else {
  1410  		yyb30 = z.DecCheckBreak()
  1411  	}
  1412  	if yyb30 {
  1413  		z.DecReadArrayEnd()
  1414  		return
  1415  	}
  1416  	z.DecReadArrayElem()
  1417  	x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  1418  	yyj30++
  1419  	if yyhl30 {
  1420  		yyb30 = yyj30 > l
  1421  	} else {
  1422  		yyb30 = z.DecCheckBreak()
  1423  	}
  1424  	if yyb30 {
  1425  		z.DecReadArrayEnd()
  1426  		return
  1427  	}
  1428  	z.DecReadArrayElem()
  1429  	z.F.DecSliceBoolX(&x.Bslice, d)
  1430  	yyj30++
  1431  	if yyhl30 {
  1432  		yyb30 = yyj30 > l
  1433  	} else {
  1434  		yyb30 = z.DecCheckBreak()
  1435  	}
  1436  	if yyb30 {
  1437  		z.DecReadArrayEnd()
  1438  		return
  1439  	}
  1440  	z.DecReadArrayElem()
  1441  	h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  1442  	yyj30++
  1443  	if yyhl30 {
  1444  		yyb30 = yyj30 > l
  1445  	} else {
  1446  		yyb30 = z.DecCheckBreak()
  1447  	}
  1448  	if yyb30 {
  1449  		z.DecReadArrayEnd()
  1450  		return
  1451  	}
  1452  	z.DecReadArrayElem()
  1453  	if yyxt52 := z.Extension(x.WrapSliceInt64); yyxt52 != nil {
  1454  		z.DecExtension(&x.WrapSliceInt64, yyxt52)
  1455  	} else {
  1456  		x.WrapSliceInt64.CodecDecodeSelf(d)
  1457  	}
  1458  	yyj30++
  1459  	if yyhl30 {
  1460  		yyb30 = yyj30 > l
  1461  	} else {
  1462  		yyb30 = z.DecCheckBreak()
  1463  	}
  1464  	if yyb30 {
  1465  		z.DecReadArrayEnd()
  1466  		return
  1467  	}
  1468  	z.DecReadArrayElem()
  1469  	if yyxt54 := z.Extension(x.WrapSliceString); yyxt54 != nil {
  1470  		z.DecExtension(&x.WrapSliceString, yyxt54)
  1471  	} else {
  1472  		x.WrapSliceString.CodecDecodeSelf(d)
  1473  	}
  1474  	yyj30++
  1475  	if yyhl30 {
  1476  		yyb30 = yyj30 > l
  1477  	} else {
  1478  		yyb30 = z.DecCheckBreak()
  1479  	}
  1480  	if yyb30 {
  1481  		z.DecReadArrayEnd()
  1482  		return
  1483  	}
  1484  	z.DecReadArrayElem()
  1485  	z.F.DecMapStringIntX(&x.Msint, d)
  1486  	for {
  1487  		yyj30++
  1488  		if yyhl30 {
  1489  			yyb30 = yyj30 > l
  1490  		} else {
  1491  			yyb30 = z.DecCheckBreak()
  1492  		}
  1493  		if yyb30 {
  1494  			break
  1495  		}
  1496  		z.DecReadArrayElem()
  1497  		z.DecStructFieldNotFound(yyj30-1, "")
  1498  	}
  1499  }
  1500  
  1501  func (x *testSimpleFields) IsCodecEmpty() bool {
  1502  	return !(x.S != "" || x.I64 != 0 || x.I8 != 0 || x.Ui64 != 0 || x.Ui8 != 0 || x.F64 != 0 || x.F32 != 0 || bool(x.B) || len(x.Sslice) != 0 || len(x.I32slice) != 0 || len(x.Ui64slice) != 0 || len(x.Ui8slice) != 0 || len(x.Bslice) != 0 || len(x.Iptrslice) != 0 || len(x.WrapSliceInt64) != 0 || len(x.WrapSliceString) != 0 || len(x.Msint) != 0 || false)
  1503  }
  1504  
  1505  func (TestStrucCommon) codecSelferViaCodecgen() {}
  1506  func (x *TestStrucCommon) CodecEncodeSelf(e *Encoder) {
  1507  	var h codecSelfer19780
  1508  	z, r := GenHelper().Encoder(e)
  1509  	_, _, _ = h, z, r
  1510  	if z.EncBasicHandle().CheckCircularRef {
  1511  		z.EncEncode(x)
  1512  		return
  1513  	}
  1514  	if x == nil {
  1515  		r.EncodeNil()
  1516  	} else {
  1517  		yy2arr2 := z.EncBasicHandle().StructToArray
  1518  		_ = yy2arr2
  1519  		const yyr2 bool = false // struct tag has 'toArray'
  1520  		var yyn56 bool = x.Nint64 == nil
  1521  		if yyr2 || yy2arr2 {
  1522  			z.EncWriteArrayStart(54)
  1523  			z.EncWriteArrayElem()
  1524  			r.EncodeString(string(x.S))
  1525  			z.EncWriteArrayElem()
  1526  			r.EncodeInt(int64(x.I64))
  1527  			z.EncWriteArrayElem()
  1528  			r.EncodeInt(int64(x.I32))
  1529  			z.EncWriteArrayElem()
  1530  			r.EncodeInt(int64(x.I16))
  1531  			z.EncWriteArrayElem()
  1532  			r.EncodeInt(int64(x.I8))
  1533  			z.EncWriteArrayElem()
  1534  			r.EncodeInt(int64(x.I64n))
  1535  			z.EncWriteArrayElem()
  1536  			r.EncodeInt(int64(x.I32n))
  1537  			z.EncWriteArrayElem()
  1538  			r.EncodeInt(int64(x.I16n))
  1539  			z.EncWriteArrayElem()
  1540  			r.EncodeInt(int64(x.I8n))
  1541  			z.EncWriteArrayElem()
  1542  			r.EncodeUint(uint64(x.Ui64))
  1543  			z.EncWriteArrayElem()
  1544  			r.EncodeUint(uint64(x.Ui32))
  1545  			z.EncWriteArrayElem()
  1546  			r.EncodeUint(uint64(x.Ui16))
  1547  			z.EncWriteArrayElem()
  1548  			r.EncodeUint(uint64(x.Ui8))
  1549  			z.EncWriteArrayElem()
  1550  			r.EncodeFloat64(float64(x.F64))
  1551  			z.EncWriteArrayElem()
  1552  			r.EncodeFloat32(float32(x.F32))
  1553  			z.EncWriteArrayElem()
  1554  			r.EncodeBool(bool(x.B))
  1555  			z.EncWriteArrayElem()
  1556  			r.EncodeUint(uint64(x.By))
  1557  			z.EncWriteArrayElem()
  1558  			if x.Sslice == nil {
  1559  				r.EncodeNil()
  1560  			} else {
  1561  				z.F.EncSliceStringV(x.Sslice, e)
  1562  			} // end block: if x.Sslice slice == nil
  1563  			z.EncWriteArrayElem()
  1564  			if x.I64slice == nil {
  1565  				r.EncodeNil()
  1566  			} else {
  1567  				z.F.EncSliceInt64V(x.I64slice, e)
  1568  			} // end block: if x.I64slice slice == nil
  1569  			z.EncWriteArrayElem()
  1570  			if x.I32slice == nil {
  1571  				r.EncodeNil()
  1572  			} else {
  1573  				z.F.EncSliceInt32V(x.I32slice, e)
  1574  			} // end block: if x.I32slice slice == nil
  1575  			z.EncWriteArrayElem()
  1576  			if x.Ui64slice == nil {
  1577  				r.EncodeNil()
  1578  			} else {
  1579  				z.F.EncSliceUint64V(x.Ui64slice, e)
  1580  			} // end block: if x.Ui64slice slice == nil
  1581  			z.EncWriteArrayElem()
  1582  			if x.Ui8slice == nil {
  1583  				r.EncodeNil()
  1584  			} else {
  1585  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1586  			} // end block: if x.Ui8slice slice == nil
  1587  			z.EncWriteArrayElem()
  1588  			if x.Bslice == nil {
  1589  				r.EncodeNil()
  1590  			} else {
  1591  				z.F.EncSliceBoolV(x.Bslice, e)
  1592  			} // end block: if x.Bslice slice == nil
  1593  			z.EncWriteArrayElem()
  1594  			if x.Byslice == nil {
  1595  				r.EncodeNil()
  1596  			} else {
  1597  				r.EncodeStringBytesRaw([]byte(x.Byslice))
  1598  			} // end block: if x.Byslice slice == nil
  1599  			z.EncWriteArrayElem()
  1600  			if x.BytesSlice == nil {
  1601  				r.EncodeNil()
  1602  			} else {
  1603  				z.F.EncSliceBytesV(x.BytesSlice, e)
  1604  			} // end block: if x.BytesSlice slice == nil
  1605  			z.EncWriteArrayElem()
  1606  			if x.Iptrslice == nil {
  1607  				r.EncodeNil()
  1608  			} else {
  1609  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1610  			} // end block: if x.Iptrslice slice == nil
  1611  			z.EncWriteArrayElem()
  1612  			if yyxt83 := z.Extension(x.WrapSliceInt64); yyxt83 != nil {
  1613  				z.EncExtension(x.WrapSliceInt64, yyxt83)
  1614  			} else {
  1615  				x.WrapSliceInt64.CodecEncodeSelf(e)
  1616  			}
  1617  			z.EncWriteArrayElem()
  1618  			if yyxt84 := z.Extension(x.WrapSliceString); yyxt84 != nil {
  1619  				z.EncExtension(x.WrapSliceString, yyxt84)
  1620  			} else {
  1621  				x.WrapSliceString.CodecEncodeSelf(e)
  1622  			}
  1623  			z.EncWriteArrayElem()
  1624  			if x.Msint == nil {
  1625  				r.EncodeNil()
  1626  			} else {
  1627  				z.F.EncMapStringIntV(x.Msint, e)
  1628  			} // end block: if x.Msint map == nil
  1629  			z.EncWriteArrayElem()
  1630  			if x.Msbytes == nil {
  1631  				r.EncodeNil()
  1632  			} else {
  1633  				z.F.EncMapStringBytesV(x.Msbytes, e)
  1634  			} // end block: if x.Msbytes map == nil
  1635  			z.EncWriteArrayElem()
  1636  			yy87 := &x.Simplef
  1637  			if yyxt88 := z.Extension(yy87); yyxt88 != nil {
  1638  				z.EncExtension(yy87, yyxt88)
  1639  			} else {
  1640  				yy87.CodecEncodeSelf(e)
  1641  			}
  1642  			z.EncWriteArrayElem()
  1643  			if x.SstrUi64T == nil {
  1644  				r.EncodeNil()
  1645  			} else {
  1646  				h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
  1647  			} // end block: if x.SstrUi64T slice == nil
  1648  			z.EncWriteArrayElem()
  1649  			if x.MstrUi64T == nil {
  1650  				r.EncodeNil()
  1651  			} else {
  1652  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.MstrUi64T), e)
  1653  			} // end block: if x.MstrUi64T map == nil
  1654  			z.EncWriteArrayElem()
  1655  			r.EncodeString(string(x.AnonInTestStruc.AS))
  1656  			z.EncWriteArrayElem()
  1657  			r.EncodeInt(int64(x.AnonInTestStruc.AI64))
  1658  			z.EncWriteArrayElem()
  1659  			r.EncodeInt(int64(x.AnonInTestStruc.AI16))
  1660  			z.EncWriteArrayElem()
  1661  			r.EncodeUint(uint64(x.AnonInTestStruc.AUi64))
  1662  			z.EncWriteArrayElem()
  1663  			if x.AnonInTestStruc.ASslice == nil {
  1664  				r.EncodeNil()
  1665  			} else {
  1666  				z.F.EncSliceStringV(x.AnonInTestStruc.ASslice, e)
  1667  			} // end block: if x.AnonInTestStruc.ASslice slice == nil
  1668  			z.EncWriteArrayElem()
  1669  			if x.AnonInTestStruc.AI64slice == nil {
  1670  				r.EncodeNil()
  1671  			} else {
  1672  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice, e)
  1673  			} // end block: if x.AnonInTestStruc.AI64slice slice == nil
  1674  			z.EncWriteArrayElem()
  1675  			if x.AnonInTestStruc.AUi64slice == nil {
  1676  				r.EncodeNil()
  1677  			} else {
  1678  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64slice, e)
  1679  			} // end block: if x.AnonInTestStruc.AUi64slice slice == nil
  1680  			z.EncWriteArrayElem()
  1681  			if x.AnonInTestStruc.AF64slice == nil {
  1682  				r.EncodeNil()
  1683  			} else {
  1684  				z.F.EncSliceFloat64V(x.AnonInTestStruc.AF64slice, e)
  1685  			} // end block: if x.AnonInTestStruc.AF64slice slice == nil
  1686  			z.EncWriteArrayElem()
  1687  			if x.AnonInTestStruc.AF32slice == nil {
  1688  				r.EncodeNil()
  1689  			} else {
  1690  				z.F.EncSliceFloat32V(x.AnonInTestStruc.AF32slice, e)
  1691  			} // end block: if x.AnonInTestStruc.AF32slice slice == nil
  1692  			z.EncWriteArrayElem()
  1693  			if x.AnonInTestStruc.AMSS == nil {
  1694  				r.EncodeNil()
  1695  			} else {
  1696  				z.F.EncMapStringStringV(x.AnonInTestStruc.AMSS, e)
  1697  			} // end block: if x.AnonInTestStruc.AMSS map == nil
  1698  			z.EncWriteArrayElem()
  1699  			if x.AnonInTestStruc.AMSU64 == nil {
  1700  				r.EncodeNil()
  1701  			} else {
  1702  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64, e)
  1703  			} // end block: if x.AnonInTestStruc.AMSU64 map == nil
  1704  			z.EncWriteArrayElem()
  1705  			yy102 := &x.AnonInTestStruc.AI64arr8
  1706  			h.encArray8int64((*[8]int64)(yy102), e)
  1707  			z.EncWriteArrayElem()
  1708  			yy104 := &x.AnonInTestStruc.AI64arr0
  1709  			h.encArray0int64((*[0]int64)(yy104), e)
  1710  			z.EncWriteArrayElem()
  1711  			if x.AnonInTestStruc.AI64slice0 == nil {
  1712  				r.EncodeNil()
  1713  			} else {
  1714  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice0, e)
  1715  			} // end block: if x.AnonInTestStruc.AI64slice0 slice == nil
  1716  			z.EncWriteArrayElem()
  1717  			if x.AnonInTestStruc.AUi64sliceN == nil {
  1718  				r.EncodeNil()
  1719  			} else {
  1720  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64sliceN, e)
  1721  			} // end block: if x.AnonInTestStruc.AUi64sliceN slice == nil
  1722  			z.EncWriteArrayElem()
  1723  			if x.AnonInTestStruc.AMSU64N == nil {
  1724  				r.EncodeNil()
  1725  			} else {
  1726  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64N, e)
  1727  			} // end block: if x.AnonInTestStruc.AMSU64N map == nil
  1728  			z.EncWriteArrayElem()
  1729  			if x.AnonInTestStruc.AMSU64E == nil {
  1730  				r.EncodeNil()
  1731  			} else {
  1732  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64E, e)
  1733  			} // end block: if x.AnonInTestStruc.AMSU64E map == nil
  1734  			z.EncWriteArrayElem()
  1735  			yy110 := &x.NotAnon
  1736  			if yyxt111 := z.Extension(yy110); yyxt111 != nil {
  1737  				z.EncExtension(yy110, yyxt111)
  1738  			} else {
  1739  				yy110.CodecEncodeSelf(e)
  1740  			}
  1741  			z.EncWriteArrayElem()
  1742  			if x.Nmap == nil {
  1743  				r.EncodeNil()
  1744  			} else {
  1745  				z.F.EncMapStringBoolV(x.Nmap, e)
  1746  			} // end block: if x.Nmap map == nil
  1747  			z.EncWriteArrayElem()
  1748  			if x.Nslice == nil {
  1749  				r.EncodeNil()
  1750  			} else {
  1751  				r.EncodeStringBytesRaw([]byte(x.Nslice))
  1752  			} // end block: if x.Nslice slice == nil
  1753  			if yyn56 {
  1754  				z.EncWriteArrayElem()
  1755  				r.EncodeNil()
  1756  			} else {
  1757  				z.EncWriteArrayElem()
  1758  				yy114 := *x.Nint64
  1759  				r.EncodeInt(int64(yy114))
  1760  			}
  1761  			z.EncWriteArrayEnd()
  1762  		} else {
  1763  			z.EncWriteMapStart(54)
  1764  			z.EncWriteMapElemKey()
  1765  			if z.IsJSONHandle() {
  1766  				z.WriteStr("\"S\"")
  1767  			} else {
  1768  				r.EncodeString(`S`)
  1769  			}
  1770  			z.EncWriteMapElemValue()
  1771  			r.EncodeString(string(x.S))
  1772  			z.EncWriteMapElemKey()
  1773  			if z.IsJSONHandle() {
  1774  				z.WriteStr("\"I64\"")
  1775  			} else {
  1776  				r.EncodeString(`I64`)
  1777  			}
  1778  			z.EncWriteMapElemValue()
  1779  			r.EncodeInt(int64(x.I64))
  1780  			z.EncWriteMapElemKey()
  1781  			if z.IsJSONHandle() {
  1782  				z.WriteStr("\"I32\"")
  1783  			} else {
  1784  				r.EncodeString(`I32`)
  1785  			}
  1786  			z.EncWriteMapElemValue()
  1787  			r.EncodeInt(int64(x.I32))
  1788  			z.EncWriteMapElemKey()
  1789  			if z.IsJSONHandle() {
  1790  				z.WriteStr("\"I16\"")
  1791  			} else {
  1792  				r.EncodeString(`I16`)
  1793  			}
  1794  			z.EncWriteMapElemValue()
  1795  			r.EncodeInt(int64(x.I16))
  1796  			z.EncWriteMapElemKey()
  1797  			if z.IsJSONHandle() {
  1798  				z.WriteStr("\"I8\"")
  1799  			} else {
  1800  				r.EncodeString(`I8`)
  1801  			}
  1802  			z.EncWriteMapElemValue()
  1803  			r.EncodeInt(int64(x.I8))
  1804  			z.EncWriteMapElemKey()
  1805  			if z.IsJSONHandle() {
  1806  				z.WriteStr("\"I64n\"")
  1807  			} else {
  1808  				r.EncodeString(`I64n`)
  1809  			}
  1810  			z.EncWriteMapElemValue()
  1811  			r.EncodeInt(int64(x.I64n))
  1812  			z.EncWriteMapElemKey()
  1813  			if z.IsJSONHandle() {
  1814  				z.WriteStr("\"I32n\"")
  1815  			} else {
  1816  				r.EncodeString(`I32n`)
  1817  			}
  1818  			z.EncWriteMapElemValue()
  1819  			r.EncodeInt(int64(x.I32n))
  1820  			z.EncWriteMapElemKey()
  1821  			if z.IsJSONHandle() {
  1822  				z.WriteStr("\"I16n\"")
  1823  			} else {
  1824  				r.EncodeString(`I16n`)
  1825  			}
  1826  			z.EncWriteMapElemValue()
  1827  			r.EncodeInt(int64(x.I16n))
  1828  			z.EncWriteMapElemKey()
  1829  			if z.IsJSONHandle() {
  1830  				z.WriteStr("\"I8n\"")
  1831  			} else {
  1832  				r.EncodeString(`I8n`)
  1833  			}
  1834  			z.EncWriteMapElemValue()
  1835  			r.EncodeInt(int64(x.I8n))
  1836  			z.EncWriteMapElemKey()
  1837  			if z.IsJSONHandle() {
  1838  				z.WriteStr("\"Ui64\"")
  1839  			} else {
  1840  				r.EncodeString(`Ui64`)
  1841  			}
  1842  			z.EncWriteMapElemValue()
  1843  			r.EncodeUint(uint64(x.Ui64))
  1844  			z.EncWriteMapElemKey()
  1845  			if z.IsJSONHandle() {
  1846  				z.WriteStr("\"Ui32\"")
  1847  			} else {
  1848  				r.EncodeString(`Ui32`)
  1849  			}
  1850  			z.EncWriteMapElemValue()
  1851  			r.EncodeUint(uint64(x.Ui32))
  1852  			z.EncWriteMapElemKey()
  1853  			if z.IsJSONHandle() {
  1854  				z.WriteStr("\"Ui16\"")
  1855  			} else {
  1856  				r.EncodeString(`Ui16`)
  1857  			}
  1858  			z.EncWriteMapElemValue()
  1859  			r.EncodeUint(uint64(x.Ui16))
  1860  			z.EncWriteMapElemKey()
  1861  			if z.IsJSONHandle() {
  1862  				z.WriteStr("\"Ui8\"")
  1863  			} else {
  1864  				r.EncodeString(`Ui8`)
  1865  			}
  1866  			z.EncWriteMapElemValue()
  1867  			r.EncodeUint(uint64(x.Ui8))
  1868  			z.EncWriteMapElemKey()
  1869  			if z.IsJSONHandle() {
  1870  				z.WriteStr("\"F64\"")
  1871  			} else {
  1872  				r.EncodeString(`F64`)
  1873  			}
  1874  			z.EncWriteMapElemValue()
  1875  			r.EncodeFloat64(float64(x.F64))
  1876  			z.EncWriteMapElemKey()
  1877  			if z.IsJSONHandle() {
  1878  				z.WriteStr("\"F32\"")
  1879  			} else {
  1880  				r.EncodeString(`F32`)
  1881  			}
  1882  			z.EncWriteMapElemValue()
  1883  			r.EncodeFloat32(float32(x.F32))
  1884  			z.EncWriteMapElemKey()
  1885  			if z.IsJSONHandle() {
  1886  				z.WriteStr("\"B\"")
  1887  			} else {
  1888  				r.EncodeString(`B`)
  1889  			}
  1890  			z.EncWriteMapElemValue()
  1891  			r.EncodeBool(bool(x.B))
  1892  			z.EncWriteMapElemKey()
  1893  			if z.IsJSONHandle() {
  1894  				z.WriteStr("\"By\"")
  1895  			} else {
  1896  				r.EncodeString(`By`)
  1897  			}
  1898  			z.EncWriteMapElemValue()
  1899  			r.EncodeUint(uint64(x.By))
  1900  			z.EncWriteMapElemKey()
  1901  			if z.IsJSONHandle() {
  1902  				z.WriteStr("\"Sslice\"")
  1903  			} else {
  1904  				r.EncodeString(`Sslice`)
  1905  			}
  1906  			z.EncWriteMapElemValue()
  1907  			if x.Sslice == nil {
  1908  				r.EncodeNil()
  1909  			} else {
  1910  				z.F.EncSliceStringV(x.Sslice, e)
  1911  			} // end block: if x.Sslice slice == nil
  1912  			z.EncWriteMapElemKey()
  1913  			if z.IsJSONHandle() {
  1914  				z.WriteStr("\"I64slice\"")
  1915  			} else {
  1916  				r.EncodeString(`I64slice`)
  1917  			}
  1918  			z.EncWriteMapElemValue()
  1919  			if x.I64slice == nil {
  1920  				r.EncodeNil()
  1921  			} else {
  1922  				z.F.EncSliceInt64V(x.I64slice, e)
  1923  			} // end block: if x.I64slice slice == nil
  1924  			z.EncWriteMapElemKey()
  1925  			if z.IsJSONHandle() {
  1926  				z.WriteStr("\"I32slice\"")
  1927  			} else {
  1928  				r.EncodeString(`I32slice`)
  1929  			}
  1930  			z.EncWriteMapElemValue()
  1931  			if x.I32slice == nil {
  1932  				r.EncodeNil()
  1933  			} else {
  1934  				z.F.EncSliceInt32V(x.I32slice, e)
  1935  			} // end block: if x.I32slice slice == nil
  1936  			z.EncWriteMapElemKey()
  1937  			if z.IsJSONHandle() {
  1938  				z.WriteStr("\"Ui64slice\"")
  1939  			} else {
  1940  				r.EncodeString(`Ui64slice`)
  1941  			}
  1942  			z.EncWriteMapElemValue()
  1943  			if x.Ui64slice == nil {
  1944  				r.EncodeNil()
  1945  			} else {
  1946  				z.F.EncSliceUint64V(x.Ui64slice, e)
  1947  			} // end block: if x.Ui64slice slice == nil
  1948  			z.EncWriteMapElemKey()
  1949  			if z.IsJSONHandle() {
  1950  				z.WriteStr("\"Ui8slice\"")
  1951  			} else {
  1952  				r.EncodeString(`Ui8slice`)
  1953  			}
  1954  			z.EncWriteMapElemValue()
  1955  			if x.Ui8slice == nil {
  1956  				r.EncodeNil()
  1957  			} else {
  1958  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1959  			} // end block: if x.Ui8slice slice == nil
  1960  			z.EncWriteMapElemKey()
  1961  			if z.IsJSONHandle() {
  1962  				z.WriteStr("\"Bslice\"")
  1963  			} else {
  1964  				r.EncodeString(`Bslice`)
  1965  			}
  1966  			z.EncWriteMapElemValue()
  1967  			if x.Bslice == nil {
  1968  				r.EncodeNil()
  1969  			} else {
  1970  				z.F.EncSliceBoolV(x.Bslice, e)
  1971  			} // end block: if x.Bslice slice == nil
  1972  			z.EncWriteMapElemKey()
  1973  			if z.IsJSONHandle() {
  1974  				z.WriteStr("\"Byslice\"")
  1975  			} else {
  1976  				r.EncodeString(`Byslice`)
  1977  			}
  1978  			z.EncWriteMapElemValue()
  1979  			if x.Byslice == nil {
  1980  				r.EncodeNil()
  1981  			} else {
  1982  				r.EncodeStringBytesRaw([]byte(x.Byslice))
  1983  			} // end block: if x.Byslice slice == nil
  1984  			z.EncWriteMapElemKey()
  1985  			if z.IsJSONHandle() {
  1986  				z.WriteStr("\"BytesSlice\"")
  1987  			} else {
  1988  				r.EncodeString(`BytesSlice`)
  1989  			}
  1990  			z.EncWriteMapElemValue()
  1991  			if x.BytesSlice == nil {
  1992  				r.EncodeNil()
  1993  			} else {
  1994  				z.F.EncSliceBytesV(x.BytesSlice, e)
  1995  			} // end block: if x.BytesSlice slice == nil
  1996  			z.EncWriteMapElemKey()
  1997  			if z.IsJSONHandle() {
  1998  				z.WriteStr("\"Iptrslice\"")
  1999  			} else {
  2000  				r.EncodeString(`Iptrslice`)
  2001  			}
  2002  			z.EncWriteMapElemValue()
  2003  			if x.Iptrslice == nil {
  2004  				r.EncodeNil()
  2005  			} else {
  2006  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  2007  			} // end block: if x.Iptrslice slice == nil
  2008  			z.EncWriteMapElemKey()
  2009  			if z.IsJSONHandle() {
  2010  				z.WriteStr("\"WrapSliceInt64\"")
  2011  			} else {
  2012  				r.EncodeString(`WrapSliceInt64`)
  2013  			}
  2014  			z.EncWriteMapElemValue()
  2015  			if yyxt142 := z.Extension(x.WrapSliceInt64); yyxt142 != nil {
  2016  				z.EncExtension(x.WrapSliceInt64, yyxt142)
  2017  			} else {
  2018  				x.WrapSliceInt64.CodecEncodeSelf(e)
  2019  			}
  2020  			z.EncWriteMapElemKey()
  2021  			if z.IsJSONHandle() {
  2022  				z.WriteStr("\"WrapSliceString\"")
  2023  			} else {
  2024  				r.EncodeString(`WrapSliceString`)
  2025  			}
  2026  			z.EncWriteMapElemValue()
  2027  			if yyxt143 := z.Extension(x.WrapSliceString); yyxt143 != nil {
  2028  				z.EncExtension(x.WrapSliceString, yyxt143)
  2029  			} else {
  2030  				x.WrapSliceString.CodecEncodeSelf(e)
  2031  			}
  2032  			z.EncWriteMapElemKey()
  2033  			if z.IsJSONHandle() {
  2034  				z.WriteStr("\"Msint\"")
  2035  			} else {
  2036  				r.EncodeString(`Msint`)
  2037  			}
  2038  			z.EncWriteMapElemValue()
  2039  			if x.Msint == nil {
  2040  				r.EncodeNil()
  2041  			} else {
  2042  				z.F.EncMapStringIntV(x.Msint, e)
  2043  			} // end block: if x.Msint map == nil
  2044  			z.EncWriteMapElemKey()
  2045  			if z.IsJSONHandle() {
  2046  				z.WriteStr("\"Msbytes\"")
  2047  			} else {
  2048  				r.EncodeString(`Msbytes`)
  2049  			}
  2050  			z.EncWriteMapElemValue()
  2051  			if x.Msbytes == nil {
  2052  				r.EncodeNil()
  2053  			} else {
  2054  				z.F.EncMapStringBytesV(x.Msbytes, e)
  2055  			} // end block: if x.Msbytes map == nil
  2056  			z.EncWriteMapElemKey()
  2057  			if z.IsJSONHandle() {
  2058  				z.WriteStr("\"Simplef\"")
  2059  			} else {
  2060  				r.EncodeString(`Simplef`)
  2061  			}
  2062  			z.EncWriteMapElemValue()
  2063  			yy146 := &x.Simplef
  2064  			if yyxt147 := z.Extension(yy146); yyxt147 != nil {
  2065  				z.EncExtension(yy146, yyxt147)
  2066  			} else {
  2067  				yy146.CodecEncodeSelf(e)
  2068  			}
  2069  			z.EncWriteMapElemKey()
  2070  			if z.IsJSONHandle() {
  2071  				z.WriteStr("\"SstrUi64T\"")
  2072  			} else {
  2073  				r.EncodeString(`SstrUi64T`)
  2074  			}
  2075  			z.EncWriteMapElemValue()
  2076  			if x.SstrUi64T == nil {
  2077  				r.EncodeNil()
  2078  			} else {
  2079  				h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
  2080  			} // end block: if x.SstrUi64T slice == nil
  2081  			z.EncWriteMapElemKey()
  2082  			if z.IsJSONHandle() {
  2083  				z.WriteStr("\"MstrUi64T\"")
  2084  			} else {
  2085  				r.EncodeString(`MstrUi64T`)
  2086  			}
  2087  			z.EncWriteMapElemValue()
  2088  			if x.MstrUi64T == nil {
  2089  				r.EncodeNil()
  2090  			} else {
  2091  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.MstrUi64T), e)
  2092  			} // end block: if x.MstrUi64T map == nil
  2093  			z.EncWriteMapElemKey()
  2094  			if z.IsJSONHandle() {
  2095  				z.WriteStr("\"AS\"")
  2096  			} else {
  2097  				r.EncodeString(`AS`)
  2098  			}
  2099  			z.EncWriteMapElemValue()
  2100  			r.EncodeString(string(x.AnonInTestStruc.AS))
  2101  			z.EncWriteMapElemKey()
  2102  			if z.IsJSONHandle() {
  2103  				z.WriteStr("\"AI64\"")
  2104  			} else {
  2105  				r.EncodeString(`AI64`)
  2106  			}
  2107  			z.EncWriteMapElemValue()
  2108  			r.EncodeInt(int64(x.AnonInTestStruc.AI64))
  2109  			z.EncWriteMapElemKey()
  2110  			if z.IsJSONHandle() {
  2111  				z.WriteStr("\"AI16\"")
  2112  			} else {
  2113  				r.EncodeString(`AI16`)
  2114  			}
  2115  			z.EncWriteMapElemValue()
  2116  			r.EncodeInt(int64(x.AnonInTestStruc.AI16))
  2117  			z.EncWriteMapElemKey()
  2118  			if z.IsJSONHandle() {
  2119  				z.WriteStr("\"AUi64\"")
  2120  			} else {
  2121  				r.EncodeString(`AUi64`)
  2122  			}
  2123  			z.EncWriteMapElemValue()
  2124  			r.EncodeUint(uint64(x.AnonInTestStruc.AUi64))
  2125  			z.EncWriteMapElemKey()
  2126  			if z.IsJSONHandle() {
  2127  				z.WriteStr("\"ASslice\"")
  2128  			} else {
  2129  				r.EncodeString(`ASslice`)
  2130  			}
  2131  			z.EncWriteMapElemValue()
  2132  			if x.AnonInTestStruc.ASslice == nil {
  2133  				r.EncodeNil()
  2134  			} else {
  2135  				z.F.EncSliceStringV(x.AnonInTestStruc.ASslice, e)
  2136  			} // end block: if x.AnonInTestStruc.ASslice slice == nil
  2137  			z.EncWriteMapElemKey()
  2138  			if z.IsJSONHandle() {
  2139  				z.WriteStr("\"AI64slice\"")
  2140  			} else {
  2141  				r.EncodeString(`AI64slice`)
  2142  			}
  2143  			z.EncWriteMapElemValue()
  2144  			if x.AnonInTestStruc.AI64slice == nil {
  2145  				r.EncodeNil()
  2146  			} else {
  2147  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice, e)
  2148  			} // end block: if x.AnonInTestStruc.AI64slice slice == nil
  2149  			z.EncWriteMapElemKey()
  2150  			if z.IsJSONHandle() {
  2151  				z.WriteStr("\"AUi64slice\"")
  2152  			} else {
  2153  				r.EncodeString(`AUi64slice`)
  2154  			}
  2155  			z.EncWriteMapElemValue()
  2156  			if x.AnonInTestStruc.AUi64slice == nil {
  2157  				r.EncodeNil()
  2158  			} else {
  2159  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64slice, e)
  2160  			} // end block: if x.AnonInTestStruc.AUi64slice slice == nil
  2161  			z.EncWriteMapElemKey()
  2162  			if z.IsJSONHandle() {
  2163  				z.WriteStr("\"AF64slice\"")
  2164  			} else {
  2165  				r.EncodeString(`AF64slice`)
  2166  			}
  2167  			z.EncWriteMapElemValue()
  2168  			if x.AnonInTestStruc.AF64slice == nil {
  2169  				r.EncodeNil()
  2170  			} else {
  2171  				z.F.EncSliceFloat64V(x.AnonInTestStruc.AF64slice, e)
  2172  			} // end block: if x.AnonInTestStruc.AF64slice slice == nil
  2173  			z.EncWriteMapElemKey()
  2174  			if z.IsJSONHandle() {
  2175  				z.WriteStr("\"AF32slice\"")
  2176  			} else {
  2177  				r.EncodeString(`AF32slice`)
  2178  			}
  2179  			z.EncWriteMapElemValue()
  2180  			if x.AnonInTestStruc.AF32slice == nil {
  2181  				r.EncodeNil()
  2182  			} else {
  2183  				z.F.EncSliceFloat32V(x.AnonInTestStruc.AF32slice, e)
  2184  			} // end block: if x.AnonInTestStruc.AF32slice slice == nil
  2185  			z.EncWriteMapElemKey()
  2186  			if z.IsJSONHandle() {
  2187  				z.WriteStr("\"AMSS\"")
  2188  			} else {
  2189  				r.EncodeString(`AMSS`)
  2190  			}
  2191  			z.EncWriteMapElemValue()
  2192  			if x.AnonInTestStruc.AMSS == nil {
  2193  				r.EncodeNil()
  2194  			} else {
  2195  				z.F.EncMapStringStringV(x.AnonInTestStruc.AMSS, e)
  2196  			} // end block: if x.AnonInTestStruc.AMSS map == nil
  2197  			z.EncWriteMapElemKey()
  2198  			if z.IsJSONHandle() {
  2199  				z.WriteStr("\"AMSU64\"")
  2200  			} else {
  2201  				r.EncodeString(`AMSU64`)
  2202  			}
  2203  			z.EncWriteMapElemValue()
  2204  			if x.AnonInTestStruc.AMSU64 == nil {
  2205  				r.EncodeNil()
  2206  			} else {
  2207  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64, e)
  2208  			} // end block: if x.AnonInTestStruc.AMSU64 map == nil
  2209  			z.EncWriteMapElemKey()
  2210  			if z.IsJSONHandle() {
  2211  				z.WriteStr("\"AI64arr8\"")
  2212  			} else {
  2213  				r.EncodeString(`AI64arr8`)
  2214  			}
  2215  			z.EncWriteMapElemValue()
  2216  			yy161 := &x.AnonInTestStruc.AI64arr8
  2217  			h.encArray8int64((*[8]int64)(yy161), e)
  2218  			z.EncWriteMapElemKey()
  2219  			if z.IsJSONHandle() {
  2220  				z.WriteStr("\"AI64arr0\"")
  2221  			} else {
  2222  				r.EncodeString(`AI64arr0`)
  2223  			}
  2224  			z.EncWriteMapElemValue()
  2225  			yy163 := &x.AnonInTestStruc.AI64arr0
  2226  			h.encArray0int64((*[0]int64)(yy163), e)
  2227  			z.EncWriteMapElemKey()
  2228  			if z.IsJSONHandle() {
  2229  				z.WriteStr("\"AI64slice0\"")
  2230  			} else {
  2231  				r.EncodeString(`AI64slice0`)
  2232  			}
  2233  			z.EncWriteMapElemValue()
  2234  			if x.AnonInTestStruc.AI64slice0 == nil {
  2235  				r.EncodeNil()
  2236  			} else {
  2237  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice0, e)
  2238  			} // end block: if x.AnonInTestStruc.AI64slice0 slice == nil
  2239  			z.EncWriteMapElemKey()
  2240  			if z.IsJSONHandle() {
  2241  				z.WriteStr("\"AUi64sliceN\"")
  2242  			} else {
  2243  				r.EncodeString(`AUi64sliceN`)
  2244  			}
  2245  			z.EncWriteMapElemValue()
  2246  			if x.AnonInTestStruc.AUi64sliceN == nil {
  2247  				r.EncodeNil()
  2248  			} else {
  2249  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64sliceN, e)
  2250  			} // end block: if x.AnonInTestStruc.AUi64sliceN slice == nil
  2251  			z.EncWriteMapElemKey()
  2252  			if z.IsJSONHandle() {
  2253  				z.WriteStr("\"AMSU64N\"")
  2254  			} else {
  2255  				r.EncodeString(`AMSU64N`)
  2256  			}
  2257  			z.EncWriteMapElemValue()
  2258  			if x.AnonInTestStruc.AMSU64N == nil {
  2259  				r.EncodeNil()
  2260  			} else {
  2261  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64N, e)
  2262  			} // end block: if x.AnonInTestStruc.AMSU64N map == nil
  2263  			z.EncWriteMapElemKey()
  2264  			if z.IsJSONHandle() {
  2265  				z.WriteStr("\"AMSU64E\"")
  2266  			} else {
  2267  				r.EncodeString(`AMSU64E`)
  2268  			}
  2269  			z.EncWriteMapElemValue()
  2270  			if x.AnonInTestStruc.AMSU64E == nil {
  2271  				r.EncodeNil()
  2272  			} else {
  2273  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64E, e)
  2274  			} // end block: if x.AnonInTestStruc.AMSU64E map == nil
  2275  			z.EncWriteMapElemKey()
  2276  			if z.IsJSONHandle() {
  2277  				z.WriteStr("\"NotAnon\"")
  2278  			} else {
  2279  				r.EncodeString(`NotAnon`)
  2280  			}
  2281  			z.EncWriteMapElemValue()
  2282  			yy169 := &x.NotAnon
  2283  			if yyxt170 := z.Extension(yy169); yyxt170 != nil {
  2284  				z.EncExtension(yy169, yyxt170)
  2285  			} else {
  2286  				yy169.CodecEncodeSelf(e)
  2287  			}
  2288  			z.EncWriteMapElemKey()
  2289  			if z.IsJSONHandle() {
  2290  				z.WriteStr("\"Nmap\"")
  2291  			} else {
  2292  				r.EncodeString(`Nmap`)
  2293  			}
  2294  			z.EncWriteMapElemValue()
  2295  			if x.Nmap == nil {
  2296  				r.EncodeNil()
  2297  			} else {
  2298  				z.F.EncMapStringBoolV(x.Nmap, e)
  2299  			} // end block: if x.Nmap map == nil
  2300  			z.EncWriteMapElemKey()
  2301  			if z.IsJSONHandle() {
  2302  				z.WriteStr("\"Nslice\"")
  2303  			} else {
  2304  				r.EncodeString(`Nslice`)
  2305  			}
  2306  			z.EncWriteMapElemValue()
  2307  			if x.Nslice == nil {
  2308  				r.EncodeNil()
  2309  			} else {
  2310  				r.EncodeStringBytesRaw([]byte(x.Nslice))
  2311  			} // end block: if x.Nslice slice == nil
  2312  			z.EncWriteMapElemKey()
  2313  			if z.IsJSONHandle() {
  2314  				z.WriteStr("\"Nint64\"")
  2315  			} else {
  2316  				r.EncodeString(`Nint64`)
  2317  			}
  2318  			z.EncWriteMapElemValue()
  2319  			if yyn56 {
  2320  				r.EncodeNil()
  2321  			} else {
  2322  				yy173 := *x.Nint64
  2323  				r.EncodeInt(int64(yy173))
  2324  			}
  2325  			z.EncWriteMapEnd()
  2326  		}
  2327  	}
  2328  }
  2329  
  2330  func (x *TestStrucCommon) CodecDecodeSelf(d *Decoder) {
  2331  	var h codecSelfer19780
  2332  	z, r := GenHelper().Decoder(d)
  2333  	_, _, _ = h, z, r
  2334  	yyct2 := r.ContainerType()
  2335  	if yyct2 == codecSelferValueTypeNil19780 {
  2336  		*(x) = TestStrucCommon{}
  2337  	} else if yyct2 == codecSelferValueTypeMap19780 {
  2338  		yyl2 := z.DecReadMapStart()
  2339  		if yyl2 == 0 {
  2340  		} else {
  2341  			x.codecDecodeSelfFromMap(yyl2, d)
  2342  		}
  2343  		z.DecReadMapEnd()
  2344  	} else if yyct2 == codecSelferValueTypeArray19780 {
  2345  		yyl2 := z.DecReadArrayStart()
  2346  		if yyl2 != 0 {
  2347  			x.codecDecodeSelfFromArray(yyl2, d)
  2348  		}
  2349  		z.DecReadArrayEnd()
  2350  	} else {
  2351  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  2352  	}
  2353  }
  2354  
  2355  func (x *TestStrucCommon) codecDecodeSelfFromMap(l int, d *Decoder) {
  2356  	var h codecSelfer19780
  2357  	z, r := GenHelper().Decoder(d)
  2358  	_, _, _ = h, z, r
  2359  	var yyhl3 bool = l >= 0
  2360  	for yyj3 := 0; ; yyj3++ {
  2361  		if yyhl3 {
  2362  			if yyj3 >= l {
  2363  				break
  2364  			}
  2365  		} else {
  2366  			if z.DecCheckBreak() {
  2367  				break
  2368  			}
  2369  		}
  2370  		z.DecReadMapElemKey()
  2371  		yys3 := r.DecodeStringAsBytes()
  2372  		z.DecReadMapElemValue()
  2373  		switch string(yys3) {
  2374  		case "S":
  2375  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  2376  		case "I64":
  2377  			x.I64 = (int64)(r.DecodeInt64())
  2378  		case "I32":
  2379  			x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  2380  		case "I16":
  2381  			x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2382  		case "I8":
  2383  			x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  2384  		case "I64n":
  2385  			x.I64n = (int64)(r.DecodeInt64())
  2386  		case "I32n":
  2387  			x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  2388  		case "I16n":
  2389  			x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2390  		case "I8n":
  2391  			x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  2392  		case "Ui64":
  2393  			x.Ui64 = (uint64)(r.DecodeUint64())
  2394  		case "Ui32":
  2395  			x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  2396  		case "Ui16":
  2397  			x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  2398  		case "Ui8":
  2399  			x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  2400  		case "F64":
  2401  			x.F64 = (float64)(r.DecodeFloat64())
  2402  		case "F32":
  2403  			x.F32 = (float32)(z.DecDecodeFloat32())
  2404  		case "B":
  2405  			x.B = (bool)(r.DecodeBool())
  2406  		case "By":
  2407  			x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  2408  		case "Sslice":
  2409  			z.F.DecSliceStringX(&x.Sslice, d)
  2410  		case "I64slice":
  2411  			z.F.DecSliceInt64X(&x.I64slice, d)
  2412  		case "I32slice":
  2413  			z.F.DecSliceInt32X(&x.I32slice, d)
  2414  		case "Ui64slice":
  2415  			z.F.DecSliceUint64X(&x.Ui64slice, d)
  2416  		case "Ui8slice":
  2417  			x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  2418  		case "Bslice":
  2419  			z.F.DecSliceBoolX(&x.Bslice, d)
  2420  		case "Byslice":
  2421  			x.Byslice = z.DecodeBytesInto(([]byte)(x.Byslice))
  2422  		case "BytesSlice":
  2423  			z.F.DecSliceBytesX(&x.BytesSlice, d)
  2424  		case "Iptrslice":
  2425  			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  2426  		case "WrapSliceInt64":
  2427  			if yyxt40 := z.Extension(x.WrapSliceInt64); yyxt40 != nil {
  2428  				z.DecExtension(&x.WrapSliceInt64, yyxt40)
  2429  			} else {
  2430  				x.WrapSliceInt64.CodecDecodeSelf(d)
  2431  			}
  2432  		case "WrapSliceString":
  2433  			if yyxt42 := z.Extension(x.WrapSliceString); yyxt42 != nil {
  2434  				z.DecExtension(&x.WrapSliceString, yyxt42)
  2435  			} else {
  2436  				x.WrapSliceString.CodecDecodeSelf(d)
  2437  			}
  2438  		case "Msint":
  2439  			z.F.DecMapStringIntX(&x.Msint, d)
  2440  		case "Msbytes":
  2441  			z.F.DecMapStringBytesX(&x.Msbytes, d)
  2442  		case "Simplef":
  2443  			if yyxt48 := z.Extension(x.Simplef); yyxt48 != nil {
  2444  				z.DecExtension(&x.Simplef, yyxt48)
  2445  			} else {
  2446  				x.Simplef.CodecDecodeSelf(d)
  2447  			}
  2448  		case "SstrUi64T":
  2449  			h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
  2450  		case "MstrUi64T":
  2451  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.MstrUi64T), d)
  2452  		case "AS":
  2453  			x.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  2454  		case "AI64":
  2455  			x.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  2456  		case "AI16":
  2457  			x.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2458  		case "AUi64":
  2459  			x.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  2460  		case "ASslice":
  2461  			z.F.DecSliceStringX(&x.AnonInTestStruc.ASslice, d)
  2462  		case "AI64slice":
  2463  			z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice, d)
  2464  		case "AUi64slice":
  2465  			z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64slice, d)
  2466  		case "AF64slice":
  2467  			z.F.DecSliceFloat64X(&x.AnonInTestStruc.AF64slice, d)
  2468  		case "AF32slice":
  2469  			z.F.DecSliceFloat32X(&x.AnonInTestStruc.AF32slice, d)
  2470  		case "AMSS":
  2471  			z.F.DecMapStringStringX(&x.AnonInTestStruc.AMSS, d)
  2472  		case "AMSU64":
  2473  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64, d)
  2474  		case "AI64arr8":
  2475  			h.decArray8int64((*[8]int64)(&x.AnonInTestStruc.AI64arr8), d)
  2476  		case "AI64arr0":
  2477  			h.decArray0int64((*[0]int64)(&x.AnonInTestStruc.AI64arr0), d)
  2478  		case "AI64slice0":
  2479  			z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice0, d)
  2480  		case "AUi64sliceN":
  2481  			z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64sliceN, d)
  2482  		case "AMSU64N":
  2483  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64N, d)
  2484  		case "AMSU64E":
  2485  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64E, d)
  2486  		case "NotAnon":
  2487  			if yyxt84 := z.Extension(x.NotAnon); yyxt84 != nil {
  2488  				z.DecExtension(&x.NotAnon, yyxt84)
  2489  			} else {
  2490  				x.NotAnon.CodecDecodeSelf(d)
  2491  			}
  2492  		case "Nmap":
  2493  			z.F.DecMapStringBoolX(&x.Nmap, d)
  2494  		case "Nslice":
  2495  			x.Nslice = z.DecodeBytesInto(([]byte)(x.Nslice))
  2496  		case "Nint64":
  2497  			if r.TryNil() {
  2498  				if x.Nint64 != nil { // remove the if-true
  2499  					x.Nint64 = nil
  2500  				}
  2501  			} else {
  2502  				if x.Nint64 == nil {
  2503  					x.Nint64 = new(int64)
  2504  				}
  2505  				*x.Nint64 = (int64)(r.DecodeInt64())
  2506  			}
  2507  		default:
  2508  			z.DecStructFieldNotFound(-1, string(yys3))
  2509  		} // end switch yys3
  2510  	} // end for yyj3
  2511  }
  2512  
  2513  func (x *TestStrucCommon) codecDecodeSelfFromArray(l int, d *Decoder) {
  2514  	var h codecSelfer19780
  2515  	z, r := GenHelper().Decoder(d)
  2516  	_, _, _ = h, z, r
  2517  	var yyj91 int
  2518  	var yyb91 bool
  2519  	var yyhl91 bool = l >= 0
  2520  	yyj91++
  2521  	if yyhl91 {
  2522  		yyb91 = yyj91 > l
  2523  	} else {
  2524  		yyb91 = z.DecCheckBreak()
  2525  	}
  2526  	if yyb91 {
  2527  		z.DecReadArrayEnd()
  2528  		return
  2529  	}
  2530  	z.DecReadArrayElem()
  2531  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  2532  	yyj91++
  2533  	if yyhl91 {
  2534  		yyb91 = yyj91 > l
  2535  	} else {
  2536  		yyb91 = z.DecCheckBreak()
  2537  	}
  2538  	if yyb91 {
  2539  		z.DecReadArrayEnd()
  2540  		return
  2541  	}
  2542  	z.DecReadArrayElem()
  2543  	x.I64 = (int64)(r.DecodeInt64())
  2544  	yyj91++
  2545  	if yyhl91 {
  2546  		yyb91 = yyj91 > l
  2547  	} else {
  2548  		yyb91 = z.DecCheckBreak()
  2549  	}
  2550  	if yyb91 {
  2551  		z.DecReadArrayEnd()
  2552  		return
  2553  	}
  2554  	z.DecReadArrayElem()
  2555  	x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  2556  	yyj91++
  2557  	if yyhl91 {
  2558  		yyb91 = yyj91 > l
  2559  	} else {
  2560  		yyb91 = z.DecCheckBreak()
  2561  	}
  2562  	if yyb91 {
  2563  		z.DecReadArrayEnd()
  2564  		return
  2565  	}
  2566  	z.DecReadArrayElem()
  2567  	x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2568  	yyj91++
  2569  	if yyhl91 {
  2570  		yyb91 = yyj91 > l
  2571  	} else {
  2572  		yyb91 = z.DecCheckBreak()
  2573  	}
  2574  	if yyb91 {
  2575  		z.DecReadArrayEnd()
  2576  		return
  2577  	}
  2578  	z.DecReadArrayElem()
  2579  	x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  2580  	yyj91++
  2581  	if yyhl91 {
  2582  		yyb91 = yyj91 > l
  2583  	} else {
  2584  		yyb91 = z.DecCheckBreak()
  2585  	}
  2586  	if yyb91 {
  2587  		z.DecReadArrayEnd()
  2588  		return
  2589  	}
  2590  	z.DecReadArrayElem()
  2591  	x.I64n = (int64)(r.DecodeInt64())
  2592  	yyj91++
  2593  	if yyhl91 {
  2594  		yyb91 = yyj91 > l
  2595  	} else {
  2596  		yyb91 = z.DecCheckBreak()
  2597  	}
  2598  	if yyb91 {
  2599  		z.DecReadArrayEnd()
  2600  		return
  2601  	}
  2602  	z.DecReadArrayElem()
  2603  	x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  2604  	yyj91++
  2605  	if yyhl91 {
  2606  		yyb91 = yyj91 > l
  2607  	} else {
  2608  		yyb91 = z.DecCheckBreak()
  2609  	}
  2610  	if yyb91 {
  2611  		z.DecReadArrayEnd()
  2612  		return
  2613  	}
  2614  	z.DecReadArrayElem()
  2615  	x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2616  	yyj91++
  2617  	if yyhl91 {
  2618  		yyb91 = yyj91 > l
  2619  	} else {
  2620  		yyb91 = z.DecCheckBreak()
  2621  	}
  2622  	if yyb91 {
  2623  		z.DecReadArrayEnd()
  2624  		return
  2625  	}
  2626  	z.DecReadArrayElem()
  2627  	x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  2628  	yyj91++
  2629  	if yyhl91 {
  2630  		yyb91 = yyj91 > l
  2631  	} else {
  2632  		yyb91 = z.DecCheckBreak()
  2633  	}
  2634  	if yyb91 {
  2635  		z.DecReadArrayEnd()
  2636  		return
  2637  	}
  2638  	z.DecReadArrayElem()
  2639  	x.Ui64 = (uint64)(r.DecodeUint64())
  2640  	yyj91++
  2641  	if yyhl91 {
  2642  		yyb91 = yyj91 > l
  2643  	} else {
  2644  		yyb91 = z.DecCheckBreak()
  2645  	}
  2646  	if yyb91 {
  2647  		z.DecReadArrayEnd()
  2648  		return
  2649  	}
  2650  	z.DecReadArrayElem()
  2651  	x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  2652  	yyj91++
  2653  	if yyhl91 {
  2654  		yyb91 = yyj91 > l
  2655  	} else {
  2656  		yyb91 = z.DecCheckBreak()
  2657  	}
  2658  	if yyb91 {
  2659  		z.DecReadArrayEnd()
  2660  		return
  2661  	}
  2662  	z.DecReadArrayElem()
  2663  	x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  2664  	yyj91++
  2665  	if yyhl91 {
  2666  		yyb91 = yyj91 > l
  2667  	} else {
  2668  		yyb91 = z.DecCheckBreak()
  2669  	}
  2670  	if yyb91 {
  2671  		z.DecReadArrayEnd()
  2672  		return
  2673  	}
  2674  	z.DecReadArrayElem()
  2675  	x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  2676  	yyj91++
  2677  	if yyhl91 {
  2678  		yyb91 = yyj91 > l
  2679  	} else {
  2680  		yyb91 = z.DecCheckBreak()
  2681  	}
  2682  	if yyb91 {
  2683  		z.DecReadArrayEnd()
  2684  		return
  2685  	}
  2686  	z.DecReadArrayElem()
  2687  	x.F64 = (float64)(r.DecodeFloat64())
  2688  	yyj91++
  2689  	if yyhl91 {
  2690  		yyb91 = yyj91 > l
  2691  	} else {
  2692  		yyb91 = z.DecCheckBreak()
  2693  	}
  2694  	if yyb91 {
  2695  		z.DecReadArrayEnd()
  2696  		return
  2697  	}
  2698  	z.DecReadArrayElem()
  2699  	x.F32 = (float32)(z.DecDecodeFloat32())
  2700  	yyj91++
  2701  	if yyhl91 {
  2702  		yyb91 = yyj91 > l
  2703  	} else {
  2704  		yyb91 = z.DecCheckBreak()
  2705  	}
  2706  	if yyb91 {
  2707  		z.DecReadArrayEnd()
  2708  		return
  2709  	}
  2710  	z.DecReadArrayElem()
  2711  	x.B = (bool)(r.DecodeBool())
  2712  	yyj91++
  2713  	if yyhl91 {
  2714  		yyb91 = yyj91 > l
  2715  	} else {
  2716  		yyb91 = z.DecCheckBreak()
  2717  	}
  2718  	if yyb91 {
  2719  		z.DecReadArrayEnd()
  2720  		return
  2721  	}
  2722  	z.DecReadArrayElem()
  2723  	x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  2724  	yyj91++
  2725  	if yyhl91 {
  2726  		yyb91 = yyj91 > l
  2727  	} else {
  2728  		yyb91 = z.DecCheckBreak()
  2729  	}
  2730  	if yyb91 {
  2731  		z.DecReadArrayEnd()
  2732  		return
  2733  	}
  2734  	z.DecReadArrayElem()
  2735  	z.F.DecSliceStringX(&x.Sslice, d)
  2736  	yyj91++
  2737  	if yyhl91 {
  2738  		yyb91 = yyj91 > l
  2739  	} else {
  2740  		yyb91 = z.DecCheckBreak()
  2741  	}
  2742  	if yyb91 {
  2743  		z.DecReadArrayEnd()
  2744  		return
  2745  	}
  2746  	z.DecReadArrayElem()
  2747  	z.F.DecSliceInt64X(&x.I64slice, d)
  2748  	yyj91++
  2749  	if yyhl91 {
  2750  		yyb91 = yyj91 > l
  2751  	} else {
  2752  		yyb91 = z.DecCheckBreak()
  2753  	}
  2754  	if yyb91 {
  2755  		z.DecReadArrayEnd()
  2756  		return
  2757  	}
  2758  	z.DecReadArrayElem()
  2759  	z.F.DecSliceInt32X(&x.I32slice, d)
  2760  	yyj91++
  2761  	if yyhl91 {
  2762  		yyb91 = yyj91 > l
  2763  	} else {
  2764  		yyb91 = z.DecCheckBreak()
  2765  	}
  2766  	if yyb91 {
  2767  		z.DecReadArrayEnd()
  2768  		return
  2769  	}
  2770  	z.DecReadArrayElem()
  2771  	z.F.DecSliceUint64X(&x.Ui64slice, d)
  2772  	yyj91++
  2773  	if yyhl91 {
  2774  		yyb91 = yyj91 > l
  2775  	} else {
  2776  		yyb91 = z.DecCheckBreak()
  2777  	}
  2778  	if yyb91 {
  2779  		z.DecReadArrayEnd()
  2780  		return
  2781  	}
  2782  	z.DecReadArrayElem()
  2783  	x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  2784  	yyj91++
  2785  	if yyhl91 {
  2786  		yyb91 = yyj91 > l
  2787  	} else {
  2788  		yyb91 = z.DecCheckBreak()
  2789  	}
  2790  	if yyb91 {
  2791  		z.DecReadArrayEnd()
  2792  		return
  2793  	}
  2794  	z.DecReadArrayElem()
  2795  	z.F.DecSliceBoolX(&x.Bslice, d)
  2796  	yyj91++
  2797  	if yyhl91 {
  2798  		yyb91 = yyj91 > l
  2799  	} else {
  2800  		yyb91 = z.DecCheckBreak()
  2801  	}
  2802  	if yyb91 {
  2803  		z.DecReadArrayEnd()
  2804  		return
  2805  	}
  2806  	z.DecReadArrayElem()
  2807  	x.Byslice = z.DecodeBytesInto(([]byte)(x.Byslice))
  2808  	yyj91++
  2809  	if yyhl91 {
  2810  		yyb91 = yyj91 > l
  2811  	} else {
  2812  		yyb91 = z.DecCheckBreak()
  2813  	}
  2814  	if yyb91 {
  2815  		z.DecReadArrayEnd()
  2816  		return
  2817  	}
  2818  	z.DecReadArrayElem()
  2819  	z.F.DecSliceBytesX(&x.BytesSlice, d)
  2820  	yyj91++
  2821  	if yyhl91 {
  2822  		yyb91 = yyj91 > l
  2823  	} else {
  2824  		yyb91 = z.DecCheckBreak()
  2825  	}
  2826  	if yyb91 {
  2827  		z.DecReadArrayEnd()
  2828  		return
  2829  	}
  2830  	z.DecReadArrayElem()
  2831  	h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  2832  	yyj91++
  2833  	if yyhl91 {
  2834  		yyb91 = yyj91 > l
  2835  	} else {
  2836  		yyb91 = z.DecCheckBreak()
  2837  	}
  2838  	if yyb91 {
  2839  		z.DecReadArrayEnd()
  2840  		return
  2841  	}
  2842  	z.DecReadArrayElem()
  2843  	if yyxt128 := z.Extension(x.WrapSliceInt64); yyxt128 != nil {
  2844  		z.DecExtension(&x.WrapSliceInt64, yyxt128)
  2845  	} else {
  2846  		x.WrapSliceInt64.CodecDecodeSelf(d)
  2847  	}
  2848  	yyj91++
  2849  	if yyhl91 {
  2850  		yyb91 = yyj91 > l
  2851  	} else {
  2852  		yyb91 = z.DecCheckBreak()
  2853  	}
  2854  	if yyb91 {
  2855  		z.DecReadArrayEnd()
  2856  		return
  2857  	}
  2858  	z.DecReadArrayElem()
  2859  	if yyxt130 := z.Extension(x.WrapSliceString); yyxt130 != nil {
  2860  		z.DecExtension(&x.WrapSliceString, yyxt130)
  2861  	} else {
  2862  		x.WrapSliceString.CodecDecodeSelf(d)
  2863  	}
  2864  	yyj91++
  2865  	if yyhl91 {
  2866  		yyb91 = yyj91 > l
  2867  	} else {
  2868  		yyb91 = z.DecCheckBreak()
  2869  	}
  2870  	if yyb91 {
  2871  		z.DecReadArrayEnd()
  2872  		return
  2873  	}
  2874  	z.DecReadArrayElem()
  2875  	z.F.DecMapStringIntX(&x.Msint, d)
  2876  	yyj91++
  2877  	if yyhl91 {
  2878  		yyb91 = yyj91 > l
  2879  	} else {
  2880  		yyb91 = z.DecCheckBreak()
  2881  	}
  2882  	if yyb91 {
  2883  		z.DecReadArrayEnd()
  2884  		return
  2885  	}
  2886  	z.DecReadArrayElem()
  2887  	z.F.DecMapStringBytesX(&x.Msbytes, d)
  2888  	yyj91++
  2889  	if yyhl91 {
  2890  		yyb91 = yyj91 > l
  2891  	} else {
  2892  		yyb91 = z.DecCheckBreak()
  2893  	}
  2894  	if yyb91 {
  2895  		z.DecReadArrayEnd()
  2896  		return
  2897  	}
  2898  	z.DecReadArrayElem()
  2899  	if yyxt136 := z.Extension(x.Simplef); yyxt136 != nil {
  2900  		z.DecExtension(&x.Simplef, yyxt136)
  2901  	} else {
  2902  		x.Simplef.CodecDecodeSelf(d)
  2903  	}
  2904  	yyj91++
  2905  	if yyhl91 {
  2906  		yyb91 = yyj91 > l
  2907  	} else {
  2908  		yyb91 = z.DecCheckBreak()
  2909  	}
  2910  	if yyb91 {
  2911  		z.DecReadArrayEnd()
  2912  		return
  2913  	}
  2914  	z.DecReadArrayElem()
  2915  	h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
  2916  	yyj91++
  2917  	if yyhl91 {
  2918  		yyb91 = yyj91 > l
  2919  	} else {
  2920  		yyb91 = z.DecCheckBreak()
  2921  	}
  2922  	if yyb91 {
  2923  		z.DecReadArrayEnd()
  2924  		return
  2925  	}
  2926  	z.DecReadArrayElem()
  2927  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.MstrUi64T), d)
  2928  	yyj91++
  2929  	if yyhl91 {
  2930  		yyb91 = yyj91 > l
  2931  	} else {
  2932  		yyb91 = z.DecCheckBreak()
  2933  	}
  2934  	if yyb91 {
  2935  		z.DecReadArrayEnd()
  2936  		return
  2937  	}
  2938  	z.DecReadArrayElem()
  2939  	x.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  2940  	yyj91++
  2941  	if yyhl91 {
  2942  		yyb91 = yyj91 > l
  2943  	} else {
  2944  		yyb91 = z.DecCheckBreak()
  2945  	}
  2946  	if yyb91 {
  2947  		z.DecReadArrayEnd()
  2948  		return
  2949  	}
  2950  	z.DecReadArrayElem()
  2951  	x.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  2952  	yyj91++
  2953  	if yyhl91 {
  2954  		yyb91 = yyj91 > l
  2955  	} else {
  2956  		yyb91 = z.DecCheckBreak()
  2957  	}
  2958  	if yyb91 {
  2959  		z.DecReadArrayEnd()
  2960  		return
  2961  	}
  2962  	z.DecReadArrayElem()
  2963  	x.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  2964  	yyj91++
  2965  	if yyhl91 {
  2966  		yyb91 = yyj91 > l
  2967  	} else {
  2968  		yyb91 = z.DecCheckBreak()
  2969  	}
  2970  	if yyb91 {
  2971  		z.DecReadArrayEnd()
  2972  		return
  2973  	}
  2974  	z.DecReadArrayElem()
  2975  	x.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  2976  	yyj91++
  2977  	if yyhl91 {
  2978  		yyb91 = yyj91 > l
  2979  	} else {
  2980  		yyb91 = z.DecCheckBreak()
  2981  	}
  2982  	if yyb91 {
  2983  		z.DecReadArrayEnd()
  2984  		return
  2985  	}
  2986  	z.DecReadArrayElem()
  2987  	z.F.DecSliceStringX(&x.AnonInTestStruc.ASslice, d)
  2988  	yyj91++
  2989  	if yyhl91 {
  2990  		yyb91 = yyj91 > l
  2991  	} else {
  2992  		yyb91 = z.DecCheckBreak()
  2993  	}
  2994  	if yyb91 {
  2995  		z.DecReadArrayEnd()
  2996  		return
  2997  	}
  2998  	z.DecReadArrayElem()
  2999  	z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice, d)
  3000  	yyj91++
  3001  	if yyhl91 {
  3002  		yyb91 = yyj91 > l
  3003  	} else {
  3004  		yyb91 = z.DecCheckBreak()
  3005  	}
  3006  	if yyb91 {
  3007  		z.DecReadArrayEnd()
  3008  		return
  3009  	}
  3010  	z.DecReadArrayElem()
  3011  	z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64slice, d)
  3012  	yyj91++
  3013  	if yyhl91 {
  3014  		yyb91 = yyj91 > l
  3015  	} else {
  3016  		yyb91 = z.DecCheckBreak()
  3017  	}
  3018  	if yyb91 {
  3019  		z.DecReadArrayEnd()
  3020  		return
  3021  	}
  3022  	z.DecReadArrayElem()
  3023  	z.F.DecSliceFloat64X(&x.AnonInTestStruc.AF64slice, d)
  3024  	yyj91++
  3025  	if yyhl91 {
  3026  		yyb91 = yyj91 > l
  3027  	} else {
  3028  		yyb91 = z.DecCheckBreak()
  3029  	}
  3030  	if yyb91 {
  3031  		z.DecReadArrayEnd()
  3032  		return
  3033  	}
  3034  	z.DecReadArrayElem()
  3035  	z.F.DecSliceFloat32X(&x.AnonInTestStruc.AF32slice, d)
  3036  	yyj91++
  3037  	if yyhl91 {
  3038  		yyb91 = yyj91 > l
  3039  	} else {
  3040  		yyb91 = z.DecCheckBreak()
  3041  	}
  3042  	if yyb91 {
  3043  		z.DecReadArrayEnd()
  3044  		return
  3045  	}
  3046  	z.DecReadArrayElem()
  3047  	z.F.DecMapStringStringX(&x.AnonInTestStruc.AMSS, d)
  3048  	yyj91++
  3049  	if yyhl91 {
  3050  		yyb91 = yyj91 > l
  3051  	} else {
  3052  		yyb91 = z.DecCheckBreak()
  3053  	}
  3054  	if yyb91 {
  3055  		z.DecReadArrayEnd()
  3056  		return
  3057  	}
  3058  	z.DecReadArrayElem()
  3059  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64, d)
  3060  	yyj91++
  3061  	if yyhl91 {
  3062  		yyb91 = yyj91 > l
  3063  	} else {
  3064  		yyb91 = z.DecCheckBreak()
  3065  	}
  3066  	if yyb91 {
  3067  		z.DecReadArrayEnd()
  3068  		return
  3069  	}
  3070  	z.DecReadArrayElem()
  3071  	h.decArray8int64((*[8]int64)(&x.AnonInTestStruc.AI64arr8), d)
  3072  	yyj91++
  3073  	if yyhl91 {
  3074  		yyb91 = yyj91 > l
  3075  	} else {
  3076  		yyb91 = z.DecCheckBreak()
  3077  	}
  3078  	if yyb91 {
  3079  		z.DecReadArrayEnd()
  3080  		return
  3081  	}
  3082  	z.DecReadArrayElem()
  3083  	h.decArray0int64((*[0]int64)(&x.AnonInTestStruc.AI64arr0), d)
  3084  	yyj91++
  3085  	if yyhl91 {
  3086  		yyb91 = yyj91 > l
  3087  	} else {
  3088  		yyb91 = z.DecCheckBreak()
  3089  	}
  3090  	if yyb91 {
  3091  		z.DecReadArrayEnd()
  3092  		return
  3093  	}
  3094  	z.DecReadArrayElem()
  3095  	z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice0, d)
  3096  	yyj91++
  3097  	if yyhl91 {
  3098  		yyb91 = yyj91 > l
  3099  	} else {
  3100  		yyb91 = z.DecCheckBreak()
  3101  	}
  3102  	if yyb91 {
  3103  		z.DecReadArrayEnd()
  3104  		return
  3105  	}
  3106  	z.DecReadArrayElem()
  3107  	z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64sliceN, d)
  3108  	yyj91++
  3109  	if yyhl91 {
  3110  		yyb91 = yyj91 > l
  3111  	} else {
  3112  		yyb91 = z.DecCheckBreak()
  3113  	}
  3114  	if yyb91 {
  3115  		z.DecReadArrayEnd()
  3116  		return
  3117  	}
  3118  	z.DecReadArrayElem()
  3119  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64N, d)
  3120  	yyj91++
  3121  	if yyhl91 {
  3122  		yyb91 = yyj91 > l
  3123  	} else {
  3124  		yyb91 = z.DecCheckBreak()
  3125  	}
  3126  	if yyb91 {
  3127  		z.DecReadArrayEnd()
  3128  		return
  3129  	}
  3130  	z.DecReadArrayElem()
  3131  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64E, d)
  3132  	yyj91++
  3133  	if yyhl91 {
  3134  		yyb91 = yyj91 > l
  3135  	} else {
  3136  		yyb91 = z.DecCheckBreak()
  3137  	}
  3138  	if yyb91 {
  3139  		z.DecReadArrayEnd()
  3140  		return
  3141  	}
  3142  	z.DecReadArrayElem()
  3143  	if yyxt172 := z.Extension(x.NotAnon); yyxt172 != nil {
  3144  		z.DecExtension(&x.NotAnon, yyxt172)
  3145  	} else {
  3146  		x.NotAnon.CodecDecodeSelf(d)
  3147  	}
  3148  	yyj91++
  3149  	if yyhl91 {
  3150  		yyb91 = yyj91 > l
  3151  	} else {
  3152  		yyb91 = z.DecCheckBreak()
  3153  	}
  3154  	if yyb91 {
  3155  		z.DecReadArrayEnd()
  3156  		return
  3157  	}
  3158  	z.DecReadArrayElem()
  3159  	z.F.DecMapStringBoolX(&x.Nmap, d)
  3160  	yyj91++
  3161  	if yyhl91 {
  3162  		yyb91 = yyj91 > l
  3163  	} else {
  3164  		yyb91 = z.DecCheckBreak()
  3165  	}
  3166  	if yyb91 {
  3167  		z.DecReadArrayEnd()
  3168  		return
  3169  	}
  3170  	z.DecReadArrayElem()
  3171  	x.Nslice = z.DecodeBytesInto(([]byte)(x.Nslice))
  3172  	yyj91++
  3173  	if yyhl91 {
  3174  		yyb91 = yyj91 > l
  3175  	} else {
  3176  		yyb91 = z.DecCheckBreak()
  3177  	}
  3178  	if yyb91 {
  3179  		z.DecReadArrayEnd()
  3180  		return
  3181  	}
  3182  	z.DecReadArrayElem()
  3183  	if r.TryNil() {
  3184  		if x.Nint64 != nil { // remove the if-true
  3185  			x.Nint64 = nil
  3186  		}
  3187  	} else {
  3188  		if x.Nint64 == nil {
  3189  			x.Nint64 = new(int64)
  3190  		}
  3191  		*x.Nint64 = (int64)(r.DecodeInt64())
  3192  	}
  3193  	for {
  3194  		yyj91++
  3195  		if yyhl91 {
  3196  			yyb91 = yyj91 > l
  3197  		} else {
  3198  			yyb91 = z.DecCheckBreak()
  3199  		}
  3200  		if yyb91 {
  3201  			break
  3202  		}
  3203  		z.DecReadArrayElem()
  3204  		z.DecStructFieldNotFound(yyj91-1, "")
  3205  	}
  3206  }
  3207  
  3208  func (x *TestStrucCommon) IsCodecEmpty() bool {
  3209  	return !(x.S != "" || x.I64 != 0 || x.I32 != 0 || x.I16 != 0 || x.I8 != 0 || x.I64n != 0 || x.I32n != 0 || x.I16n != 0 || x.I8n != 0 || x.Ui64 != 0 || x.Ui32 != 0 || x.Ui16 != 0 || x.Ui8 != 0 || x.F64 != 0 || x.F32 != 0 || bool(x.B) || x.By != 0 || len(x.Sslice) != 0 || len(x.I64slice) != 0 || len(x.I32slice) != 0 || len(x.Ui64slice) != 0 || len(x.Ui8slice) != 0 || len(x.Bslice) != 0 || len(x.Byslice) != 0 || len(x.BytesSlice) != 0 || len(x.Iptrslice) != 0 || len(x.WrapSliceInt64) != 0 || len(x.WrapSliceString) != 0 || len(x.Msint) != 0 || len(x.Msbytes) != 0 || !(x.Simplef.IsCodecEmpty()) || len(x.SstrUi64T) != 0 || len(x.MstrUi64T) != 0 || !(x.AnonInTestStruc.IsCodecEmpty()) || !(x.NotAnon.IsCodecEmpty()) || len(x.Nmap) != 0 || len(x.Nslice) != 0 || false)
  3210  }
  3211  
  3212  func (TestStruc) codecSelferViaCodecgen() {}
  3213  func (x *TestStruc) CodecEncodeSelf(e *Encoder) {
  3214  	var h codecSelfer19780
  3215  	z, r := GenHelper().Encoder(e)
  3216  	_, _, _ = h, z, r
  3217  	if z.EncBasicHandle().CheckCircularRef {
  3218  		z.EncEncode(x)
  3219  		return
  3220  	}
  3221  	if x == nil {
  3222  		r.EncodeNil()
  3223  	} else {
  3224  		yy2arr2 := z.EncBasicHandle().StructToArray
  3225  		_ = yy2arr2
  3226  		const yyr2 bool = false // struct tag has 'toArray'
  3227  		var yyn56 bool = x.TestStrucCommon.Nint64 == nil
  3228  		var yyn60 bool = x.Nteststruc == nil
  3229  		if yyr2 || yy2arr2 {
  3230  			z.EncWriteArrayStart(58)
  3231  			z.EncWriteArrayElem()
  3232  			r.EncodeString(string(x.TestStrucCommon.S))
  3233  			z.EncWriteArrayElem()
  3234  			r.EncodeInt(int64(x.TestStrucCommon.I64))
  3235  			z.EncWriteArrayElem()
  3236  			r.EncodeInt(int64(x.TestStrucCommon.I32))
  3237  			z.EncWriteArrayElem()
  3238  			r.EncodeInt(int64(x.TestStrucCommon.I16))
  3239  			z.EncWriteArrayElem()
  3240  			r.EncodeInt(int64(x.TestStrucCommon.I8))
  3241  			z.EncWriteArrayElem()
  3242  			r.EncodeInt(int64(x.TestStrucCommon.I64n))
  3243  			z.EncWriteArrayElem()
  3244  			r.EncodeInt(int64(x.TestStrucCommon.I32n))
  3245  			z.EncWriteArrayElem()
  3246  			r.EncodeInt(int64(x.TestStrucCommon.I16n))
  3247  			z.EncWriteArrayElem()
  3248  			r.EncodeInt(int64(x.TestStrucCommon.I8n))
  3249  			z.EncWriteArrayElem()
  3250  			r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  3251  			z.EncWriteArrayElem()
  3252  			r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  3253  			z.EncWriteArrayElem()
  3254  			r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  3255  			z.EncWriteArrayElem()
  3256  			r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  3257  			z.EncWriteArrayElem()
  3258  			r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  3259  			z.EncWriteArrayElem()
  3260  			r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  3261  			z.EncWriteArrayElem()
  3262  			r.EncodeBool(bool(x.TestStrucCommon.B))
  3263  			z.EncWriteArrayElem()
  3264  			r.EncodeUint(uint64(x.TestStrucCommon.By))
  3265  			z.EncWriteArrayElem()
  3266  			if x.TestStrucCommon.Sslice == nil {
  3267  				r.EncodeNil()
  3268  			} else {
  3269  				z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  3270  			} // end block: if x.TestStrucCommon.Sslice slice == nil
  3271  			z.EncWriteArrayElem()
  3272  			if x.TestStrucCommon.I64slice == nil {
  3273  				r.EncodeNil()
  3274  			} else {
  3275  				z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  3276  			} // end block: if x.TestStrucCommon.I64slice slice == nil
  3277  			z.EncWriteArrayElem()
  3278  			if x.TestStrucCommon.I32slice == nil {
  3279  				r.EncodeNil()
  3280  			} else {
  3281  				z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  3282  			} // end block: if x.TestStrucCommon.I32slice slice == nil
  3283  			z.EncWriteArrayElem()
  3284  			if x.TestStrucCommon.Ui64slice == nil {
  3285  				r.EncodeNil()
  3286  			} else {
  3287  				z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  3288  			} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  3289  			z.EncWriteArrayElem()
  3290  			if x.TestStrucCommon.Ui8slice == nil {
  3291  				r.EncodeNil()
  3292  			} else {
  3293  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  3294  			} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  3295  			z.EncWriteArrayElem()
  3296  			if x.TestStrucCommon.Bslice == nil {
  3297  				r.EncodeNil()
  3298  			} else {
  3299  				z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  3300  			} // end block: if x.TestStrucCommon.Bslice slice == nil
  3301  			z.EncWriteArrayElem()
  3302  			if x.TestStrucCommon.Byslice == nil {
  3303  				r.EncodeNil()
  3304  			} else {
  3305  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  3306  			} // end block: if x.TestStrucCommon.Byslice slice == nil
  3307  			z.EncWriteArrayElem()
  3308  			if x.TestStrucCommon.BytesSlice == nil {
  3309  				r.EncodeNil()
  3310  			} else {
  3311  				z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  3312  			} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  3313  			z.EncWriteArrayElem()
  3314  			if x.TestStrucCommon.Iptrslice == nil {
  3315  				r.EncodeNil()
  3316  			} else {
  3317  				h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  3318  			} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  3319  			z.EncWriteArrayElem()
  3320  			if yyxt87 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt87 != nil {
  3321  				z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt87)
  3322  			} else {
  3323  				x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  3324  			}
  3325  			z.EncWriteArrayElem()
  3326  			if yyxt88 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt88 != nil {
  3327  				z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt88)
  3328  			} else {
  3329  				x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  3330  			}
  3331  			z.EncWriteArrayElem()
  3332  			if x.TestStrucCommon.Msint == nil {
  3333  				r.EncodeNil()
  3334  			} else {
  3335  				z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  3336  			} // end block: if x.TestStrucCommon.Msint map == nil
  3337  			z.EncWriteArrayElem()
  3338  			if x.TestStrucCommon.Msbytes == nil {
  3339  				r.EncodeNil()
  3340  			} else {
  3341  				z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  3342  			} // end block: if x.TestStrucCommon.Msbytes map == nil
  3343  			z.EncWriteArrayElem()
  3344  			yy91 := &x.TestStrucCommon.Simplef
  3345  			if yyxt92 := z.Extension(yy91); yyxt92 != nil {
  3346  				z.EncExtension(yy91, yyxt92)
  3347  			} else {
  3348  				yy91.CodecEncodeSelf(e)
  3349  			}
  3350  			z.EncWriteArrayElem()
  3351  			if x.TestStrucCommon.SstrUi64T == nil {
  3352  				r.EncodeNil()
  3353  			} else {
  3354  				h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  3355  			} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  3356  			z.EncWriteArrayElem()
  3357  			if x.TestStrucCommon.MstrUi64T == nil {
  3358  				r.EncodeNil()
  3359  			} else {
  3360  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  3361  			} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  3362  			z.EncWriteArrayElem()
  3363  			r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  3364  			z.EncWriteArrayElem()
  3365  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  3366  			z.EncWriteArrayElem()
  3367  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  3368  			z.EncWriteArrayElem()
  3369  			r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  3370  			z.EncWriteArrayElem()
  3371  			if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  3372  				r.EncodeNil()
  3373  			} else {
  3374  				z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  3375  			} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  3376  			z.EncWriteArrayElem()
  3377  			if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  3378  				r.EncodeNil()
  3379  			} else {
  3380  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  3381  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  3382  			z.EncWriteArrayElem()
  3383  			if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  3384  				r.EncodeNil()
  3385  			} else {
  3386  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  3387  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  3388  			z.EncWriteArrayElem()
  3389  			if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  3390  				r.EncodeNil()
  3391  			} else {
  3392  				z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  3393  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  3394  			z.EncWriteArrayElem()
  3395  			if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  3396  				r.EncodeNil()
  3397  			} else {
  3398  				z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  3399  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  3400  			z.EncWriteArrayElem()
  3401  			if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  3402  				r.EncodeNil()
  3403  			} else {
  3404  				z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  3405  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  3406  			z.EncWriteArrayElem()
  3407  			if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  3408  				r.EncodeNil()
  3409  			} else {
  3410  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  3411  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  3412  			z.EncWriteArrayElem()
  3413  			yy106 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  3414  			h.encArray8int64((*[8]int64)(yy106), e)
  3415  			z.EncWriteArrayElem()
  3416  			yy108 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  3417  			h.encArray0int64((*[0]int64)(yy108), e)
  3418  			z.EncWriteArrayElem()
  3419  			if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  3420  				r.EncodeNil()
  3421  			} else {
  3422  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  3423  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  3424  			z.EncWriteArrayElem()
  3425  			if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  3426  				r.EncodeNil()
  3427  			} else {
  3428  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  3429  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  3430  			z.EncWriteArrayElem()
  3431  			if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  3432  				r.EncodeNil()
  3433  			} else {
  3434  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  3435  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  3436  			z.EncWriteArrayElem()
  3437  			if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  3438  				r.EncodeNil()
  3439  			} else {
  3440  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  3441  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  3442  			z.EncWriteArrayElem()
  3443  			yy114 := &x.TestStrucCommon.NotAnon
  3444  			if yyxt115 := z.Extension(yy114); yyxt115 != nil {
  3445  				z.EncExtension(yy114, yyxt115)
  3446  			} else {
  3447  				yy114.CodecEncodeSelf(e)
  3448  			}
  3449  			z.EncWriteArrayElem()
  3450  			if x.TestStrucCommon.Nmap == nil {
  3451  				r.EncodeNil()
  3452  			} else {
  3453  				z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  3454  			} // end block: if x.TestStrucCommon.Nmap map == nil
  3455  			z.EncWriteArrayElem()
  3456  			if x.TestStrucCommon.Nslice == nil {
  3457  				r.EncodeNil()
  3458  			} else {
  3459  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  3460  			} // end block: if x.TestStrucCommon.Nslice slice == nil
  3461  			if yyn56 {
  3462  				z.EncWriteArrayElem()
  3463  				r.EncodeNil()
  3464  			} else {
  3465  				z.EncWriteArrayElem()
  3466  				yy118 := *x.TestStrucCommon.Nint64
  3467  				r.EncodeInt(int64(yy118))
  3468  			}
  3469  			z.EncWriteArrayElem()
  3470  			if x.Mtsptr == nil {
  3471  				r.EncodeNil()
  3472  			} else {
  3473  				h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
  3474  			} // end block: if x.Mtsptr map == nil
  3475  			z.EncWriteArrayElem()
  3476  			if x.Mts == nil {
  3477  				r.EncodeNil()
  3478  			} else {
  3479  				h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
  3480  			} // end block: if x.Mts map == nil
  3481  			z.EncWriteArrayElem()
  3482  			if x.Its == nil {
  3483  				r.EncodeNil()
  3484  			} else {
  3485  				h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
  3486  			} // end block: if x.Its slice == nil
  3487  			if yyn60 {
  3488  				z.EncWriteArrayElem()
  3489  				r.EncodeNil()
  3490  			} else {
  3491  				z.EncWriteArrayElem()
  3492  				if yyxt123 := z.Extension(x.Nteststruc); yyxt123 != nil {
  3493  					z.EncExtension(x.Nteststruc, yyxt123)
  3494  				} else {
  3495  					x.Nteststruc.CodecEncodeSelf(e)
  3496  				}
  3497  			}
  3498  			z.EncWriteArrayEnd()
  3499  		} else {
  3500  			z.EncWriteMapStart(58)
  3501  			z.EncWriteMapElemKey()
  3502  			if z.IsJSONHandle() {
  3503  				z.WriteStr("\"S\"")
  3504  			} else {
  3505  				r.EncodeString(`S`)
  3506  			}
  3507  			z.EncWriteMapElemValue()
  3508  			r.EncodeString(string(x.TestStrucCommon.S))
  3509  			z.EncWriteMapElemKey()
  3510  			if z.IsJSONHandle() {
  3511  				z.WriteStr("\"I64\"")
  3512  			} else {
  3513  				r.EncodeString(`I64`)
  3514  			}
  3515  			z.EncWriteMapElemValue()
  3516  			r.EncodeInt(int64(x.TestStrucCommon.I64))
  3517  			z.EncWriteMapElemKey()
  3518  			if z.IsJSONHandle() {
  3519  				z.WriteStr("\"I32\"")
  3520  			} else {
  3521  				r.EncodeString(`I32`)
  3522  			}
  3523  			z.EncWriteMapElemValue()
  3524  			r.EncodeInt(int64(x.TestStrucCommon.I32))
  3525  			z.EncWriteMapElemKey()
  3526  			if z.IsJSONHandle() {
  3527  				z.WriteStr("\"I16\"")
  3528  			} else {
  3529  				r.EncodeString(`I16`)
  3530  			}
  3531  			z.EncWriteMapElemValue()
  3532  			r.EncodeInt(int64(x.TestStrucCommon.I16))
  3533  			z.EncWriteMapElemKey()
  3534  			if z.IsJSONHandle() {
  3535  				z.WriteStr("\"I8\"")
  3536  			} else {
  3537  				r.EncodeString(`I8`)
  3538  			}
  3539  			z.EncWriteMapElemValue()
  3540  			r.EncodeInt(int64(x.TestStrucCommon.I8))
  3541  			z.EncWriteMapElemKey()
  3542  			if z.IsJSONHandle() {
  3543  				z.WriteStr("\"I64n\"")
  3544  			} else {
  3545  				r.EncodeString(`I64n`)
  3546  			}
  3547  			z.EncWriteMapElemValue()
  3548  			r.EncodeInt(int64(x.TestStrucCommon.I64n))
  3549  			z.EncWriteMapElemKey()
  3550  			if z.IsJSONHandle() {
  3551  				z.WriteStr("\"I32n\"")
  3552  			} else {
  3553  				r.EncodeString(`I32n`)
  3554  			}
  3555  			z.EncWriteMapElemValue()
  3556  			r.EncodeInt(int64(x.TestStrucCommon.I32n))
  3557  			z.EncWriteMapElemKey()
  3558  			if z.IsJSONHandle() {
  3559  				z.WriteStr("\"I16n\"")
  3560  			} else {
  3561  				r.EncodeString(`I16n`)
  3562  			}
  3563  			z.EncWriteMapElemValue()
  3564  			r.EncodeInt(int64(x.TestStrucCommon.I16n))
  3565  			z.EncWriteMapElemKey()
  3566  			if z.IsJSONHandle() {
  3567  				z.WriteStr("\"I8n\"")
  3568  			} else {
  3569  				r.EncodeString(`I8n`)
  3570  			}
  3571  			z.EncWriteMapElemValue()
  3572  			r.EncodeInt(int64(x.TestStrucCommon.I8n))
  3573  			z.EncWriteMapElemKey()
  3574  			if z.IsJSONHandle() {
  3575  				z.WriteStr("\"Ui64\"")
  3576  			} else {
  3577  				r.EncodeString(`Ui64`)
  3578  			}
  3579  			z.EncWriteMapElemValue()
  3580  			r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  3581  			z.EncWriteMapElemKey()
  3582  			if z.IsJSONHandle() {
  3583  				z.WriteStr("\"Ui32\"")
  3584  			} else {
  3585  				r.EncodeString(`Ui32`)
  3586  			}
  3587  			z.EncWriteMapElemValue()
  3588  			r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  3589  			z.EncWriteMapElemKey()
  3590  			if z.IsJSONHandle() {
  3591  				z.WriteStr("\"Ui16\"")
  3592  			} else {
  3593  				r.EncodeString(`Ui16`)
  3594  			}
  3595  			z.EncWriteMapElemValue()
  3596  			r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  3597  			z.EncWriteMapElemKey()
  3598  			if z.IsJSONHandle() {
  3599  				z.WriteStr("\"Ui8\"")
  3600  			} else {
  3601  				r.EncodeString(`Ui8`)
  3602  			}
  3603  			z.EncWriteMapElemValue()
  3604  			r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  3605  			z.EncWriteMapElemKey()
  3606  			if z.IsJSONHandle() {
  3607  				z.WriteStr("\"F64\"")
  3608  			} else {
  3609  				r.EncodeString(`F64`)
  3610  			}
  3611  			z.EncWriteMapElemValue()
  3612  			r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  3613  			z.EncWriteMapElemKey()
  3614  			if z.IsJSONHandle() {
  3615  				z.WriteStr("\"F32\"")
  3616  			} else {
  3617  				r.EncodeString(`F32`)
  3618  			}
  3619  			z.EncWriteMapElemValue()
  3620  			r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  3621  			z.EncWriteMapElemKey()
  3622  			if z.IsJSONHandle() {
  3623  				z.WriteStr("\"B\"")
  3624  			} else {
  3625  				r.EncodeString(`B`)
  3626  			}
  3627  			z.EncWriteMapElemValue()
  3628  			r.EncodeBool(bool(x.TestStrucCommon.B))
  3629  			z.EncWriteMapElemKey()
  3630  			if z.IsJSONHandle() {
  3631  				z.WriteStr("\"By\"")
  3632  			} else {
  3633  				r.EncodeString(`By`)
  3634  			}
  3635  			z.EncWriteMapElemValue()
  3636  			r.EncodeUint(uint64(x.TestStrucCommon.By))
  3637  			z.EncWriteMapElemKey()
  3638  			if z.IsJSONHandle() {
  3639  				z.WriteStr("\"Sslice\"")
  3640  			} else {
  3641  				r.EncodeString(`Sslice`)
  3642  			}
  3643  			z.EncWriteMapElemValue()
  3644  			if x.TestStrucCommon.Sslice == nil {
  3645  				r.EncodeNil()
  3646  			} else {
  3647  				z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  3648  			} // end block: if x.TestStrucCommon.Sslice slice == nil
  3649  			z.EncWriteMapElemKey()
  3650  			if z.IsJSONHandle() {
  3651  				z.WriteStr("\"I64slice\"")
  3652  			} else {
  3653  				r.EncodeString(`I64slice`)
  3654  			}
  3655  			z.EncWriteMapElemValue()
  3656  			if x.TestStrucCommon.I64slice == nil {
  3657  				r.EncodeNil()
  3658  			} else {
  3659  				z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  3660  			} // end block: if x.TestStrucCommon.I64slice slice == nil
  3661  			z.EncWriteMapElemKey()
  3662  			if z.IsJSONHandle() {
  3663  				z.WriteStr("\"I32slice\"")
  3664  			} else {
  3665  				r.EncodeString(`I32slice`)
  3666  			}
  3667  			z.EncWriteMapElemValue()
  3668  			if x.TestStrucCommon.I32slice == nil {
  3669  				r.EncodeNil()
  3670  			} else {
  3671  				z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  3672  			} // end block: if x.TestStrucCommon.I32slice slice == nil
  3673  			z.EncWriteMapElemKey()
  3674  			if z.IsJSONHandle() {
  3675  				z.WriteStr("\"Ui64slice\"")
  3676  			} else {
  3677  				r.EncodeString(`Ui64slice`)
  3678  			}
  3679  			z.EncWriteMapElemValue()
  3680  			if x.TestStrucCommon.Ui64slice == nil {
  3681  				r.EncodeNil()
  3682  			} else {
  3683  				z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  3684  			} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  3685  			z.EncWriteMapElemKey()
  3686  			if z.IsJSONHandle() {
  3687  				z.WriteStr("\"Ui8slice\"")
  3688  			} else {
  3689  				r.EncodeString(`Ui8slice`)
  3690  			}
  3691  			z.EncWriteMapElemValue()
  3692  			if x.TestStrucCommon.Ui8slice == nil {
  3693  				r.EncodeNil()
  3694  			} else {
  3695  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  3696  			} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  3697  			z.EncWriteMapElemKey()
  3698  			if z.IsJSONHandle() {
  3699  				z.WriteStr("\"Bslice\"")
  3700  			} else {
  3701  				r.EncodeString(`Bslice`)
  3702  			}
  3703  			z.EncWriteMapElemValue()
  3704  			if x.TestStrucCommon.Bslice == nil {
  3705  				r.EncodeNil()
  3706  			} else {
  3707  				z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  3708  			} // end block: if x.TestStrucCommon.Bslice slice == nil
  3709  			z.EncWriteMapElemKey()
  3710  			if z.IsJSONHandle() {
  3711  				z.WriteStr("\"Byslice\"")
  3712  			} else {
  3713  				r.EncodeString(`Byslice`)
  3714  			}
  3715  			z.EncWriteMapElemValue()
  3716  			if x.TestStrucCommon.Byslice == nil {
  3717  				r.EncodeNil()
  3718  			} else {
  3719  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  3720  			} // end block: if x.TestStrucCommon.Byslice slice == nil
  3721  			z.EncWriteMapElemKey()
  3722  			if z.IsJSONHandle() {
  3723  				z.WriteStr("\"BytesSlice\"")
  3724  			} else {
  3725  				r.EncodeString(`BytesSlice`)
  3726  			}
  3727  			z.EncWriteMapElemValue()
  3728  			if x.TestStrucCommon.BytesSlice == nil {
  3729  				r.EncodeNil()
  3730  			} else {
  3731  				z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  3732  			} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  3733  			z.EncWriteMapElemKey()
  3734  			if z.IsJSONHandle() {
  3735  				z.WriteStr("\"Iptrslice\"")
  3736  			} else {
  3737  				r.EncodeString(`Iptrslice`)
  3738  			}
  3739  			z.EncWriteMapElemValue()
  3740  			if x.TestStrucCommon.Iptrslice == nil {
  3741  				r.EncodeNil()
  3742  			} else {
  3743  				h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  3744  			} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  3745  			z.EncWriteMapElemKey()
  3746  			if z.IsJSONHandle() {
  3747  				z.WriteStr("\"WrapSliceInt64\"")
  3748  			} else {
  3749  				r.EncodeString(`WrapSliceInt64`)
  3750  			}
  3751  			z.EncWriteMapElemValue()
  3752  			if yyxt150 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt150 != nil {
  3753  				z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt150)
  3754  			} else {
  3755  				x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  3756  			}
  3757  			z.EncWriteMapElemKey()
  3758  			if z.IsJSONHandle() {
  3759  				z.WriteStr("\"WrapSliceString\"")
  3760  			} else {
  3761  				r.EncodeString(`WrapSliceString`)
  3762  			}
  3763  			z.EncWriteMapElemValue()
  3764  			if yyxt151 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt151 != nil {
  3765  				z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt151)
  3766  			} else {
  3767  				x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  3768  			}
  3769  			z.EncWriteMapElemKey()
  3770  			if z.IsJSONHandle() {
  3771  				z.WriteStr("\"Msint\"")
  3772  			} else {
  3773  				r.EncodeString(`Msint`)
  3774  			}
  3775  			z.EncWriteMapElemValue()
  3776  			if x.TestStrucCommon.Msint == nil {
  3777  				r.EncodeNil()
  3778  			} else {
  3779  				z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  3780  			} // end block: if x.TestStrucCommon.Msint map == nil
  3781  			z.EncWriteMapElemKey()
  3782  			if z.IsJSONHandle() {
  3783  				z.WriteStr("\"Msbytes\"")
  3784  			} else {
  3785  				r.EncodeString(`Msbytes`)
  3786  			}
  3787  			z.EncWriteMapElemValue()
  3788  			if x.TestStrucCommon.Msbytes == nil {
  3789  				r.EncodeNil()
  3790  			} else {
  3791  				z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  3792  			} // end block: if x.TestStrucCommon.Msbytes map == nil
  3793  			z.EncWriteMapElemKey()
  3794  			if z.IsJSONHandle() {
  3795  				z.WriteStr("\"Simplef\"")
  3796  			} else {
  3797  				r.EncodeString(`Simplef`)
  3798  			}
  3799  			z.EncWriteMapElemValue()
  3800  			yy154 := &x.TestStrucCommon.Simplef
  3801  			if yyxt155 := z.Extension(yy154); yyxt155 != nil {
  3802  				z.EncExtension(yy154, yyxt155)
  3803  			} else {
  3804  				yy154.CodecEncodeSelf(e)
  3805  			}
  3806  			z.EncWriteMapElemKey()
  3807  			if z.IsJSONHandle() {
  3808  				z.WriteStr("\"SstrUi64T\"")
  3809  			} else {
  3810  				r.EncodeString(`SstrUi64T`)
  3811  			}
  3812  			z.EncWriteMapElemValue()
  3813  			if x.TestStrucCommon.SstrUi64T == nil {
  3814  				r.EncodeNil()
  3815  			} else {
  3816  				h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  3817  			} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  3818  			z.EncWriteMapElemKey()
  3819  			if z.IsJSONHandle() {
  3820  				z.WriteStr("\"MstrUi64T\"")
  3821  			} else {
  3822  				r.EncodeString(`MstrUi64T`)
  3823  			}
  3824  			z.EncWriteMapElemValue()
  3825  			if x.TestStrucCommon.MstrUi64T == nil {
  3826  				r.EncodeNil()
  3827  			} else {
  3828  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  3829  			} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  3830  			z.EncWriteMapElemKey()
  3831  			if z.IsJSONHandle() {
  3832  				z.WriteStr("\"AS\"")
  3833  			} else {
  3834  				r.EncodeString(`AS`)
  3835  			}
  3836  			z.EncWriteMapElemValue()
  3837  			r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  3838  			z.EncWriteMapElemKey()
  3839  			if z.IsJSONHandle() {
  3840  				z.WriteStr("\"AI64\"")
  3841  			} else {
  3842  				r.EncodeString(`AI64`)
  3843  			}
  3844  			z.EncWriteMapElemValue()
  3845  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  3846  			z.EncWriteMapElemKey()
  3847  			if z.IsJSONHandle() {
  3848  				z.WriteStr("\"AI16\"")
  3849  			} else {
  3850  				r.EncodeString(`AI16`)
  3851  			}
  3852  			z.EncWriteMapElemValue()
  3853  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  3854  			z.EncWriteMapElemKey()
  3855  			if z.IsJSONHandle() {
  3856  				z.WriteStr("\"AUi64\"")
  3857  			} else {
  3858  				r.EncodeString(`AUi64`)
  3859  			}
  3860  			z.EncWriteMapElemValue()
  3861  			r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  3862  			z.EncWriteMapElemKey()
  3863  			if z.IsJSONHandle() {
  3864  				z.WriteStr("\"ASslice\"")
  3865  			} else {
  3866  				r.EncodeString(`ASslice`)
  3867  			}
  3868  			z.EncWriteMapElemValue()
  3869  			if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  3870  				r.EncodeNil()
  3871  			} else {
  3872  				z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  3873  			} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  3874  			z.EncWriteMapElemKey()
  3875  			if z.IsJSONHandle() {
  3876  				z.WriteStr("\"AI64slice\"")
  3877  			} else {
  3878  				r.EncodeString(`AI64slice`)
  3879  			}
  3880  			z.EncWriteMapElemValue()
  3881  			if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  3882  				r.EncodeNil()
  3883  			} else {
  3884  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  3885  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  3886  			z.EncWriteMapElemKey()
  3887  			if z.IsJSONHandle() {
  3888  				z.WriteStr("\"AUi64slice\"")
  3889  			} else {
  3890  				r.EncodeString(`AUi64slice`)
  3891  			}
  3892  			z.EncWriteMapElemValue()
  3893  			if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  3894  				r.EncodeNil()
  3895  			} else {
  3896  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  3897  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  3898  			z.EncWriteMapElemKey()
  3899  			if z.IsJSONHandle() {
  3900  				z.WriteStr("\"AF64slice\"")
  3901  			} else {
  3902  				r.EncodeString(`AF64slice`)
  3903  			}
  3904  			z.EncWriteMapElemValue()
  3905  			if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  3906  				r.EncodeNil()
  3907  			} else {
  3908  				z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  3909  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  3910  			z.EncWriteMapElemKey()
  3911  			if z.IsJSONHandle() {
  3912  				z.WriteStr("\"AF32slice\"")
  3913  			} else {
  3914  				r.EncodeString(`AF32slice`)
  3915  			}
  3916  			z.EncWriteMapElemValue()
  3917  			if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  3918  				r.EncodeNil()
  3919  			} else {
  3920  				z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  3921  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  3922  			z.EncWriteMapElemKey()
  3923  			if z.IsJSONHandle() {
  3924  				z.WriteStr("\"AMSS\"")
  3925  			} else {
  3926  				r.EncodeString(`AMSS`)
  3927  			}
  3928  			z.EncWriteMapElemValue()
  3929  			if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  3930  				r.EncodeNil()
  3931  			} else {
  3932  				z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  3933  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  3934  			z.EncWriteMapElemKey()
  3935  			if z.IsJSONHandle() {
  3936  				z.WriteStr("\"AMSU64\"")
  3937  			} else {
  3938  				r.EncodeString(`AMSU64`)
  3939  			}
  3940  			z.EncWriteMapElemValue()
  3941  			if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  3942  				r.EncodeNil()
  3943  			} else {
  3944  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  3945  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  3946  			z.EncWriteMapElemKey()
  3947  			if z.IsJSONHandle() {
  3948  				z.WriteStr("\"AI64arr8\"")
  3949  			} else {
  3950  				r.EncodeString(`AI64arr8`)
  3951  			}
  3952  			z.EncWriteMapElemValue()
  3953  			yy169 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  3954  			h.encArray8int64((*[8]int64)(yy169), e)
  3955  			z.EncWriteMapElemKey()
  3956  			if z.IsJSONHandle() {
  3957  				z.WriteStr("\"AI64arr0\"")
  3958  			} else {
  3959  				r.EncodeString(`AI64arr0`)
  3960  			}
  3961  			z.EncWriteMapElemValue()
  3962  			yy171 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  3963  			h.encArray0int64((*[0]int64)(yy171), e)
  3964  			z.EncWriteMapElemKey()
  3965  			if z.IsJSONHandle() {
  3966  				z.WriteStr("\"AI64slice0\"")
  3967  			} else {
  3968  				r.EncodeString(`AI64slice0`)
  3969  			}
  3970  			z.EncWriteMapElemValue()
  3971  			if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  3972  				r.EncodeNil()
  3973  			} else {
  3974  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  3975  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  3976  			z.EncWriteMapElemKey()
  3977  			if z.IsJSONHandle() {
  3978  				z.WriteStr("\"AUi64sliceN\"")
  3979  			} else {
  3980  				r.EncodeString(`AUi64sliceN`)
  3981  			}
  3982  			z.EncWriteMapElemValue()
  3983  			if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  3984  				r.EncodeNil()
  3985  			} else {
  3986  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  3987  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  3988  			z.EncWriteMapElemKey()
  3989  			if z.IsJSONHandle() {
  3990  				z.WriteStr("\"AMSU64N\"")
  3991  			} else {
  3992  				r.EncodeString(`AMSU64N`)
  3993  			}
  3994  			z.EncWriteMapElemValue()
  3995  			if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  3996  				r.EncodeNil()
  3997  			} else {
  3998  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  3999  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  4000  			z.EncWriteMapElemKey()
  4001  			if z.IsJSONHandle() {
  4002  				z.WriteStr("\"AMSU64E\"")
  4003  			} else {
  4004  				r.EncodeString(`AMSU64E`)
  4005  			}
  4006  			z.EncWriteMapElemValue()
  4007  			if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  4008  				r.EncodeNil()
  4009  			} else {
  4010  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  4011  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  4012  			z.EncWriteMapElemKey()
  4013  			if z.IsJSONHandle() {
  4014  				z.WriteStr("\"NotAnon\"")
  4015  			} else {
  4016  				r.EncodeString(`NotAnon`)
  4017  			}
  4018  			z.EncWriteMapElemValue()
  4019  			yy177 := &x.TestStrucCommon.NotAnon
  4020  			if yyxt178 := z.Extension(yy177); yyxt178 != nil {
  4021  				z.EncExtension(yy177, yyxt178)
  4022  			} else {
  4023  				yy177.CodecEncodeSelf(e)
  4024  			}
  4025  			z.EncWriteMapElemKey()
  4026  			if z.IsJSONHandle() {
  4027  				z.WriteStr("\"Nmap\"")
  4028  			} else {
  4029  				r.EncodeString(`Nmap`)
  4030  			}
  4031  			z.EncWriteMapElemValue()
  4032  			if x.TestStrucCommon.Nmap == nil {
  4033  				r.EncodeNil()
  4034  			} else {
  4035  				z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  4036  			} // end block: if x.TestStrucCommon.Nmap map == nil
  4037  			z.EncWriteMapElemKey()
  4038  			if z.IsJSONHandle() {
  4039  				z.WriteStr("\"Nslice\"")
  4040  			} else {
  4041  				r.EncodeString(`Nslice`)
  4042  			}
  4043  			z.EncWriteMapElemValue()
  4044  			if x.TestStrucCommon.Nslice == nil {
  4045  				r.EncodeNil()
  4046  			} else {
  4047  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  4048  			} // end block: if x.TestStrucCommon.Nslice slice == nil
  4049  			z.EncWriteMapElemKey()
  4050  			if z.IsJSONHandle() {
  4051  				z.WriteStr("\"Nint64\"")
  4052  			} else {
  4053  				r.EncodeString(`Nint64`)
  4054  			}
  4055  			z.EncWriteMapElemValue()
  4056  			if yyn56 {
  4057  				r.EncodeNil()
  4058  			} else {
  4059  				yy181 := *x.TestStrucCommon.Nint64
  4060  				r.EncodeInt(int64(yy181))
  4061  			}
  4062  			z.EncWriteMapElemKey()
  4063  			if z.IsJSONHandle() {
  4064  				z.WriteStr("\"Mtsptr\"")
  4065  			} else {
  4066  				r.EncodeString(`Mtsptr`)
  4067  			}
  4068  			z.EncWriteMapElemValue()
  4069  			if x.Mtsptr == nil {
  4070  				r.EncodeNil()
  4071  			} else {
  4072  				h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
  4073  			} // end block: if x.Mtsptr map == nil
  4074  			z.EncWriteMapElemKey()
  4075  			if z.IsJSONHandle() {
  4076  				z.WriteStr("\"Mts\"")
  4077  			} else {
  4078  				r.EncodeString(`Mts`)
  4079  			}
  4080  			z.EncWriteMapElemValue()
  4081  			if x.Mts == nil {
  4082  				r.EncodeNil()
  4083  			} else {
  4084  				h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
  4085  			} // end block: if x.Mts map == nil
  4086  			z.EncWriteMapElemKey()
  4087  			if z.IsJSONHandle() {
  4088  				z.WriteStr("\"Its\"")
  4089  			} else {
  4090  				r.EncodeString(`Its`)
  4091  			}
  4092  			z.EncWriteMapElemValue()
  4093  			if x.Its == nil {
  4094  				r.EncodeNil()
  4095  			} else {
  4096  				h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
  4097  			} // end block: if x.Its slice == nil
  4098  			z.EncWriteMapElemKey()
  4099  			if z.IsJSONHandle() {
  4100  				z.WriteStr("\"Nteststruc\"")
  4101  			} else {
  4102  				r.EncodeString(`Nteststruc`)
  4103  			}
  4104  			z.EncWriteMapElemValue()
  4105  			if yyn60 {
  4106  				r.EncodeNil()
  4107  			} else {
  4108  				if yyxt186 := z.Extension(x.Nteststruc); yyxt186 != nil {
  4109  					z.EncExtension(x.Nteststruc, yyxt186)
  4110  				} else {
  4111  					x.Nteststruc.CodecEncodeSelf(e)
  4112  				}
  4113  			}
  4114  			z.EncWriteMapEnd()
  4115  		}
  4116  	}
  4117  }
  4118  
  4119  func (x *TestStruc) CodecDecodeSelf(d *Decoder) {
  4120  	var h codecSelfer19780
  4121  	z, r := GenHelper().Decoder(d)
  4122  	_, _, _ = h, z, r
  4123  	yyct2 := r.ContainerType()
  4124  	if yyct2 == codecSelferValueTypeNil19780 {
  4125  		*(x) = TestStruc{}
  4126  	} else if yyct2 == codecSelferValueTypeMap19780 {
  4127  		yyl2 := z.DecReadMapStart()
  4128  		if yyl2 == 0 {
  4129  		} else {
  4130  			x.codecDecodeSelfFromMap(yyl2, d)
  4131  		}
  4132  		z.DecReadMapEnd()
  4133  	} else if yyct2 == codecSelferValueTypeArray19780 {
  4134  		yyl2 := z.DecReadArrayStart()
  4135  		if yyl2 != 0 {
  4136  			x.codecDecodeSelfFromArray(yyl2, d)
  4137  		}
  4138  		z.DecReadArrayEnd()
  4139  	} else {
  4140  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  4141  	}
  4142  }
  4143  
  4144  func (x *TestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
  4145  	var h codecSelfer19780
  4146  	z, r := GenHelper().Decoder(d)
  4147  	_, _, _ = h, z, r
  4148  	var yyhl3 bool = l >= 0
  4149  	for yyj3 := 0; ; yyj3++ {
  4150  		if yyhl3 {
  4151  			if yyj3 >= l {
  4152  				break
  4153  			}
  4154  		} else {
  4155  			if z.DecCheckBreak() {
  4156  				break
  4157  			}
  4158  		}
  4159  		z.DecReadMapElemKey()
  4160  		yys3 := r.DecodeStringAsBytes()
  4161  		z.DecReadMapElemValue()
  4162  		switch string(yys3) {
  4163  		case "S":
  4164  			x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  4165  		case "I64":
  4166  			x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
  4167  		case "I32":
  4168  			x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  4169  		case "I16":
  4170  			x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4171  		case "I8":
  4172  			x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  4173  		case "I64n":
  4174  			x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
  4175  		case "I32n":
  4176  			x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  4177  		case "I16n":
  4178  			x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4179  		case "I8n":
  4180  			x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  4181  		case "Ui64":
  4182  			x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
  4183  		case "Ui32":
  4184  			x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  4185  		case "Ui16":
  4186  			x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  4187  		case "Ui8":
  4188  			x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  4189  		case "F64":
  4190  			x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
  4191  		case "F32":
  4192  			x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
  4193  		case "B":
  4194  			x.TestStrucCommon.B = (bool)(r.DecodeBool())
  4195  		case "By":
  4196  			x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  4197  		case "Sslice":
  4198  			z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
  4199  		case "I64slice":
  4200  			z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
  4201  		case "I32slice":
  4202  			z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
  4203  		case "Ui64slice":
  4204  			z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
  4205  		case "Ui8slice":
  4206  			x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
  4207  		case "Bslice":
  4208  			z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
  4209  		case "Byslice":
  4210  			x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
  4211  		case "BytesSlice":
  4212  			z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
  4213  		case "Iptrslice":
  4214  			h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
  4215  		case "WrapSliceInt64":
  4216  			if yyxt40 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt40 != nil {
  4217  				z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt40)
  4218  			} else {
  4219  				x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
  4220  			}
  4221  		case "WrapSliceString":
  4222  			if yyxt42 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt42 != nil {
  4223  				z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt42)
  4224  			} else {
  4225  				x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
  4226  			}
  4227  		case "Msint":
  4228  			z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
  4229  		case "Msbytes":
  4230  			z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
  4231  		case "Simplef":
  4232  			if yyxt48 := z.Extension(x.TestStrucCommon.Simplef); yyxt48 != nil {
  4233  				z.DecExtension(&x.TestStrucCommon.Simplef, yyxt48)
  4234  			} else {
  4235  				x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
  4236  			}
  4237  		case "SstrUi64T":
  4238  			h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
  4239  		case "MstrUi64T":
  4240  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
  4241  		case "AS":
  4242  			x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  4243  		case "AI64":
  4244  			x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  4245  		case "AI16":
  4246  			x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4247  		case "AUi64":
  4248  			x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  4249  		case "ASslice":
  4250  			z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
  4251  		case "AI64slice":
  4252  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
  4253  		case "AUi64slice":
  4254  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
  4255  		case "AF64slice":
  4256  			z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
  4257  		case "AF32slice":
  4258  			z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
  4259  		case "AMSS":
  4260  			z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
  4261  		case "AMSU64":
  4262  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
  4263  		case "AI64arr8":
  4264  			h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
  4265  		case "AI64arr0":
  4266  			h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
  4267  		case "AI64slice0":
  4268  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
  4269  		case "AUi64sliceN":
  4270  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
  4271  		case "AMSU64N":
  4272  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
  4273  		case "AMSU64E":
  4274  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
  4275  		case "NotAnon":
  4276  			if yyxt84 := z.Extension(x.TestStrucCommon.NotAnon); yyxt84 != nil {
  4277  				z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt84)
  4278  			} else {
  4279  				x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
  4280  			}
  4281  		case "Nmap":
  4282  			z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
  4283  		case "Nslice":
  4284  			x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
  4285  		case "Nint64":
  4286  			if r.TryNil() {
  4287  				if x.TestStrucCommon.Nint64 != nil { // remove the if-true
  4288  					x.TestStrucCommon.Nint64 = nil
  4289  				}
  4290  			} else {
  4291  				if x.TestStrucCommon.Nint64 == nil {
  4292  					x.TestStrucCommon.Nint64 = new(int64)
  4293  				}
  4294  				*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
  4295  			}
  4296  		case "Mtsptr":
  4297  			h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
  4298  		case "Mts":
  4299  			h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
  4300  		case "Its":
  4301  			h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
  4302  		case "Nteststruc":
  4303  			if r.TryNil() {
  4304  				if x.Nteststruc != nil { // remove the if-true
  4305  					x.Nteststruc = nil
  4306  				}
  4307  			} else {
  4308  				if x.Nteststruc == nil {
  4309  					x.Nteststruc = new(TestStruc)
  4310  				}
  4311  				if yyxt98 := z.Extension(x.Nteststruc); yyxt98 != nil {
  4312  					z.DecExtension(x.Nteststruc, yyxt98)
  4313  				} else {
  4314  					x.Nteststruc.CodecDecodeSelf(d)
  4315  				}
  4316  			}
  4317  		default:
  4318  			z.DecStructFieldNotFound(-1, string(yys3))
  4319  		} // end switch yys3
  4320  	} // end for yyj3
  4321  }
  4322  
  4323  func (x *TestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
  4324  	var h codecSelfer19780
  4325  	z, r := GenHelper().Decoder(d)
  4326  	_, _, _ = h, z, r
  4327  	var yyj99 int
  4328  	var yyb99 bool
  4329  	var yyhl99 bool = l >= 0
  4330  	yyj99++
  4331  	if yyhl99 {
  4332  		yyb99 = yyj99 > l
  4333  	} else {
  4334  		yyb99 = z.DecCheckBreak()
  4335  	}
  4336  	if yyb99 {
  4337  		z.DecReadArrayEnd()
  4338  		return
  4339  	}
  4340  	z.DecReadArrayElem()
  4341  	x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  4342  	yyj99++
  4343  	if yyhl99 {
  4344  		yyb99 = yyj99 > l
  4345  	} else {
  4346  		yyb99 = z.DecCheckBreak()
  4347  	}
  4348  	if yyb99 {
  4349  		z.DecReadArrayEnd()
  4350  		return
  4351  	}
  4352  	z.DecReadArrayElem()
  4353  	x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
  4354  	yyj99++
  4355  	if yyhl99 {
  4356  		yyb99 = yyj99 > l
  4357  	} else {
  4358  		yyb99 = z.DecCheckBreak()
  4359  	}
  4360  	if yyb99 {
  4361  		z.DecReadArrayEnd()
  4362  		return
  4363  	}
  4364  	z.DecReadArrayElem()
  4365  	x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  4366  	yyj99++
  4367  	if yyhl99 {
  4368  		yyb99 = yyj99 > l
  4369  	} else {
  4370  		yyb99 = z.DecCheckBreak()
  4371  	}
  4372  	if yyb99 {
  4373  		z.DecReadArrayEnd()
  4374  		return
  4375  	}
  4376  	z.DecReadArrayElem()
  4377  	x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4378  	yyj99++
  4379  	if yyhl99 {
  4380  		yyb99 = yyj99 > l
  4381  	} else {
  4382  		yyb99 = z.DecCheckBreak()
  4383  	}
  4384  	if yyb99 {
  4385  		z.DecReadArrayEnd()
  4386  		return
  4387  	}
  4388  	z.DecReadArrayElem()
  4389  	x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  4390  	yyj99++
  4391  	if yyhl99 {
  4392  		yyb99 = yyj99 > l
  4393  	} else {
  4394  		yyb99 = z.DecCheckBreak()
  4395  	}
  4396  	if yyb99 {
  4397  		z.DecReadArrayEnd()
  4398  		return
  4399  	}
  4400  	z.DecReadArrayElem()
  4401  	x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
  4402  	yyj99++
  4403  	if yyhl99 {
  4404  		yyb99 = yyj99 > l
  4405  	} else {
  4406  		yyb99 = z.DecCheckBreak()
  4407  	}
  4408  	if yyb99 {
  4409  		z.DecReadArrayEnd()
  4410  		return
  4411  	}
  4412  	z.DecReadArrayElem()
  4413  	x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  4414  	yyj99++
  4415  	if yyhl99 {
  4416  		yyb99 = yyj99 > l
  4417  	} else {
  4418  		yyb99 = z.DecCheckBreak()
  4419  	}
  4420  	if yyb99 {
  4421  		z.DecReadArrayEnd()
  4422  		return
  4423  	}
  4424  	z.DecReadArrayElem()
  4425  	x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4426  	yyj99++
  4427  	if yyhl99 {
  4428  		yyb99 = yyj99 > l
  4429  	} else {
  4430  		yyb99 = z.DecCheckBreak()
  4431  	}
  4432  	if yyb99 {
  4433  		z.DecReadArrayEnd()
  4434  		return
  4435  	}
  4436  	z.DecReadArrayElem()
  4437  	x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  4438  	yyj99++
  4439  	if yyhl99 {
  4440  		yyb99 = yyj99 > l
  4441  	} else {
  4442  		yyb99 = z.DecCheckBreak()
  4443  	}
  4444  	if yyb99 {
  4445  		z.DecReadArrayEnd()
  4446  		return
  4447  	}
  4448  	z.DecReadArrayElem()
  4449  	x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
  4450  	yyj99++
  4451  	if yyhl99 {
  4452  		yyb99 = yyj99 > l
  4453  	} else {
  4454  		yyb99 = z.DecCheckBreak()
  4455  	}
  4456  	if yyb99 {
  4457  		z.DecReadArrayEnd()
  4458  		return
  4459  	}
  4460  	z.DecReadArrayElem()
  4461  	x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  4462  	yyj99++
  4463  	if yyhl99 {
  4464  		yyb99 = yyj99 > l
  4465  	} else {
  4466  		yyb99 = z.DecCheckBreak()
  4467  	}
  4468  	if yyb99 {
  4469  		z.DecReadArrayEnd()
  4470  		return
  4471  	}
  4472  	z.DecReadArrayElem()
  4473  	x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  4474  	yyj99++
  4475  	if yyhl99 {
  4476  		yyb99 = yyj99 > l
  4477  	} else {
  4478  		yyb99 = z.DecCheckBreak()
  4479  	}
  4480  	if yyb99 {
  4481  		z.DecReadArrayEnd()
  4482  		return
  4483  	}
  4484  	z.DecReadArrayElem()
  4485  	x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  4486  	yyj99++
  4487  	if yyhl99 {
  4488  		yyb99 = yyj99 > l
  4489  	} else {
  4490  		yyb99 = z.DecCheckBreak()
  4491  	}
  4492  	if yyb99 {
  4493  		z.DecReadArrayEnd()
  4494  		return
  4495  	}
  4496  	z.DecReadArrayElem()
  4497  	x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
  4498  	yyj99++
  4499  	if yyhl99 {
  4500  		yyb99 = yyj99 > l
  4501  	} else {
  4502  		yyb99 = z.DecCheckBreak()
  4503  	}
  4504  	if yyb99 {
  4505  		z.DecReadArrayEnd()
  4506  		return
  4507  	}
  4508  	z.DecReadArrayElem()
  4509  	x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
  4510  	yyj99++
  4511  	if yyhl99 {
  4512  		yyb99 = yyj99 > l
  4513  	} else {
  4514  		yyb99 = z.DecCheckBreak()
  4515  	}
  4516  	if yyb99 {
  4517  		z.DecReadArrayEnd()
  4518  		return
  4519  	}
  4520  	z.DecReadArrayElem()
  4521  	x.TestStrucCommon.B = (bool)(r.DecodeBool())
  4522  	yyj99++
  4523  	if yyhl99 {
  4524  		yyb99 = yyj99 > l
  4525  	} else {
  4526  		yyb99 = z.DecCheckBreak()
  4527  	}
  4528  	if yyb99 {
  4529  		z.DecReadArrayEnd()
  4530  		return
  4531  	}
  4532  	z.DecReadArrayElem()
  4533  	x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  4534  	yyj99++
  4535  	if yyhl99 {
  4536  		yyb99 = yyj99 > l
  4537  	} else {
  4538  		yyb99 = z.DecCheckBreak()
  4539  	}
  4540  	if yyb99 {
  4541  		z.DecReadArrayEnd()
  4542  		return
  4543  	}
  4544  	z.DecReadArrayElem()
  4545  	z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
  4546  	yyj99++
  4547  	if yyhl99 {
  4548  		yyb99 = yyj99 > l
  4549  	} else {
  4550  		yyb99 = z.DecCheckBreak()
  4551  	}
  4552  	if yyb99 {
  4553  		z.DecReadArrayEnd()
  4554  		return
  4555  	}
  4556  	z.DecReadArrayElem()
  4557  	z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
  4558  	yyj99++
  4559  	if yyhl99 {
  4560  		yyb99 = yyj99 > l
  4561  	} else {
  4562  		yyb99 = z.DecCheckBreak()
  4563  	}
  4564  	if yyb99 {
  4565  		z.DecReadArrayEnd()
  4566  		return
  4567  	}
  4568  	z.DecReadArrayElem()
  4569  	z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
  4570  	yyj99++
  4571  	if yyhl99 {
  4572  		yyb99 = yyj99 > l
  4573  	} else {
  4574  		yyb99 = z.DecCheckBreak()
  4575  	}
  4576  	if yyb99 {
  4577  		z.DecReadArrayEnd()
  4578  		return
  4579  	}
  4580  	z.DecReadArrayElem()
  4581  	z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
  4582  	yyj99++
  4583  	if yyhl99 {
  4584  		yyb99 = yyj99 > l
  4585  	} else {
  4586  		yyb99 = z.DecCheckBreak()
  4587  	}
  4588  	if yyb99 {
  4589  		z.DecReadArrayEnd()
  4590  		return
  4591  	}
  4592  	z.DecReadArrayElem()
  4593  	x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
  4594  	yyj99++
  4595  	if yyhl99 {
  4596  		yyb99 = yyj99 > l
  4597  	} else {
  4598  		yyb99 = z.DecCheckBreak()
  4599  	}
  4600  	if yyb99 {
  4601  		z.DecReadArrayEnd()
  4602  		return
  4603  	}
  4604  	z.DecReadArrayElem()
  4605  	z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
  4606  	yyj99++
  4607  	if yyhl99 {
  4608  		yyb99 = yyj99 > l
  4609  	} else {
  4610  		yyb99 = z.DecCheckBreak()
  4611  	}
  4612  	if yyb99 {
  4613  		z.DecReadArrayEnd()
  4614  		return
  4615  	}
  4616  	z.DecReadArrayElem()
  4617  	x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
  4618  	yyj99++
  4619  	if yyhl99 {
  4620  		yyb99 = yyj99 > l
  4621  	} else {
  4622  		yyb99 = z.DecCheckBreak()
  4623  	}
  4624  	if yyb99 {
  4625  		z.DecReadArrayEnd()
  4626  		return
  4627  	}
  4628  	z.DecReadArrayElem()
  4629  	z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
  4630  	yyj99++
  4631  	if yyhl99 {
  4632  		yyb99 = yyj99 > l
  4633  	} else {
  4634  		yyb99 = z.DecCheckBreak()
  4635  	}
  4636  	if yyb99 {
  4637  		z.DecReadArrayEnd()
  4638  		return
  4639  	}
  4640  	z.DecReadArrayElem()
  4641  	h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
  4642  	yyj99++
  4643  	if yyhl99 {
  4644  		yyb99 = yyj99 > l
  4645  	} else {
  4646  		yyb99 = z.DecCheckBreak()
  4647  	}
  4648  	if yyb99 {
  4649  		z.DecReadArrayEnd()
  4650  		return
  4651  	}
  4652  	z.DecReadArrayElem()
  4653  	if yyxt136 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt136 != nil {
  4654  		z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt136)
  4655  	} else {
  4656  		x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
  4657  	}
  4658  	yyj99++
  4659  	if yyhl99 {
  4660  		yyb99 = yyj99 > l
  4661  	} else {
  4662  		yyb99 = z.DecCheckBreak()
  4663  	}
  4664  	if yyb99 {
  4665  		z.DecReadArrayEnd()
  4666  		return
  4667  	}
  4668  	z.DecReadArrayElem()
  4669  	if yyxt138 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt138 != nil {
  4670  		z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt138)
  4671  	} else {
  4672  		x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
  4673  	}
  4674  	yyj99++
  4675  	if yyhl99 {
  4676  		yyb99 = yyj99 > l
  4677  	} else {
  4678  		yyb99 = z.DecCheckBreak()
  4679  	}
  4680  	if yyb99 {
  4681  		z.DecReadArrayEnd()
  4682  		return
  4683  	}
  4684  	z.DecReadArrayElem()
  4685  	z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
  4686  	yyj99++
  4687  	if yyhl99 {
  4688  		yyb99 = yyj99 > l
  4689  	} else {
  4690  		yyb99 = z.DecCheckBreak()
  4691  	}
  4692  	if yyb99 {
  4693  		z.DecReadArrayEnd()
  4694  		return
  4695  	}
  4696  	z.DecReadArrayElem()
  4697  	z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
  4698  	yyj99++
  4699  	if yyhl99 {
  4700  		yyb99 = yyj99 > l
  4701  	} else {
  4702  		yyb99 = z.DecCheckBreak()
  4703  	}
  4704  	if yyb99 {
  4705  		z.DecReadArrayEnd()
  4706  		return
  4707  	}
  4708  	z.DecReadArrayElem()
  4709  	if yyxt144 := z.Extension(x.TestStrucCommon.Simplef); yyxt144 != nil {
  4710  		z.DecExtension(&x.TestStrucCommon.Simplef, yyxt144)
  4711  	} else {
  4712  		x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
  4713  	}
  4714  	yyj99++
  4715  	if yyhl99 {
  4716  		yyb99 = yyj99 > l
  4717  	} else {
  4718  		yyb99 = z.DecCheckBreak()
  4719  	}
  4720  	if yyb99 {
  4721  		z.DecReadArrayEnd()
  4722  		return
  4723  	}
  4724  	z.DecReadArrayElem()
  4725  	h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
  4726  	yyj99++
  4727  	if yyhl99 {
  4728  		yyb99 = yyj99 > l
  4729  	} else {
  4730  		yyb99 = z.DecCheckBreak()
  4731  	}
  4732  	if yyb99 {
  4733  		z.DecReadArrayEnd()
  4734  		return
  4735  	}
  4736  	z.DecReadArrayElem()
  4737  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
  4738  	yyj99++
  4739  	if yyhl99 {
  4740  		yyb99 = yyj99 > l
  4741  	} else {
  4742  		yyb99 = z.DecCheckBreak()
  4743  	}
  4744  	if yyb99 {
  4745  		z.DecReadArrayEnd()
  4746  		return
  4747  	}
  4748  	z.DecReadArrayElem()
  4749  	x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  4750  	yyj99++
  4751  	if yyhl99 {
  4752  		yyb99 = yyj99 > l
  4753  	} else {
  4754  		yyb99 = z.DecCheckBreak()
  4755  	}
  4756  	if yyb99 {
  4757  		z.DecReadArrayEnd()
  4758  		return
  4759  	}
  4760  	z.DecReadArrayElem()
  4761  	x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  4762  	yyj99++
  4763  	if yyhl99 {
  4764  		yyb99 = yyj99 > l
  4765  	} else {
  4766  		yyb99 = z.DecCheckBreak()
  4767  	}
  4768  	if yyb99 {
  4769  		z.DecReadArrayEnd()
  4770  		return
  4771  	}
  4772  	z.DecReadArrayElem()
  4773  	x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  4774  	yyj99++
  4775  	if yyhl99 {
  4776  		yyb99 = yyj99 > l
  4777  	} else {
  4778  		yyb99 = z.DecCheckBreak()
  4779  	}
  4780  	if yyb99 {
  4781  		z.DecReadArrayEnd()
  4782  		return
  4783  	}
  4784  	z.DecReadArrayElem()
  4785  	x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  4786  	yyj99++
  4787  	if yyhl99 {
  4788  		yyb99 = yyj99 > l
  4789  	} else {
  4790  		yyb99 = z.DecCheckBreak()
  4791  	}
  4792  	if yyb99 {
  4793  		z.DecReadArrayEnd()
  4794  		return
  4795  	}
  4796  	z.DecReadArrayElem()
  4797  	z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
  4798  	yyj99++
  4799  	if yyhl99 {
  4800  		yyb99 = yyj99 > l
  4801  	} else {
  4802  		yyb99 = z.DecCheckBreak()
  4803  	}
  4804  	if yyb99 {
  4805  		z.DecReadArrayEnd()
  4806  		return
  4807  	}
  4808  	z.DecReadArrayElem()
  4809  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
  4810  	yyj99++
  4811  	if yyhl99 {
  4812  		yyb99 = yyj99 > l
  4813  	} else {
  4814  		yyb99 = z.DecCheckBreak()
  4815  	}
  4816  	if yyb99 {
  4817  		z.DecReadArrayEnd()
  4818  		return
  4819  	}
  4820  	z.DecReadArrayElem()
  4821  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
  4822  	yyj99++
  4823  	if yyhl99 {
  4824  		yyb99 = yyj99 > l
  4825  	} else {
  4826  		yyb99 = z.DecCheckBreak()
  4827  	}
  4828  	if yyb99 {
  4829  		z.DecReadArrayEnd()
  4830  		return
  4831  	}
  4832  	z.DecReadArrayElem()
  4833  	z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
  4834  	yyj99++
  4835  	if yyhl99 {
  4836  		yyb99 = yyj99 > l
  4837  	} else {
  4838  		yyb99 = z.DecCheckBreak()
  4839  	}
  4840  	if yyb99 {
  4841  		z.DecReadArrayEnd()
  4842  		return
  4843  	}
  4844  	z.DecReadArrayElem()
  4845  	z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
  4846  	yyj99++
  4847  	if yyhl99 {
  4848  		yyb99 = yyj99 > l
  4849  	} else {
  4850  		yyb99 = z.DecCheckBreak()
  4851  	}
  4852  	if yyb99 {
  4853  		z.DecReadArrayEnd()
  4854  		return
  4855  	}
  4856  	z.DecReadArrayElem()
  4857  	z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
  4858  	yyj99++
  4859  	if yyhl99 {
  4860  		yyb99 = yyj99 > l
  4861  	} else {
  4862  		yyb99 = z.DecCheckBreak()
  4863  	}
  4864  	if yyb99 {
  4865  		z.DecReadArrayEnd()
  4866  		return
  4867  	}
  4868  	z.DecReadArrayElem()
  4869  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
  4870  	yyj99++
  4871  	if yyhl99 {
  4872  		yyb99 = yyj99 > l
  4873  	} else {
  4874  		yyb99 = z.DecCheckBreak()
  4875  	}
  4876  	if yyb99 {
  4877  		z.DecReadArrayEnd()
  4878  		return
  4879  	}
  4880  	z.DecReadArrayElem()
  4881  	h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
  4882  	yyj99++
  4883  	if yyhl99 {
  4884  		yyb99 = yyj99 > l
  4885  	} else {
  4886  		yyb99 = z.DecCheckBreak()
  4887  	}
  4888  	if yyb99 {
  4889  		z.DecReadArrayEnd()
  4890  		return
  4891  	}
  4892  	z.DecReadArrayElem()
  4893  	h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
  4894  	yyj99++
  4895  	if yyhl99 {
  4896  		yyb99 = yyj99 > l
  4897  	} else {
  4898  		yyb99 = z.DecCheckBreak()
  4899  	}
  4900  	if yyb99 {
  4901  		z.DecReadArrayEnd()
  4902  		return
  4903  	}
  4904  	z.DecReadArrayElem()
  4905  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
  4906  	yyj99++
  4907  	if yyhl99 {
  4908  		yyb99 = yyj99 > l
  4909  	} else {
  4910  		yyb99 = z.DecCheckBreak()
  4911  	}
  4912  	if yyb99 {
  4913  		z.DecReadArrayEnd()
  4914  		return
  4915  	}
  4916  	z.DecReadArrayElem()
  4917  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
  4918  	yyj99++
  4919  	if yyhl99 {
  4920  		yyb99 = yyj99 > l
  4921  	} else {
  4922  		yyb99 = z.DecCheckBreak()
  4923  	}
  4924  	if yyb99 {
  4925  		z.DecReadArrayEnd()
  4926  		return
  4927  	}
  4928  	z.DecReadArrayElem()
  4929  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
  4930  	yyj99++
  4931  	if yyhl99 {
  4932  		yyb99 = yyj99 > l
  4933  	} else {
  4934  		yyb99 = z.DecCheckBreak()
  4935  	}
  4936  	if yyb99 {
  4937  		z.DecReadArrayEnd()
  4938  		return
  4939  	}
  4940  	z.DecReadArrayElem()
  4941  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
  4942  	yyj99++
  4943  	if yyhl99 {
  4944  		yyb99 = yyj99 > l
  4945  	} else {
  4946  		yyb99 = z.DecCheckBreak()
  4947  	}
  4948  	if yyb99 {
  4949  		z.DecReadArrayEnd()
  4950  		return
  4951  	}
  4952  	z.DecReadArrayElem()
  4953  	if yyxt180 := z.Extension(x.TestStrucCommon.NotAnon); yyxt180 != nil {
  4954  		z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt180)
  4955  	} else {
  4956  		x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
  4957  	}
  4958  	yyj99++
  4959  	if yyhl99 {
  4960  		yyb99 = yyj99 > l
  4961  	} else {
  4962  		yyb99 = z.DecCheckBreak()
  4963  	}
  4964  	if yyb99 {
  4965  		z.DecReadArrayEnd()
  4966  		return
  4967  	}
  4968  	z.DecReadArrayElem()
  4969  	z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
  4970  	yyj99++
  4971  	if yyhl99 {
  4972  		yyb99 = yyj99 > l
  4973  	} else {
  4974  		yyb99 = z.DecCheckBreak()
  4975  	}
  4976  	if yyb99 {
  4977  		z.DecReadArrayEnd()
  4978  		return
  4979  	}
  4980  	z.DecReadArrayElem()
  4981  	x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
  4982  	yyj99++
  4983  	if yyhl99 {
  4984  		yyb99 = yyj99 > l
  4985  	} else {
  4986  		yyb99 = z.DecCheckBreak()
  4987  	}
  4988  	if yyb99 {
  4989  		z.DecReadArrayEnd()
  4990  		return
  4991  	}
  4992  	z.DecReadArrayElem()
  4993  	if r.TryNil() {
  4994  		if x.TestStrucCommon.Nint64 != nil { // remove the if-true
  4995  			x.TestStrucCommon.Nint64 = nil
  4996  		}
  4997  	} else {
  4998  		if x.TestStrucCommon.Nint64 == nil {
  4999  			x.TestStrucCommon.Nint64 = new(int64)
  5000  		}
  5001  		*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
  5002  	}
  5003  	yyj99++
  5004  	if yyhl99 {
  5005  		yyb99 = yyj99 > l
  5006  	} else {
  5007  		yyb99 = z.DecCheckBreak()
  5008  	}
  5009  	if yyb99 {
  5010  		z.DecReadArrayEnd()
  5011  		return
  5012  	}
  5013  	z.DecReadArrayElem()
  5014  	h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
  5015  	yyj99++
  5016  	if yyhl99 {
  5017  		yyb99 = yyj99 > l
  5018  	} else {
  5019  		yyb99 = z.DecCheckBreak()
  5020  	}
  5021  	if yyb99 {
  5022  		z.DecReadArrayEnd()
  5023  		return
  5024  	}
  5025  	z.DecReadArrayElem()
  5026  	h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
  5027  	yyj99++
  5028  	if yyhl99 {
  5029  		yyb99 = yyj99 > l
  5030  	} else {
  5031  		yyb99 = z.DecCheckBreak()
  5032  	}
  5033  	if yyb99 {
  5034  		z.DecReadArrayEnd()
  5035  		return
  5036  	}
  5037  	z.DecReadArrayElem()
  5038  	h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
  5039  	yyj99++
  5040  	if yyhl99 {
  5041  		yyb99 = yyj99 > l
  5042  	} else {
  5043  		yyb99 = z.DecCheckBreak()
  5044  	}
  5045  	if yyb99 {
  5046  		z.DecReadArrayEnd()
  5047  		return
  5048  	}
  5049  	z.DecReadArrayElem()
  5050  	if r.TryNil() {
  5051  		if x.Nteststruc != nil { // remove the if-true
  5052  			x.Nteststruc = nil
  5053  		}
  5054  	} else {
  5055  		if x.Nteststruc == nil {
  5056  			x.Nteststruc = new(TestStruc)
  5057  		}
  5058  		if yyxt194 := z.Extension(x.Nteststruc); yyxt194 != nil {
  5059  			z.DecExtension(x.Nteststruc, yyxt194)
  5060  		} else {
  5061  			x.Nteststruc.CodecDecodeSelf(d)
  5062  		}
  5063  	}
  5064  	for {
  5065  		yyj99++
  5066  		if yyhl99 {
  5067  			yyb99 = yyj99 > l
  5068  		} else {
  5069  			yyb99 = z.DecCheckBreak()
  5070  		}
  5071  		if yyb99 {
  5072  			break
  5073  		}
  5074  		z.DecReadArrayElem()
  5075  		z.DecStructFieldNotFound(yyj99-1, "")
  5076  	}
  5077  }
  5078  
  5079  func (x *TestStruc) IsCodecEmpty() bool {
  5080  	return !(!(x.TestStrucCommon.IsCodecEmpty()) || len(x.Mtsptr) != 0 || len(x.Mts) != 0 || len(x.Its) != 0 || false)
  5081  }
  5082  
  5083  func (codecgenA) codecSelferViaCodecgen() {}
  5084  func (x *codecgenA) CodecEncodeSelf(e *Encoder) {
  5085  	var h codecSelfer19780
  5086  	z, r := GenHelper().Encoder(e)
  5087  	_, _, _ = h, z, r
  5088  	if z.EncBasicHandle().CheckCircularRef {
  5089  		z.EncEncode(x)
  5090  		return
  5091  	}
  5092  	if x == nil {
  5093  		r.EncodeNil()
  5094  	} else {
  5095  		yy2arr2 := z.EncBasicHandle().StructToArray
  5096  		_ = yy2arr2
  5097  		const yyr2 bool = false // struct tag has 'toArray'
  5098  		if yyr2 || yy2arr2 {
  5099  			z.EncWriteArrayStart(1)
  5100  			z.EncWriteArrayElem()
  5101  			if x.ZZ == nil {
  5102  				r.EncodeNil()
  5103  			} else {
  5104  				r.EncodeStringBytesRaw([]byte(x.ZZ))
  5105  			} // end block: if x.ZZ slice == nil
  5106  			z.EncWriteArrayEnd()
  5107  		} else {
  5108  			z.EncWriteMapStart(1)
  5109  			z.EncWriteMapElemKey()
  5110  			if z.IsJSONHandle() {
  5111  				z.WriteStr("\"ZZ\"")
  5112  			} else {
  5113  				r.EncodeString(`ZZ`)
  5114  			}
  5115  			z.EncWriteMapElemValue()
  5116  			if x.ZZ == nil {
  5117  				r.EncodeNil()
  5118  			} else {
  5119  				r.EncodeStringBytesRaw([]byte(x.ZZ))
  5120  			} // end block: if x.ZZ slice == nil
  5121  			z.EncWriteMapEnd()
  5122  		}
  5123  	}
  5124  }
  5125  
  5126  func (x *codecgenA) CodecDecodeSelf(d *Decoder) {
  5127  	var h codecSelfer19780
  5128  	z, r := GenHelper().Decoder(d)
  5129  	_, _, _ = h, z, r
  5130  	yyct2 := r.ContainerType()
  5131  	if yyct2 == codecSelferValueTypeNil19780 {
  5132  		*(x) = codecgenA{}
  5133  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5134  		yyl2 := z.DecReadMapStart()
  5135  		if yyl2 == 0 {
  5136  		} else {
  5137  			x.codecDecodeSelfFromMap(yyl2, d)
  5138  		}
  5139  		z.DecReadMapEnd()
  5140  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5141  		yyl2 := z.DecReadArrayStart()
  5142  		if yyl2 != 0 {
  5143  			x.codecDecodeSelfFromArray(yyl2, d)
  5144  		}
  5145  		z.DecReadArrayEnd()
  5146  	} else {
  5147  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5148  	}
  5149  }
  5150  
  5151  func (x *codecgenA) codecDecodeSelfFromMap(l int, d *Decoder) {
  5152  	var h codecSelfer19780
  5153  	z, r := GenHelper().Decoder(d)
  5154  	_, _, _ = h, z, r
  5155  	var yyhl3 bool = l >= 0
  5156  	for yyj3 := 0; ; yyj3++ {
  5157  		if yyhl3 {
  5158  			if yyj3 >= l {
  5159  				break
  5160  			}
  5161  		} else {
  5162  			if z.DecCheckBreak() {
  5163  				break
  5164  			}
  5165  		}
  5166  		z.DecReadMapElemKey()
  5167  		yys3 := r.DecodeStringAsBytes()
  5168  		z.DecReadMapElemValue()
  5169  		switch string(yys3) {
  5170  		case "ZZ":
  5171  			x.ZZ = z.DecodeBytesInto(([]byte)(x.ZZ))
  5172  		default:
  5173  			z.DecStructFieldNotFound(-1, string(yys3))
  5174  		} // end switch yys3
  5175  	} // end for yyj3
  5176  }
  5177  
  5178  func (x *codecgenA) codecDecodeSelfFromArray(l int, d *Decoder) {
  5179  	var h codecSelfer19780
  5180  	z, r := GenHelper().Decoder(d)
  5181  	_, _, _ = h, z, r
  5182  	var yyj6 int
  5183  	var yyb6 bool
  5184  	var yyhl6 bool = l >= 0
  5185  	yyj6++
  5186  	if yyhl6 {
  5187  		yyb6 = yyj6 > l
  5188  	} else {
  5189  		yyb6 = z.DecCheckBreak()
  5190  	}
  5191  	if yyb6 {
  5192  		z.DecReadArrayEnd()
  5193  		return
  5194  	}
  5195  	z.DecReadArrayElem()
  5196  	x.ZZ = z.DecodeBytesInto(([]byte)(x.ZZ))
  5197  	for {
  5198  		yyj6++
  5199  		if yyhl6 {
  5200  			yyb6 = yyj6 > l
  5201  		} else {
  5202  			yyb6 = z.DecCheckBreak()
  5203  		}
  5204  		if yyb6 {
  5205  			break
  5206  		}
  5207  		z.DecReadArrayElem()
  5208  		z.DecStructFieldNotFound(yyj6-1, "")
  5209  	}
  5210  }
  5211  
  5212  func (x *codecgenA) IsCodecEmpty() bool {
  5213  	return !(len(x.ZZ) != 0 || false)
  5214  }
  5215  
  5216  func (codecgenB) codecSelferViaCodecgen() {}
  5217  func (x *codecgenB) CodecEncodeSelf(e *Encoder) {
  5218  	var h codecSelfer19780
  5219  	z, r := GenHelper().Encoder(e)
  5220  	_, _, _ = h, z, r
  5221  	if z.EncBasicHandle().CheckCircularRef {
  5222  		z.EncEncode(x)
  5223  		return
  5224  	}
  5225  	if x == nil {
  5226  		r.EncodeNil()
  5227  	} else {
  5228  		yy2arr2 := z.EncBasicHandle().StructToArray
  5229  		_ = yy2arr2
  5230  		const yyr2 bool = false // struct tag has 'toArray'
  5231  		if yyr2 || yy2arr2 {
  5232  			z.EncWriteArrayStart(1)
  5233  			z.EncWriteArrayElem()
  5234  			yy4 := &x.AA
  5235  			if yyxt5 := z.Extension(yy4); yyxt5 != nil {
  5236  				z.EncExtension(yy4, yyxt5)
  5237  			} else {
  5238  				yy4.CodecEncodeSelf(e)
  5239  			}
  5240  			z.EncWriteArrayEnd()
  5241  		} else {
  5242  			z.EncWriteMapStart(1)
  5243  			z.EncWriteMapElemKey()
  5244  			if z.IsJSONHandle() {
  5245  				z.WriteStr("\"AA\"")
  5246  			} else {
  5247  				r.EncodeString(`AA`)
  5248  			}
  5249  			z.EncWriteMapElemValue()
  5250  			yy6 := &x.AA
  5251  			if yyxt7 := z.Extension(yy6); yyxt7 != nil {
  5252  				z.EncExtension(yy6, yyxt7)
  5253  			} else {
  5254  				yy6.CodecEncodeSelf(e)
  5255  			}
  5256  			z.EncWriteMapEnd()
  5257  		}
  5258  	}
  5259  }
  5260  
  5261  func (x *codecgenB) CodecDecodeSelf(d *Decoder) {
  5262  	var h codecSelfer19780
  5263  	z, r := GenHelper().Decoder(d)
  5264  	_, _, _ = h, z, r
  5265  	yyct2 := r.ContainerType()
  5266  	if yyct2 == codecSelferValueTypeNil19780 {
  5267  		*(x) = codecgenB{}
  5268  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5269  		yyl2 := z.DecReadMapStart()
  5270  		if yyl2 == 0 {
  5271  		} else {
  5272  			x.codecDecodeSelfFromMap(yyl2, d)
  5273  		}
  5274  		z.DecReadMapEnd()
  5275  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5276  		yyl2 := z.DecReadArrayStart()
  5277  		if yyl2 != 0 {
  5278  			x.codecDecodeSelfFromArray(yyl2, d)
  5279  		}
  5280  		z.DecReadArrayEnd()
  5281  	} else {
  5282  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5283  	}
  5284  }
  5285  
  5286  func (x *codecgenB) codecDecodeSelfFromMap(l int, d *Decoder) {
  5287  	var h codecSelfer19780
  5288  	z, r := GenHelper().Decoder(d)
  5289  	_, _, _ = h, z, r
  5290  	var yyhl3 bool = l >= 0
  5291  	for yyj3 := 0; ; yyj3++ {
  5292  		if yyhl3 {
  5293  			if yyj3 >= l {
  5294  				break
  5295  			}
  5296  		} else {
  5297  			if z.DecCheckBreak() {
  5298  				break
  5299  			}
  5300  		}
  5301  		z.DecReadMapElemKey()
  5302  		yys3 := r.DecodeStringAsBytes()
  5303  		z.DecReadMapElemValue()
  5304  		switch string(yys3) {
  5305  		case "AA":
  5306  			if yyxt5 := z.Extension(x.AA); yyxt5 != nil {
  5307  				z.DecExtension(&x.AA, yyxt5)
  5308  			} else {
  5309  				x.AA.CodecDecodeSelf(d)
  5310  			}
  5311  		default:
  5312  			z.DecStructFieldNotFound(-1, string(yys3))
  5313  		} // end switch yys3
  5314  	} // end for yyj3
  5315  }
  5316  
  5317  func (x *codecgenB) codecDecodeSelfFromArray(l int, d *Decoder) {
  5318  	var h codecSelfer19780
  5319  	z, r := GenHelper().Decoder(d)
  5320  	_, _, _ = h, z, r
  5321  	var yyj6 int
  5322  	var yyb6 bool
  5323  	var yyhl6 bool = l >= 0
  5324  	yyj6++
  5325  	if yyhl6 {
  5326  		yyb6 = yyj6 > l
  5327  	} else {
  5328  		yyb6 = z.DecCheckBreak()
  5329  	}
  5330  	if yyb6 {
  5331  		z.DecReadArrayEnd()
  5332  		return
  5333  	}
  5334  	z.DecReadArrayElem()
  5335  	if yyxt8 := z.Extension(x.AA); yyxt8 != nil {
  5336  		z.DecExtension(&x.AA, yyxt8)
  5337  	} else {
  5338  		x.AA.CodecDecodeSelf(d)
  5339  	}
  5340  	for {
  5341  		yyj6++
  5342  		if yyhl6 {
  5343  			yyb6 = yyj6 > l
  5344  		} else {
  5345  			yyb6 = z.DecCheckBreak()
  5346  		}
  5347  		if yyb6 {
  5348  			break
  5349  		}
  5350  		z.DecReadArrayElem()
  5351  		z.DecStructFieldNotFound(yyj6-1, "")
  5352  	}
  5353  }
  5354  
  5355  func (x *codecgenB) IsCodecEmpty() bool {
  5356  	return !(!(x.AA.IsCodecEmpty()) || false)
  5357  }
  5358  
  5359  func (codecgenC) codecSelferViaCodecgen() {}
  5360  func (x *codecgenC) CodecEncodeSelf(e *Encoder) {
  5361  	var h codecSelfer19780
  5362  	z, r := GenHelper().Encoder(e)
  5363  	_, _, _ = h, z, r
  5364  	if z.EncBasicHandle().CheckCircularRef {
  5365  		z.EncEncode(x)
  5366  		return
  5367  	}
  5368  	if x == nil {
  5369  		r.EncodeNil()
  5370  	} else {
  5371  		yy2arr2 := z.EncBasicHandle().StructToArray
  5372  		_ = yy2arr2
  5373  		const yyr2 bool = false // struct tag has 'toArray'
  5374  		var yyq2 = [1]bool{     // should field at this index be written?
  5375  			!(x.BB.IsCodecEmpty()), // BB
  5376  		}
  5377  		_ = yyq2
  5378  		if yyr2 || yy2arr2 {
  5379  			z.EncWriteArrayStart(1)
  5380  			z.EncWriteArrayElem()
  5381  			if yyq2[0] {
  5382  				yy4 := &x.BB
  5383  				if yyxt5 := z.Extension(yy4); yyxt5 != nil {
  5384  					z.EncExtension(yy4, yyxt5)
  5385  				} else {
  5386  					yy4.CodecEncodeSelf(e)
  5387  				}
  5388  			} else {
  5389  				r.EncodeNil()
  5390  			}
  5391  			z.EncWriteArrayEnd()
  5392  		} else {
  5393  			var yynn2 int
  5394  			for _, b := range yyq2 {
  5395  				if b {
  5396  					yynn2++
  5397  				}
  5398  			}
  5399  			z.EncWriteMapStart(yynn2)
  5400  			yynn2 = 0
  5401  			if yyq2[0] {
  5402  				z.EncWriteMapElemKey()
  5403  				if z.IsJSONHandle() {
  5404  					z.WriteStr("\"BB\"")
  5405  				} else {
  5406  					r.EncodeString(`BB`)
  5407  				}
  5408  				z.EncWriteMapElemValue()
  5409  				yy6 := &x.BB
  5410  				if yyxt7 := z.Extension(yy6); yyxt7 != nil {
  5411  					z.EncExtension(yy6, yyxt7)
  5412  				} else {
  5413  					yy6.CodecEncodeSelf(e)
  5414  				}
  5415  			}
  5416  			z.EncWriteMapEnd()
  5417  		}
  5418  	}
  5419  }
  5420  
  5421  func (x *codecgenC) CodecDecodeSelf(d *Decoder) {
  5422  	var h codecSelfer19780
  5423  	z, r := GenHelper().Decoder(d)
  5424  	_, _, _ = h, z, r
  5425  	yyct2 := r.ContainerType()
  5426  	if yyct2 == codecSelferValueTypeNil19780 {
  5427  		*(x) = codecgenC{}
  5428  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5429  		yyl2 := z.DecReadMapStart()
  5430  		if yyl2 == 0 {
  5431  		} else {
  5432  			x.codecDecodeSelfFromMap(yyl2, d)
  5433  		}
  5434  		z.DecReadMapEnd()
  5435  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5436  		yyl2 := z.DecReadArrayStart()
  5437  		if yyl2 != 0 {
  5438  			x.codecDecodeSelfFromArray(yyl2, d)
  5439  		}
  5440  		z.DecReadArrayEnd()
  5441  	} else {
  5442  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5443  	}
  5444  }
  5445  
  5446  func (x *codecgenC) codecDecodeSelfFromMap(l int, d *Decoder) {
  5447  	var h codecSelfer19780
  5448  	z, r := GenHelper().Decoder(d)
  5449  	_, _, _ = h, z, r
  5450  	var yyhl3 bool = l >= 0
  5451  	for yyj3 := 0; ; yyj3++ {
  5452  		if yyhl3 {
  5453  			if yyj3 >= l {
  5454  				break
  5455  			}
  5456  		} else {
  5457  			if z.DecCheckBreak() {
  5458  				break
  5459  			}
  5460  		}
  5461  		z.DecReadMapElemKey()
  5462  		yys3 := r.DecodeStringAsBytes()
  5463  		z.DecReadMapElemValue()
  5464  		switch string(yys3) {
  5465  		case "BB":
  5466  			if yyxt5 := z.Extension(x.BB); yyxt5 != nil {
  5467  				z.DecExtension(&x.BB, yyxt5)
  5468  			} else {
  5469  				x.BB.CodecDecodeSelf(d)
  5470  			}
  5471  		default:
  5472  			z.DecStructFieldNotFound(-1, string(yys3))
  5473  		} // end switch yys3
  5474  	} // end for yyj3
  5475  }
  5476  
  5477  func (x *codecgenC) codecDecodeSelfFromArray(l int, d *Decoder) {
  5478  	var h codecSelfer19780
  5479  	z, r := GenHelper().Decoder(d)
  5480  	_, _, _ = h, z, r
  5481  	var yyj6 int
  5482  	var yyb6 bool
  5483  	var yyhl6 bool = l >= 0
  5484  	yyj6++
  5485  	if yyhl6 {
  5486  		yyb6 = yyj6 > l
  5487  	} else {
  5488  		yyb6 = z.DecCheckBreak()
  5489  	}
  5490  	if yyb6 {
  5491  		z.DecReadArrayEnd()
  5492  		return
  5493  	}
  5494  	z.DecReadArrayElem()
  5495  	if yyxt8 := z.Extension(x.BB); yyxt8 != nil {
  5496  		z.DecExtension(&x.BB, yyxt8)
  5497  	} else {
  5498  		x.BB.CodecDecodeSelf(d)
  5499  	}
  5500  	for {
  5501  		yyj6++
  5502  		if yyhl6 {
  5503  			yyb6 = yyj6 > l
  5504  		} else {
  5505  			yyb6 = z.DecCheckBreak()
  5506  		}
  5507  		if yyb6 {
  5508  			break
  5509  		}
  5510  		z.DecReadArrayElem()
  5511  		z.DecStructFieldNotFound(yyj6-1, "")
  5512  	}
  5513  }
  5514  
  5515  func (x *codecgenC) IsCodecEmpty() bool {
  5516  	return !(!(x.BB.IsCodecEmpty()) || false)
  5517  }
  5518  
  5519  func (TestCodecgenG) codecSelferViaCodecgen() {}
  5520  func (x *TestCodecgenG) CodecEncodeSelf(e *Encoder) {
  5521  	var h codecSelfer19780
  5522  	z, r := GenHelper().Encoder(e)
  5523  	_, _, _ = h, z, r
  5524  	if z.EncBasicHandle().CheckCircularRef {
  5525  		z.EncEncode(x)
  5526  		return
  5527  	}
  5528  	if x == nil {
  5529  		r.EncodeNil()
  5530  	} else {
  5531  		yy2arr2 := z.EncBasicHandle().StructToArray
  5532  		_ = yy2arr2
  5533  		const yyr2 bool = false // struct tag has 'toArray'
  5534  		if yyr2 || yy2arr2 {
  5535  			z.EncWriteArrayStart(1)
  5536  			z.EncWriteArrayElem()
  5537  			r.EncodeInt(int64(x.TestCodecgenG))
  5538  			z.EncWriteArrayEnd()
  5539  		} else {
  5540  			z.EncWriteMapStart(1)
  5541  			z.EncWriteMapElemKey()
  5542  			if z.IsJSONHandle() {
  5543  				z.WriteStr("\"TestCodecgenG\"")
  5544  			} else {
  5545  				r.EncodeString(`TestCodecgenG`)
  5546  			}
  5547  			z.EncWriteMapElemValue()
  5548  			r.EncodeInt(int64(x.TestCodecgenG))
  5549  			z.EncWriteMapEnd()
  5550  		}
  5551  	}
  5552  }
  5553  
  5554  func (x *TestCodecgenG) CodecDecodeSelf(d *Decoder) {
  5555  	var h codecSelfer19780
  5556  	z, r := GenHelper().Decoder(d)
  5557  	_, _, _ = h, z, r
  5558  	yyct2 := r.ContainerType()
  5559  	if yyct2 == codecSelferValueTypeNil19780 {
  5560  		*(x) = TestCodecgenG{}
  5561  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5562  		yyl2 := z.DecReadMapStart()
  5563  		if yyl2 == 0 {
  5564  		} else {
  5565  			x.codecDecodeSelfFromMap(yyl2, d)
  5566  		}
  5567  		z.DecReadMapEnd()
  5568  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5569  		yyl2 := z.DecReadArrayStart()
  5570  		if yyl2 != 0 {
  5571  			x.codecDecodeSelfFromArray(yyl2, d)
  5572  		}
  5573  		z.DecReadArrayEnd()
  5574  	} else {
  5575  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5576  	}
  5577  }
  5578  
  5579  func (x *TestCodecgenG) codecDecodeSelfFromMap(l int, d *Decoder) {
  5580  	var h codecSelfer19780
  5581  	z, r := GenHelper().Decoder(d)
  5582  	_, _, _ = h, z, r
  5583  	var yyhl3 bool = l >= 0
  5584  	for yyj3 := 0; ; yyj3++ {
  5585  		if yyhl3 {
  5586  			if yyj3 >= l {
  5587  				break
  5588  			}
  5589  		} else {
  5590  			if z.DecCheckBreak() {
  5591  				break
  5592  			}
  5593  		}
  5594  		z.DecReadMapElemKey()
  5595  		yys3 := r.DecodeStringAsBytes()
  5596  		z.DecReadMapElemValue()
  5597  		switch string(yys3) {
  5598  		case "TestCodecgenG":
  5599  			x.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5600  		default:
  5601  			z.DecStructFieldNotFound(-1, string(yys3))
  5602  		} // end switch yys3
  5603  	} // end for yyj3
  5604  }
  5605  
  5606  func (x *TestCodecgenG) codecDecodeSelfFromArray(l int, d *Decoder) {
  5607  	var h codecSelfer19780
  5608  	z, r := GenHelper().Decoder(d)
  5609  	_, _, _ = h, z, r
  5610  	var yyj5 int
  5611  	var yyb5 bool
  5612  	var yyhl5 bool = l >= 0
  5613  	yyj5++
  5614  	if yyhl5 {
  5615  		yyb5 = yyj5 > l
  5616  	} else {
  5617  		yyb5 = z.DecCheckBreak()
  5618  	}
  5619  	if yyb5 {
  5620  		z.DecReadArrayEnd()
  5621  		return
  5622  	}
  5623  	z.DecReadArrayElem()
  5624  	x.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5625  	for {
  5626  		yyj5++
  5627  		if yyhl5 {
  5628  			yyb5 = yyj5 > l
  5629  		} else {
  5630  			yyb5 = z.DecCheckBreak()
  5631  		}
  5632  		if yyb5 {
  5633  			break
  5634  		}
  5635  		z.DecReadArrayElem()
  5636  		z.DecStructFieldNotFound(yyj5-1, "")
  5637  	}
  5638  }
  5639  
  5640  func (x *TestCodecgenG) IsCodecEmpty() bool {
  5641  	return !(x.TestCodecgenG != 0 || false)
  5642  }
  5643  
  5644  func (codecgenH) codecSelferViaCodecgen() {}
  5645  func (x *codecgenH) CodecEncodeSelf(e *Encoder) {
  5646  	var h codecSelfer19780
  5647  	z, r := GenHelper().Encoder(e)
  5648  	_, _, _ = h, z, r
  5649  	if z.EncBasicHandle().CheckCircularRef {
  5650  		z.EncEncode(x)
  5651  		return
  5652  	}
  5653  	if x == nil {
  5654  		r.EncodeNil()
  5655  	} else {
  5656  		yy2arr2 := z.EncBasicHandle().StructToArray
  5657  		_ = yy2arr2
  5658  		const yyr2 bool = false // struct tag has 'toArray'
  5659  		if yyr2 || yy2arr2 {
  5660  			z.EncWriteArrayStart(1)
  5661  			z.EncWriteArrayElem()
  5662  			r.EncodeInt(int64(x.TestCodecgenG.TestCodecgenG))
  5663  			z.EncWriteArrayEnd()
  5664  		} else {
  5665  			z.EncWriteMapStart(1)
  5666  			z.EncWriteMapElemKey()
  5667  			if z.IsJSONHandle() {
  5668  				z.WriteStr("\"TestCodecgenG\"")
  5669  			} else {
  5670  				r.EncodeString(`TestCodecgenG`)
  5671  			}
  5672  			z.EncWriteMapElemValue()
  5673  			r.EncodeInt(int64(x.TestCodecgenG.TestCodecgenG))
  5674  			z.EncWriteMapEnd()
  5675  		}
  5676  	}
  5677  }
  5678  
  5679  func (x *codecgenH) CodecDecodeSelf(d *Decoder) {
  5680  	var h codecSelfer19780
  5681  	z, r := GenHelper().Decoder(d)
  5682  	_, _, _ = h, z, r
  5683  	yyct2 := r.ContainerType()
  5684  	if yyct2 == codecSelferValueTypeNil19780 {
  5685  		*(x) = codecgenH{}
  5686  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5687  		yyl2 := z.DecReadMapStart()
  5688  		if yyl2 == 0 {
  5689  		} else {
  5690  			x.codecDecodeSelfFromMap(yyl2, d)
  5691  		}
  5692  		z.DecReadMapEnd()
  5693  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5694  		yyl2 := z.DecReadArrayStart()
  5695  		if yyl2 != 0 {
  5696  			x.codecDecodeSelfFromArray(yyl2, d)
  5697  		}
  5698  		z.DecReadArrayEnd()
  5699  	} else {
  5700  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5701  	}
  5702  }
  5703  
  5704  func (x *codecgenH) codecDecodeSelfFromMap(l int, d *Decoder) {
  5705  	var h codecSelfer19780
  5706  	z, r := GenHelper().Decoder(d)
  5707  	_, _, _ = h, z, r
  5708  	var yyhl3 bool = l >= 0
  5709  	for yyj3 := 0; ; yyj3++ {
  5710  		if yyhl3 {
  5711  			if yyj3 >= l {
  5712  				break
  5713  			}
  5714  		} else {
  5715  			if z.DecCheckBreak() {
  5716  				break
  5717  			}
  5718  		}
  5719  		z.DecReadMapElemKey()
  5720  		yys3 := r.DecodeStringAsBytes()
  5721  		z.DecReadMapElemValue()
  5722  		switch string(yys3) {
  5723  		case "TestCodecgenG":
  5724  			x.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5725  		default:
  5726  			z.DecStructFieldNotFound(-1, string(yys3))
  5727  		} // end switch yys3
  5728  	} // end for yyj3
  5729  }
  5730  
  5731  func (x *codecgenH) codecDecodeSelfFromArray(l int, d *Decoder) {
  5732  	var h codecSelfer19780
  5733  	z, r := GenHelper().Decoder(d)
  5734  	_, _, _ = h, z, r
  5735  	var yyj5 int
  5736  	var yyb5 bool
  5737  	var yyhl5 bool = l >= 0
  5738  	yyj5++
  5739  	if yyhl5 {
  5740  		yyb5 = yyj5 > l
  5741  	} else {
  5742  		yyb5 = z.DecCheckBreak()
  5743  	}
  5744  	if yyb5 {
  5745  		z.DecReadArrayEnd()
  5746  		return
  5747  	}
  5748  	z.DecReadArrayElem()
  5749  	x.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5750  	for {
  5751  		yyj5++
  5752  		if yyhl5 {
  5753  			yyb5 = yyj5 > l
  5754  		} else {
  5755  			yyb5 = z.DecCheckBreak()
  5756  		}
  5757  		if yyb5 {
  5758  			break
  5759  		}
  5760  		z.DecReadArrayElem()
  5761  		z.DecStructFieldNotFound(yyj5-1, "")
  5762  	}
  5763  }
  5764  
  5765  func (x *codecgenH) IsCodecEmpty() bool {
  5766  	return !(!(x.TestCodecgenG.IsCodecEmpty()) || false)
  5767  }
  5768  
  5769  func (codecgenI) codecSelferViaCodecgen() {}
  5770  func (x *codecgenI) CodecEncodeSelf(e *Encoder) {
  5771  	var h codecSelfer19780
  5772  	z, r := GenHelper().Encoder(e)
  5773  	_, _, _ = h, z, r
  5774  	if z.EncBasicHandle().CheckCircularRef {
  5775  		z.EncEncode(x)
  5776  		return
  5777  	}
  5778  	if x == nil {
  5779  		r.EncodeNil()
  5780  	} else {
  5781  		yy2arr2 := z.EncBasicHandle().StructToArray
  5782  		_ = yy2arr2
  5783  		const yyr2 bool = false // struct tag has 'toArray'
  5784  		if yyr2 || yy2arr2 {
  5785  			z.EncWriteArrayStart(1)
  5786  			z.EncWriteArrayElem()
  5787  			r.EncodeInt(int64(x.codecgenH.TestCodecgenG.TestCodecgenG))
  5788  			z.EncWriteArrayEnd()
  5789  		} else {
  5790  			z.EncWriteMapStart(1)
  5791  			z.EncWriteMapElemKey()
  5792  			if z.IsJSONHandle() {
  5793  				z.WriteStr("\"TestCodecgenG\"")
  5794  			} else {
  5795  				r.EncodeString(`TestCodecgenG`)
  5796  			}
  5797  			z.EncWriteMapElemValue()
  5798  			r.EncodeInt(int64(x.codecgenH.TestCodecgenG.TestCodecgenG))
  5799  			z.EncWriteMapEnd()
  5800  		}
  5801  	}
  5802  }
  5803  
  5804  func (x *codecgenI) CodecDecodeSelf(d *Decoder) {
  5805  	var h codecSelfer19780
  5806  	z, r := GenHelper().Decoder(d)
  5807  	_, _, _ = h, z, r
  5808  	yyct2 := r.ContainerType()
  5809  	if yyct2 == codecSelferValueTypeNil19780 {
  5810  		*(x) = codecgenI{}
  5811  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5812  		yyl2 := z.DecReadMapStart()
  5813  		if yyl2 == 0 {
  5814  		} else {
  5815  			x.codecDecodeSelfFromMap(yyl2, d)
  5816  		}
  5817  		z.DecReadMapEnd()
  5818  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5819  		yyl2 := z.DecReadArrayStart()
  5820  		if yyl2 != 0 {
  5821  			x.codecDecodeSelfFromArray(yyl2, d)
  5822  		}
  5823  		z.DecReadArrayEnd()
  5824  	} else {
  5825  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5826  	}
  5827  }
  5828  
  5829  func (x *codecgenI) codecDecodeSelfFromMap(l int, d *Decoder) {
  5830  	var h codecSelfer19780
  5831  	z, r := GenHelper().Decoder(d)
  5832  	_, _, _ = h, z, r
  5833  	var yyhl3 bool = l >= 0
  5834  	for yyj3 := 0; ; yyj3++ {
  5835  		if yyhl3 {
  5836  			if yyj3 >= l {
  5837  				break
  5838  			}
  5839  		} else {
  5840  			if z.DecCheckBreak() {
  5841  				break
  5842  			}
  5843  		}
  5844  		z.DecReadMapElemKey()
  5845  		yys3 := r.DecodeStringAsBytes()
  5846  		z.DecReadMapElemValue()
  5847  		switch string(yys3) {
  5848  		case "TestCodecgenG":
  5849  			x.codecgenH.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5850  		default:
  5851  			z.DecStructFieldNotFound(-1, string(yys3))
  5852  		} // end switch yys3
  5853  	} // end for yyj3
  5854  }
  5855  
  5856  func (x *codecgenI) codecDecodeSelfFromArray(l int, d *Decoder) {
  5857  	var h codecSelfer19780
  5858  	z, r := GenHelper().Decoder(d)
  5859  	_, _, _ = h, z, r
  5860  	var yyj5 int
  5861  	var yyb5 bool
  5862  	var yyhl5 bool = l >= 0
  5863  	yyj5++
  5864  	if yyhl5 {
  5865  		yyb5 = yyj5 > l
  5866  	} else {
  5867  		yyb5 = z.DecCheckBreak()
  5868  	}
  5869  	if yyb5 {
  5870  		z.DecReadArrayEnd()
  5871  		return
  5872  	}
  5873  	z.DecReadArrayElem()
  5874  	x.codecgenH.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5875  	for {
  5876  		yyj5++
  5877  		if yyhl5 {
  5878  			yyb5 = yyj5 > l
  5879  		} else {
  5880  			yyb5 = z.DecCheckBreak()
  5881  		}
  5882  		if yyb5 {
  5883  			break
  5884  		}
  5885  		z.DecReadArrayElem()
  5886  		z.DecStructFieldNotFound(yyj5-1, "")
  5887  	}
  5888  }
  5889  
  5890  func (x *codecgenI) IsCodecEmpty() bool {
  5891  	return !(!(x.codecgenH.IsCodecEmpty()) || false)
  5892  }
  5893  
  5894  func (codecgenK) codecSelferViaCodecgen() {}
  5895  func (x *codecgenK) CodecEncodeSelf(e *Encoder) {
  5896  	var h codecSelfer19780
  5897  	z, r := GenHelper().Encoder(e)
  5898  	_, _, _ = h, z, r
  5899  	if z.EncBasicHandle().CheckCircularRef {
  5900  		z.EncEncode(x)
  5901  		return
  5902  	}
  5903  	if x == nil {
  5904  		r.EncodeNil()
  5905  	} else {
  5906  		yy2arr2 := z.EncBasicHandle().StructToArray
  5907  		_ = yy2arr2
  5908  		const yyr2 bool = false // struct tag has 'toArray'
  5909  		if yyr2 || yy2arr2 {
  5910  			z.EncWriteArrayStart(2)
  5911  			z.EncWriteArrayElem()
  5912  			r.EncodeInt(int64(x.X))
  5913  			z.EncWriteArrayElem()
  5914  			r.EncodeString(string(x.Y))
  5915  			z.EncWriteArrayEnd()
  5916  		} else {
  5917  			z.EncWriteMapStart(2)
  5918  			z.EncWriteMapElemKey()
  5919  			if z.IsJSONHandle() {
  5920  				z.WriteStr("\"X\"")
  5921  			} else {
  5922  				r.EncodeString(`X`)
  5923  			}
  5924  			z.EncWriteMapElemValue()
  5925  			r.EncodeInt(int64(x.X))
  5926  			z.EncWriteMapElemKey()
  5927  			if z.IsJSONHandle() {
  5928  				z.WriteStr("\"Y\"")
  5929  			} else {
  5930  				r.EncodeString(`Y`)
  5931  			}
  5932  			z.EncWriteMapElemValue()
  5933  			r.EncodeString(string(x.Y))
  5934  			z.EncWriteMapEnd()
  5935  		}
  5936  	}
  5937  }
  5938  
  5939  func (x *codecgenK) CodecDecodeSelf(d *Decoder) {
  5940  	var h codecSelfer19780
  5941  	z, r := GenHelper().Decoder(d)
  5942  	_, _, _ = h, z, r
  5943  	yyct2 := r.ContainerType()
  5944  	if yyct2 == codecSelferValueTypeNil19780 {
  5945  		*(x) = codecgenK{}
  5946  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5947  		yyl2 := z.DecReadMapStart()
  5948  		if yyl2 == 0 {
  5949  		} else {
  5950  			x.codecDecodeSelfFromMap(yyl2, d)
  5951  		}
  5952  		z.DecReadMapEnd()
  5953  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5954  		yyl2 := z.DecReadArrayStart()
  5955  		if yyl2 != 0 {
  5956  			x.codecDecodeSelfFromArray(yyl2, d)
  5957  		}
  5958  		z.DecReadArrayEnd()
  5959  	} else {
  5960  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5961  	}
  5962  }
  5963  
  5964  func (x *codecgenK) codecDecodeSelfFromMap(l int, d *Decoder) {
  5965  	var h codecSelfer19780
  5966  	z, r := GenHelper().Decoder(d)
  5967  	_, _, _ = h, z, r
  5968  	var yyhl3 bool = l >= 0
  5969  	for yyj3 := 0; ; yyj3++ {
  5970  		if yyhl3 {
  5971  			if yyj3 >= l {
  5972  				break
  5973  			}
  5974  		} else {
  5975  			if z.DecCheckBreak() {
  5976  				break
  5977  			}
  5978  		}
  5979  		z.DecReadMapElemKey()
  5980  		yys3 := r.DecodeStringAsBytes()
  5981  		z.DecReadMapElemValue()
  5982  		switch string(yys3) {
  5983  		case "X":
  5984  			x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  5985  		case "Y":
  5986  			x.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  5987  		default:
  5988  			z.DecStructFieldNotFound(-1, string(yys3))
  5989  		} // end switch yys3
  5990  	} // end for yyj3
  5991  }
  5992  
  5993  func (x *codecgenK) codecDecodeSelfFromArray(l int, d *Decoder) {
  5994  	var h codecSelfer19780
  5995  	z, r := GenHelper().Decoder(d)
  5996  	_, _, _ = h, z, r
  5997  	var yyj6 int
  5998  	var yyb6 bool
  5999  	var yyhl6 bool = l >= 0
  6000  	yyj6++
  6001  	if yyhl6 {
  6002  		yyb6 = yyj6 > l
  6003  	} else {
  6004  		yyb6 = z.DecCheckBreak()
  6005  	}
  6006  	if yyb6 {
  6007  		z.DecReadArrayEnd()
  6008  		return
  6009  	}
  6010  	z.DecReadArrayElem()
  6011  	x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6012  	yyj6++
  6013  	if yyhl6 {
  6014  		yyb6 = yyj6 > l
  6015  	} else {
  6016  		yyb6 = z.DecCheckBreak()
  6017  	}
  6018  	if yyb6 {
  6019  		z.DecReadArrayEnd()
  6020  		return
  6021  	}
  6022  	z.DecReadArrayElem()
  6023  	x.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  6024  	for {
  6025  		yyj6++
  6026  		if yyhl6 {
  6027  			yyb6 = yyj6 > l
  6028  		} else {
  6029  			yyb6 = z.DecCheckBreak()
  6030  		}
  6031  		if yyb6 {
  6032  			break
  6033  		}
  6034  		z.DecReadArrayElem()
  6035  		z.DecStructFieldNotFound(yyj6-1, "")
  6036  	}
  6037  }
  6038  
  6039  func (x *codecgenK) IsCodecEmpty() bool {
  6040  	return !(x.X != 0 || x.Y != "" || false)
  6041  }
  6042  
  6043  func (codecgenL) codecSelferViaCodecgen() {}
  6044  func (x *codecgenL) CodecEncodeSelf(e *Encoder) {
  6045  	var h codecSelfer19780
  6046  	z, r := GenHelper().Encoder(e)
  6047  	_, _, _ = h, z, r
  6048  	if z.EncBasicHandle().CheckCircularRef {
  6049  		z.EncEncode(x)
  6050  		return
  6051  	}
  6052  	if x == nil {
  6053  		r.EncodeNil()
  6054  	} else {
  6055  		yy2arr2 := z.EncBasicHandle().StructToArray
  6056  		_ = yy2arr2
  6057  		const yyr2 bool = false // struct tag has 'toArray'
  6058  		if yyr2 || yy2arr2 {
  6059  			z.EncWriteArrayStart(2)
  6060  			z.EncWriteArrayElem()
  6061  			r.EncodeInt(int64(x.X))
  6062  			z.EncWriteArrayElem()
  6063  			r.EncodeUint(uint64(x.Y))
  6064  			z.EncWriteArrayEnd()
  6065  		} else {
  6066  			z.EncWriteMapStart(2)
  6067  			z.EncWriteMapElemKey()
  6068  			if z.IsJSONHandle() {
  6069  				z.WriteStr("\"X\"")
  6070  			} else {
  6071  				r.EncodeString(`X`)
  6072  			}
  6073  			z.EncWriteMapElemValue()
  6074  			r.EncodeInt(int64(x.X))
  6075  			z.EncWriteMapElemKey()
  6076  			if z.IsJSONHandle() {
  6077  				z.WriteStr("\"Y\"")
  6078  			} else {
  6079  				r.EncodeString(`Y`)
  6080  			}
  6081  			z.EncWriteMapElemValue()
  6082  			r.EncodeUint(uint64(x.Y))
  6083  			z.EncWriteMapEnd()
  6084  		}
  6085  	}
  6086  }
  6087  
  6088  func (x *codecgenL) CodecDecodeSelf(d *Decoder) {
  6089  	var h codecSelfer19780
  6090  	z, r := GenHelper().Decoder(d)
  6091  	_, _, _ = h, z, r
  6092  	yyct2 := r.ContainerType()
  6093  	if yyct2 == codecSelferValueTypeNil19780 {
  6094  		*(x) = codecgenL{}
  6095  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6096  		yyl2 := z.DecReadMapStart()
  6097  		if yyl2 == 0 {
  6098  		} else {
  6099  			x.codecDecodeSelfFromMap(yyl2, d)
  6100  		}
  6101  		z.DecReadMapEnd()
  6102  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6103  		yyl2 := z.DecReadArrayStart()
  6104  		if yyl2 != 0 {
  6105  			x.codecDecodeSelfFromArray(yyl2, d)
  6106  		}
  6107  		z.DecReadArrayEnd()
  6108  	} else {
  6109  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6110  	}
  6111  }
  6112  
  6113  func (x *codecgenL) codecDecodeSelfFromMap(l int, d *Decoder) {
  6114  	var h codecSelfer19780
  6115  	z, r := GenHelper().Decoder(d)
  6116  	_, _, _ = h, z, r
  6117  	var yyhl3 bool = l >= 0
  6118  	for yyj3 := 0; ; yyj3++ {
  6119  		if yyhl3 {
  6120  			if yyj3 >= l {
  6121  				break
  6122  			}
  6123  		} else {
  6124  			if z.DecCheckBreak() {
  6125  				break
  6126  			}
  6127  		}
  6128  		z.DecReadMapElemKey()
  6129  		yys3 := r.DecodeStringAsBytes()
  6130  		z.DecReadMapElemValue()
  6131  		switch string(yys3) {
  6132  		case "X":
  6133  			x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6134  		case "Y":
  6135  			x.Y = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  6136  		default:
  6137  			z.DecStructFieldNotFound(-1, string(yys3))
  6138  		} // end switch yys3
  6139  	} // end for yyj3
  6140  }
  6141  
  6142  func (x *codecgenL) codecDecodeSelfFromArray(l int, d *Decoder) {
  6143  	var h codecSelfer19780
  6144  	z, r := GenHelper().Decoder(d)
  6145  	_, _, _ = h, z, r
  6146  	var yyj6 int
  6147  	var yyb6 bool
  6148  	var yyhl6 bool = l >= 0
  6149  	yyj6++
  6150  	if yyhl6 {
  6151  		yyb6 = yyj6 > l
  6152  	} else {
  6153  		yyb6 = z.DecCheckBreak()
  6154  	}
  6155  	if yyb6 {
  6156  		z.DecReadArrayEnd()
  6157  		return
  6158  	}
  6159  	z.DecReadArrayElem()
  6160  	x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6161  	yyj6++
  6162  	if yyhl6 {
  6163  		yyb6 = yyj6 > l
  6164  	} else {
  6165  		yyb6 = z.DecCheckBreak()
  6166  	}
  6167  	if yyb6 {
  6168  		z.DecReadArrayEnd()
  6169  		return
  6170  	}
  6171  	z.DecReadArrayElem()
  6172  	x.Y = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  6173  	for {
  6174  		yyj6++
  6175  		if yyhl6 {
  6176  			yyb6 = yyj6 > l
  6177  		} else {
  6178  			yyb6 = z.DecCheckBreak()
  6179  		}
  6180  		if yyb6 {
  6181  			break
  6182  		}
  6183  		z.DecReadArrayElem()
  6184  		z.DecStructFieldNotFound(yyj6-1, "")
  6185  	}
  6186  }
  6187  
  6188  func (x *codecgenL) IsCodecEmpty() bool {
  6189  	return !(x.X != 0 || x.Y != 0 || false)
  6190  }
  6191  
  6192  func (codecgenM) codecSelferViaCodecgen() {}
  6193  func (x *codecgenM) CodecEncodeSelf(e *Encoder) {
  6194  	var h codecSelfer19780
  6195  	z, r := GenHelper().Encoder(e)
  6196  	_, _, _ = h, z, r
  6197  	if z.EncBasicHandle().CheckCircularRef {
  6198  		z.EncEncode(x)
  6199  		return
  6200  	}
  6201  	if x == nil {
  6202  		r.EncodeNil()
  6203  	} else {
  6204  		yy2arr2 := z.EncBasicHandle().StructToArray
  6205  		_ = yy2arr2
  6206  		const yyr2 bool = false // struct tag has 'toArray'
  6207  		if yyr2 || yy2arr2 {
  6208  			z.EncWriteArrayStart(2)
  6209  			z.EncWriteArrayElem()
  6210  			r.EncodeInt(int64(x.codecgenK.X))
  6211  			z.EncWriteArrayElem()
  6212  			r.EncodeString(string(x.codecgenK.Y))
  6213  			z.EncWriteArrayEnd()
  6214  		} else {
  6215  			z.EncWriteMapStart(2)
  6216  			z.EncWriteMapElemKey()
  6217  			if z.IsJSONHandle() {
  6218  				z.WriteStr("\"X\"")
  6219  			} else {
  6220  				r.EncodeString(`X`)
  6221  			}
  6222  			z.EncWriteMapElemValue()
  6223  			r.EncodeInt(int64(x.codecgenK.X))
  6224  			z.EncWriteMapElemKey()
  6225  			if z.IsJSONHandle() {
  6226  				z.WriteStr("\"Y\"")
  6227  			} else {
  6228  				r.EncodeString(`Y`)
  6229  			}
  6230  			z.EncWriteMapElemValue()
  6231  			r.EncodeString(string(x.codecgenK.Y))
  6232  			z.EncWriteMapEnd()
  6233  		}
  6234  	}
  6235  }
  6236  
  6237  func (x *codecgenM) CodecDecodeSelf(d *Decoder) {
  6238  	var h codecSelfer19780
  6239  	z, r := GenHelper().Decoder(d)
  6240  	_, _, _ = h, z, r
  6241  	yyct2 := r.ContainerType()
  6242  	if yyct2 == codecSelferValueTypeNil19780 {
  6243  		*(x) = codecgenM{}
  6244  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6245  		yyl2 := z.DecReadMapStart()
  6246  		if yyl2 == 0 {
  6247  		} else {
  6248  			x.codecDecodeSelfFromMap(yyl2, d)
  6249  		}
  6250  		z.DecReadMapEnd()
  6251  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6252  		yyl2 := z.DecReadArrayStart()
  6253  		if yyl2 != 0 {
  6254  			x.codecDecodeSelfFromArray(yyl2, d)
  6255  		}
  6256  		z.DecReadArrayEnd()
  6257  	} else {
  6258  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6259  	}
  6260  }
  6261  
  6262  func (x *codecgenM) codecDecodeSelfFromMap(l int, d *Decoder) {
  6263  	var h codecSelfer19780
  6264  	z, r := GenHelper().Decoder(d)
  6265  	_, _, _ = h, z, r
  6266  	var yyhl3 bool = l >= 0
  6267  	for yyj3 := 0; ; yyj3++ {
  6268  		if yyhl3 {
  6269  			if yyj3 >= l {
  6270  				break
  6271  			}
  6272  		} else {
  6273  			if z.DecCheckBreak() {
  6274  				break
  6275  			}
  6276  		}
  6277  		z.DecReadMapElemKey()
  6278  		yys3 := r.DecodeStringAsBytes()
  6279  		z.DecReadMapElemValue()
  6280  		switch string(yys3) {
  6281  		case "X":
  6282  			x.codecgenK.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6283  		case "Y":
  6284  			x.codecgenK.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  6285  		default:
  6286  			z.DecStructFieldNotFound(-1, string(yys3))
  6287  		} // end switch yys3
  6288  	} // end for yyj3
  6289  }
  6290  
  6291  func (x *codecgenM) codecDecodeSelfFromArray(l int, d *Decoder) {
  6292  	var h codecSelfer19780
  6293  	z, r := GenHelper().Decoder(d)
  6294  	_, _, _ = h, z, r
  6295  	var yyj6 int
  6296  	var yyb6 bool
  6297  	var yyhl6 bool = l >= 0
  6298  	yyj6++
  6299  	if yyhl6 {
  6300  		yyb6 = yyj6 > l
  6301  	} else {
  6302  		yyb6 = z.DecCheckBreak()
  6303  	}
  6304  	if yyb6 {
  6305  		z.DecReadArrayEnd()
  6306  		return
  6307  	}
  6308  	z.DecReadArrayElem()
  6309  	x.codecgenK.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6310  	yyj6++
  6311  	if yyhl6 {
  6312  		yyb6 = yyj6 > l
  6313  	} else {
  6314  		yyb6 = z.DecCheckBreak()
  6315  	}
  6316  	if yyb6 {
  6317  		z.DecReadArrayEnd()
  6318  		return
  6319  	}
  6320  	z.DecReadArrayElem()
  6321  	x.codecgenK.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  6322  	for {
  6323  		yyj6++
  6324  		if yyhl6 {
  6325  			yyb6 = yyj6 > l
  6326  		} else {
  6327  			yyb6 = z.DecCheckBreak()
  6328  		}
  6329  		if yyb6 {
  6330  			break
  6331  		}
  6332  		z.DecReadArrayElem()
  6333  		z.DecStructFieldNotFound(yyj6-1, "")
  6334  	}
  6335  }
  6336  
  6337  func (x *codecgenM) IsCodecEmpty() bool {
  6338  	return !(!(x.codecgenK.IsCodecEmpty()) || false)
  6339  }
  6340  
  6341  func (testStrucKeyTypeT0) codecSelferViaCodecgen() {}
  6342  func (x *testStrucKeyTypeT0) CodecEncodeSelf(e *Encoder) {
  6343  	var h codecSelfer19780
  6344  	z, r := GenHelper().Encoder(e)
  6345  	_, _, _ = h, z, r
  6346  	if z.EncBasicHandle().CheckCircularRef {
  6347  		z.EncEncode(x)
  6348  		return
  6349  	}
  6350  	if x == nil {
  6351  		r.EncodeNil()
  6352  	} else {
  6353  		yy2arr2 := z.EncBasicHandle().StructToArray
  6354  		_ = yy2arr2
  6355  		const yyr2 bool = false // struct tag has 'toArray'
  6356  		if yyr2 || yy2arr2 {
  6357  			z.EncWriteArrayStart(1)
  6358  			z.EncWriteArrayElem()
  6359  			r.EncodeInt(int64(x.F))
  6360  			z.EncWriteArrayEnd()
  6361  		} else {
  6362  			z.EncWriteMapStart(1)
  6363  			z.EncWriteMapElemKey()
  6364  			if z.IsJSONHandle() {
  6365  				z.WriteStr("\"F\"")
  6366  			} else {
  6367  				r.EncodeString(`F`)
  6368  			}
  6369  			z.EncWriteMapElemValue()
  6370  			r.EncodeInt(int64(x.F))
  6371  			z.EncWriteMapEnd()
  6372  		}
  6373  	}
  6374  }
  6375  
  6376  func (x *testStrucKeyTypeT0) CodecDecodeSelf(d *Decoder) {
  6377  	var h codecSelfer19780
  6378  	z, r := GenHelper().Decoder(d)
  6379  	_, _, _ = h, z, r
  6380  	yyct2 := r.ContainerType()
  6381  	if yyct2 == codecSelferValueTypeNil19780 {
  6382  		*(x) = testStrucKeyTypeT0{}
  6383  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6384  		yyl2 := z.DecReadMapStart()
  6385  		if yyl2 == 0 {
  6386  		} else {
  6387  			x.codecDecodeSelfFromMap(yyl2, d)
  6388  		}
  6389  		z.DecReadMapEnd()
  6390  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6391  		yyl2 := z.DecReadArrayStart()
  6392  		if yyl2 != 0 {
  6393  			x.codecDecodeSelfFromArray(yyl2, d)
  6394  		}
  6395  		z.DecReadArrayEnd()
  6396  	} else {
  6397  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6398  	}
  6399  }
  6400  
  6401  func (x *testStrucKeyTypeT0) codecDecodeSelfFromMap(l int, d *Decoder) {
  6402  	var h codecSelfer19780
  6403  	z, r := GenHelper().Decoder(d)
  6404  	_, _, _ = h, z, r
  6405  	var yyhl3 bool = l >= 0
  6406  	for yyj3 := 0; ; yyj3++ {
  6407  		if yyhl3 {
  6408  			if yyj3 >= l {
  6409  				break
  6410  			}
  6411  		} else {
  6412  			if z.DecCheckBreak() {
  6413  				break
  6414  			}
  6415  		}
  6416  		z.DecReadMapElemKey()
  6417  		yys3 := r.DecodeStringAsBytes()
  6418  		z.DecReadMapElemValue()
  6419  		switch string(yys3) {
  6420  		case "F":
  6421  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6422  		default:
  6423  			z.DecStructFieldNotFound(-1, string(yys3))
  6424  		} // end switch yys3
  6425  	} // end for yyj3
  6426  }
  6427  
  6428  func (x *testStrucKeyTypeT0) codecDecodeSelfFromArray(l int, d *Decoder) {
  6429  	var h codecSelfer19780
  6430  	z, r := GenHelper().Decoder(d)
  6431  	_, _, _ = h, z, r
  6432  	var yyj5 int
  6433  	var yyb5 bool
  6434  	var yyhl5 bool = l >= 0
  6435  	yyj5++
  6436  	if yyhl5 {
  6437  		yyb5 = yyj5 > l
  6438  	} else {
  6439  		yyb5 = z.DecCheckBreak()
  6440  	}
  6441  	if yyb5 {
  6442  		z.DecReadArrayEnd()
  6443  		return
  6444  	}
  6445  	z.DecReadArrayElem()
  6446  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6447  	for {
  6448  		yyj5++
  6449  		if yyhl5 {
  6450  			yyb5 = yyj5 > l
  6451  		} else {
  6452  			yyb5 = z.DecCheckBreak()
  6453  		}
  6454  		if yyb5 {
  6455  			break
  6456  		}
  6457  		z.DecReadArrayElem()
  6458  		z.DecStructFieldNotFound(yyj5-1, "")
  6459  	}
  6460  }
  6461  
  6462  func (x *testStrucKeyTypeT0) IsCodecEmpty() bool {
  6463  	return !(x.F != 0 || false)
  6464  }
  6465  
  6466  func (testStrucKeyTypeT1) codecSelferViaCodecgen() {}
  6467  func (x *testStrucKeyTypeT1) CodecEncodeSelf(e *Encoder) {
  6468  	var h codecSelfer19780
  6469  	z, r := GenHelper().Encoder(e)
  6470  	_, _, _ = h, z, r
  6471  	if z.EncBasicHandle().CheckCircularRef {
  6472  		z.EncEncode(x)
  6473  		return
  6474  	}
  6475  	if x == nil {
  6476  		r.EncodeNil()
  6477  	} else {
  6478  		yy2arr2 := z.EncBasicHandle().StructToArray
  6479  		_ = yy2arr2
  6480  		const yyr2 bool = false // struct tag has 'toArray'
  6481  		if yyr2 || yy2arr2 {
  6482  			z.EncWriteArrayStart(1)
  6483  			z.EncWriteArrayElem()
  6484  			r.EncodeInt(int64(x.F))
  6485  			z.EncWriteArrayEnd()
  6486  		} else {
  6487  			z.EncWriteMapStart(1)
  6488  			z.EncWriteMapElemKey()
  6489  			if z.IsJSONHandle() {
  6490  				z.WriteStr("\"FFFF\"")
  6491  			} else {
  6492  				r.EncodeString(`FFFF`)
  6493  			}
  6494  			z.EncWriteMapElemValue()
  6495  			r.EncodeInt(int64(x.F))
  6496  			z.EncWriteMapEnd()
  6497  		}
  6498  	}
  6499  }
  6500  
  6501  func (x *testStrucKeyTypeT1) CodecDecodeSelf(d *Decoder) {
  6502  	var h codecSelfer19780
  6503  	z, r := GenHelper().Decoder(d)
  6504  	_, _, _ = h, z, r
  6505  	yyct2 := r.ContainerType()
  6506  	if yyct2 == codecSelferValueTypeNil19780 {
  6507  		*(x) = testStrucKeyTypeT1{}
  6508  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6509  		yyl2 := z.DecReadMapStart()
  6510  		if yyl2 == 0 {
  6511  		} else {
  6512  			x.codecDecodeSelfFromMap(yyl2, d)
  6513  		}
  6514  		z.DecReadMapEnd()
  6515  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6516  		yyl2 := z.DecReadArrayStart()
  6517  		if yyl2 != 0 {
  6518  			x.codecDecodeSelfFromArray(yyl2, d)
  6519  		}
  6520  		z.DecReadArrayEnd()
  6521  	} else {
  6522  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6523  	}
  6524  }
  6525  
  6526  func (x *testStrucKeyTypeT1) codecDecodeSelfFromMap(l int, d *Decoder) {
  6527  	var h codecSelfer19780
  6528  	z, r := GenHelper().Decoder(d)
  6529  	_, _, _ = h, z, r
  6530  	var yyhl3 bool = l >= 0
  6531  	for yyj3 := 0; ; yyj3++ {
  6532  		if yyhl3 {
  6533  			if yyj3 >= l {
  6534  				break
  6535  			}
  6536  		} else {
  6537  			if z.DecCheckBreak() {
  6538  				break
  6539  			}
  6540  		}
  6541  		z.DecReadMapElemKey()
  6542  		yys3 := r.DecodeStringAsBytes()
  6543  		z.DecReadMapElemValue()
  6544  		switch string(yys3) {
  6545  		case "FFFF":
  6546  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6547  		default:
  6548  			z.DecStructFieldNotFound(-1, string(yys3))
  6549  		} // end switch yys3
  6550  	} // end for yyj3
  6551  }
  6552  
  6553  func (x *testStrucKeyTypeT1) codecDecodeSelfFromArray(l int, d *Decoder) {
  6554  	var h codecSelfer19780
  6555  	z, r := GenHelper().Decoder(d)
  6556  	_, _, _ = h, z, r
  6557  	var yyj5 int
  6558  	var yyb5 bool
  6559  	var yyhl5 bool = l >= 0
  6560  	yyj5++
  6561  	if yyhl5 {
  6562  		yyb5 = yyj5 > l
  6563  	} else {
  6564  		yyb5 = z.DecCheckBreak()
  6565  	}
  6566  	if yyb5 {
  6567  		z.DecReadArrayEnd()
  6568  		return
  6569  	}
  6570  	z.DecReadArrayElem()
  6571  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6572  	for {
  6573  		yyj5++
  6574  		if yyhl5 {
  6575  			yyb5 = yyj5 > l
  6576  		} else {
  6577  			yyb5 = z.DecCheckBreak()
  6578  		}
  6579  		if yyb5 {
  6580  			break
  6581  		}
  6582  		z.DecReadArrayElem()
  6583  		z.DecStructFieldNotFound(yyj5-1, "")
  6584  	}
  6585  }
  6586  
  6587  func (x *testStrucKeyTypeT1) IsCodecEmpty() bool {
  6588  	return !(x.F != 0 || false)
  6589  }
  6590  
  6591  func (testStrucKeyTypeT2) codecSelferViaCodecgen() {}
  6592  func (x *testStrucKeyTypeT2) CodecEncodeSelf(e *Encoder) {
  6593  	var h codecSelfer19780
  6594  	z, r := GenHelper().Encoder(e)
  6595  	_, _, _ = h, z, r
  6596  	if z.EncBasicHandle().CheckCircularRef {
  6597  		z.EncEncode(x)
  6598  		return
  6599  	}
  6600  	if x == nil {
  6601  		r.EncodeNil()
  6602  	} else {
  6603  		yy2arr2 := z.EncBasicHandle().StructToArray
  6604  		_ = yy2arr2
  6605  		const yyr2 bool = false // struct tag has 'toArray'
  6606  		if yyr2 || yy2arr2 {
  6607  			z.EncWriteArrayStart(1)
  6608  			z.EncWriteArrayElem()
  6609  			r.EncodeInt(int64(x.F))
  6610  			z.EncWriteArrayEnd()
  6611  		} else {
  6612  			z.EncWriteMapStart(1)
  6613  			z.EncWriteMapElemKey()
  6614  			r.EncodeInt(z.M.Int(strconv.ParseInt(`-1`, 10, 64)))
  6615  			z.EncWriteMapElemValue()
  6616  			r.EncodeInt(int64(x.F))
  6617  			z.EncWriteMapEnd()
  6618  		}
  6619  	}
  6620  }
  6621  
  6622  func (x *testStrucKeyTypeT2) CodecDecodeSelf(d *Decoder) {
  6623  	var h codecSelfer19780
  6624  	z, r := GenHelper().Decoder(d)
  6625  	_, _, _ = h, z, r
  6626  	yyct2 := r.ContainerType()
  6627  	if yyct2 == codecSelferValueTypeNil19780 {
  6628  		*(x) = testStrucKeyTypeT2{}
  6629  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6630  		yyl2 := z.DecReadMapStart()
  6631  		if yyl2 == 0 {
  6632  		} else {
  6633  			x.codecDecodeSelfFromMap(yyl2, d)
  6634  		}
  6635  		z.DecReadMapEnd()
  6636  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6637  		yyl2 := z.DecReadArrayStart()
  6638  		if yyl2 != 0 {
  6639  			x.codecDecodeSelfFromArray(yyl2, d)
  6640  		}
  6641  		z.DecReadArrayEnd()
  6642  	} else {
  6643  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6644  	}
  6645  }
  6646  
  6647  func (x *testStrucKeyTypeT2) codecDecodeSelfFromMap(l int, d *Decoder) {
  6648  	var h codecSelfer19780
  6649  	z, r := GenHelper().Decoder(d)
  6650  	_, _, _ = h, z, r
  6651  	var yyhl3 bool = l >= 0
  6652  	for yyj3 := 0; ; yyj3++ {
  6653  		if yyhl3 {
  6654  			if yyj3 >= l {
  6655  				break
  6656  			}
  6657  		} else {
  6658  			if z.DecCheckBreak() {
  6659  				break
  6660  			}
  6661  		}
  6662  		z.DecReadMapElemKey()
  6663  		yys3 := strconv.AppendInt(z.DecScratchArrayBuffer()[:0], r.DecodeInt64(), 10)
  6664  		z.DecReadMapElemValue()
  6665  		switch string(yys3) {
  6666  		case "-1":
  6667  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6668  		default:
  6669  			z.DecStructFieldNotFound(-1, string(yys3))
  6670  		} // end switch yys3
  6671  	} // end for yyj3
  6672  }
  6673  
  6674  func (x *testStrucKeyTypeT2) codecDecodeSelfFromArray(l int, d *Decoder) {
  6675  	var h codecSelfer19780
  6676  	z, r := GenHelper().Decoder(d)
  6677  	_, _, _ = h, z, r
  6678  	var yyj5 int
  6679  	var yyb5 bool
  6680  	var yyhl5 bool = l >= 0
  6681  	yyj5++
  6682  	if yyhl5 {
  6683  		yyb5 = yyj5 > l
  6684  	} else {
  6685  		yyb5 = z.DecCheckBreak()
  6686  	}
  6687  	if yyb5 {
  6688  		z.DecReadArrayEnd()
  6689  		return
  6690  	}
  6691  	z.DecReadArrayElem()
  6692  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6693  	for {
  6694  		yyj5++
  6695  		if yyhl5 {
  6696  			yyb5 = yyj5 > l
  6697  		} else {
  6698  			yyb5 = z.DecCheckBreak()
  6699  		}
  6700  		if yyb5 {
  6701  			break
  6702  		}
  6703  		z.DecReadArrayElem()
  6704  		z.DecStructFieldNotFound(yyj5-1, "")
  6705  	}
  6706  }
  6707  
  6708  func (x *testStrucKeyTypeT2) IsCodecEmpty() bool {
  6709  	return !(x.F != 0 || false)
  6710  }
  6711  
  6712  func (testStrucKeyTypeT3) codecSelferViaCodecgen() {}
  6713  func (x *testStrucKeyTypeT3) CodecEncodeSelf(e *Encoder) {
  6714  	var h codecSelfer19780
  6715  	z, r := GenHelper().Encoder(e)
  6716  	_, _, _ = h, z, r
  6717  	if z.EncBasicHandle().CheckCircularRef {
  6718  		z.EncEncode(x)
  6719  		return
  6720  	}
  6721  	if x == nil {
  6722  		r.EncodeNil()
  6723  	} else {
  6724  		yy2arr2 := z.EncBasicHandle().StructToArray
  6725  		_ = yy2arr2
  6726  		const yyr2 bool = false // struct tag has 'toArray'
  6727  		if yyr2 || yy2arr2 {
  6728  			z.EncWriteArrayStart(1)
  6729  			z.EncWriteArrayElem()
  6730  			r.EncodeInt(int64(x.F))
  6731  			z.EncWriteArrayEnd()
  6732  		} else {
  6733  			z.EncWriteMapStart(1)
  6734  			z.EncWriteMapElemKey()
  6735  			r.EncodeUint(z.M.Uint(strconv.ParseUint(`1`, 10, 64)))
  6736  			z.EncWriteMapElemValue()
  6737  			r.EncodeInt(int64(x.F))
  6738  			z.EncWriteMapEnd()
  6739  		}
  6740  	}
  6741  }
  6742  
  6743  func (x *testStrucKeyTypeT3) CodecDecodeSelf(d *Decoder) {
  6744  	var h codecSelfer19780
  6745  	z, r := GenHelper().Decoder(d)
  6746  	_, _, _ = h, z, r
  6747  	yyct2 := r.ContainerType()
  6748  	if yyct2 == codecSelferValueTypeNil19780 {
  6749  		*(x) = testStrucKeyTypeT3{}
  6750  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6751  		yyl2 := z.DecReadMapStart()
  6752  		if yyl2 == 0 {
  6753  		} else {
  6754  			x.codecDecodeSelfFromMap(yyl2, d)
  6755  		}
  6756  		z.DecReadMapEnd()
  6757  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6758  		yyl2 := z.DecReadArrayStart()
  6759  		if yyl2 != 0 {
  6760  			x.codecDecodeSelfFromArray(yyl2, d)
  6761  		}
  6762  		z.DecReadArrayEnd()
  6763  	} else {
  6764  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6765  	}
  6766  }
  6767  
  6768  func (x *testStrucKeyTypeT3) codecDecodeSelfFromMap(l int, d *Decoder) {
  6769  	var h codecSelfer19780
  6770  	z, r := GenHelper().Decoder(d)
  6771  	_, _, _ = h, z, r
  6772  	var yyhl3 bool = l >= 0
  6773  	for yyj3 := 0; ; yyj3++ {
  6774  		if yyhl3 {
  6775  			if yyj3 >= l {
  6776  				break
  6777  			}
  6778  		} else {
  6779  			if z.DecCheckBreak() {
  6780  				break
  6781  			}
  6782  		}
  6783  		z.DecReadMapElemKey()
  6784  		yys3 := strconv.AppendUint(z.DecScratchArrayBuffer()[:0], r.DecodeUint64(), 10)
  6785  		z.DecReadMapElemValue()
  6786  		switch string(yys3) {
  6787  		case "1":
  6788  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6789  		default:
  6790  			z.DecStructFieldNotFound(-1, string(yys3))
  6791  		} // end switch yys3
  6792  	} // end for yyj3
  6793  }
  6794  
  6795  func (x *testStrucKeyTypeT3) codecDecodeSelfFromArray(l int, d *Decoder) {
  6796  	var h codecSelfer19780
  6797  	z, r := GenHelper().Decoder(d)
  6798  	_, _, _ = h, z, r
  6799  	var yyj5 int
  6800  	var yyb5 bool
  6801  	var yyhl5 bool = l >= 0
  6802  	yyj5++
  6803  	if yyhl5 {
  6804  		yyb5 = yyj5 > l
  6805  	} else {
  6806  		yyb5 = z.DecCheckBreak()
  6807  	}
  6808  	if yyb5 {
  6809  		z.DecReadArrayEnd()
  6810  		return
  6811  	}
  6812  	z.DecReadArrayElem()
  6813  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6814  	for {
  6815  		yyj5++
  6816  		if yyhl5 {
  6817  			yyb5 = yyj5 > l
  6818  		} else {
  6819  			yyb5 = z.DecCheckBreak()
  6820  		}
  6821  		if yyb5 {
  6822  			break
  6823  		}
  6824  		z.DecReadArrayElem()
  6825  		z.DecStructFieldNotFound(yyj5-1, "")
  6826  	}
  6827  }
  6828  
  6829  func (x *testStrucKeyTypeT3) IsCodecEmpty() bool {
  6830  	return !(x.F != 0 || false)
  6831  }
  6832  
  6833  func (testStrucKeyTypeT4) codecSelferViaCodecgen() {}
  6834  func (x *testStrucKeyTypeT4) CodecEncodeSelf(e *Encoder) {
  6835  	var h codecSelfer19780
  6836  	z, r := GenHelper().Encoder(e)
  6837  	_, _, _ = h, z, r
  6838  	if z.EncBasicHandle().CheckCircularRef {
  6839  		z.EncEncode(x)
  6840  		return
  6841  	}
  6842  	if x == nil {
  6843  		r.EncodeNil()
  6844  	} else {
  6845  		yy2arr2 := z.EncBasicHandle().StructToArray
  6846  		_ = yy2arr2
  6847  		const yyr2 bool = false // struct tag has 'toArray'
  6848  		if yyr2 || yy2arr2 {
  6849  			z.EncWriteArrayStart(1)
  6850  			z.EncWriteArrayElem()
  6851  			r.EncodeInt(int64(x.F))
  6852  			z.EncWriteArrayEnd()
  6853  		} else {
  6854  			z.EncWriteMapStart(1)
  6855  			z.EncWriteMapElemKey()
  6856  			r.EncodeFloat64(z.M.Float(strconv.ParseFloat(`2.5`, 64)))
  6857  			z.EncWriteMapElemValue()
  6858  			r.EncodeInt(int64(x.F))
  6859  			z.EncWriteMapEnd()
  6860  		}
  6861  	}
  6862  }
  6863  
  6864  func (x *testStrucKeyTypeT4) CodecDecodeSelf(d *Decoder) {
  6865  	var h codecSelfer19780
  6866  	z, r := GenHelper().Decoder(d)
  6867  	_, _, _ = h, z, r
  6868  	yyct2 := r.ContainerType()
  6869  	if yyct2 == codecSelferValueTypeNil19780 {
  6870  		*(x) = testStrucKeyTypeT4{}
  6871  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6872  		yyl2 := z.DecReadMapStart()
  6873  		if yyl2 == 0 {
  6874  		} else {
  6875  			x.codecDecodeSelfFromMap(yyl2, d)
  6876  		}
  6877  		z.DecReadMapEnd()
  6878  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6879  		yyl2 := z.DecReadArrayStart()
  6880  		if yyl2 != 0 {
  6881  			x.codecDecodeSelfFromArray(yyl2, d)
  6882  		}
  6883  		z.DecReadArrayEnd()
  6884  	} else {
  6885  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6886  	}
  6887  }
  6888  
  6889  func (x *testStrucKeyTypeT4) codecDecodeSelfFromMap(l int, d *Decoder) {
  6890  	var h codecSelfer19780
  6891  	z, r := GenHelper().Decoder(d)
  6892  	_, _, _ = h, z, r
  6893  	var yyhl3 bool = l >= 0
  6894  	for yyj3 := 0; ; yyj3++ {
  6895  		if yyhl3 {
  6896  			if yyj3 >= l {
  6897  				break
  6898  			}
  6899  		} else {
  6900  			if z.DecCheckBreak() {
  6901  				break
  6902  			}
  6903  		}
  6904  		z.DecReadMapElemKey()
  6905  		yys3 := strconv.AppendFloat(z.DecScratchArrayBuffer()[:0], r.DecodeFloat64(), 'f', -1, 64)
  6906  		z.DecReadMapElemValue()
  6907  		switch string(yys3) {
  6908  		case "2.5":
  6909  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6910  		default:
  6911  			z.DecStructFieldNotFound(-1, string(yys3))
  6912  		} // end switch yys3
  6913  	} // end for yyj3
  6914  }
  6915  
  6916  func (x *testStrucKeyTypeT4) codecDecodeSelfFromArray(l int, d *Decoder) {
  6917  	var h codecSelfer19780
  6918  	z, r := GenHelper().Decoder(d)
  6919  	_, _, _ = h, z, r
  6920  	var yyj5 int
  6921  	var yyb5 bool
  6922  	var yyhl5 bool = l >= 0
  6923  	yyj5++
  6924  	if yyhl5 {
  6925  		yyb5 = yyj5 > l
  6926  	} else {
  6927  		yyb5 = z.DecCheckBreak()
  6928  	}
  6929  	if yyb5 {
  6930  		z.DecReadArrayEnd()
  6931  		return
  6932  	}
  6933  	z.DecReadArrayElem()
  6934  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6935  	for {
  6936  		yyj5++
  6937  		if yyhl5 {
  6938  			yyb5 = yyj5 > l
  6939  		} else {
  6940  			yyb5 = z.DecCheckBreak()
  6941  		}
  6942  		if yyb5 {
  6943  			break
  6944  		}
  6945  		z.DecReadArrayElem()
  6946  		z.DecStructFieldNotFound(yyj5-1, "")
  6947  	}
  6948  }
  6949  
  6950  func (x *testStrucKeyTypeT4) IsCodecEmpty() bool {
  6951  	return !(x.F != 0 || false)
  6952  }
  6953  
  6954  func (Bbool) codecSelferViaCodecgen() {}
  6955  func (x Bbool) CodecEncodeSelf(e *Encoder) {
  6956  	var h codecSelfer19780
  6957  	z, r := GenHelper().Encoder(e)
  6958  	_, _, _ = h, z, r
  6959  	r.EncodeBool(bool(x))
  6960  }
  6961  
  6962  func (x *Bbool) CodecDecodeSelf(d *Decoder) {
  6963  	var h codecSelfer19780
  6964  	z, r := GenHelper().Decoder(d)
  6965  	_, _, _ = h, z, r
  6966  	*x = (Bbool)(r.DecodeBool())
  6967  }
  6968  
  6969  func (Aarray) codecSelferViaCodecgen() {}
  6970  func (x *Aarray) CodecEncodeSelf(e *Encoder) {
  6971  	var h codecSelfer19780
  6972  	z, r := GenHelper().Encoder(e)
  6973  	_, _, _ = h, z, r
  6974  	if x == nil {
  6975  		r.EncodeNil()
  6976  	} else {
  6977  		z.F.EncSliceStringV(([]string)(x[:]), e)
  6978  	}
  6979  }
  6980  
  6981  func (x *Aarray) CodecDecodeSelf(d *Decoder) {
  6982  	var h codecSelfer19780
  6983  	z, r := GenHelper().Decoder(d)
  6984  	_, _, _ = h, z, r
  6985  	z.F.DecSliceStringN(([]string)(x[:]), d)
  6986  }
  6987  
  6988  func (Sstring) codecSelferViaCodecgen() {}
  6989  func (x Sstring) CodecEncodeSelf(e *Encoder) {
  6990  	var h codecSelfer19780
  6991  	z, r := GenHelper().Encoder(e)
  6992  	_, _, _ = h, z, r
  6993  	r.EncodeString(string(x))
  6994  }
  6995  
  6996  func (x *Sstring) CodecDecodeSelf(d *Decoder) {
  6997  	var h codecSelfer19780
  6998  	z, r := GenHelper().Decoder(d)
  6999  	_, _, _ = h, z, r
  7000  	*x = (Sstring)(z.DecStringZC(r.DecodeStringAsBytes()))
  7001  }
  7002  
  7003  func (Sstructsmall) codecSelferViaCodecgen() {}
  7004  func (x *Sstructsmall) CodecEncodeSelf(e *Encoder) {
  7005  	var h codecSelfer19780
  7006  	z, r := GenHelper().Encoder(e)
  7007  	_, _, _ = h, z, r
  7008  	if z.EncBasicHandle().CheckCircularRef {
  7009  		z.EncEncode(x)
  7010  		return
  7011  	}
  7012  	if x == nil {
  7013  		r.EncodeNil()
  7014  	} else {
  7015  		yy2arr2 := z.EncBasicHandle().StructToArray
  7016  		_ = yy2arr2
  7017  		const yyr2 bool = false // struct tag has 'toArray'
  7018  		if yyr2 || yy2arr2 {
  7019  			z.EncWriteArrayStart(1)
  7020  			z.EncWriteArrayElem()
  7021  			r.EncodeInt(int64(x.A))
  7022  			z.EncWriteArrayEnd()
  7023  		} else {
  7024  			z.EncWriteMapStart(1)
  7025  			z.EncWriteMapElemKey()
  7026  			if z.IsJSONHandle() {
  7027  				z.WriteStr("\"A\"")
  7028  			} else {
  7029  				r.EncodeString(`A`)
  7030  			}
  7031  			z.EncWriteMapElemValue()
  7032  			r.EncodeInt(int64(x.A))
  7033  			z.EncWriteMapEnd()
  7034  		}
  7035  	}
  7036  }
  7037  
  7038  func (x *Sstructsmall) CodecDecodeSelf(d *Decoder) {
  7039  	var h codecSelfer19780
  7040  	z, r := GenHelper().Decoder(d)
  7041  	_, _, _ = h, z, r
  7042  	yyct2 := r.ContainerType()
  7043  	if yyct2 == codecSelferValueTypeNil19780 {
  7044  		*(x) = Sstructsmall{}
  7045  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7046  		yyl2 := z.DecReadMapStart()
  7047  		if yyl2 == 0 {
  7048  		} else {
  7049  			x.codecDecodeSelfFromMap(yyl2, d)
  7050  		}
  7051  		z.DecReadMapEnd()
  7052  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7053  		yyl2 := z.DecReadArrayStart()
  7054  		if yyl2 != 0 {
  7055  			x.codecDecodeSelfFromArray(yyl2, d)
  7056  		}
  7057  		z.DecReadArrayEnd()
  7058  	} else {
  7059  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7060  	}
  7061  }
  7062  
  7063  func (x *Sstructsmall) codecDecodeSelfFromMap(l int, d *Decoder) {
  7064  	var h codecSelfer19780
  7065  	z, r := GenHelper().Decoder(d)
  7066  	_, _, _ = h, z, r
  7067  	var yyhl3 bool = l >= 0
  7068  	for yyj3 := 0; ; yyj3++ {
  7069  		if yyhl3 {
  7070  			if yyj3 >= l {
  7071  				break
  7072  			}
  7073  		} else {
  7074  			if z.DecCheckBreak() {
  7075  				break
  7076  			}
  7077  		}
  7078  		z.DecReadMapElemKey()
  7079  		yys3 := r.DecodeStringAsBytes()
  7080  		z.DecReadMapElemValue()
  7081  		switch string(yys3) {
  7082  		case "A":
  7083  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7084  		default:
  7085  			z.DecStructFieldNotFound(-1, string(yys3))
  7086  		} // end switch yys3
  7087  	} // end for yyj3
  7088  }
  7089  
  7090  func (x *Sstructsmall) codecDecodeSelfFromArray(l int, d *Decoder) {
  7091  	var h codecSelfer19780
  7092  	z, r := GenHelper().Decoder(d)
  7093  	_, _, _ = h, z, r
  7094  	var yyj5 int
  7095  	var yyb5 bool
  7096  	var yyhl5 bool = l >= 0
  7097  	yyj5++
  7098  	if yyhl5 {
  7099  		yyb5 = yyj5 > l
  7100  	} else {
  7101  		yyb5 = z.DecCheckBreak()
  7102  	}
  7103  	if yyb5 {
  7104  		z.DecReadArrayEnd()
  7105  		return
  7106  	}
  7107  	z.DecReadArrayElem()
  7108  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7109  	for {
  7110  		yyj5++
  7111  		if yyhl5 {
  7112  			yyb5 = yyj5 > l
  7113  		} else {
  7114  			yyb5 = z.DecCheckBreak()
  7115  		}
  7116  		if yyb5 {
  7117  			break
  7118  		}
  7119  		z.DecReadArrayElem()
  7120  		z.DecStructFieldNotFound(yyj5-1, "")
  7121  	}
  7122  }
  7123  
  7124  func (x *Sstructsmall) IsCodecEmpty() bool {
  7125  	return !(x.A != 0 || false)
  7126  }
  7127  
  7128  func (Sstructbig) codecSelferViaCodecgen() {}
  7129  func (x *Sstructbig) CodecEncodeSelf(e *Encoder) {
  7130  	var h codecSelfer19780
  7131  	z, r := GenHelper().Encoder(e)
  7132  	_, _, _ = h, z, r
  7133  	if z.EncBasicHandle().CheckCircularRef {
  7134  		z.EncEncode(x)
  7135  		return
  7136  	}
  7137  	if x == nil {
  7138  		r.EncodeNil()
  7139  	} else {
  7140  		yy2arr2 := z.EncBasicHandle().StructToArray
  7141  		_ = yy2arr2
  7142  		const yyr2 bool = false // struct tag has 'toArray'
  7143  		var yyn5 bool = x.Ssmallptr == nil
  7144  		var yyn7 bool = x.Sptr == nil
  7145  		if yyr2 || yy2arr2 {
  7146  			z.EncWriteArrayStart(5)
  7147  			z.EncWriteArrayElem()
  7148  			r.EncodeInt(int64(x.A))
  7149  			z.EncWriteArrayElem()
  7150  			r.EncodeBool(bool(x.B))
  7151  			if yyn5 {
  7152  				z.EncWriteArrayElem()
  7153  				r.EncodeNil()
  7154  			} else {
  7155  				z.EncWriteArrayElem()
  7156  				if yyxt10 := z.Extension(x.Ssmallptr); yyxt10 != nil {
  7157  					z.EncExtension(x.Ssmallptr, yyxt10)
  7158  				} else {
  7159  					x.Ssmallptr.CodecEncodeSelf(e)
  7160  				}
  7161  			}
  7162  			z.EncWriteArrayElem()
  7163  			yy11 := &x.Ssmall
  7164  			if yyxt12 := z.Extension(yy11); yyxt12 != nil {
  7165  				z.EncExtension(yy11, yyxt12)
  7166  			} else {
  7167  				yy11.CodecEncodeSelf(e)
  7168  			}
  7169  			if yyn7 {
  7170  				z.EncWriteArrayElem()
  7171  				r.EncodeNil()
  7172  			} else {
  7173  				z.EncWriteArrayElem()
  7174  				if yyxt13 := z.Extension(x.Sptr); yyxt13 != nil {
  7175  					z.EncExtension(x.Sptr, yyxt13)
  7176  				} else {
  7177  					x.Sptr.CodecEncodeSelf(e)
  7178  				}
  7179  			}
  7180  			z.EncWriteArrayEnd()
  7181  		} else {
  7182  			z.EncWriteMapStart(5)
  7183  			z.EncWriteMapElemKey()
  7184  			if z.IsJSONHandle() {
  7185  				z.WriteStr("\"A\"")
  7186  			} else {
  7187  				r.EncodeString(`A`)
  7188  			}
  7189  			z.EncWriteMapElemValue()
  7190  			r.EncodeInt(int64(x.A))
  7191  			z.EncWriteMapElemKey()
  7192  			if z.IsJSONHandle() {
  7193  				z.WriteStr("\"B\"")
  7194  			} else {
  7195  				r.EncodeString(`B`)
  7196  			}
  7197  			z.EncWriteMapElemValue()
  7198  			r.EncodeBool(bool(x.B))
  7199  			z.EncWriteMapElemKey()
  7200  			if z.IsJSONHandle() {
  7201  				z.WriteStr("\"Ssmallptr\"")
  7202  			} else {
  7203  				r.EncodeString(`Ssmallptr`)
  7204  			}
  7205  			z.EncWriteMapElemValue()
  7206  			if yyn5 {
  7207  				r.EncodeNil()
  7208  			} else {
  7209  				if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  7210  					z.EncExtension(x.Ssmallptr, yyxt16)
  7211  				} else {
  7212  					x.Ssmallptr.CodecEncodeSelf(e)
  7213  				}
  7214  			}
  7215  			z.EncWriteMapElemKey()
  7216  			if z.IsJSONHandle() {
  7217  				z.WriteStr("\"Ssmall\"")
  7218  			} else {
  7219  				r.EncodeString(`Ssmall`)
  7220  			}
  7221  			z.EncWriteMapElemValue()
  7222  			yy17 := &x.Ssmall
  7223  			if yyxt18 := z.Extension(yy17); yyxt18 != nil {
  7224  				z.EncExtension(yy17, yyxt18)
  7225  			} else {
  7226  				yy17.CodecEncodeSelf(e)
  7227  			}
  7228  			z.EncWriteMapElemKey()
  7229  			if z.IsJSONHandle() {
  7230  				z.WriteStr("\"Sptr\"")
  7231  			} else {
  7232  				r.EncodeString(`Sptr`)
  7233  			}
  7234  			z.EncWriteMapElemValue()
  7235  			if yyn7 {
  7236  				r.EncodeNil()
  7237  			} else {
  7238  				if yyxt19 := z.Extension(x.Sptr); yyxt19 != nil {
  7239  					z.EncExtension(x.Sptr, yyxt19)
  7240  				} else {
  7241  					x.Sptr.CodecEncodeSelf(e)
  7242  				}
  7243  			}
  7244  			z.EncWriteMapEnd()
  7245  		}
  7246  	}
  7247  }
  7248  
  7249  func (x *Sstructbig) CodecDecodeSelf(d *Decoder) {
  7250  	var h codecSelfer19780
  7251  	z, r := GenHelper().Decoder(d)
  7252  	_, _, _ = h, z, r
  7253  	yyct2 := r.ContainerType()
  7254  	if yyct2 == codecSelferValueTypeNil19780 {
  7255  		*(x) = Sstructbig{}
  7256  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7257  		yyl2 := z.DecReadMapStart()
  7258  		if yyl2 == 0 {
  7259  		} else {
  7260  			x.codecDecodeSelfFromMap(yyl2, d)
  7261  		}
  7262  		z.DecReadMapEnd()
  7263  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7264  		yyl2 := z.DecReadArrayStart()
  7265  		if yyl2 != 0 {
  7266  			x.codecDecodeSelfFromArray(yyl2, d)
  7267  		}
  7268  		z.DecReadArrayEnd()
  7269  	} else {
  7270  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7271  	}
  7272  }
  7273  
  7274  func (x *Sstructbig) codecDecodeSelfFromMap(l int, d *Decoder) {
  7275  	var h codecSelfer19780
  7276  	z, r := GenHelper().Decoder(d)
  7277  	_, _, _ = h, z, r
  7278  	var yyhl3 bool = l >= 0
  7279  	for yyj3 := 0; ; yyj3++ {
  7280  		if yyhl3 {
  7281  			if yyj3 >= l {
  7282  				break
  7283  			}
  7284  		} else {
  7285  			if z.DecCheckBreak() {
  7286  				break
  7287  			}
  7288  		}
  7289  		z.DecReadMapElemKey()
  7290  		yys3 := r.DecodeStringAsBytes()
  7291  		z.DecReadMapElemValue()
  7292  		switch string(yys3) {
  7293  		case "A":
  7294  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7295  		case "B":
  7296  			x.B = (bool)(r.DecodeBool())
  7297  		case "Ssmallptr":
  7298  			if r.TryNil() {
  7299  				if x.Ssmallptr != nil { // remove the if-true
  7300  					x.Ssmallptr = nil
  7301  				}
  7302  			} else {
  7303  				if x.Ssmallptr == nil {
  7304  					x.Ssmallptr = new(Sstructsmall)
  7305  				}
  7306  				if yyxt7 := z.Extension(x.Ssmallptr); yyxt7 != nil {
  7307  					z.DecExtension(x.Ssmallptr, yyxt7)
  7308  				} else {
  7309  					x.Ssmallptr.CodecDecodeSelf(d)
  7310  				}
  7311  			}
  7312  		case "Ssmall":
  7313  			if yyxt9 := z.Extension(x.Ssmall); yyxt9 != nil {
  7314  				z.DecExtension(&x.Ssmall, yyxt9)
  7315  			} else {
  7316  				x.Ssmall.CodecDecodeSelf(d)
  7317  			}
  7318  		case "Sptr":
  7319  			if r.TryNil() {
  7320  				if x.Sptr != nil { // remove the if-true
  7321  					x.Sptr = nil
  7322  				}
  7323  			} else {
  7324  				if x.Sptr == nil {
  7325  					x.Sptr = new(Sstructbig)
  7326  				}
  7327  				if yyxt11 := z.Extension(x.Sptr); yyxt11 != nil {
  7328  					z.DecExtension(x.Sptr, yyxt11)
  7329  				} else {
  7330  					x.Sptr.CodecDecodeSelf(d)
  7331  				}
  7332  			}
  7333  		default:
  7334  			z.DecStructFieldNotFound(-1, string(yys3))
  7335  		} // end switch yys3
  7336  	} // end for yyj3
  7337  }
  7338  
  7339  func (x *Sstructbig) codecDecodeSelfFromArray(l int, d *Decoder) {
  7340  	var h codecSelfer19780
  7341  	z, r := GenHelper().Decoder(d)
  7342  	_, _, _ = h, z, r
  7343  	var yyj12 int
  7344  	var yyb12 bool
  7345  	var yyhl12 bool = l >= 0
  7346  	yyj12++
  7347  	if yyhl12 {
  7348  		yyb12 = yyj12 > l
  7349  	} else {
  7350  		yyb12 = z.DecCheckBreak()
  7351  	}
  7352  	if yyb12 {
  7353  		z.DecReadArrayEnd()
  7354  		return
  7355  	}
  7356  	z.DecReadArrayElem()
  7357  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7358  	yyj12++
  7359  	if yyhl12 {
  7360  		yyb12 = yyj12 > l
  7361  	} else {
  7362  		yyb12 = z.DecCheckBreak()
  7363  	}
  7364  	if yyb12 {
  7365  		z.DecReadArrayEnd()
  7366  		return
  7367  	}
  7368  	z.DecReadArrayElem()
  7369  	x.B = (bool)(r.DecodeBool())
  7370  	yyj12++
  7371  	if yyhl12 {
  7372  		yyb12 = yyj12 > l
  7373  	} else {
  7374  		yyb12 = z.DecCheckBreak()
  7375  	}
  7376  	if yyb12 {
  7377  		z.DecReadArrayEnd()
  7378  		return
  7379  	}
  7380  	z.DecReadArrayElem()
  7381  	if r.TryNil() {
  7382  		if x.Ssmallptr != nil { // remove the if-true
  7383  			x.Ssmallptr = nil
  7384  		}
  7385  	} else {
  7386  		if x.Ssmallptr == nil {
  7387  			x.Ssmallptr = new(Sstructsmall)
  7388  		}
  7389  		if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  7390  			z.DecExtension(x.Ssmallptr, yyxt16)
  7391  		} else {
  7392  			x.Ssmallptr.CodecDecodeSelf(d)
  7393  		}
  7394  	}
  7395  	yyj12++
  7396  	if yyhl12 {
  7397  		yyb12 = yyj12 > l
  7398  	} else {
  7399  		yyb12 = z.DecCheckBreak()
  7400  	}
  7401  	if yyb12 {
  7402  		z.DecReadArrayEnd()
  7403  		return
  7404  	}
  7405  	z.DecReadArrayElem()
  7406  	if yyxt18 := z.Extension(x.Ssmall); yyxt18 != nil {
  7407  		z.DecExtension(&x.Ssmall, yyxt18)
  7408  	} else {
  7409  		x.Ssmall.CodecDecodeSelf(d)
  7410  	}
  7411  	yyj12++
  7412  	if yyhl12 {
  7413  		yyb12 = yyj12 > l
  7414  	} else {
  7415  		yyb12 = z.DecCheckBreak()
  7416  	}
  7417  	if yyb12 {
  7418  		z.DecReadArrayEnd()
  7419  		return
  7420  	}
  7421  	z.DecReadArrayElem()
  7422  	if r.TryNil() {
  7423  		if x.Sptr != nil { // remove the if-true
  7424  			x.Sptr = nil
  7425  		}
  7426  	} else {
  7427  		if x.Sptr == nil {
  7428  			x.Sptr = new(Sstructbig)
  7429  		}
  7430  		if yyxt20 := z.Extension(x.Sptr); yyxt20 != nil {
  7431  			z.DecExtension(x.Sptr, yyxt20)
  7432  		} else {
  7433  			x.Sptr.CodecDecodeSelf(d)
  7434  		}
  7435  	}
  7436  	for {
  7437  		yyj12++
  7438  		if yyhl12 {
  7439  			yyb12 = yyj12 > l
  7440  		} else {
  7441  			yyb12 = z.DecCheckBreak()
  7442  		}
  7443  		if yyb12 {
  7444  			break
  7445  		}
  7446  		z.DecReadArrayElem()
  7447  		z.DecStructFieldNotFound(yyj12-1, "")
  7448  	}
  7449  }
  7450  
  7451  func (x *Sstructbig) IsCodecEmpty() bool {
  7452  	return !(x.A != 0 || bool(x.B) || !(x.Ssmall.IsCodecEmpty()) || false)
  7453  }
  7454  
  7455  func (SstructbigToArray) codecSelferViaCodecgen() {}
  7456  func (x *SstructbigToArray) CodecEncodeSelf(e *Encoder) {
  7457  	var h codecSelfer19780
  7458  	z, r := GenHelper().Encoder(e)
  7459  	_, _, _ = h, z, r
  7460  	if z.EncBasicHandle().CheckCircularRef {
  7461  		z.EncEncode(x)
  7462  		return
  7463  	}
  7464  	if x == nil {
  7465  		r.EncodeNil()
  7466  	} else {
  7467  		yy2arr2 := z.EncBasicHandle().StructToArray
  7468  		_ = yy2arr2
  7469  		const yyr2 bool = true // struct tag has 'toArray'
  7470  		var yyn5 bool = x.Ssmallptr == nil
  7471  		var yyn7 bool = x.Sptr == nil
  7472  		if yyr2 || yy2arr2 {
  7473  			z.EncWriteArrayStart(5)
  7474  			z.EncWriteArrayElem()
  7475  			r.EncodeInt(int64(x.A))
  7476  			z.EncWriteArrayElem()
  7477  			r.EncodeBool(bool(x.B))
  7478  			if yyn5 {
  7479  				z.EncWriteArrayElem()
  7480  				r.EncodeNil()
  7481  			} else {
  7482  				z.EncWriteArrayElem()
  7483  				if yyxt10 := z.Extension(x.Ssmallptr); yyxt10 != nil {
  7484  					z.EncExtension(x.Ssmallptr, yyxt10)
  7485  				} else {
  7486  					x.Ssmallptr.CodecEncodeSelf(e)
  7487  				}
  7488  			}
  7489  			z.EncWriteArrayElem()
  7490  			yy11 := &x.Ssmall
  7491  			if yyxt12 := z.Extension(yy11); yyxt12 != nil {
  7492  				z.EncExtension(yy11, yyxt12)
  7493  			} else {
  7494  				yy11.CodecEncodeSelf(e)
  7495  			}
  7496  			if yyn7 {
  7497  				z.EncWriteArrayElem()
  7498  				r.EncodeNil()
  7499  			} else {
  7500  				z.EncWriteArrayElem()
  7501  				if yyxt13 := z.Extension(x.Sptr); yyxt13 != nil {
  7502  					z.EncExtension(x.Sptr, yyxt13)
  7503  				} else {
  7504  					x.Sptr.CodecEncodeSelf(e)
  7505  				}
  7506  			}
  7507  			z.EncWriteArrayEnd()
  7508  		} else {
  7509  			z.EncWriteMapStart(5)
  7510  			z.EncWriteMapElemKey()
  7511  			if z.IsJSONHandle() {
  7512  				z.WriteStr("\"A\"")
  7513  			} else {
  7514  				r.EncodeString(`A`)
  7515  			}
  7516  			z.EncWriteMapElemValue()
  7517  			r.EncodeInt(int64(x.A))
  7518  			z.EncWriteMapElemKey()
  7519  			if z.IsJSONHandle() {
  7520  				z.WriteStr("\"B\"")
  7521  			} else {
  7522  				r.EncodeString(`B`)
  7523  			}
  7524  			z.EncWriteMapElemValue()
  7525  			r.EncodeBool(bool(x.B))
  7526  			z.EncWriteMapElemKey()
  7527  			if z.IsJSONHandle() {
  7528  				z.WriteStr("\"Ssmallptr\"")
  7529  			} else {
  7530  				r.EncodeString(`Ssmallptr`)
  7531  			}
  7532  			z.EncWriteMapElemValue()
  7533  			if yyn5 {
  7534  				r.EncodeNil()
  7535  			} else {
  7536  				if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  7537  					z.EncExtension(x.Ssmallptr, yyxt16)
  7538  				} else {
  7539  					x.Ssmallptr.CodecEncodeSelf(e)
  7540  				}
  7541  			}
  7542  			z.EncWriteMapElemKey()
  7543  			if z.IsJSONHandle() {
  7544  				z.WriteStr("\"Ssmall\"")
  7545  			} else {
  7546  				r.EncodeString(`Ssmall`)
  7547  			}
  7548  			z.EncWriteMapElemValue()
  7549  			yy17 := &x.Ssmall
  7550  			if yyxt18 := z.Extension(yy17); yyxt18 != nil {
  7551  				z.EncExtension(yy17, yyxt18)
  7552  			} else {
  7553  				yy17.CodecEncodeSelf(e)
  7554  			}
  7555  			z.EncWriteMapElemKey()
  7556  			if z.IsJSONHandle() {
  7557  				z.WriteStr("\"Sptr\"")
  7558  			} else {
  7559  				r.EncodeString(`Sptr`)
  7560  			}
  7561  			z.EncWriteMapElemValue()
  7562  			if yyn7 {
  7563  				r.EncodeNil()
  7564  			} else {
  7565  				if yyxt19 := z.Extension(x.Sptr); yyxt19 != nil {
  7566  					z.EncExtension(x.Sptr, yyxt19)
  7567  				} else {
  7568  					x.Sptr.CodecEncodeSelf(e)
  7569  				}
  7570  			}
  7571  			z.EncWriteMapEnd()
  7572  		}
  7573  	}
  7574  }
  7575  
  7576  func (x *SstructbigToArray) CodecDecodeSelf(d *Decoder) {
  7577  	var h codecSelfer19780
  7578  	z, r := GenHelper().Decoder(d)
  7579  	_, _, _ = h, z, r
  7580  	yyct2 := r.ContainerType()
  7581  	if yyct2 == codecSelferValueTypeNil19780 {
  7582  		*(x) = SstructbigToArray{}
  7583  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7584  		yyl2 := z.DecReadMapStart()
  7585  		if yyl2 == 0 {
  7586  		} else {
  7587  			x.codecDecodeSelfFromMap(yyl2, d)
  7588  		}
  7589  		z.DecReadMapEnd()
  7590  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7591  		yyl2 := z.DecReadArrayStart()
  7592  		if yyl2 != 0 {
  7593  			x.codecDecodeSelfFromArray(yyl2, d)
  7594  		}
  7595  		z.DecReadArrayEnd()
  7596  	} else {
  7597  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7598  	}
  7599  }
  7600  
  7601  func (x *SstructbigToArray) codecDecodeSelfFromMap(l int, d *Decoder) {
  7602  	var h codecSelfer19780
  7603  	z, r := GenHelper().Decoder(d)
  7604  	_, _, _ = h, z, r
  7605  	var yyhl3 bool = l >= 0
  7606  	for yyj3 := 0; ; yyj3++ {
  7607  		if yyhl3 {
  7608  			if yyj3 >= l {
  7609  				break
  7610  			}
  7611  		} else {
  7612  			if z.DecCheckBreak() {
  7613  				break
  7614  			}
  7615  		}
  7616  		z.DecReadMapElemKey()
  7617  		yys3 := r.DecodeStringAsBytes()
  7618  		z.DecReadMapElemValue()
  7619  		switch string(yys3) {
  7620  		case "A":
  7621  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7622  		case "B":
  7623  			x.B = (bool)(r.DecodeBool())
  7624  		case "Ssmallptr":
  7625  			if r.TryNil() {
  7626  				if x.Ssmallptr != nil { // remove the if-true
  7627  					x.Ssmallptr = nil
  7628  				}
  7629  			} else {
  7630  				if x.Ssmallptr == nil {
  7631  					x.Ssmallptr = new(Sstructsmall)
  7632  				}
  7633  				if yyxt7 := z.Extension(x.Ssmallptr); yyxt7 != nil {
  7634  					z.DecExtension(x.Ssmallptr, yyxt7)
  7635  				} else {
  7636  					x.Ssmallptr.CodecDecodeSelf(d)
  7637  				}
  7638  			}
  7639  		case "Ssmall":
  7640  			if yyxt9 := z.Extension(x.Ssmall); yyxt9 != nil {
  7641  				z.DecExtension(&x.Ssmall, yyxt9)
  7642  			} else {
  7643  				x.Ssmall.CodecDecodeSelf(d)
  7644  			}
  7645  		case "Sptr":
  7646  			if r.TryNil() {
  7647  				if x.Sptr != nil { // remove the if-true
  7648  					x.Sptr = nil
  7649  				}
  7650  			} else {
  7651  				if x.Sptr == nil {
  7652  					x.Sptr = new(Sstructbig)
  7653  				}
  7654  				if yyxt11 := z.Extension(x.Sptr); yyxt11 != nil {
  7655  					z.DecExtension(x.Sptr, yyxt11)
  7656  				} else {
  7657  					x.Sptr.CodecDecodeSelf(d)
  7658  				}
  7659  			}
  7660  		default:
  7661  			z.DecStructFieldNotFound(-1, string(yys3))
  7662  		} // end switch yys3
  7663  	} // end for yyj3
  7664  }
  7665  
  7666  func (x *SstructbigToArray) codecDecodeSelfFromArray(l int, d *Decoder) {
  7667  	var h codecSelfer19780
  7668  	z, r := GenHelper().Decoder(d)
  7669  	_, _, _ = h, z, r
  7670  	var yyj12 int
  7671  	var yyb12 bool
  7672  	var yyhl12 bool = l >= 0
  7673  	yyj12++
  7674  	if yyhl12 {
  7675  		yyb12 = yyj12 > l
  7676  	} else {
  7677  		yyb12 = z.DecCheckBreak()
  7678  	}
  7679  	if yyb12 {
  7680  		z.DecReadArrayEnd()
  7681  		return
  7682  	}
  7683  	z.DecReadArrayElem()
  7684  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7685  	yyj12++
  7686  	if yyhl12 {
  7687  		yyb12 = yyj12 > l
  7688  	} else {
  7689  		yyb12 = z.DecCheckBreak()
  7690  	}
  7691  	if yyb12 {
  7692  		z.DecReadArrayEnd()
  7693  		return
  7694  	}
  7695  	z.DecReadArrayElem()
  7696  	x.B = (bool)(r.DecodeBool())
  7697  	yyj12++
  7698  	if yyhl12 {
  7699  		yyb12 = yyj12 > l
  7700  	} else {
  7701  		yyb12 = z.DecCheckBreak()
  7702  	}
  7703  	if yyb12 {
  7704  		z.DecReadArrayEnd()
  7705  		return
  7706  	}
  7707  	z.DecReadArrayElem()
  7708  	if r.TryNil() {
  7709  		if x.Ssmallptr != nil { // remove the if-true
  7710  			x.Ssmallptr = nil
  7711  		}
  7712  	} else {
  7713  		if x.Ssmallptr == nil {
  7714  			x.Ssmallptr = new(Sstructsmall)
  7715  		}
  7716  		if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  7717  			z.DecExtension(x.Ssmallptr, yyxt16)
  7718  		} else {
  7719  			x.Ssmallptr.CodecDecodeSelf(d)
  7720  		}
  7721  	}
  7722  	yyj12++
  7723  	if yyhl12 {
  7724  		yyb12 = yyj12 > l
  7725  	} else {
  7726  		yyb12 = z.DecCheckBreak()
  7727  	}
  7728  	if yyb12 {
  7729  		z.DecReadArrayEnd()
  7730  		return
  7731  	}
  7732  	z.DecReadArrayElem()
  7733  	if yyxt18 := z.Extension(x.Ssmall); yyxt18 != nil {
  7734  		z.DecExtension(&x.Ssmall, yyxt18)
  7735  	} else {
  7736  		x.Ssmall.CodecDecodeSelf(d)
  7737  	}
  7738  	yyj12++
  7739  	if yyhl12 {
  7740  		yyb12 = yyj12 > l
  7741  	} else {
  7742  		yyb12 = z.DecCheckBreak()
  7743  	}
  7744  	if yyb12 {
  7745  		z.DecReadArrayEnd()
  7746  		return
  7747  	}
  7748  	z.DecReadArrayElem()
  7749  	if r.TryNil() {
  7750  		if x.Sptr != nil { // remove the if-true
  7751  			x.Sptr = nil
  7752  		}
  7753  	} else {
  7754  		if x.Sptr == nil {
  7755  			x.Sptr = new(Sstructbig)
  7756  		}
  7757  		if yyxt20 := z.Extension(x.Sptr); yyxt20 != nil {
  7758  			z.DecExtension(x.Sptr, yyxt20)
  7759  		} else {
  7760  			x.Sptr.CodecDecodeSelf(d)
  7761  		}
  7762  	}
  7763  	for {
  7764  		yyj12++
  7765  		if yyhl12 {
  7766  			yyb12 = yyj12 > l
  7767  		} else {
  7768  			yyb12 = z.DecCheckBreak()
  7769  		}
  7770  		if yyb12 {
  7771  			break
  7772  		}
  7773  		z.DecReadArrayElem()
  7774  		z.DecStructFieldNotFound(yyj12-1, "")
  7775  	}
  7776  }
  7777  
  7778  func (x *SstructbigToArray) IsCodecEmpty() bool {
  7779  	return !(x.A != 0 || bool(x.B) || !(x.Ssmall.IsCodecEmpty()) || false)
  7780  }
  7781  
  7782  func (tLowerFirstLetter) codecSelferViaCodecgen() {}
  7783  func (x *tLowerFirstLetter) CodecEncodeSelf(e *Encoder) {
  7784  	var h codecSelfer19780
  7785  	z, r := GenHelper().Encoder(e)
  7786  	_, _, _ = h, z, r
  7787  	if z.EncBasicHandle().CheckCircularRef {
  7788  		z.EncEncode(x)
  7789  		return
  7790  	}
  7791  	if x == nil {
  7792  		r.EncodeNil()
  7793  	} else {
  7794  		yy2arr2 := z.EncBasicHandle().StructToArray
  7795  		_ = yy2arr2
  7796  		const yyr2 bool = false // struct tag has 'toArray'
  7797  		if yyr2 || yy2arr2 {
  7798  			z.EncWriteArrayStart(2)
  7799  			z.EncWriteArrayElem()
  7800  			r.EncodeInt(int64(x.I))
  7801  			z.EncWriteArrayElem()
  7802  			r.EncodeString(string(x.S))
  7803  			z.EncWriteArrayEnd()
  7804  		} else {
  7805  			z.EncWriteMapStart(2)
  7806  			z.EncWriteMapElemKey()
  7807  			if z.IsJSONHandle() {
  7808  				z.WriteStr("\"I\"")
  7809  			} else {
  7810  				r.EncodeString(`I`)
  7811  			}
  7812  			z.EncWriteMapElemValue()
  7813  			r.EncodeInt(int64(x.I))
  7814  			z.EncWriteMapElemKey()
  7815  			if z.IsJSONHandle() {
  7816  				z.WriteStr("\"S\"")
  7817  			} else {
  7818  				r.EncodeString(`S`)
  7819  			}
  7820  			z.EncWriteMapElemValue()
  7821  			r.EncodeString(string(x.S))
  7822  			z.EncWriteMapEnd()
  7823  		}
  7824  	}
  7825  }
  7826  
  7827  func (x *tLowerFirstLetter) CodecDecodeSelf(d *Decoder) {
  7828  	var h codecSelfer19780
  7829  	z, r := GenHelper().Decoder(d)
  7830  	_, _, _ = h, z, r
  7831  	yyct2 := r.ContainerType()
  7832  	if yyct2 == codecSelferValueTypeNil19780 {
  7833  		*(x) = tLowerFirstLetter{}
  7834  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7835  		yyl2 := z.DecReadMapStart()
  7836  		if yyl2 == 0 {
  7837  		} else {
  7838  			x.codecDecodeSelfFromMap(yyl2, d)
  7839  		}
  7840  		z.DecReadMapEnd()
  7841  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7842  		yyl2 := z.DecReadArrayStart()
  7843  		if yyl2 != 0 {
  7844  			x.codecDecodeSelfFromArray(yyl2, d)
  7845  		}
  7846  		z.DecReadArrayEnd()
  7847  	} else {
  7848  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7849  	}
  7850  }
  7851  
  7852  func (x *tLowerFirstLetter) codecDecodeSelfFromMap(l int, d *Decoder) {
  7853  	var h codecSelfer19780
  7854  	z, r := GenHelper().Decoder(d)
  7855  	_, _, _ = h, z, r
  7856  	var yyhl3 bool = l >= 0
  7857  	for yyj3 := 0; ; yyj3++ {
  7858  		if yyhl3 {
  7859  			if yyj3 >= l {
  7860  				break
  7861  			}
  7862  		} else {
  7863  			if z.DecCheckBreak() {
  7864  				break
  7865  			}
  7866  		}
  7867  		z.DecReadMapElemKey()
  7868  		yys3 := r.DecodeStringAsBytes()
  7869  		z.DecReadMapElemValue()
  7870  		switch string(yys3) {
  7871  		case "I":
  7872  			x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7873  		case "S":
  7874  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7875  		default:
  7876  			z.DecStructFieldNotFound(-1, string(yys3))
  7877  		} // end switch yys3
  7878  	} // end for yyj3
  7879  }
  7880  
  7881  func (x *tLowerFirstLetter) codecDecodeSelfFromArray(l int, d *Decoder) {
  7882  	var h codecSelfer19780
  7883  	z, r := GenHelper().Decoder(d)
  7884  	_, _, _ = h, z, r
  7885  	var yyj6 int
  7886  	var yyb6 bool
  7887  	var yyhl6 bool = l >= 0
  7888  	yyj6++
  7889  	if yyhl6 {
  7890  		yyb6 = yyj6 > l
  7891  	} else {
  7892  		yyb6 = z.DecCheckBreak()
  7893  	}
  7894  	if yyb6 {
  7895  		z.DecReadArrayEnd()
  7896  		return
  7897  	}
  7898  	z.DecReadArrayElem()
  7899  	x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7900  	yyj6++
  7901  	if yyhl6 {
  7902  		yyb6 = yyj6 > l
  7903  	} else {
  7904  		yyb6 = z.DecCheckBreak()
  7905  	}
  7906  	if yyb6 {
  7907  		z.DecReadArrayEnd()
  7908  		return
  7909  	}
  7910  	z.DecReadArrayElem()
  7911  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7912  	for {
  7913  		yyj6++
  7914  		if yyhl6 {
  7915  			yyb6 = yyj6 > l
  7916  		} else {
  7917  			yyb6 = z.DecCheckBreak()
  7918  		}
  7919  		if yyb6 {
  7920  			break
  7921  		}
  7922  		z.DecReadArrayElem()
  7923  		z.DecStructFieldNotFound(yyj6-1, "")
  7924  	}
  7925  }
  7926  
  7927  func (x *tLowerFirstLetter) IsCodecEmpty() bool {
  7928  	return !(x.I != 0 || x.S != "" || false)
  7929  }
  7930  
  7931  func (wrapInt64) codecSelferViaCodecgen() {}
  7932  func (x wrapInt64) CodecEncodeSelf(e *Encoder) {
  7933  	var h codecSelfer19780
  7934  	z, r := GenHelper().Encoder(e)
  7935  	_, _, _ = h, z, r
  7936  	r.EncodeInt(int64(x))
  7937  }
  7938  
  7939  func (x *wrapInt64) CodecDecodeSelf(d *Decoder) {
  7940  	var h codecSelfer19780
  7941  	z, r := GenHelper().Decoder(d)
  7942  	_, _, _ = h, z, r
  7943  	*x = (wrapInt64)(r.DecodeInt64())
  7944  }
  7945  
  7946  func (wrapUint8) codecSelferViaCodecgen() {}
  7947  func (x wrapUint8) CodecEncodeSelf(e *Encoder) {
  7948  	var h codecSelfer19780
  7949  	z, r := GenHelper().Encoder(e)
  7950  	_, _, _ = h, z, r
  7951  	r.EncodeUint(uint64(x))
  7952  }
  7953  
  7954  func (x *wrapUint8) CodecDecodeSelf(d *Decoder) {
  7955  	var h codecSelfer19780
  7956  	z, r := GenHelper().Decoder(d)
  7957  	_, _, _ = h, z, r
  7958  	*x = (wrapUint8)(z.C.UintV(r.DecodeUint64(), 8))
  7959  }
  7960  
  7961  func (wrapBytes) codecSelferViaCodecgen() {}
  7962  func (x wrapBytes) CodecEncodeSelf(e *Encoder) {
  7963  	var h codecSelfer19780
  7964  	z, r := GenHelper().Encoder(e)
  7965  	_, _, _ = h, z, r
  7966  	if x == nil {
  7967  		r.EncodeNil()
  7968  	} else {
  7969  		z.F.EncSliceUint8V(([]uint8)(x), e)
  7970  	} // end block: if x slice == nil
  7971  }
  7972  
  7973  func (x *wrapBytes) CodecDecodeSelf(d *Decoder) {
  7974  	var h codecSelfer19780
  7975  	z, r := GenHelper().Decoder(d)
  7976  	_, _, _ = h, z, r
  7977  	z.F.DecSliceUint8X((*[]uint8)(x), d)
  7978  }
  7979  
  7980  func (testMarshalAsJSON) codecSelferViaCodecgen() {}
  7981  func (x testMarshalAsJSON) CodecEncodeSelf(e *Encoder) {
  7982  	var h codecSelfer19780
  7983  	z, r := GenHelper().Encoder(e)
  7984  	_, _, _ = h, z, r
  7985  	if !z.EncBinary() && z.IsJSONHandle() {
  7986  		z.EncJSONMarshal(x)
  7987  	} else {
  7988  		r.EncodeBool(bool(x))
  7989  	}
  7990  }
  7991  
  7992  func (x *testMarshalAsJSON) CodecDecodeSelf(d *Decoder) {
  7993  	var h codecSelfer19780
  7994  	z, r := GenHelper().Decoder(d)
  7995  	_, _, _ = h, z, r
  7996  	if !z.DecBinary() && z.IsJSONHandle() {
  7997  		z.DecJSONUnmarshal(x)
  7998  	} else {
  7999  		*x = (testMarshalAsJSON)(r.DecodeBool())
  8000  	}
  8001  }
  8002  
  8003  func (testMarshalAsBinary) codecSelferViaCodecgen() {}
  8004  func (x testMarshalAsBinary) CodecEncodeSelf(e *Encoder) {
  8005  	var h codecSelfer19780
  8006  	z, r := GenHelper().Encoder(e)
  8007  	_, _, _ = h, z, r
  8008  	if z.EncBinary() {
  8009  		z.EncBinaryMarshal(x)
  8010  	} else {
  8011  		if x == nil {
  8012  			r.EncodeNil()
  8013  		} else {
  8014  			z.F.EncSliceUint8V(([]uint8)(x), e)
  8015  		} // end block: if x slice == nil
  8016  	}
  8017  }
  8018  
  8019  func (x *testMarshalAsBinary) CodecDecodeSelf(d *Decoder) {
  8020  	var h codecSelfer19780
  8021  	z, r := GenHelper().Decoder(d)
  8022  	_, _, _ = h, z, r
  8023  	if z.DecBinary() {
  8024  		z.DecBinaryUnmarshal(x)
  8025  	} else {
  8026  		z.F.DecSliceUint8X((*[]uint8)(x), d)
  8027  	}
  8028  }
  8029  
  8030  func (testMarshalAsText) codecSelferViaCodecgen() {}
  8031  func (x testMarshalAsText) CodecEncodeSelf(e *Encoder) {
  8032  	var h codecSelfer19780
  8033  	z, r := GenHelper().Encoder(e)
  8034  	_, _, _ = h, z, r
  8035  	if !z.EncBinary() {
  8036  		z.EncTextMarshal(x)
  8037  	} else {
  8038  		r.EncodeString(string(x))
  8039  	}
  8040  }
  8041  
  8042  func (x *testMarshalAsText) CodecDecodeSelf(d *Decoder) {
  8043  	var h codecSelfer19780
  8044  	z, r := GenHelper().Decoder(d)
  8045  	_, _, _ = h, z, r
  8046  	if !z.DecBinary() {
  8047  		z.DecTextUnmarshal(x)
  8048  	} else {
  8049  		*x = (testMarshalAsText)(z.DecStringZC(r.DecodeStringAsBytes()))
  8050  	}
  8051  }
  8052  
  8053  func (testUintToBytes) codecSelferViaCodecgen() {}
  8054  func (x testUintToBytes) CodecEncodeSelf(e *Encoder) {
  8055  	var h codecSelfer19780
  8056  	z, r := GenHelper().Encoder(e)
  8057  	_, _, _ = h, z, r
  8058  	r.EncodeUint(uint64(x))
  8059  }
  8060  
  8061  func (x *testUintToBytes) CodecDecodeSelf(d *Decoder) {
  8062  	var h codecSelfer19780
  8063  	z, r := GenHelper().Decoder(d)
  8064  	_, _, _ = h, z, r
  8065  	*x = (testUintToBytes)(z.C.UintV(r.DecodeUint64(), 32))
  8066  }
  8067  
  8068  func (AnonInTestStrucIntf) codecSelferViaCodecgen() {}
  8069  func (x *AnonInTestStrucIntf) CodecEncodeSelf(e *Encoder) {
  8070  	var h codecSelfer19780
  8071  	z, r := GenHelper().Encoder(e)
  8072  	_, _, _ = h, z, r
  8073  	if z.EncBasicHandle().CheckCircularRef {
  8074  		z.EncEncode(x)
  8075  		return
  8076  	}
  8077  	if x == nil {
  8078  		r.EncodeNil()
  8079  	} else {
  8080  		yy2arr2 := z.EncBasicHandle().StructToArray
  8081  		_ = yy2arr2
  8082  		const yyr2 bool = false // struct tag has 'toArray'
  8083  		var yyn7 bool = x.Tptr == nil
  8084  		if yyr2 || yy2arr2 {
  8085  			z.EncWriteArrayStart(5)
  8086  			z.EncWriteArrayElem()
  8087  			if x.Islice == nil {
  8088  				r.EncodeNil()
  8089  			} else {
  8090  				z.F.EncSliceIntfV(x.Islice, e)
  8091  			} // end block: if x.Islice slice == nil
  8092  			z.EncWriteArrayElem()
  8093  			if x.Ms == nil {
  8094  				r.EncodeNil()
  8095  			} else {
  8096  				z.F.EncMapStringIntfV(x.Ms, e)
  8097  			} // end block: if x.Ms map == nil
  8098  			z.EncWriteArrayElem()
  8099  			z.EncFallback(x.Nintf)
  8100  			z.EncWriteArrayElem()
  8101  			if z.EncBasicHandle().TimeBuiltin() {
  8102  				r.EncodeTime(x.T)
  8103  			} else if yyxt11 := z.Extension(x.T); yyxt11 != nil {
  8104  				z.EncExtension(x.T, yyxt11)
  8105  			} else if z.EncBinary() {
  8106  				z.EncBinaryMarshal(x.T)
  8107  			} else if !z.EncBinary() && z.IsJSONHandle() {
  8108  				z.EncJSONMarshal(x.T)
  8109  			} else {
  8110  				z.EncFallback(x.T)
  8111  			}
  8112  			if yyn7 {
  8113  				z.EncWriteArrayElem()
  8114  				r.EncodeNil()
  8115  			} else {
  8116  				z.EncWriteArrayElem()
  8117  				yy12 := *x.Tptr
  8118  				if z.EncBasicHandle().TimeBuiltin() {
  8119  					r.EncodeTime(yy12)
  8120  				} else if yyxt13 := z.Extension(yy12); yyxt13 != nil {
  8121  					z.EncExtension(yy12, yyxt13)
  8122  				} else if z.EncBinary() {
  8123  					z.EncBinaryMarshal(yy12)
  8124  				} else if !z.EncBinary() && z.IsJSONHandle() {
  8125  					z.EncJSONMarshal(yy12)
  8126  				} else {
  8127  					z.EncFallback(yy12)
  8128  				}
  8129  			}
  8130  			z.EncWriteArrayEnd()
  8131  		} else {
  8132  			z.EncWriteMapStart(5)
  8133  			z.EncWriteMapElemKey()
  8134  			if z.IsJSONHandle() {
  8135  				z.WriteStr("\"Islice\"")
  8136  			} else {
  8137  				r.EncodeString(`Islice`)
  8138  			}
  8139  			z.EncWriteMapElemValue()
  8140  			if x.Islice == nil {
  8141  				r.EncodeNil()
  8142  			} else {
  8143  				z.F.EncSliceIntfV(x.Islice, e)
  8144  			} // end block: if x.Islice slice == nil
  8145  			z.EncWriteMapElemKey()
  8146  			if z.IsJSONHandle() {
  8147  				z.WriteStr("\"Ms\"")
  8148  			} else {
  8149  				r.EncodeString(`Ms`)
  8150  			}
  8151  			z.EncWriteMapElemValue()
  8152  			if x.Ms == nil {
  8153  				r.EncodeNil()
  8154  			} else {
  8155  				z.F.EncMapStringIntfV(x.Ms, e)
  8156  			} // end block: if x.Ms map == nil
  8157  			z.EncWriteMapElemKey()
  8158  			if z.IsJSONHandle() {
  8159  				z.WriteStr("\"Nintf\"")
  8160  			} else {
  8161  				r.EncodeString(`Nintf`)
  8162  			}
  8163  			z.EncWriteMapElemValue()
  8164  			z.EncFallback(x.Nintf)
  8165  			z.EncWriteMapElemKey()
  8166  			if z.IsJSONHandle() {
  8167  				z.WriteStr("\"T\"")
  8168  			} else {
  8169  				r.EncodeString(`T`)
  8170  			}
  8171  			z.EncWriteMapElemValue()
  8172  			if z.EncBasicHandle().TimeBuiltin() {
  8173  				r.EncodeTime(x.T)
  8174  			} else if yyxt17 := z.Extension(x.T); yyxt17 != nil {
  8175  				z.EncExtension(x.T, yyxt17)
  8176  			} else if z.EncBinary() {
  8177  				z.EncBinaryMarshal(x.T)
  8178  			} else if !z.EncBinary() && z.IsJSONHandle() {
  8179  				z.EncJSONMarshal(x.T)
  8180  			} else {
  8181  				z.EncFallback(x.T)
  8182  			}
  8183  			z.EncWriteMapElemKey()
  8184  			if z.IsJSONHandle() {
  8185  				z.WriteStr("\"Tptr\"")
  8186  			} else {
  8187  				r.EncodeString(`Tptr`)
  8188  			}
  8189  			z.EncWriteMapElemValue()
  8190  			if yyn7 {
  8191  				r.EncodeNil()
  8192  			} else {
  8193  				yy18 := *x.Tptr
  8194  				if z.EncBasicHandle().TimeBuiltin() {
  8195  					r.EncodeTime(yy18)
  8196  				} else if yyxt19 := z.Extension(yy18); yyxt19 != nil {
  8197  					z.EncExtension(yy18, yyxt19)
  8198  				} else if z.EncBinary() {
  8199  					z.EncBinaryMarshal(yy18)
  8200  				} else if !z.EncBinary() && z.IsJSONHandle() {
  8201  					z.EncJSONMarshal(yy18)
  8202  				} else {
  8203  					z.EncFallback(yy18)
  8204  				}
  8205  			}
  8206  			z.EncWriteMapEnd()
  8207  		}
  8208  	}
  8209  }
  8210  
  8211  func (x *AnonInTestStrucIntf) CodecDecodeSelf(d *Decoder) {
  8212  	var h codecSelfer19780
  8213  	z, r := GenHelper().Decoder(d)
  8214  	_, _, _ = h, z, r
  8215  	yyct2 := r.ContainerType()
  8216  	if yyct2 == codecSelferValueTypeNil19780 {
  8217  		*(x) = AnonInTestStrucIntf{}
  8218  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8219  		yyl2 := z.DecReadMapStart()
  8220  		if yyl2 == 0 {
  8221  		} else {
  8222  			x.codecDecodeSelfFromMap(yyl2, d)
  8223  		}
  8224  		z.DecReadMapEnd()
  8225  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8226  		yyl2 := z.DecReadArrayStart()
  8227  		if yyl2 != 0 {
  8228  			x.codecDecodeSelfFromArray(yyl2, d)
  8229  		}
  8230  		z.DecReadArrayEnd()
  8231  	} else {
  8232  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8233  	}
  8234  }
  8235  
  8236  func (x *AnonInTestStrucIntf) codecDecodeSelfFromMap(l int, d *Decoder) {
  8237  	var h codecSelfer19780
  8238  	z, r := GenHelper().Decoder(d)
  8239  	_, _, _ = h, z, r
  8240  	var yyhl3 bool = l >= 0
  8241  	for yyj3 := 0; ; yyj3++ {
  8242  		if yyhl3 {
  8243  			if yyj3 >= l {
  8244  				break
  8245  			}
  8246  		} else {
  8247  			if z.DecCheckBreak() {
  8248  				break
  8249  			}
  8250  		}
  8251  		z.DecReadMapElemKey()
  8252  		yys3 := r.DecodeStringAsBytes()
  8253  		z.DecReadMapElemValue()
  8254  		switch string(yys3) {
  8255  		case "Islice":
  8256  			z.F.DecSliceIntfX(&x.Islice, d)
  8257  		case "Ms":
  8258  			z.F.DecMapStringIntfX(&x.Ms, d)
  8259  		case "Nintf":
  8260  			z.DecFallback(&x.Nintf, true)
  8261  		case "T":
  8262  			if z.DecBasicHandle().TimeBuiltin() {
  8263  				x.T = r.DecodeTime()
  8264  			} else if yyxt11 := z.Extension(x.T); yyxt11 != nil {
  8265  				z.DecExtension(&x.T, yyxt11)
  8266  			} else if z.DecBinary() {
  8267  				z.DecBinaryUnmarshal(&x.T)
  8268  			} else if !z.DecBinary() && z.IsJSONHandle() {
  8269  				z.DecJSONUnmarshal(&x.T)
  8270  			} else {
  8271  				z.DecFallback(&x.T, false)
  8272  			}
  8273  		case "Tptr":
  8274  			if r.TryNil() {
  8275  				if x.Tptr != nil { // remove the if-true
  8276  					x.Tptr = nil
  8277  				}
  8278  			} else {
  8279  				if x.Tptr == nil {
  8280  					x.Tptr = new(time.Time)
  8281  				}
  8282  				if z.DecBasicHandle().TimeBuiltin() {
  8283  					*x.Tptr = r.DecodeTime()
  8284  				} else if yyxt13 := z.Extension(x.Tptr); yyxt13 != nil {
  8285  					z.DecExtension(x.Tptr, yyxt13)
  8286  				} else if z.DecBinary() {
  8287  					z.DecBinaryUnmarshal(x.Tptr)
  8288  				} else if !z.DecBinary() && z.IsJSONHandle() {
  8289  					z.DecJSONUnmarshal(x.Tptr)
  8290  				} else {
  8291  					z.DecFallback(x.Tptr, false)
  8292  				}
  8293  			}
  8294  		default:
  8295  			z.DecStructFieldNotFound(-1, string(yys3))
  8296  		} // end switch yys3
  8297  	} // end for yyj3
  8298  }
  8299  
  8300  func (x *AnonInTestStrucIntf) codecDecodeSelfFromArray(l int, d *Decoder) {
  8301  	var h codecSelfer19780
  8302  	z, r := GenHelper().Decoder(d)
  8303  	_, _, _ = h, z, r
  8304  	var yyj14 int
  8305  	var yyb14 bool
  8306  	var yyhl14 bool = l >= 0
  8307  	yyj14++
  8308  	if yyhl14 {
  8309  		yyb14 = yyj14 > l
  8310  	} else {
  8311  		yyb14 = z.DecCheckBreak()
  8312  	}
  8313  	if yyb14 {
  8314  		z.DecReadArrayEnd()
  8315  		return
  8316  	}
  8317  	z.DecReadArrayElem()
  8318  	z.F.DecSliceIntfX(&x.Islice, d)
  8319  	yyj14++
  8320  	if yyhl14 {
  8321  		yyb14 = yyj14 > l
  8322  	} else {
  8323  		yyb14 = z.DecCheckBreak()
  8324  	}
  8325  	if yyb14 {
  8326  		z.DecReadArrayEnd()
  8327  		return
  8328  	}
  8329  	z.DecReadArrayElem()
  8330  	z.F.DecMapStringIntfX(&x.Ms, d)
  8331  	yyj14++
  8332  	if yyhl14 {
  8333  		yyb14 = yyj14 > l
  8334  	} else {
  8335  		yyb14 = z.DecCheckBreak()
  8336  	}
  8337  	if yyb14 {
  8338  		z.DecReadArrayEnd()
  8339  		return
  8340  	}
  8341  	z.DecReadArrayElem()
  8342  	z.DecFallback(&x.Nintf, true)
  8343  	yyj14++
  8344  	if yyhl14 {
  8345  		yyb14 = yyj14 > l
  8346  	} else {
  8347  		yyb14 = z.DecCheckBreak()
  8348  	}
  8349  	if yyb14 {
  8350  		z.DecReadArrayEnd()
  8351  		return
  8352  	}
  8353  	z.DecReadArrayElem()
  8354  	if z.DecBasicHandle().TimeBuiltin() {
  8355  		x.T = r.DecodeTime()
  8356  	} else if yyxt22 := z.Extension(x.T); yyxt22 != nil {
  8357  		z.DecExtension(&x.T, yyxt22)
  8358  	} else if z.DecBinary() {
  8359  		z.DecBinaryUnmarshal(&x.T)
  8360  	} else if !z.DecBinary() && z.IsJSONHandle() {
  8361  		z.DecJSONUnmarshal(&x.T)
  8362  	} else {
  8363  		z.DecFallback(&x.T, false)
  8364  	}
  8365  	yyj14++
  8366  	if yyhl14 {
  8367  		yyb14 = yyj14 > l
  8368  	} else {
  8369  		yyb14 = z.DecCheckBreak()
  8370  	}
  8371  	if yyb14 {
  8372  		z.DecReadArrayEnd()
  8373  		return
  8374  	}
  8375  	z.DecReadArrayElem()
  8376  	if r.TryNil() {
  8377  		if x.Tptr != nil { // remove the if-true
  8378  			x.Tptr = nil
  8379  		}
  8380  	} else {
  8381  		if x.Tptr == nil {
  8382  			x.Tptr = new(time.Time)
  8383  		}
  8384  		if z.DecBasicHandle().TimeBuiltin() {
  8385  			*x.Tptr = r.DecodeTime()
  8386  		} else if yyxt24 := z.Extension(x.Tptr); yyxt24 != nil {
  8387  			z.DecExtension(x.Tptr, yyxt24)
  8388  		} else if z.DecBinary() {
  8389  			z.DecBinaryUnmarshal(x.Tptr)
  8390  		} else if !z.DecBinary() && z.IsJSONHandle() {
  8391  			z.DecJSONUnmarshal(x.Tptr)
  8392  		} else {
  8393  			z.DecFallback(x.Tptr, false)
  8394  		}
  8395  	}
  8396  	for {
  8397  		yyj14++
  8398  		if yyhl14 {
  8399  			yyb14 = yyj14 > l
  8400  		} else {
  8401  			yyb14 = z.DecCheckBreak()
  8402  		}
  8403  		if yyb14 {
  8404  			break
  8405  		}
  8406  		z.DecReadArrayElem()
  8407  		z.DecStructFieldNotFound(yyj14-1, "")
  8408  	}
  8409  }
  8410  
  8411  func (x *AnonInTestStrucIntf) IsCodecEmpty() bool {
  8412  	return !(len(x.Islice) != 0 || len(x.Ms) != 0 || x.Nintf != nil || !(x.T.IsZero()) || false)
  8413  }
  8414  
  8415  func (missingFielderT2) codecSelferViaCodecgen() {}
  8416  func (x *missingFielderT2) CodecEncodeSelf(e *Encoder) {
  8417  	var h codecSelfer19780
  8418  	z, r := GenHelper().Encoder(e)
  8419  	_, _, _ = h, z, r
  8420  	if z.EncBasicHandle().CheckCircularRef {
  8421  		z.EncEncode(x)
  8422  		return
  8423  	}
  8424  	if x == nil {
  8425  		r.EncodeNil()
  8426  	} else {
  8427  		yy2arr2 := z.EncBasicHandle().StructToArray
  8428  		_ = yy2arr2
  8429  		const yyr2 bool = false // struct tag has 'toArray'
  8430  		if yyr2 || yy2arr2 {
  8431  			z.EncWriteArrayStart(4)
  8432  			z.EncWriteArrayElem()
  8433  			r.EncodeString(string(x.S))
  8434  			z.EncWriteArrayElem()
  8435  			r.EncodeBool(bool(x.B))
  8436  			z.EncWriteArrayElem()
  8437  			r.EncodeFloat64(float64(x.F))
  8438  			z.EncWriteArrayElem()
  8439  			r.EncodeInt(int64(x.I))
  8440  			z.EncWriteArrayEnd()
  8441  		} else {
  8442  			z.EncWriteMapStart(4)
  8443  			z.EncWriteMapElemKey()
  8444  			if z.IsJSONHandle() {
  8445  				z.WriteStr("\"S\"")
  8446  			} else {
  8447  				r.EncodeString(`S`)
  8448  			}
  8449  			z.EncWriteMapElemValue()
  8450  			r.EncodeString(string(x.S))
  8451  			z.EncWriteMapElemKey()
  8452  			if z.IsJSONHandle() {
  8453  				z.WriteStr("\"B\"")
  8454  			} else {
  8455  				r.EncodeString(`B`)
  8456  			}
  8457  			z.EncWriteMapElemValue()
  8458  			r.EncodeBool(bool(x.B))
  8459  			z.EncWriteMapElemKey()
  8460  			if z.IsJSONHandle() {
  8461  				z.WriteStr("\"F\"")
  8462  			} else {
  8463  				r.EncodeString(`F`)
  8464  			}
  8465  			z.EncWriteMapElemValue()
  8466  			r.EncodeFloat64(float64(x.F))
  8467  			z.EncWriteMapElemKey()
  8468  			if z.IsJSONHandle() {
  8469  				z.WriteStr("\"I\"")
  8470  			} else {
  8471  				r.EncodeString(`I`)
  8472  			}
  8473  			z.EncWriteMapElemValue()
  8474  			r.EncodeInt(int64(x.I))
  8475  			z.EncWriteMapEnd()
  8476  		}
  8477  	}
  8478  }
  8479  
  8480  func (x *missingFielderT2) CodecDecodeSelf(d *Decoder) {
  8481  	var h codecSelfer19780
  8482  	z, r := GenHelper().Decoder(d)
  8483  	_, _, _ = h, z, r
  8484  	yyct2 := r.ContainerType()
  8485  	if yyct2 == codecSelferValueTypeNil19780 {
  8486  		*(x) = missingFielderT2{}
  8487  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8488  		yyl2 := z.DecReadMapStart()
  8489  		if yyl2 == 0 {
  8490  		} else {
  8491  			x.codecDecodeSelfFromMap(yyl2, d)
  8492  		}
  8493  		z.DecReadMapEnd()
  8494  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8495  		yyl2 := z.DecReadArrayStart()
  8496  		if yyl2 != 0 {
  8497  			x.codecDecodeSelfFromArray(yyl2, d)
  8498  		}
  8499  		z.DecReadArrayEnd()
  8500  	} else {
  8501  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8502  	}
  8503  }
  8504  
  8505  func (x *missingFielderT2) codecDecodeSelfFromMap(l int, d *Decoder) {
  8506  	var h codecSelfer19780
  8507  	z, r := GenHelper().Decoder(d)
  8508  	_, _, _ = h, z, r
  8509  	var yyhl3 bool = l >= 0
  8510  	for yyj3 := 0; ; yyj3++ {
  8511  		if yyhl3 {
  8512  			if yyj3 >= l {
  8513  				break
  8514  			}
  8515  		} else {
  8516  			if z.DecCheckBreak() {
  8517  				break
  8518  			}
  8519  		}
  8520  		z.DecReadMapElemKey()
  8521  		yys3 := r.DecodeStringAsBytes()
  8522  		z.DecReadMapElemValue()
  8523  		switch string(yys3) {
  8524  		case "S":
  8525  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8526  		case "B":
  8527  			x.B = (bool)(r.DecodeBool())
  8528  		case "F":
  8529  			x.F = (float64)(r.DecodeFloat64())
  8530  		case "I":
  8531  			x.I = (int64)(r.DecodeInt64())
  8532  		default:
  8533  			z.DecStructFieldNotFound(-1, string(yys3))
  8534  		} // end switch yys3
  8535  	} // end for yyj3
  8536  }
  8537  
  8538  func (x *missingFielderT2) codecDecodeSelfFromArray(l int, d *Decoder) {
  8539  	var h codecSelfer19780
  8540  	z, r := GenHelper().Decoder(d)
  8541  	_, _, _ = h, z, r
  8542  	var yyj8 int
  8543  	var yyb8 bool
  8544  	var yyhl8 bool = l >= 0
  8545  	yyj8++
  8546  	if yyhl8 {
  8547  		yyb8 = yyj8 > l
  8548  	} else {
  8549  		yyb8 = z.DecCheckBreak()
  8550  	}
  8551  	if yyb8 {
  8552  		z.DecReadArrayEnd()
  8553  		return
  8554  	}
  8555  	z.DecReadArrayElem()
  8556  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8557  	yyj8++
  8558  	if yyhl8 {
  8559  		yyb8 = yyj8 > l
  8560  	} else {
  8561  		yyb8 = z.DecCheckBreak()
  8562  	}
  8563  	if yyb8 {
  8564  		z.DecReadArrayEnd()
  8565  		return
  8566  	}
  8567  	z.DecReadArrayElem()
  8568  	x.B = (bool)(r.DecodeBool())
  8569  	yyj8++
  8570  	if yyhl8 {
  8571  		yyb8 = yyj8 > l
  8572  	} else {
  8573  		yyb8 = z.DecCheckBreak()
  8574  	}
  8575  	if yyb8 {
  8576  		z.DecReadArrayEnd()
  8577  		return
  8578  	}
  8579  	z.DecReadArrayElem()
  8580  	x.F = (float64)(r.DecodeFloat64())
  8581  	yyj8++
  8582  	if yyhl8 {
  8583  		yyb8 = yyj8 > l
  8584  	} else {
  8585  		yyb8 = z.DecCheckBreak()
  8586  	}
  8587  	if yyb8 {
  8588  		z.DecReadArrayEnd()
  8589  		return
  8590  	}
  8591  	z.DecReadArrayElem()
  8592  	x.I = (int64)(r.DecodeInt64())
  8593  	for {
  8594  		yyj8++
  8595  		if yyhl8 {
  8596  			yyb8 = yyj8 > l
  8597  		} else {
  8598  			yyb8 = z.DecCheckBreak()
  8599  		}
  8600  		if yyb8 {
  8601  			break
  8602  		}
  8603  		z.DecReadArrayElem()
  8604  		z.DecStructFieldNotFound(yyj8-1, "")
  8605  	}
  8606  }
  8607  
  8608  func (x *missingFielderT2) IsCodecEmpty() bool {
  8609  	return !(x.S != "" || bool(x.B) || x.F != 0 || x.I != 0 || false)
  8610  }
  8611  
  8612  func (testSelfExtHelper) codecSelferViaCodecgen() {}
  8613  func (x *testSelfExtHelper) CodecEncodeSelf(e *Encoder) {
  8614  	var h codecSelfer19780
  8615  	z, r := GenHelper().Encoder(e)
  8616  	_, _, _ = h, z, r
  8617  	if z.EncBasicHandle().CheckCircularRef {
  8618  		z.EncEncode(x)
  8619  		return
  8620  	}
  8621  	if x == nil {
  8622  		r.EncodeNil()
  8623  	} else {
  8624  		yy2arr2 := z.EncBasicHandle().StructToArray
  8625  		_ = yy2arr2
  8626  		const yyr2 bool = false // struct tag has 'toArray'
  8627  		if yyr2 || yy2arr2 {
  8628  			z.EncWriteArrayStart(3)
  8629  			z.EncWriteArrayElem()
  8630  			r.EncodeString(string(x.S))
  8631  			z.EncWriteArrayElem()
  8632  			r.EncodeInt(int64(x.I))
  8633  			z.EncWriteArrayElem()
  8634  			r.EncodeBool(bool(x.B))
  8635  			z.EncWriteArrayEnd()
  8636  		} else {
  8637  			z.EncWriteMapStart(3)
  8638  			z.EncWriteMapElemKey()
  8639  			if z.IsJSONHandle() {
  8640  				z.WriteStr("\"S\"")
  8641  			} else {
  8642  				r.EncodeString(`S`)
  8643  			}
  8644  			z.EncWriteMapElemValue()
  8645  			r.EncodeString(string(x.S))
  8646  			z.EncWriteMapElemKey()
  8647  			if z.IsJSONHandle() {
  8648  				z.WriteStr("\"I\"")
  8649  			} else {
  8650  				r.EncodeString(`I`)
  8651  			}
  8652  			z.EncWriteMapElemValue()
  8653  			r.EncodeInt(int64(x.I))
  8654  			z.EncWriteMapElemKey()
  8655  			if z.IsJSONHandle() {
  8656  				z.WriteStr("\"B\"")
  8657  			} else {
  8658  				r.EncodeString(`B`)
  8659  			}
  8660  			z.EncWriteMapElemValue()
  8661  			r.EncodeBool(bool(x.B))
  8662  			z.EncWriteMapEnd()
  8663  		}
  8664  	}
  8665  }
  8666  
  8667  func (x *testSelfExtHelper) CodecDecodeSelf(d *Decoder) {
  8668  	var h codecSelfer19780
  8669  	z, r := GenHelper().Decoder(d)
  8670  	_, _, _ = h, z, r
  8671  	yyct2 := r.ContainerType()
  8672  	if yyct2 == codecSelferValueTypeNil19780 {
  8673  		*(x) = testSelfExtHelper{}
  8674  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8675  		yyl2 := z.DecReadMapStart()
  8676  		if yyl2 == 0 {
  8677  		} else {
  8678  			x.codecDecodeSelfFromMap(yyl2, d)
  8679  		}
  8680  		z.DecReadMapEnd()
  8681  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8682  		yyl2 := z.DecReadArrayStart()
  8683  		if yyl2 != 0 {
  8684  			x.codecDecodeSelfFromArray(yyl2, d)
  8685  		}
  8686  		z.DecReadArrayEnd()
  8687  	} else {
  8688  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8689  	}
  8690  }
  8691  
  8692  func (x *testSelfExtHelper) codecDecodeSelfFromMap(l int, d *Decoder) {
  8693  	var h codecSelfer19780
  8694  	z, r := GenHelper().Decoder(d)
  8695  	_, _, _ = h, z, r
  8696  	var yyhl3 bool = l >= 0
  8697  	for yyj3 := 0; ; yyj3++ {
  8698  		if yyhl3 {
  8699  			if yyj3 >= l {
  8700  				break
  8701  			}
  8702  		} else {
  8703  			if z.DecCheckBreak() {
  8704  				break
  8705  			}
  8706  		}
  8707  		z.DecReadMapElemKey()
  8708  		yys3 := r.DecodeStringAsBytes()
  8709  		z.DecReadMapElemValue()
  8710  		switch string(yys3) {
  8711  		case "S":
  8712  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8713  		case "I":
  8714  			x.I = (int64)(r.DecodeInt64())
  8715  		case "B":
  8716  			x.B = (bool)(r.DecodeBool())
  8717  		default:
  8718  			z.DecStructFieldNotFound(-1, string(yys3))
  8719  		} // end switch yys3
  8720  	} // end for yyj3
  8721  }
  8722  
  8723  func (x *testSelfExtHelper) codecDecodeSelfFromArray(l int, d *Decoder) {
  8724  	var h codecSelfer19780
  8725  	z, r := GenHelper().Decoder(d)
  8726  	_, _, _ = h, z, r
  8727  	var yyj7 int
  8728  	var yyb7 bool
  8729  	var yyhl7 bool = l >= 0
  8730  	yyj7++
  8731  	if yyhl7 {
  8732  		yyb7 = yyj7 > l
  8733  	} else {
  8734  		yyb7 = z.DecCheckBreak()
  8735  	}
  8736  	if yyb7 {
  8737  		z.DecReadArrayEnd()
  8738  		return
  8739  	}
  8740  	z.DecReadArrayElem()
  8741  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8742  	yyj7++
  8743  	if yyhl7 {
  8744  		yyb7 = yyj7 > l
  8745  	} else {
  8746  		yyb7 = z.DecCheckBreak()
  8747  	}
  8748  	if yyb7 {
  8749  		z.DecReadArrayEnd()
  8750  		return
  8751  	}
  8752  	z.DecReadArrayElem()
  8753  	x.I = (int64)(r.DecodeInt64())
  8754  	yyj7++
  8755  	if yyhl7 {
  8756  		yyb7 = yyj7 > l
  8757  	} else {
  8758  		yyb7 = z.DecCheckBreak()
  8759  	}
  8760  	if yyb7 {
  8761  		z.DecReadArrayEnd()
  8762  		return
  8763  	}
  8764  	z.DecReadArrayElem()
  8765  	x.B = (bool)(r.DecodeBool())
  8766  	for {
  8767  		yyj7++
  8768  		if yyhl7 {
  8769  			yyb7 = yyj7 > l
  8770  		} else {
  8771  			yyb7 = z.DecCheckBreak()
  8772  		}
  8773  		if yyb7 {
  8774  			break
  8775  		}
  8776  		z.DecReadArrayElem()
  8777  		z.DecStructFieldNotFound(yyj7-1, "")
  8778  	}
  8779  }
  8780  
  8781  func (x *testSelfExtHelper) IsCodecEmpty() bool {
  8782  	return !(x.S != "" || x.I != 0 || bool(x.B) || false)
  8783  }
  8784  
  8785  func (TestSelfExtImpl) codecSelferViaCodecgen() {}
  8786  func (x *TestSelfExtImpl) CodecEncodeSelf(e *Encoder) {
  8787  	var h codecSelfer19780
  8788  	z, r := GenHelper().Encoder(e)
  8789  	_, _, _ = h, z, r
  8790  	if z.EncBasicHandle().CheckCircularRef {
  8791  		z.EncEncode(x)
  8792  		return
  8793  	}
  8794  	if x == nil {
  8795  		r.EncodeNil()
  8796  	} else {
  8797  		yy2arr2 := z.EncBasicHandle().StructToArray
  8798  		_ = yy2arr2
  8799  		const yyr2 bool = false // struct tag has 'toArray'
  8800  		if yyr2 || yy2arr2 {
  8801  			z.EncWriteArrayStart(3)
  8802  			z.EncWriteArrayElem()
  8803  			r.EncodeString(string(x.testSelfExtHelper.S))
  8804  			z.EncWriteArrayElem()
  8805  			r.EncodeInt(int64(x.testSelfExtHelper.I))
  8806  			z.EncWriteArrayElem()
  8807  			r.EncodeBool(bool(x.testSelfExtHelper.B))
  8808  			z.EncWriteArrayEnd()
  8809  		} else {
  8810  			z.EncWriteMapStart(3)
  8811  			z.EncWriteMapElemKey()
  8812  			if z.IsJSONHandle() {
  8813  				z.WriteStr("\"S\"")
  8814  			} else {
  8815  				r.EncodeString(`S`)
  8816  			}
  8817  			z.EncWriteMapElemValue()
  8818  			r.EncodeString(string(x.testSelfExtHelper.S))
  8819  			z.EncWriteMapElemKey()
  8820  			if z.IsJSONHandle() {
  8821  				z.WriteStr("\"I\"")
  8822  			} else {
  8823  				r.EncodeString(`I`)
  8824  			}
  8825  			z.EncWriteMapElemValue()
  8826  			r.EncodeInt(int64(x.testSelfExtHelper.I))
  8827  			z.EncWriteMapElemKey()
  8828  			if z.IsJSONHandle() {
  8829  				z.WriteStr("\"B\"")
  8830  			} else {
  8831  				r.EncodeString(`B`)
  8832  			}
  8833  			z.EncWriteMapElemValue()
  8834  			r.EncodeBool(bool(x.testSelfExtHelper.B))
  8835  			z.EncWriteMapEnd()
  8836  		}
  8837  	}
  8838  }
  8839  
  8840  func (x *TestSelfExtImpl) CodecDecodeSelf(d *Decoder) {
  8841  	var h codecSelfer19780
  8842  	z, r := GenHelper().Decoder(d)
  8843  	_, _, _ = h, z, r
  8844  	yyct2 := r.ContainerType()
  8845  	if yyct2 == codecSelferValueTypeNil19780 {
  8846  		*(x) = TestSelfExtImpl{}
  8847  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8848  		yyl2 := z.DecReadMapStart()
  8849  		if yyl2 == 0 {
  8850  		} else {
  8851  			x.codecDecodeSelfFromMap(yyl2, d)
  8852  		}
  8853  		z.DecReadMapEnd()
  8854  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8855  		yyl2 := z.DecReadArrayStart()
  8856  		if yyl2 != 0 {
  8857  			x.codecDecodeSelfFromArray(yyl2, d)
  8858  		}
  8859  		z.DecReadArrayEnd()
  8860  	} else {
  8861  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8862  	}
  8863  }
  8864  
  8865  func (x *TestSelfExtImpl) codecDecodeSelfFromMap(l int, d *Decoder) {
  8866  	var h codecSelfer19780
  8867  	z, r := GenHelper().Decoder(d)
  8868  	_, _, _ = h, z, r
  8869  	var yyhl3 bool = l >= 0
  8870  	for yyj3 := 0; ; yyj3++ {
  8871  		if yyhl3 {
  8872  			if yyj3 >= l {
  8873  				break
  8874  			}
  8875  		} else {
  8876  			if z.DecCheckBreak() {
  8877  				break
  8878  			}
  8879  		}
  8880  		z.DecReadMapElemKey()
  8881  		yys3 := r.DecodeStringAsBytes()
  8882  		z.DecReadMapElemValue()
  8883  		switch string(yys3) {
  8884  		case "S":
  8885  			x.testSelfExtHelper.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8886  		case "I":
  8887  			x.testSelfExtHelper.I = (int64)(r.DecodeInt64())
  8888  		case "B":
  8889  			x.testSelfExtHelper.B = (bool)(r.DecodeBool())
  8890  		default:
  8891  			z.DecStructFieldNotFound(-1, string(yys3))
  8892  		} // end switch yys3
  8893  	} // end for yyj3
  8894  }
  8895  
  8896  func (x *TestSelfExtImpl) codecDecodeSelfFromArray(l int, d *Decoder) {
  8897  	var h codecSelfer19780
  8898  	z, r := GenHelper().Decoder(d)
  8899  	_, _, _ = h, z, r
  8900  	var yyj7 int
  8901  	var yyb7 bool
  8902  	var yyhl7 bool = l >= 0
  8903  	yyj7++
  8904  	if yyhl7 {
  8905  		yyb7 = yyj7 > l
  8906  	} else {
  8907  		yyb7 = z.DecCheckBreak()
  8908  	}
  8909  	if yyb7 {
  8910  		z.DecReadArrayEnd()
  8911  		return
  8912  	}
  8913  	z.DecReadArrayElem()
  8914  	x.testSelfExtHelper.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  8915  	yyj7++
  8916  	if yyhl7 {
  8917  		yyb7 = yyj7 > l
  8918  	} else {
  8919  		yyb7 = z.DecCheckBreak()
  8920  	}
  8921  	if yyb7 {
  8922  		z.DecReadArrayEnd()
  8923  		return
  8924  	}
  8925  	z.DecReadArrayElem()
  8926  	x.testSelfExtHelper.I = (int64)(r.DecodeInt64())
  8927  	yyj7++
  8928  	if yyhl7 {
  8929  		yyb7 = yyj7 > l
  8930  	} else {
  8931  		yyb7 = z.DecCheckBreak()
  8932  	}
  8933  	if yyb7 {
  8934  		z.DecReadArrayEnd()
  8935  		return
  8936  	}
  8937  	z.DecReadArrayElem()
  8938  	x.testSelfExtHelper.B = (bool)(r.DecodeBool())
  8939  	for {
  8940  		yyj7++
  8941  		if yyhl7 {
  8942  			yyb7 = yyj7 > l
  8943  		} else {
  8944  			yyb7 = z.DecCheckBreak()
  8945  		}
  8946  		if yyb7 {
  8947  			break
  8948  		}
  8949  		z.DecReadArrayElem()
  8950  		z.DecStructFieldNotFound(yyj7-1, "")
  8951  	}
  8952  }
  8953  
  8954  func (x *TestSelfExtImpl) IsCodecEmpty() bool {
  8955  	return !(!(x.testSelfExtHelper.IsCodecEmpty()) || false)
  8956  }
  8957  
  8958  func (TestSelfExtImpl2) codecSelferViaCodecgen() {}
  8959  func (x *TestSelfExtImpl2) CodecEncodeSelf(e *Encoder) {
  8960  	var h codecSelfer19780
  8961  	z, r := GenHelper().Encoder(e)
  8962  	_, _, _ = h, z, r
  8963  	if z.EncBasicHandle().CheckCircularRef {
  8964  		z.EncEncode(x)
  8965  		return
  8966  	}
  8967  	if x == nil {
  8968  		r.EncodeNil()
  8969  	} else {
  8970  		yy2arr2 := z.EncBasicHandle().StructToArray
  8971  		_ = yy2arr2
  8972  		const yyr2 bool = false // struct tag has 'toArray'
  8973  		if yyr2 || yy2arr2 {
  8974  			z.EncWriteArrayStart(2)
  8975  			z.EncWriteArrayElem()
  8976  			r.EncodeString(string(x.M))
  8977  			z.EncWriteArrayElem()
  8978  			r.EncodeBool(bool(x.O))
  8979  			z.EncWriteArrayEnd()
  8980  		} else {
  8981  			z.EncWriteMapStart(2)
  8982  			z.EncWriteMapElemKey()
  8983  			if z.IsJSONHandle() {
  8984  				z.WriteStr("\"M\"")
  8985  			} else {
  8986  				r.EncodeString(`M`)
  8987  			}
  8988  			z.EncWriteMapElemValue()
  8989  			r.EncodeString(string(x.M))
  8990  			z.EncWriteMapElemKey()
  8991  			if z.IsJSONHandle() {
  8992  				z.WriteStr("\"O\"")
  8993  			} else {
  8994  				r.EncodeString(`O`)
  8995  			}
  8996  			z.EncWriteMapElemValue()
  8997  			r.EncodeBool(bool(x.O))
  8998  			z.EncWriteMapEnd()
  8999  		}
  9000  	}
  9001  }
  9002  
  9003  func (x *TestSelfExtImpl2) CodecDecodeSelf(d *Decoder) {
  9004  	var h codecSelfer19780
  9005  	z, r := GenHelper().Decoder(d)
  9006  	_, _, _ = h, z, r
  9007  	yyct2 := r.ContainerType()
  9008  	if yyct2 == codecSelferValueTypeNil19780 {
  9009  		*(x) = TestSelfExtImpl2{}
  9010  	} else if yyct2 == codecSelferValueTypeMap19780 {
  9011  		yyl2 := z.DecReadMapStart()
  9012  		if yyl2 == 0 {
  9013  		} else {
  9014  			x.codecDecodeSelfFromMap(yyl2, d)
  9015  		}
  9016  		z.DecReadMapEnd()
  9017  	} else if yyct2 == codecSelferValueTypeArray19780 {
  9018  		yyl2 := z.DecReadArrayStart()
  9019  		if yyl2 != 0 {
  9020  			x.codecDecodeSelfFromArray(yyl2, d)
  9021  		}
  9022  		z.DecReadArrayEnd()
  9023  	} else {
  9024  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  9025  	}
  9026  }
  9027  
  9028  func (x *TestSelfExtImpl2) codecDecodeSelfFromMap(l int, d *Decoder) {
  9029  	var h codecSelfer19780
  9030  	z, r := GenHelper().Decoder(d)
  9031  	_, _, _ = h, z, r
  9032  	var yyhl3 bool = l >= 0
  9033  	for yyj3 := 0; ; yyj3++ {
  9034  		if yyhl3 {
  9035  			if yyj3 >= l {
  9036  				break
  9037  			}
  9038  		} else {
  9039  			if z.DecCheckBreak() {
  9040  				break
  9041  			}
  9042  		}
  9043  		z.DecReadMapElemKey()
  9044  		yys3 := r.DecodeStringAsBytes()
  9045  		z.DecReadMapElemValue()
  9046  		switch string(yys3) {
  9047  		case "M":
  9048  			x.M = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9049  		case "O":
  9050  			x.O = (bool)(r.DecodeBool())
  9051  		default:
  9052  			z.DecStructFieldNotFound(-1, string(yys3))
  9053  		} // end switch yys3
  9054  	} // end for yyj3
  9055  }
  9056  
  9057  func (x *TestSelfExtImpl2) codecDecodeSelfFromArray(l int, d *Decoder) {
  9058  	var h codecSelfer19780
  9059  	z, r := GenHelper().Decoder(d)
  9060  	_, _, _ = h, z, r
  9061  	var yyj6 int
  9062  	var yyb6 bool
  9063  	var yyhl6 bool = l >= 0
  9064  	yyj6++
  9065  	if yyhl6 {
  9066  		yyb6 = yyj6 > l
  9067  	} else {
  9068  		yyb6 = z.DecCheckBreak()
  9069  	}
  9070  	if yyb6 {
  9071  		z.DecReadArrayEnd()
  9072  		return
  9073  	}
  9074  	z.DecReadArrayElem()
  9075  	x.M = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9076  	yyj6++
  9077  	if yyhl6 {
  9078  		yyb6 = yyj6 > l
  9079  	} else {
  9080  		yyb6 = z.DecCheckBreak()
  9081  	}
  9082  	if yyb6 {
  9083  		z.DecReadArrayEnd()
  9084  		return
  9085  	}
  9086  	z.DecReadArrayElem()
  9087  	x.O = (bool)(r.DecodeBool())
  9088  	for {
  9089  		yyj6++
  9090  		if yyhl6 {
  9091  			yyb6 = yyj6 > l
  9092  		} else {
  9093  			yyb6 = z.DecCheckBreak()
  9094  		}
  9095  		if yyb6 {
  9096  			break
  9097  		}
  9098  		z.DecReadArrayElem()
  9099  		z.DecStructFieldNotFound(yyj6-1, "")
  9100  	}
  9101  }
  9102  
  9103  func (x *TestSelfExtImpl2) IsCodecEmpty() bool {
  9104  	return !(x.M != "" || bool(x.O) || false)
  9105  }
  9106  
  9107  func (TestTwoNakedInterfaces) codecSelferViaCodecgen() {}
  9108  func (x *TestTwoNakedInterfaces) CodecEncodeSelf(e *Encoder) {
  9109  	var h codecSelfer19780
  9110  	z, r := GenHelper().Encoder(e)
  9111  	_, _, _ = h, z, r
  9112  	if z.EncBasicHandle().CheckCircularRef {
  9113  		z.EncEncode(x)
  9114  		return
  9115  	}
  9116  	if x == nil {
  9117  		r.EncodeNil()
  9118  	} else {
  9119  		yy2arr2 := z.EncBasicHandle().StructToArray
  9120  		_ = yy2arr2
  9121  		const yyr2 bool = false // struct tag has 'toArray'
  9122  		if yyr2 || yy2arr2 {
  9123  			z.EncWriteArrayStart(2)
  9124  			z.EncWriteArrayElem()
  9125  			z.EncFallback(x.A)
  9126  			z.EncWriteArrayElem()
  9127  			z.EncFallback(x.B)
  9128  			z.EncWriteArrayEnd()
  9129  		} else {
  9130  			z.EncWriteMapStart(2)
  9131  			z.EncWriteMapElemKey()
  9132  			if z.IsJSONHandle() {
  9133  				z.WriteStr("\"A\"")
  9134  			} else {
  9135  				r.EncodeString(`A`)
  9136  			}
  9137  			z.EncWriteMapElemValue()
  9138  			z.EncFallback(x.A)
  9139  			z.EncWriteMapElemKey()
  9140  			if z.IsJSONHandle() {
  9141  				z.WriteStr("\"B\"")
  9142  			} else {
  9143  				r.EncodeString(`B`)
  9144  			}
  9145  			z.EncWriteMapElemValue()
  9146  			z.EncFallback(x.B)
  9147  			z.EncWriteMapEnd()
  9148  		}
  9149  	}
  9150  }
  9151  
  9152  func (x *TestTwoNakedInterfaces) CodecDecodeSelf(d *Decoder) {
  9153  	var h codecSelfer19780
  9154  	z, r := GenHelper().Decoder(d)
  9155  	_, _, _ = h, z, r
  9156  	yyct2 := r.ContainerType()
  9157  	if yyct2 == codecSelferValueTypeNil19780 {
  9158  		*(x) = TestTwoNakedInterfaces{}
  9159  	} else if yyct2 == codecSelferValueTypeMap19780 {
  9160  		yyl2 := z.DecReadMapStart()
  9161  		if yyl2 == 0 {
  9162  		} else {
  9163  			x.codecDecodeSelfFromMap(yyl2, d)
  9164  		}
  9165  		z.DecReadMapEnd()
  9166  	} else if yyct2 == codecSelferValueTypeArray19780 {
  9167  		yyl2 := z.DecReadArrayStart()
  9168  		if yyl2 != 0 {
  9169  			x.codecDecodeSelfFromArray(yyl2, d)
  9170  		}
  9171  		z.DecReadArrayEnd()
  9172  	} else {
  9173  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  9174  	}
  9175  }
  9176  
  9177  func (x *TestTwoNakedInterfaces) codecDecodeSelfFromMap(l int, d *Decoder) {
  9178  	var h codecSelfer19780
  9179  	z, r := GenHelper().Decoder(d)
  9180  	_, _, _ = h, z, r
  9181  	var yyhl3 bool = l >= 0
  9182  	for yyj3 := 0; ; yyj3++ {
  9183  		if yyhl3 {
  9184  			if yyj3 >= l {
  9185  				break
  9186  			}
  9187  		} else {
  9188  			if z.DecCheckBreak() {
  9189  				break
  9190  			}
  9191  		}
  9192  		z.DecReadMapElemKey()
  9193  		yys3 := r.DecodeStringAsBytes()
  9194  		z.DecReadMapElemValue()
  9195  		switch string(yys3) {
  9196  		case "A":
  9197  			z.DecFallback(&x.A, true)
  9198  		case "B":
  9199  			z.DecFallback(&x.B, true)
  9200  		default:
  9201  			z.DecStructFieldNotFound(-1, string(yys3))
  9202  		} // end switch yys3
  9203  	} // end for yyj3
  9204  }
  9205  
  9206  func (x *TestTwoNakedInterfaces) codecDecodeSelfFromArray(l int, d *Decoder) {
  9207  	var h codecSelfer19780
  9208  	z, r := GenHelper().Decoder(d)
  9209  	_, _, _ = h, z, r
  9210  	var yyj8 int
  9211  	var yyb8 bool
  9212  	var yyhl8 bool = l >= 0
  9213  	yyj8++
  9214  	if yyhl8 {
  9215  		yyb8 = yyj8 > l
  9216  	} else {
  9217  		yyb8 = z.DecCheckBreak()
  9218  	}
  9219  	if yyb8 {
  9220  		z.DecReadArrayEnd()
  9221  		return
  9222  	}
  9223  	z.DecReadArrayElem()
  9224  	z.DecFallback(&x.A, true)
  9225  	yyj8++
  9226  	if yyhl8 {
  9227  		yyb8 = yyj8 > l
  9228  	} else {
  9229  		yyb8 = z.DecCheckBreak()
  9230  	}
  9231  	if yyb8 {
  9232  		z.DecReadArrayEnd()
  9233  		return
  9234  	}
  9235  	z.DecReadArrayElem()
  9236  	z.DecFallback(&x.B, true)
  9237  	for {
  9238  		yyj8++
  9239  		if yyhl8 {
  9240  			yyb8 = yyj8 > l
  9241  		} else {
  9242  			yyb8 = z.DecCheckBreak()
  9243  		}
  9244  		if yyb8 {
  9245  			break
  9246  		}
  9247  		z.DecReadArrayElem()
  9248  		z.DecStructFieldNotFound(yyj8-1, "")
  9249  	}
  9250  }
  9251  
  9252  func (x *TestTwoNakedInterfaces) IsCodecEmpty() bool {
  9253  	return !(x.A != nil || x.B != nil || false)
  9254  }
  9255  
  9256  func (TestStrucFlex) codecSelferViaCodecgen() {}
  9257  func (x *TestStrucFlex) CodecEncodeSelf(e *Encoder) {
  9258  	var h codecSelfer19780
  9259  	z, r := GenHelper().Encoder(e)
  9260  	_, _, _ = h, z, r
  9261  	if z.EncBasicHandle().CheckCircularRef {
  9262  		z.EncEncode(x)
  9263  		return
  9264  	}
  9265  	if x == nil {
  9266  		r.EncodeNil()
  9267  	} else {
  9268  		yy2arr2 := z.EncBasicHandle().StructToArray
  9269  		_ = yy2arr2
  9270  		const yyr2 bool = false // struct tag has 'toArray'
  9271  		var yyn56 bool = x.TestStrucCommon.Nint64 == nil
  9272  		var yyn79 bool = x.Ttimeptr == nil
  9273  		var yyn80 bool = x.AnonInTestStrucIntf == nil
  9274  		var yyn81 bool = x.AnonInTestStrucIntf == nil
  9275  		var yyn82 bool = x.AnonInTestStrucIntf == nil
  9276  		var yyn83 bool = x.AnonInTestStrucIntf == nil
  9277  		var yyn84 bool = x.AnonInTestStrucIntf == nil || x.AnonInTestStrucIntf.Tptr == nil
  9278  		var yyn89 bool = x.Nteststruc == nil
  9279  		var yyq2 = [93]bool{ // should field at this index be written?
  9280  			x.S != "",                   // S
  9281  			x.I64 != 0,                  // I64
  9282  			x.I32 != 0,                  // I32
  9283  			x.I16 != 0,                  // I16
  9284  			x.I8 != 0,                   // I8
  9285  			x.I64n != 0,                 // I64n
  9286  			x.I32n != 0,                 // I32n
  9287  			x.I16n != 0,                 // I16n
  9288  			x.I8n != 0,                  // I8n
  9289  			x.Ui64 != 0,                 // Ui64
  9290  			x.Ui32 != 0,                 // Ui32
  9291  			x.Ui16 != 0,                 // Ui16
  9292  			x.Ui8 != 0,                  // Ui8
  9293  			x.F64 != 0,                  // F64
  9294  			x.F32 != 0,                  // F32
  9295  			bool(x.B),                   // B
  9296  			x.By != 0,                   // By
  9297  			len(x.Sslice) != 0,          // Sslice
  9298  			len(x.I64slice) != 0,        // I64slice
  9299  			len(x.I32slice) != 0,        // I32slice
  9300  			len(x.Ui64slice) != 0,       // Ui64slice
  9301  			len(x.Ui8slice) != 0,        // Ui8slice
  9302  			len(x.Bslice) != 0,          // Bslice
  9303  			len(x.Byslice) != 0,         // Byslice
  9304  			len(x.BytesSlice) != 0,      // BytesSlice
  9305  			len(x.Iptrslice) != 0,       // Iptrslice
  9306  			len(x.WrapSliceInt64) != 0,  // WrapSliceInt64
  9307  			len(x.WrapSliceString) != 0, // WrapSliceString
  9308  			len(x.Msint) != 0,           // Msint
  9309  			len(x.Msbytes) != 0,         // Msbytes
  9310  			!(x.Simplef.IsCodecEmpty()), // Simplef
  9311  			len(x.SstrUi64T) != 0,       // SstrUi64T
  9312  			len(x.MstrUi64T) != 0,       // MstrUi64T
  9313  			x.AS != "",                  // AS
  9314  			x.AI64 != 0,                 // AI64
  9315  			x.AI16 != 0,                 // AI16
  9316  			x.AUi64 != 0,                // AUi64
  9317  			len(x.ASslice) != 0,         // ASslice
  9318  			len(x.AI64slice) != 0,       // AI64slice
  9319  			len(x.AUi64slice) != 0,      // AUi64slice
  9320  			len(x.AF64slice) != 0,       // AF64slice
  9321  			len(x.AF32slice) != 0,       // AF32slice
  9322  			len(x.AMSS) != 0,            // AMSS
  9323  			len(x.AMSU64) != 0,          // AMSU64
  9324  			len(x.AI64arr8) != 0,        // AI64arr8
  9325  			len(x.AI64arr0) != 0,        // AI64arr0
  9326  			len(x.AI64slice0) != 0,      // AI64slice0
  9327  			len(x.AUi64sliceN) != 0,     // AUi64sliceN
  9328  			len(x.AMSU64N) != 0,         // AMSU64N
  9329  			len(x.AMSU64E) != 0,         // AMSU64E
  9330  			!(x.NotAnon.IsCodecEmpty()), // NotAnon
  9331  			len(x.Nmap) != 0,            // Nmap
  9332  			len(x.Nslice) != 0,          // Nslice
  9333  			x.Nint64 != nil,             // Nint64
  9334  			len(x.Chstr) != 0,           // Chstr
  9335  			len(x.Mis) != 0,             // Mis
  9336  			len(x.Mbu64) != 0,           // Mbu64
  9337  			len(x.Mu8e) != 0,            // Mu8e
  9338  			len(x.Mu8u64) != 0,          // Mu8u64
  9339  			len(x.Msp2ss) != 0,          // Msp2ss
  9340  			len(x.Mip2ss) != 0,          // Mip2ss
  9341  			len(x.Ms2misu) != 0,         // Ms2misu
  9342  			len(x.Miwu64s) != 0,         // Miwu64s
  9343  			len(x.Mfwss) != 0,           // Mfwss
  9344  			len(x.Mf32wss) != 0,         // Mf32wss
  9345  			len(x.Mui2wss) != 0,         // Mui2wss
  9346  			len(x.Msu2wss) != 0,         // Msu2wss
  9347  			x.Ci64 != 0,                 // Ci64
  9348  			len(x.Swrapbytes) != 0,      // Swrapbytes
  9349  			len(x.Swrapuint8) != 0,      // Swrapuint8
  9350  			len(x.ArrStrUi64T) != 0,     // ArrStrUi64T
  9351  			len(x.Ui64array) != 0,       // Ui64array
  9352  			len(x.Ui64slicearray) != 0,  // Ui64slicearray
  9353  			len(x.SintfAarray) != 0,     // SintfAarray
  9354  			len(x.MstrUi64TSelf) != 0,   // MstrUi64TSelf
  9355  			!(x.Ttime.IsZero()),         // Ttime
  9356  			x.Ttimeptr != nil,           // Ttimeptr
  9357  			x.AnonInTestStrucIntf != nil && len(x.Islice) != 0, // Islice
  9358  			x.AnonInTestStrucIntf != nil && len(x.Ms) != 0,     // Ms
  9359  			x.AnonInTestStrucIntf != nil && x.Nintf != nil,     // Nintf
  9360  			x.AnonInTestStrucIntf != nil && !(x.T.IsZero()),    // T
  9361  			x.AnonInTestStrucIntf != nil && x.Tptr != nil,      // Tptr
  9362  			len(x.Msu) != 0,     // Msu
  9363  			len(x.Mtsptr) != 0,  // Mtsptr
  9364  			len(x.Mts) != 0,     // Mts
  9365  			len(x.Its) != 0,     // Its
  9366  			x.Nteststruc != nil, // Nteststruc
  9367  			bool(x.MarJ),        // MarJ
  9368  			x.MarT != "",        // MarT
  9369  			len(x.MarB) != 0,    // MarB
  9370  			x.XuintToBytes != 0, // XuintToBytes
  9371  			x.Cmplx64 != 0,      // Cmplx64
  9372  			x.Cmplx128 != 0,     // Cmplx128
  9373  		}
  9374  		_ = yyq2
  9375  		if yyr2 || yy2arr2 {
  9376  			z.EncWriteArrayStart(93)
  9377  			z.EncWriteArrayElem()
  9378  			if yyq2[0] {
  9379  				r.EncodeString(string(x.TestStrucCommon.S))
  9380  			} else {
  9381  				r.EncodeString("")
  9382  			}
  9383  			z.EncWriteArrayElem()
  9384  			if yyq2[1] {
  9385  				r.EncodeInt(int64(x.TestStrucCommon.I64))
  9386  			} else {
  9387  				r.EncodeInt(0)
  9388  			}
  9389  			z.EncWriteArrayElem()
  9390  			if yyq2[2] {
  9391  				r.EncodeInt(int64(x.TestStrucCommon.I32))
  9392  			} else {
  9393  				r.EncodeInt(0)
  9394  			}
  9395  			z.EncWriteArrayElem()
  9396  			if yyq2[3] {
  9397  				r.EncodeInt(int64(x.TestStrucCommon.I16))
  9398  			} else {
  9399  				r.EncodeInt(0)
  9400  			}
  9401  			z.EncWriteArrayElem()
  9402  			if yyq2[4] {
  9403  				r.EncodeInt(int64(x.TestStrucCommon.I8))
  9404  			} else {
  9405  				r.EncodeInt(0)
  9406  			}
  9407  			z.EncWriteArrayElem()
  9408  			if yyq2[5] {
  9409  				r.EncodeInt(int64(x.TestStrucCommon.I64n))
  9410  			} else {
  9411  				r.EncodeInt(0)
  9412  			}
  9413  			z.EncWriteArrayElem()
  9414  			if yyq2[6] {
  9415  				r.EncodeInt(int64(x.TestStrucCommon.I32n))
  9416  			} else {
  9417  				r.EncodeInt(0)
  9418  			}
  9419  			z.EncWriteArrayElem()
  9420  			if yyq2[7] {
  9421  				r.EncodeInt(int64(x.TestStrucCommon.I16n))
  9422  			} else {
  9423  				r.EncodeInt(0)
  9424  			}
  9425  			z.EncWriteArrayElem()
  9426  			if yyq2[8] {
  9427  				r.EncodeInt(int64(x.TestStrucCommon.I8n))
  9428  			} else {
  9429  				r.EncodeInt(0)
  9430  			}
  9431  			z.EncWriteArrayElem()
  9432  			if yyq2[9] {
  9433  				r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  9434  			} else {
  9435  				r.EncodeUint(0)
  9436  			}
  9437  			z.EncWriteArrayElem()
  9438  			if yyq2[10] {
  9439  				r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  9440  			} else {
  9441  				r.EncodeUint(0)
  9442  			}
  9443  			z.EncWriteArrayElem()
  9444  			if yyq2[11] {
  9445  				r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  9446  			} else {
  9447  				r.EncodeUint(0)
  9448  			}
  9449  			z.EncWriteArrayElem()
  9450  			if yyq2[12] {
  9451  				r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  9452  			} else {
  9453  				r.EncodeUint(0)
  9454  			}
  9455  			z.EncWriteArrayElem()
  9456  			if yyq2[13] {
  9457  				r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  9458  			} else {
  9459  				r.EncodeFloat64(0)
  9460  			}
  9461  			z.EncWriteArrayElem()
  9462  			if yyq2[14] {
  9463  				r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  9464  			} else {
  9465  				r.EncodeFloat32(0)
  9466  			}
  9467  			z.EncWriteArrayElem()
  9468  			if yyq2[15] {
  9469  				r.EncodeBool(bool(x.TestStrucCommon.B))
  9470  			} else {
  9471  				r.EncodeBool(false)
  9472  			}
  9473  			z.EncWriteArrayElem()
  9474  			if yyq2[16] {
  9475  				r.EncodeUint(uint64(x.TestStrucCommon.By))
  9476  			} else {
  9477  				r.EncodeUint(0)
  9478  			}
  9479  			z.EncWriteArrayElem()
  9480  			if yyq2[17] {
  9481  				if x.TestStrucCommon.Sslice == nil {
  9482  					r.EncodeNil()
  9483  				} else {
  9484  					z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  9485  				} // end block: if x.TestStrucCommon.Sslice slice == nil
  9486  			} else {
  9487  				r.EncodeNil()
  9488  			}
  9489  			z.EncWriteArrayElem()
  9490  			if yyq2[18] {
  9491  				if x.TestStrucCommon.I64slice == nil {
  9492  					r.EncodeNil()
  9493  				} else {
  9494  					z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  9495  				} // end block: if x.TestStrucCommon.I64slice slice == nil
  9496  			} else {
  9497  				r.EncodeNil()
  9498  			}
  9499  			z.EncWriteArrayElem()
  9500  			if yyq2[19] {
  9501  				if x.TestStrucCommon.I32slice == nil {
  9502  					r.EncodeNil()
  9503  				} else {
  9504  					z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  9505  				} // end block: if x.TestStrucCommon.I32slice slice == nil
  9506  			} else {
  9507  				r.EncodeNil()
  9508  			}
  9509  			z.EncWriteArrayElem()
  9510  			if yyq2[20] {
  9511  				if x.TestStrucCommon.Ui64slice == nil {
  9512  					r.EncodeNil()
  9513  				} else {
  9514  					z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  9515  				} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  9516  			} else {
  9517  				r.EncodeNil()
  9518  			}
  9519  			z.EncWriteArrayElem()
  9520  			if yyq2[21] {
  9521  				if x.TestStrucCommon.Ui8slice == nil {
  9522  					r.EncodeNil()
  9523  				} else {
  9524  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  9525  				} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  9526  			} else {
  9527  				r.EncodeNil()
  9528  			}
  9529  			z.EncWriteArrayElem()
  9530  			if yyq2[22] {
  9531  				if x.TestStrucCommon.Bslice == nil {
  9532  					r.EncodeNil()
  9533  				} else {
  9534  					z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  9535  				} // end block: if x.TestStrucCommon.Bslice slice == nil
  9536  			} else {
  9537  				r.EncodeNil()
  9538  			}
  9539  			z.EncWriteArrayElem()
  9540  			if yyq2[23] {
  9541  				if x.TestStrucCommon.Byslice == nil {
  9542  					r.EncodeNil()
  9543  				} else {
  9544  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  9545  				} // end block: if x.TestStrucCommon.Byslice slice == nil
  9546  			} else {
  9547  				r.EncodeNil()
  9548  			}
  9549  			z.EncWriteArrayElem()
  9550  			if yyq2[24] {
  9551  				if x.TestStrucCommon.BytesSlice == nil {
  9552  					r.EncodeNil()
  9553  				} else {
  9554  					z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  9555  				} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  9556  			} else {
  9557  				r.EncodeNil()
  9558  			}
  9559  			z.EncWriteArrayElem()
  9560  			if yyq2[25] {
  9561  				if x.TestStrucCommon.Iptrslice == nil {
  9562  					r.EncodeNil()
  9563  				} else {
  9564  					h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  9565  				} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  9566  			} else {
  9567  				r.EncodeNil()
  9568  			}
  9569  			z.EncWriteArrayElem()
  9570  			if yyq2[26] {
  9571  				if yyxt122 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt122 != nil {
  9572  					z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt122)
  9573  				} else {
  9574  					x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  9575  				}
  9576  			} else {
  9577  				r.EncodeNil()
  9578  			}
  9579  			z.EncWriteArrayElem()
  9580  			if yyq2[27] {
  9581  				if yyxt123 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt123 != nil {
  9582  					z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt123)
  9583  				} else {
  9584  					x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  9585  				}
  9586  			} else {
  9587  				r.EncodeNil()
  9588  			}
  9589  			z.EncWriteArrayElem()
  9590  			if yyq2[28] {
  9591  				if x.TestStrucCommon.Msint == nil {
  9592  					r.EncodeNil()
  9593  				} else {
  9594  					z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  9595  				} // end block: if x.TestStrucCommon.Msint map == nil
  9596  			} else {
  9597  				r.EncodeNil()
  9598  			}
  9599  			z.EncWriteArrayElem()
  9600  			if yyq2[29] {
  9601  				if x.TestStrucCommon.Msbytes == nil {
  9602  					r.EncodeNil()
  9603  				} else {
  9604  					z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  9605  				} // end block: if x.TestStrucCommon.Msbytes map == nil
  9606  			} else {
  9607  				r.EncodeNil()
  9608  			}
  9609  			z.EncWriteArrayElem()
  9610  			if yyq2[30] {
  9611  				yy126 := &x.TestStrucCommon.Simplef
  9612  				if yyxt127 := z.Extension(yy126); yyxt127 != nil {
  9613  					z.EncExtension(yy126, yyxt127)
  9614  				} else {
  9615  					yy126.CodecEncodeSelf(e)
  9616  				}
  9617  			} else {
  9618  				r.EncodeNil()
  9619  			}
  9620  			z.EncWriteArrayElem()
  9621  			if yyq2[31] {
  9622  				if x.TestStrucCommon.SstrUi64T == nil {
  9623  					r.EncodeNil()
  9624  				} else {
  9625  					h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  9626  				} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  9627  			} else {
  9628  				r.EncodeNil()
  9629  			}
  9630  			z.EncWriteArrayElem()
  9631  			if yyq2[32] {
  9632  				if x.TestStrucCommon.MstrUi64T == nil {
  9633  					r.EncodeNil()
  9634  				} else {
  9635  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  9636  				} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  9637  			} else {
  9638  				r.EncodeNil()
  9639  			}
  9640  			z.EncWriteArrayElem()
  9641  			if yyq2[33] {
  9642  				r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  9643  			} else {
  9644  				r.EncodeString("")
  9645  			}
  9646  			z.EncWriteArrayElem()
  9647  			if yyq2[34] {
  9648  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  9649  			} else {
  9650  				r.EncodeInt(0)
  9651  			}
  9652  			z.EncWriteArrayElem()
  9653  			if yyq2[35] {
  9654  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  9655  			} else {
  9656  				r.EncodeInt(0)
  9657  			}
  9658  			z.EncWriteArrayElem()
  9659  			if yyq2[36] {
  9660  				r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  9661  			} else {
  9662  				r.EncodeUint(0)
  9663  			}
  9664  			z.EncWriteArrayElem()
  9665  			if yyq2[37] {
  9666  				if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  9667  					r.EncodeNil()
  9668  				} else {
  9669  					z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  9670  				} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  9671  			} else {
  9672  				r.EncodeNil()
  9673  			}
  9674  			z.EncWriteArrayElem()
  9675  			if yyq2[38] {
  9676  				if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  9677  					r.EncodeNil()
  9678  				} else {
  9679  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  9680  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  9681  			} else {
  9682  				r.EncodeNil()
  9683  			}
  9684  			z.EncWriteArrayElem()
  9685  			if yyq2[39] {
  9686  				if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  9687  					r.EncodeNil()
  9688  				} else {
  9689  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  9690  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  9691  			} else {
  9692  				r.EncodeNil()
  9693  			}
  9694  			z.EncWriteArrayElem()
  9695  			if yyq2[40] {
  9696  				if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  9697  					r.EncodeNil()
  9698  				} else {
  9699  					z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  9700  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  9701  			} else {
  9702  				r.EncodeNil()
  9703  			}
  9704  			z.EncWriteArrayElem()
  9705  			if yyq2[41] {
  9706  				if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  9707  					r.EncodeNil()
  9708  				} else {
  9709  					z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  9710  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  9711  			} else {
  9712  				r.EncodeNil()
  9713  			}
  9714  			z.EncWriteArrayElem()
  9715  			if yyq2[42] {
  9716  				if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  9717  					r.EncodeNil()
  9718  				} else {
  9719  					z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  9720  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  9721  			} else {
  9722  				r.EncodeNil()
  9723  			}
  9724  			z.EncWriteArrayElem()
  9725  			if yyq2[43] {
  9726  				if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  9727  					r.EncodeNil()
  9728  				} else {
  9729  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  9730  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  9731  			} else {
  9732  				r.EncodeNil()
  9733  			}
  9734  			z.EncWriteArrayElem()
  9735  			if yyq2[44] {
  9736  				yy141 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  9737  				h.encArray8int64((*[8]int64)(yy141), e)
  9738  			} else {
  9739  				r.EncodeNil()
  9740  			}
  9741  			z.EncWriteArrayElem()
  9742  			if yyq2[45] {
  9743  				yy143 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  9744  				h.encArray0int64((*[0]int64)(yy143), e)
  9745  			} else {
  9746  				r.EncodeNil()
  9747  			}
  9748  			z.EncWriteArrayElem()
  9749  			if yyq2[46] {
  9750  				if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  9751  					r.EncodeNil()
  9752  				} else {
  9753  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  9754  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  9755  			} else {
  9756  				r.EncodeNil()
  9757  			}
  9758  			z.EncWriteArrayElem()
  9759  			if yyq2[47] {
  9760  				if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  9761  					r.EncodeNil()
  9762  				} else {
  9763  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  9764  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  9765  			} else {
  9766  				r.EncodeNil()
  9767  			}
  9768  			z.EncWriteArrayElem()
  9769  			if yyq2[48] {
  9770  				if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  9771  					r.EncodeNil()
  9772  				} else {
  9773  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  9774  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  9775  			} else {
  9776  				r.EncodeNil()
  9777  			}
  9778  			z.EncWriteArrayElem()
  9779  			if yyq2[49] {
  9780  				if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  9781  					r.EncodeNil()
  9782  				} else {
  9783  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  9784  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  9785  			} else {
  9786  				r.EncodeNil()
  9787  			}
  9788  			z.EncWriteArrayElem()
  9789  			if yyq2[50] {
  9790  				yy149 := &x.TestStrucCommon.NotAnon
  9791  				if yyxt150 := z.Extension(yy149); yyxt150 != nil {
  9792  					z.EncExtension(yy149, yyxt150)
  9793  				} else {
  9794  					yy149.CodecEncodeSelf(e)
  9795  				}
  9796  			} else {
  9797  				r.EncodeNil()
  9798  			}
  9799  			z.EncWriteArrayElem()
  9800  			if yyq2[51] {
  9801  				if x.TestStrucCommon.Nmap == nil {
  9802  					r.EncodeNil()
  9803  				} else {
  9804  					z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  9805  				} // end block: if x.TestStrucCommon.Nmap map == nil
  9806  			} else {
  9807  				r.EncodeNil()
  9808  			}
  9809  			z.EncWriteArrayElem()
  9810  			if yyq2[52] {
  9811  				if x.TestStrucCommon.Nslice == nil {
  9812  					r.EncodeNil()
  9813  				} else {
  9814  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  9815  				} // end block: if x.TestStrucCommon.Nslice slice == nil
  9816  			} else {
  9817  				r.EncodeNil()
  9818  			}
  9819  			if yyn56 {
  9820  				z.EncWriteArrayElem()
  9821  				r.EncodeNil()
  9822  			} else {
  9823  				z.EncWriteArrayElem()
  9824  				if yyq2[53] {
  9825  					yy153 := *x.TestStrucCommon.Nint64
  9826  					r.EncodeInt(int64(yy153))
  9827  				} else {
  9828  					r.EncodeNil()
  9829  				}
  9830  			}
  9831  			z.EncWriteArrayElem()
  9832  			if yyq2[54] {
  9833  				h.encChanstring((chan string)(x.Chstr), e)
  9834  			} else {
  9835  				r.EncodeNil()
  9836  			}
  9837  			z.EncWriteArrayElem()
  9838  			if yyq2[55] {
  9839  				if x.Mis == nil {
  9840  					r.EncodeNil()
  9841  				} else {
  9842  					z.F.EncMapIntStringV(x.Mis, e)
  9843  				} // end block: if x.Mis map == nil
  9844  			} else {
  9845  				r.EncodeNil()
  9846  			}
  9847  			z.EncWriteArrayElem()
  9848  			if yyq2[56] {
  9849  				if x.Mbu64 == nil {
  9850  					r.EncodeNil()
  9851  				} else {
  9852  					h.encMapboolc3RydWN0IHt9((map[bool]struct{})(x.Mbu64), e)
  9853  				} // end block: if x.Mbu64 map == nil
  9854  			} else {
  9855  				r.EncodeNil()
  9856  			}
  9857  			z.EncWriteArrayElem()
  9858  			if yyq2[57] {
  9859  				if x.Mu8e == nil {
  9860  					r.EncodeNil()
  9861  				} else {
  9862  					h.encMapuint8c3RydWN0IHt9((map[uint8]struct{})(x.Mu8e), e)
  9863  				} // end block: if x.Mu8e map == nil
  9864  			} else {
  9865  				r.EncodeNil()
  9866  			}
  9867  			z.EncWriteArrayElem()
  9868  			if yyq2[58] {
  9869  				if x.Mu8u64 == nil {
  9870  					r.EncodeNil()
  9871  				} else {
  9872  					h.encMapuint8stringUint64T((map[uint8]stringUint64T)(x.Mu8u64), e)
  9873  				} // end block: if x.Mu8u64 map == nil
  9874  			} else {
  9875  				r.EncodeNil()
  9876  			}
  9877  			z.EncWriteArrayElem()
  9878  			if yyq2[59] {
  9879  				if x.Msp2ss == nil {
  9880  					r.EncodeNil()
  9881  				} else {
  9882  					h.encMapPtrtostringSlicestring((map[*string][]string)(x.Msp2ss), e)
  9883  				} // end block: if x.Msp2ss map == nil
  9884  			} else {
  9885  				r.EncodeNil()
  9886  			}
  9887  			z.EncWriteArrayElem()
  9888  			if yyq2[60] {
  9889  				if x.Mip2ss == nil {
  9890  					r.EncodeNil()
  9891  				} else {
  9892  					h.encMapPtrtouint64Slicestring((map[*uint64][]string)(x.Mip2ss), e)
  9893  				} // end block: if x.Mip2ss map == nil
  9894  			} else {
  9895  				r.EncodeNil()
  9896  			}
  9897  			z.EncWriteArrayElem()
  9898  			if yyq2[61] {
  9899  				if x.Ms2misu == nil {
  9900  					r.EncodeNil()
  9901  				} else {
  9902  					h.encMapstringMapuint64stringUint64T((map[string]map[uint64]stringUint64T)(x.Ms2misu), e)
  9903  				} // end block: if x.Ms2misu map == nil
  9904  			} else {
  9905  				r.EncodeNil()
  9906  			}
  9907  			z.EncWriteArrayElem()
  9908  			if yyq2[62] {
  9909  				if x.Miwu64s == nil {
  9910  					r.EncodeNil()
  9911  				} else {
  9912  					h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
  9913  				} // end block: if x.Miwu64s map == nil
  9914  			} else {
  9915  				r.EncodeNil()
  9916  			}
  9917  			z.EncWriteArrayElem()
  9918  			if yyq2[63] {
  9919  				if x.Mfwss == nil {
  9920  					r.EncodeNil()
  9921  				} else {
  9922  					h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
  9923  				} // end block: if x.Mfwss map == nil
  9924  			} else {
  9925  				r.EncodeNil()
  9926  			}
  9927  			z.EncWriteArrayElem()
  9928  			if yyq2[64] {
  9929  				if x.Mf32wss == nil {
  9930  					r.EncodeNil()
  9931  				} else {
  9932  					h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
  9933  				} // end block: if x.Mf32wss map == nil
  9934  			} else {
  9935  				r.EncodeNil()
  9936  			}
  9937  			z.EncWriteArrayElem()
  9938  			if yyq2[65] {
  9939  				if x.Mui2wss == nil {
  9940  					r.EncodeNil()
  9941  				} else {
  9942  					h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
  9943  				} // end block: if x.Mui2wss map == nil
  9944  			} else {
  9945  				r.EncodeNil()
  9946  			}
  9947  			z.EncWriteArrayElem()
  9948  			if yyq2[66] {
  9949  				if x.Msu2wss == nil {
  9950  					r.EncodeNil()
  9951  				} else {
  9952  					h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
  9953  				} // end block: if x.Msu2wss map == nil
  9954  			} else {
  9955  				r.EncodeNil()
  9956  			}
  9957  			z.EncWriteArrayElem()
  9958  			if yyq2[67] {
  9959  				if yyxt168 := z.Extension(x.Ci64); yyxt168 != nil {
  9960  					z.EncExtension(x.Ci64, yyxt168)
  9961  				} else {
  9962  					x.Ci64.CodecEncodeSelf(e)
  9963  				}
  9964  			} else {
  9965  				r.EncodeInt(0)
  9966  			}
  9967  			z.EncWriteArrayElem()
  9968  			if yyq2[68] {
  9969  				if x.Swrapbytes == nil {
  9970  					r.EncodeNil()
  9971  				} else {
  9972  					h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
  9973  				} // end block: if x.Swrapbytes slice == nil
  9974  			} else {
  9975  				r.EncodeNil()
  9976  			}
  9977  			z.EncWriteArrayElem()
  9978  			if yyq2[69] {
  9979  				if x.Swrapuint8 == nil {
  9980  					r.EncodeNil()
  9981  				} else {
  9982  					h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
  9983  				} // end block: if x.Swrapuint8 slice == nil
  9984  			} else {
  9985  				r.EncodeNil()
  9986  			}
  9987  			z.EncWriteArrayElem()
  9988  			if yyq2[70] {
  9989  				yy171 := &x.ArrStrUi64T
  9990  				h.encArray4stringUint64T((*[4]stringUint64T)(yy171), e)
  9991  			} else {
  9992  				r.EncodeNil()
  9993  			}
  9994  			z.EncWriteArrayElem()
  9995  			if yyq2[71] {
  9996  				yy173 := &x.Ui64array
  9997  				h.encArray4uint64((*[4]uint64)(yy173), e)
  9998  			} else {
  9999  				r.EncodeNil()
 10000  			}
 10001  			z.EncWriteArrayElem()
 10002  			if yyq2[72] {
 10003  				if x.Ui64slicearray == nil {
 10004  					r.EncodeNil()
 10005  				} else {
 10006  					h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
 10007  				} // end block: if x.Ui64slicearray slice == nil
 10008  			} else {
 10009  				r.EncodeNil()
 10010  			}
 10011  			z.EncWriteArrayElem()
 10012  			if yyq2[73] {
 10013  				if x.SintfAarray == nil {
 10014  					r.EncodeNil()
 10015  				} else {
 10016  					z.F.EncSliceIntfV(x.SintfAarray, e)
 10017  				} // end block: if x.SintfAarray slice == nil
 10018  			} else {
 10019  				r.EncodeNil()
 10020  			}
 10021  			z.EncWriteArrayElem()
 10022  			if yyq2[74] {
 10023  				if x.MstrUi64TSelf == nil {
 10024  					r.EncodeNil()
 10025  				} else {
 10026  					h.encMapstringUint64TPtrtostringUint64T((map[stringUint64T]*stringUint64T)(x.MstrUi64TSelf), e)
 10027  				} // end block: if x.MstrUi64TSelf map == nil
 10028  			} else {
 10029  				r.EncodeNil()
 10030  			}
 10031  			z.EncWriteArrayElem()
 10032  			if yyq2[75] {
 10033  				if z.EncBasicHandle().TimeBuiltin() {
 10034  					r.EncodeTime(x.Ttime)
 10035  				} else if yyxt178 := z.Extension(x.Ttime); yyxt178 != nil {
 10036  					z.EncExtension(x.Ttime, yyxt178)
 10037  				} else if z.EncBinary() {
 10038  					z.EncBinaryMarshal(x.Ttime)
 10039  				} else if !z.EncBinary() && z.IsJSONHandle() {
 10040  					z.EncJSONMarshal(x.Ttime)
 10041  				} else {
 10042  					z.EncFallback(x.Ttime)
 10043  				}
 10044  			} else {
 10045  				r.EncodeNil()
 10046  			}
 10047  			if yyn79 {
 10048  				z.EncWriteArrayElem()
 10049  				r.EncodeNil()
 10050  			} else {
 10051  				z.EncWriteArrayElem()
 10052  				if yyq2[76] {
 10053  					yy179 := *x.Ttimeptr
 10054  					if z.EncBasicHandle().TimeBuiltin() {
 10055  						r.EncodeTime(yy179)
 10056  					} else if yyxt180 := z.Extension(yy179); yyxt180 != nil {
 10057  						z.EncExtension(yy179, yyxt180)
 10058  					} else if z.EncBinary() {
 10059  						z.EncBinaryMarshal(yy179)
 10060  					} else if !z.EncBinary() && z.IsJSONHandle() {
 10061  						z.EncJSONMarshal(yy179)
 10062  					} else {
 10063  						z.EncFallback(yy179)
 10064  					}
 10065  				} else {
 10066  					r.EncodeNil()
 10067  				}
 10068  			}
 10069  			if yyn80 {
 10070  				z.EncWriteArrayElem()
 10071  				r.EncodeNil()
 10072  			} else {
 10073  				z.EncWriteArrayElem()
 10074  				if yyq2[77] {
 10075  					if x.AnonInTestStrucIntf.Islice == nil {
 10076  						r.EncodeNil()
 10077  					} else {
 10078  						z.F.EncSliceIntfV(x.AnonInTestStrucIntf.Islice, e)
 10079  					} // end block: if x.AnonInTestStrucIntf.Islice slice == nil
 10080  				} else {
 10081  					r.EncodeNil()
 10082  				}
 10083  			}
 10084  			if yyn81 {
 10085  				z.EncWriteArrayElem()
 10086  				r.EncodeNil()
 10087  			} else {
 10088  				z.EncWriteArrayElem()
 10089  				if yyq2[78] {
 10090  					if x.AnonInTestStrucIntf.Ms == nil {
 10091  						r.EncodeNil()
 10092  					} else {
 10093  						z.F.EncMapStringIntfV(x.AnonInTestStrucIntf.Ms, e)
 10094  					} // end block: if x.AnonInTestStrucIntf.Ms map == nil
 10095  				} else {
 10096  					r.EncodeNil()
 10097  				}
 10098  			}
 10099  			if yyn82 {
 10100  				z.EncWriteArrayElem()
 10101  				r.EncodeNil()
 10102  			} else {
 10103  				z.EncWriteArrayElem()
 10104  				if yyq2[79] {
 10105  					z.EncFallback(x.AnonInTestStrucIntf.Nintf)
 10106  				} else {
 10107  					r.EncodeNil()
 10108  				}
 10109  			}
 10110  			if yyn83 {
 10111  				z.EncWriteArrayElem()
 10112  				r.EncodeNil()
 10113  			} else {
 10114  				z.EncWriteArrayElem()
 10115  				if yyq2[80] {
 10116  					if z.EncBasicHandle().TimeBuiltin() {
 10117  						r.EncodeTime(x.AnonInTestStrucIntf.T)
 10118  					} else if yyxt184 := z.Extension(x.AnonInTestStrucIntf.T); yyxt184 != nil {
 10119  						z.EncExtension(x.AnonInTestStrucIntf.T, yyxt184)
 10120  					} else if z.EncBinary() {
 10121  						z.EncBinaryMarshal(x.AnonInTestStrucIntf.T)
 10122  					} else if !z.EncBinary() && z.IsJSONHandle() {
 10123  						z.EncJSONMarshal(x.AnonInTestStrucIntf.T)
 10124  					} else {
 10125  						z.EncFallback(x.AnonInTestStrucIntf.T)
 10126  					}
 10127  				} else {
 10128  					r.EncodeNil()
 10129  				}
 10130  			}
 10131  			if yyn84 {
 10132  				z.EncWriteArrayElem()
 10133  				r.EncodeNil()
 10134  			} else {
 10135  				z.EncWriteArrayElem()
 10136  				if yyq2[81] {
 10137  					yy185 := *x.AnonInTestStrucIntf.Tptr
 10138  					if z.EncBasicHandle().TimeBuiltin() {
 10139  						r.EncodeTime(yy185)
 10140  					} else if yyxt186 := z.Extension(yy185); yyxt186 != nil {
 10141  						z.EncExtension(yy185, yyxt186)
 10142  					} else if z.EncBinary() {
 10143  						z.EncBinaryMarshal(yy185)
 10144  					} else if !z.EncBinary() && z.IsJSONHandle() {
 10145  						z.EncJSONMarshal(yy185)
 10146  					} else {
 10147  						z.EncFallback(yy185)
 10148  					}
 10149  				} else {
 10150  					r.EncodeNil()
 10151  				}
 10152  			}
 10153  			z.EncWriteArrayElem()
 10154  			if yyq2[82] {
 10155  				if x.Msu == nil {
 10156  					r.EncodeNil()
 10157  				} else {
 10158  					h.encMapwrapStringInterface((map[wrapString]interface{})(x.Msu), e)
 10159  				} // end block: if x.Msu map == nil
 10160  			} else {
 10161  				r.EncodeNil()
 10162  			}
 10163  			z.EncWriteArrayElem()
 10164  			if yyq2[83] {
 10165  				if x.Mtsptr == nil {
 10166  					r.EncodeNil()
 10167  				} else {
 10168  					h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
 10169  				} // end block: if x.Mtsptr map == nil
 10170  			} else {
 10171  				r.EncodeNil()
 10172  			}
 10173  			z.EncWriteArrayElem()
 10174  			if yyq2[84] {
 10175  				if x.Mts == nil {
 10176  					r.EncodeNil()
 10177  				} else {
 10178  					h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
 10179  				} // end block: if x.Mts map == nil
 10180  			} else {
 10181  				r.EncodeNil()
 10182  			}
 10183  			z.EncWriteArrayElem()
 10184  			if yyq2[85] {
 10185  				if x.Its == nil {
 10186  					r.EncodeNil()
 10187  				} else {
 10188  					h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
 10189  				} // end block: if x.Its slice == nil
 10190  			} else {
 10191  				r.EncodeNil()
 10192  			}
 10193  			if yyn89 {
 10194  				z.EncWriteArrayElem()
 10195  				r.EncodeNil()
 10196  			} else {
 10197  				z.EncWriteArrayElem()
 10198  				if yyq2[86] {
 10199  					if yyxt191 := z.Extension(x.Nteststruc); yyxt191 != nil {
 10200  						z.EncExtension(x.Nteststruc, yyxt191)
 10201  					} else {
 10202  						x.Nteststruc.CodecEncodeSelf(e)
 10203  					}
 10204  				} else {
 10205  					r.EncodeNil()
 10206  				}
 10207  			}
 10208  			z.EncWriteArrayElem()
 10209  			if yyq2[87] {
 10210  				if yyxt192 := z.Extension(x.MarJ); yyxt192 != nil {
 10211  					z.EncExtension(x.MarJ, yyxt192)
 10212  				} else {
 10213  					x.MarJ.CodecEncodeSelf(e)
 10214  				}
 10215  			} else {
 10216  				r.EncodeBool(false)
 10217  			}
 10218  			z.EncWriteArrayElem()
 10219  			if yyq2[88] {
 10220  				if yyxt193 := z.Extension(x.MarT); yyxt193 != nil {
 10221  					z.EncExtension(x.MarT, yyxt193)
 10222  				} else {
 10223  					x.MarT.CodecEncodeSelf(e)
 10224  				}
 10225  			} else {
 10226  				r.EncodeString("")
 10227  			}
 10228  			z.EncWriteArrayElem()
 10229  			if yyq2[89] {
 10230  				if yyxt194 := z.Extension(x.MarB); yyxt194 != nil {
 10231  					z.EncExtension(x.MarB, yyxt194)
 10232  				} else {
 10233  					x.MarB.CodecEncodeSelf(e)
 10234  				}
 10235  			} else {
 10236  				r.EncodeNil()
 10237  			}
 10238  			z.EncWriteArrayElem()
 10239  			if yyq2[90] {
 10240  				if yyxt195 := z.Extension(x.XuintToBytes); yyxt195 != nil {
 10241  					z.EncExtension(x.XuintToBytes, yyxt195)
 10242  				} else {
 10243  					x.XuintToBytes.CodecEncodeSelf(e)
 10244  				}
 10245  			} else {
 10246  				r.EncodeUint(0)
 10247  			}
 10248  			z.EncWriteArrayElem()
 10249  			if yyq2[91] {
 10250  				z.EncEncodeComplex64(complex64(x.Cmplx64))
 10251  			} else {
 10252  				z.EncEncodeComplex64(0)
 10253  			}
 10254  			z.EncWriteArrayElem()
 10255  			if yyq2[92] {
 10256  				z.EncEncodeComplex128(complex128(x.Cmplx128))
 10257  			} else {
 10258  				z.EncEncodeComplex128(0)
 10259  			}
 10260  			z.EncWriteArrayEnd()
 10261  		} else {
 10262  			var yynn2 int
 10263  			for _, b := range yyq2 {
 10264  				if b {
 10265  					yynn2++
 10266  				}
 10267  			}
 10268  			z.EncWriteMapStart(yynn2)
 10269  			yynn2 = 0
 10270  			if yyq2[0] {
 10271  				z.EncWriteMapElemKey()
 10272  				if z.IsJSONHandle() {
 10273  					z.WriteStr("\"S\"")
 10274  				} else {
 10275  					r.EncodeString(`S`)
 10276  				}
 10277  				z.EncWriteMapElemValue()
 10278  				r.EncodeString(string(x.TestStrucCommon.S))
 10279  			}
 10280  			if yyq2[1] {
 10281  				z.EncWriteMapElemKey()
 10282  				if z.IsJSONHandle() {
 10283  					z.WriteStr("\"I64\"")
 10284  				} else {
 10285  					r.EncodeString(`I64`)
 10286  				}
 10287  				z.EncWriteMapElemValue()
 10288  				r.EncodeInt(int64(x.TestStrucCommon.I64))
 10289  			}
 10290  			if yyq2[2] {
 10291  				z.EncWriteMapElemKey()
 10292  				if z.IsJSONHandle() {
 10293  					z.WriteStr("\"I32\"")
 10294  				} else {
 10295  					r.EncodeString(`I32`)
 10296  				}
 10297  				z.EncWriteMapElemValue()
 10298  				r.EncodeInt(int64(x.TestStrucCommon.I32))
 10299  			}
 10300  			if yyq2[3] {
 10301  				z.EncWriteMapElemKey()
 10302  				if z.IsJSONHandle() {
 10303  					z.WriteStr("\"I16\"")
 10304  				} else {
 10305  					r.EncodeString(`I16`)
 10306  				}
 10307  				z.EncWriteMapElemValue()
 10308  				r.EncodeInt(int64(x.TestStrucCommon.I16))
 10309  			}
 10310  			if yyq2[4] {
 10311  				z.EncWriteMapElemKey()
 10312  				if z.IsJSONHandle() {
 10313  					z.WriteStr("\"I8\"")
 10314  				} else {
 10315  					r.EncodeString(`I8`)
 10316  				}
 10317  				z.EncWriteMapElemValue()
 10318  				r.EncodeInt(int64(x.TestStrucCommon.I8))
 10319  			}
 10320  			if yyq2[5] {
 10321  				z.EncWriteMapElemKey()
 10322  				if z.IsJSONHandle() {
 10323  					z.WriteStr("\"I64n\"")
 10324  				} else {
 10325  					r.EncodeString(`I64n`)
 10326  				}
 10327  				z.EncWriteMapElemValue()
 10328  				r.EncodeInt(int64(x.TestStrucCommon.I64n))
 10329  			}
 10330  			if yyq2[6] {
 10331  				z.EncWriteMapElemKey()
 10332  				if z.IsJSONHandle() {
 10333  					z.WriteStr("\"I32n\"")
 10334  				} else {
 10335  					r.EncodeString(`I32n`)
 10336  				}
 10337  				z.EncWriteMapElemValue()
 10338  				r.EncodeInt(int64(x.TestStrucCommon.I32n))
 10339  			}
 10340  			if yyq2[7] {
 10341  				z.EncWriteMapElemKey()
 10342  				if z.IsJSONHandle() {
 10343  					z.WriteStr("\"I16n\"")
 10344  				} else {
 10345  					r.EncodeString(`I16n`)
 10346  				}
 10347  				z.EncWriteMapElemValue()
 10348  				r.EncodeInt(int64(x.TestStrucCommon.I16n))
 10349  			}
 10350  			if yyq2[8] {
 10351  				z.EncWriteMapElemKey()
 10352  				if z.IsJSONHandle() {
 10353  					z.WriteStr("\"I8n\"")
 10354  				} else {
 10355  					r.EncodeString(`I8n`)
 10356  				}
 10357  				z.EncWriteMapElemValue()
 10358  				r.EncodeInt(int64(x.TestStrucCommon.I8n))
 10359  			}
 10360  			if yyq2[9] {
 10361  				z.EncWriteMapElemKey()
 10362  				if z.IsJSONHandle() {
 10363  					z.WriteStr("\"Ui64\"")
 10364  				} else {
 10365  					r.EncodeString(`Ui64`)
 10366  				}
 10367  				z.EncWriteMapElemValue()
 10368  				r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
 10369  			}
 10370  			if yyq2[10] {
 10371  				z.EncWriteMapElemKey()
 10372  				if z.IsJSONHandle() {
 10373  					z.WriteStr("\"Ui32\"")
 10374  				} else {
 10375  					r.EncodeString(`Ui32`)
 10376  				}
 10377  				z.EncWriteMapElemValue()
 10378  				r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
 10379  			}
 10380  			if yyq2[11] {
 10381  				z.EncWriteMapElemKey()
 10382  				if z.IsJSONHandle() {
 10383  					z.WriteStr("\"Ui16\"")
 10384  				} else {
 10385  					r.EncodeString(`Ui16`)
 10386  				}
 10387  				z.EncWriteMapElemValue()
 10388  				r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
 10389  			}
 10390  			if yyq2[12] {
 10391  				z.EncWriteMapElemKey()
 10392  				if z.IsJSONHandle() {
 10393  					z.WriteStr("\"Ui8\"")
 10394  				} else {
 10395  					r.EncodeString(`Ui8`)
 10396  				}
 10397  				z.EncWriteMapElemValue()
 10398  				r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
 10399  			}
 10400  			if yyq2[13] {
 10401  				z.EncWriteMapElemKey()
 10402  				if z.IsJSONHandle() {
 10403  					z.WriteStr("\"F64\"")
 10404  				} else {
 10405  					r.EncodeString(`F64`)
 10406  				}
 10407  				z.EncWriteMapElemValue()
 10408  				r.EncodeFloat64(float64(x.TestStrucCommon.F64))
 10409  			}
 10410  			if yyq2[14] {
 10411  				z.EncWriteMapElemKey()
 10412  				if z.IsJSONHandle() {
 10413  					z.WriteStr("\"F32\"")
 10414  				} else {
 10415  					r.EncodeString(`F32`)
 10416  				}
 10417  				z.EncWriteMapElemValue()
 10418  				r.EncodeFloat32(float32(x.TestStrucCommon.F32))
 10419  			}
 10420  			if yyq2[15] {
 10421  				z.EncWriteMapElemKey()
 10422  				if z.IsJSONHandle() {
 10423  					z.WriteStr("\"B\"")
 10424  				} else {
 10425  					r.EncodeString(`B`)
 10426  				}
 10427  				z.EncWriteMapElemValue()
 10428  				r.EncodeBool(bool(x.TestStrucCommon.B))
 10429  			}
 10430  			if yyq2[16] {
 10431  				z.EncWriteMapElemKey()
 10432  				if z.IsJSONHandle() {
 10433  					z.WriteStr("\"By\"")
 10434  				} else {
 10435  					r.EncodeString(`By`)
 10436  				}
 10437  				z.EncWriteMapElemValue()
 10438  				r.EncodeUint(uint64(x.TestStrucCommon.By))
 10439  			}
 10440  			if yyq2[17] {
 10441  				z.EncWriteMapElemKey()
 10442  				if z.IsJSONHandle() {
 10443  					z.WriteStr("\"Sslice\"")
 10444  				} else {
 10445  					r.EncodeString(`Sslice`)
 10446  				}
 10447  				z.EncWriteMapElemValue()
 10448  				if x.TestStrucCommon.Sslice == nil {
 10449  					r.EncodeNil()
 10450  				} else {
 10451  					z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
 10452  				} // end block: if x.TestStrucCommon.Sslice slice == nil
 10453  			}
 10454  			if yyq2[18] {
 10455  				z.EncWriteMapElemKey()
 10456  				if z.IsJSONHandle() {
 10457  					z.WriteStr("\"I64slice\"")
 10458  				} else {
 10459  					r.EncodeString(`I64slice`)
 10460  				}
 10461  				z.EncWriteMapElemValue()
 10462  				if x.TestStrucCommon.I64slice == nil {
 10463  					r.EncodeNil()
 10464  				} else {
 10465  					z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
 10466  				} // end block: if x.TestStrucCommon.I64slice slice == nil
 10467  			}
 10468  			if yyq2[19] {
 10469  				z.EncWriteMapElemKey()
 10470  				if z.IsJSONHandle() {
 10471  					z.WriteStr("\"I32slice\"")
 10472  				} else {
 10473  					r.EncodeString(`I32slice`)
 10474  				}
 10475  				z.EncWriteMapElemValue()
 10476  				if x.TestStrucCommon.I32slice == nil {
 10477  					r.EncodeNil()
 10478  				} else {
 10479  					z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
 10480  				} // end block: if x.TestStrucCommon.I32slice slice == nil
 10481  			}
 10482  			if yyq2[20] {
 10483  				z.EncWriteMapElemKey()
 10484  				if z.IsJSONHandle() {
 10485  					z.WriteStr("\"Ui64slice\"")
 10486  				} else {
 10487  					r.EncodeString(`Ui64slice`)
 10488  				}
 10489  				z.EncWriteMapElemValue()
 10490  				if x.TestStrucCommon.Ui64slice == nil {
 10491  					r.EncodeNil()
 10492  				} else {
 10493  					z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
 10494  				} // end block: if x.TestStrucCommon.Ui64slice slice == nil
 10495  			}
 10496  			if yyq2[21] {
 10497  				z.EncWriteMapElemKey()
 10498  				if z.IsJSONHandle() {
 10499  					z.WriteStr("\"Ui8slice\"")
 10500  				} else {
 10501  					r.EncodeString(`Ui8slice`)
 10502  				}
 10503  				z.EncWriteMapElemValue()
 10504  				if x.TestStrucCommon.Ui8slice == nil {
 10505  					r.EncodeNil()
 10506  				} else {
 10507  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
 10508  				} // end block: if x.TestStrucCommon.Ui8slice slice == nil
 10509  			}
 10510  			if yyq2[22] {
 10511  				z.EncWriteMapElemKey()
 10512  				if z.IsJSONHandle() {
 10513  					z.WriteStr("\"Bslice\"")
 10514  				} else {
 10515  					r.EncodeString(`Bslice`)
 10516  				}
 10517  				z.EncWriteMapElemValue()
 10518  				if x.TestStrucCommon.Bslice == nil {
 10519  					r.EncodeNil()
 10520  				} else {
 10521  					z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
 10522  				} // end block: if x.TestStrucCommon.Bslice slice == nil
 10523  			}
 10524  			if yyq2[23] {
 10525  				z.EncWriteMapElemKey()
 10526  				if z.IsJSONHandle() {
 10527  					z.WriteStr("\"Byslice\"")
 10528  				} else {
 10529  					r.EncodeString(`Byslice`)
 10530  				}
 10531  				z.EncWriteMapElemValue()
 10532  				if x.TestStrucCommon.Byslice == nil {
 10533  					r.EncodeNil()
 10534  				} else {
 10535  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
 10536  				} // end block: if x.TestStrucCommon.Byslice slice == nil
 10537  			}
 10538  			if yyq2[24] {
 10539  				z.EncWriteMapElemKey()
 10540  				if z.IsJSONHandle() {
 10541  					z.WriteStr("\"BytesSlice\"")
 10542  				} else {
 10543  					r.EncodeString(`BytesSlice`)
 10544  				}
 10545  				z.EncWriteMapElemValue()
 10546  				if x.TestStrucCommon.BytesSlice == nil {
 10547  					r.EncodeNil()
 10548  				} else {
 10549  					z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
 10550  				} // end block: if x.TestStrucCommon.BytesSlice slice == nil
 10551  			}
 10552  			if yyq2[25] {
 10553  				z.EncWriteMapElemKey()
 10554  				if z.IsJSONHandle() {
 10555  					z.WriteStr("\"Iptrslice\"")
 10556  				} else {
 10557  					r.EncodeString(`Iptrslice`)
 10558  				}
 10559  				z.EncWriteMapElemValue()
 10560  				if x.TestStrucCommon.Iptrslice == nil {
 10561  					r.EncodeNil()
 10562  				} else {
 10563  					h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
 10564  				} // end block: if x.TestStrucCommon.Iptrslice slice == nil
 10565  			}
 10566  			if yyq2[26] {
 10567  				z.EncWriteMapElemKey()
 10568  				if z.IsJSONHandle() {
 10569  					z.WriteStr("\"WrapSliceInt64\"")
 10570  				} else {
 10571  					r.EncodeString(`WrapSliceInt64`)
 10572  				}
 10573  				z.EncWriteMapElemValue()
 10574  				if yyxt224 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt224 != nil {
 10575  					z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt224)
 10576  				} else {
 10577  					x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
 10578  				}
 10579  			}
 10580  			if yyq2[27] {
 10581  				z.EncWriteMapElemKey()
 10582  				if z.IsJSONHandle() {
 10583  					z.WriteStr("\"WrapSliceString\"")
 10584  				} else {
 10585  					r.EncodeString(`WrapSliceString`)
 10586  				}
 10587  				z.EncWriteMapElemValue()
 10588  				if yyxt225 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt225 != nil {
 10589  					z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt225)
 10590  				} else {
 10591  					x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
 10592  				}
 10593  			}
 10594  			if yyq2[28] {
 10595  				z.EncWriteMapElemKey()
 10596  				if z.IsJSONHandle() {
 10597  					z.WriteStr("\"Msint\"")
 10598  				} else {
 10599  					r.EncodeString(`Msint`)
 10600  				}
 10601  				z.EncWriteMapElemValue()
 10602  				if x.TestStrucCommon.Msint == nil {
 10603  					r.EncodeNil()
 10604  				} else {
 10605  					z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
 10606  				} // end block: if x.TestStrucCommon.Msint map == nil
 10607  			}
 10608  			if yyq2[29] {
 10609  				z.EncWriteMapElemKey()
 10610  				if z.IsJSONHandle() {
 10611  					z.WriteStr("\"Msbytes\"")
 10612  				} else {
 10613  					r.EncodeString(`Msbytes`)
 10614  				}
 10615  				z.EncWriteMapElemValue()
 10616  				if x.TestStrucCommon.Msbytes == nil {
 10617  					r.EncodeNil()
 10618  				} else {
 10619  					z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
 10620  				} // end block: if x.TestStrucCommon.Msbytes map == nil
 10621  			}
 10622  			if yyq2[30] {
 10623  				z.EncWriteMapElemKey()
 10624  				if z.IsJSONHandle() {
 10625  					z.WriteStr("\"Simplef\"")
 10626  				} else {
 10627  					r.EncodeString(`Simplef`)
 10628  				}
 10629  				z.EncWriteMapElemValue()
 10630  				yy228 := &x.TestStrucCommon.Simplef
 10631  				if yyxt229 := z.Extension(yy228); yyxt229 != nil {
 10632  					z.EncExtension(yy228, yyxt229)
 10633  				} else {
 10634  					yy228.CodecEncodeSelf(e)
 10635  				}
 10636  			}
 10637  			if yyq2[31] {
 10638  				z.EncWriteMapElemKey()
 10639  				if z.IsJSONHandle() {
 10640  					z.WriteStr("\"SstrUi64T\"")
 10641  				} else {
 10642  					r.EncodeString(`SstrUi64T`)
 10643  				}
 10644  				z.EncWriteMapElemValue()
 10645  				if x.TestStrucCommon.SstrUi64T == nil {
 10646  					r.EncodeNil()
 10647  				} else {
 10648  					h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
 10649  				} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
 10650  			}
 10651  			if yyq2[32] {
 10652  				z.EncWriteMapElemKey()
 10653  				if z.IsJSONHandle() {
 10654  					z.WriteStr("\"MstrUi64T\"")
 10655  				} else {
 10656  					r.EncodeString(`MstrUi64T`)
 10657  				}
 10658  				z.EncWriteMapElemValue()
 10659  				if x.TestStrucCommon.MstrUi64T == nil {
 10660  					r.EncodeNil()
 10661  				} else {
 10662  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
 10663  				} // end block: if x.TestStrucCommon.MstrUi64T map == nil
 10664  			}
 10665  			if yyq2[33] {
 10666  				z.EncWriteMapElemKey()
 10667  				if z.IsJSONHandle() {
 10668  					z.WriteStr("\"AS\"")
 10669  				} else {
 10670  					r.EncodeString(`AS`)
 10671  				}
 10672  				z.EncWriteMapElemValue()
 10673  				r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
 10674  			}
 10675  			if yyq2[34] {
 10676  				z.EncWriteMapElemKey()
 10677  				if z.IsJSONHandle() {
 10678  					z.WriteStr("\"AI64\"")
 10679  				} else {
 10680  					r.EncodeString(`AI64`)
 10681  				}
 10682  				z.EncWriteMapElemValue()
 10683  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
 10684  			}
 10685  			if yyq2[35] {
 10686  				z.EncWriteMapElemKey()
 10687  				if z.IsJSONHandle() {
 10688  					z.WriteStr("\"AI16\"")
 10689  				} else {
 10690  					r.EncodeString(`AI16`)
 10691  				}
 10692  				z.EncWriteMapElemValue()
 10693  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
 10694  			}
 10695  			if yyq2[36] {
 10696  				z.EncWriteMapElemKey()
 10697  				if z.IsJSONHandle() {
 10698  					z.WriteStr("\"AUi64\"")
 10699  				} else {
 10700  					r.EncodeString(`AUi64`)
 10701  				}
 10702  				z.EncWriteMapElemValue()
 10703  				r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
 10704  			}
 10705  			if yyq2[37] {
 10706  				z.EncWriteMapElemKey()
 10707  				if z.IsJSONHandle() {
 10708  					z.WriteStr("\"ASslice\"")
 10709  				} else {
 10710  					r.EncodeString(`ASslice`)
 10711  				}
 10712  				z.EncWriteMapElemValue()
 10713  				if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
 10714  					r.EncodeNil()
 10715  				} else {
 10716  					z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
 10717  				} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
 10718  			}
 10719  			if yyq2[38] {
 10720  				z.EncWriteMapElemKey()
 10721  				if z.IsJSONHandle() {
 10722  					z.WriteStr("\"AI64slice\"")
 10723  				} else {
 10724  					r.EncodeString(`AI64slice`)
 10725  				}
 10726  				z.EncWriteMapElemValue()
 10727  				if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
 10728  					r.EncodeNil()
 10729  				} else {
 10730  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
 10731  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
 10732  			}
 10733  			if yyq2[39] {
 10734  				z.EncWriteMapElemKey()
 10735  				if z.IsJSONHandle() {
 10736  					z.WriteStr("\"AUi64slice\"")
 10737  				} else {
 10738  					r.EncodeString(`AUi64slice`)
 10739  				}
 10740  				z.EncWriteMapElemValue()
 10741  				if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
 10742  					r.EncodeNil()
 10743  				} else {
 10744  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
 10745  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
 10746  			}
 10747  			if yyq2[40] {
 10748  				z.EncWriteMapElemKey()
 10749  				if z.IsJSONHandle() {
 10750  					z.WriteStr("\"AF64slice\"")
 10751  				} else {
 10752  					r.EncodeString(`AF64slice`)
 10753  				}
 10754  				z.EncWriteMapElemValue()
 10755  				if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
 10756  					r.EncodeNil()
 10757  				} else {
 10758  					z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
 10759  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
 10760  			}
 10761  			if yyq2[41] {
 10762  				z.EncWriteMapElemKey()
 10763  				if z.IsJSONHandle() {
 10764  					z.WriteStr("\"AF32slice\"")
 10765  				} else {
 10766  					r.EncodeString(`AF32slice`)
 10767  				}
 10768  				z.EncWriteMapElemValue()
 10769  				if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
 10770  					r.EncodeNil()
 10771  				} else {
 10772  					z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
 10773  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
 10774  			}
 10775  			if yyq2[42] {
 10776  				z.EncWriteMapElemKey()
 10777  				if z.IsJSONHandle() {
 10778  					z.WriteStr("\"AMSS\"")
 10779  				} else {
 10780  					r.EncodeString(`AMSS`)
 10781  				}
 10782  				z.EncWriteMapElemValue()
 10783  				if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
 10784  					r.EncodeNil()
 10785  				} else {
 10786  					z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
 10787  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
 10788  			}
 10789  			if yyq2[43] {
 10790  				z.EncWriteMapElemKey()
 10791  				if z.IsJSONHandle() {
 10792  					z.WriteStr("\"AMSU64\"")
 10793  				} else {
 10794  					r.EncodeString(`AMSU64`)
 10795  				}
 10796  				z.EncWriteMapElemValue()
 10797  				if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
 10798  					r.EncodeNil()
 10799  				} else {
 10800  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
 10801  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
 10802  			}
 10803  			if yyq2[44] {
 10804  				z.EncWriteMapElemKey()
 10805  				if z.IsJSONHandle() {
 10806  					z.WriteStr("\"AI64arr8\"")
 10807  				} else {
 10808  					r.EncodeString(`AI64arr8`)
 10809  				}
 10810  				z.EncWriteMapElemValue()
 10811  				yy243 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
 10812  				h.encArray8int64((*[8]int64)(yy243), e)
 10813  			}
 10814  			if yyq2[45] {
 10815  				z.EncWriteMapElemKey()
 10816  				if z.IsJSONHandle() {
 10817  					z.WriteStr("\"AI64arr0\"")
 10818  				} else {
 10819  					r.EncodeString(`AI64arr0`)
 10820  				}
 10821  				z.EncWriteMapElemValue()
 10822  				yy245 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
 10823  				h.encArray0int64((*[0]int64)(yy245), e)
 10824  			}
 10825  			if yyq2[46] {
 10826  				z.EncWriteMapElemKey()
 10827  				if z.IsJSONHandle() {
 10828  					z.WriteStr("\"AI64slice0\"")
 10829  				} else {
 10830  					r.EncodeString(`AI64slice0`)
 10831  				}
 10832  				z.EncWriteMapElemValue()
 10833  				if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
 10834  					r.EncodeNil()
 10835  				} else {
 10836  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
 10837  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
 10838  			}
 10839  			if yyq2[47] {
 10840  				z.EncWriteMapElemKey()
 10841  				if z.IsJSONHandle() {
 10842  					z.WriteStr("\"AUi64sliceN\"")
 10843  				} else {
 10844  					r.EncodeString(`AUi64sliceN`)
 10845  				}
 10846  				z.EncWriteMapElemValue()
 10847  				if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
 10848  					r.EncodeNil()
 10849  				} else {
 10850  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
 10851  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
 10852  			}
 10853  			if yyq2[48] {
 10854  				z.EncWriteMapElemKey()
 10855  				if z.IsJSONHandle() {
 10856  					z.WriteStr("\"AMSU64N\"")
 10857  				} else {
 10858  					r.EncodeString(`AMSU64N`)
 10859  				}
 10860  				z.EncWriteMapElemValue()
 10861  				if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
 10862  					r.EncodeNil()
 10863  				} else {
 10864  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
 10865  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
 10866  			}
 10867  			if yyq2[49] {
 10868  				z.EncWriteMapElemKey()
 10869  				if z.IsJSONHandle() {
 10870  					z.WriteStr("\"AMSU64E\"")
 10871  				} else {
 10872  					r.EncodeString(`AMSU64E`)
 10873  				}
 10874  				z.EncWriteMapElemValue()
 10875  				if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
 10876  					r.EncodeNil()
 10877  				} else {
 10878  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
 10879  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
 10880  			}
 10881  			if yyq2[50] {
 10882  				z.EncWriteMapElemKey()
 10883  				if z.IsJSONHandle() {
 10884  					z.WriteStr("\"NotAnon\"")
 10885  				} else {
 10886  					r.EncodeString(`NotAnon`)
 10887  				}
 10888  				z.EncWriteMapElemValue()
 10889  				yy251 := &x.TestStrucCommon.NotAnon
 10890  				if yyxt252 := z.Extension(yy251); yyxt252 != nil {
 10891  					z.EncExtension(yy251, yyxt252)
 10892  				} else {
 10893  					yy251.CodecEncodeSelf(e)
 10894  				}
 10895  			}
 10896  			if yyq2[51] {
 10897  				z.EncWriteMapElemKey()
 10898  				if z.IsJSONHandle() {
 10899  					z.WriteStr("\"Nmap\"")
 10900  				} else {
 10901  					r.EncodeString(`Nmap`)
 10902  				}
 10903  				z.EncWriteMapElemValue()
 10904  				if x.TestStrucCommon.Nmap == nil {
 10905  					r.EncodeNil()
 10906  				} else {
 10907  					z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
 10908  				} // end block: if x.TestStrucCommon.Nmap map == nil
 10909  			}
 10910  			if yyq2[52] {
 10911  				z.EncWriteMapElemKey()
 10912  				if z.IsJSONHandle() {
 10913  					z.WriteStr("\"Nslice\"")
 10914  				} else {
 10915  					r.EncodeString(`Nslice`)
 10916  				}
 10917  				z.EncWriteMapElemValue()
 10918  				if x.TestStrucCommon.Nslice == nil {
 10919  					r.EncodeNil()
 10920  				} else {
 10921  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
 10922  				} // end block: if x.TestStrucCommon.Nslice slice == nil
 10923  			}
 10924  			if yyq2[53] {
 10925  				z.EncWriteMapElemKey()
 10926  				if z.IsJSONHandle() {
 10927  					z.WriteStr("\"Nint64\"")
 10928  				} else {
 10929  					r.EncodeString(`Nint64`)
 10930  				}
 10931  				z.EncWriteMapElemValue()
 10932  				if yyn56 {
 10933  					r.EncodeNil()
 10934  				} else {
 10935  					yy255 := *x.TestStrucCommon.Nint64
 10936  					r.EncodeInt(int64(yy255))
 10937  				}
 10938  			}
 10939  			if yyq2[54] {
 10940  				z.EncWriteMapElemKey()
 10941  				if z.IsJSONHandle() {
 10942  					z.WriteStr("\"Chstr\"")
 10943  				} else {
 10944  					r.EncodeString(`Chstr`)
 10945  				}
 10946  				z.EncWriteMapElemValue()
 10947  				h.encChanstring((chan string)(x.Chstr), e)
 10948  			}
 10949  			if yyq2[55] {
 10950  				z.EncWriteMapElemKey()
 10951  				if z.IsJSONHandle() {
 10952  					z.WriteStr("\"Mis\"")
 10953  				} else {
 10954  					r.EncodeString(`Mis`)
 10955  				}
 10956  				z.EncWriteMapElemValue()
 10957  				if x.Mis == nil {
 10958  					r.EncodeNil()
 10959  				} else {
 10960  					z.F.EncMapIntStringV(x.Mis, e)
 10961  				} // end block: if x.Mis map == nil
 10962  			}
 10963  			if yyq2[56] {
 10964  				z.EncWriteMapElemKey()
 10965  				if z.IsJSONHandle() {
 10966  					z.WriteStr("\"Mbu64\"")
 10967  				} else {
 10968  					r.EncodeString(`Mbu64`)
 10969  				}
 10970  				z.EncWriteMapElemValue()
 10971  				if x.Mbu64 == nil {
 10972  					r.EncodeNil()
 10973  				} else {
 10974  					h.encMapboolc3RydWN0IHt9((map[bool]struct{})(x.Mbu64), e)
 10975  				} // end block: if x.Mbu64 map == nil
 10976  			}
 10977  			if yyq2[57] {
 10978  				z.EncWriteMapElemKey()
 10979  				if z.IsJSONHandle() {
 10980  					z.WriteStr("\"Mu8e\"")
 10981  				} else {
 10982  					r.EncodeString(`Mu8e`)
 10983  				}
 10984  				z.EncWriteMapElemValue()
 10985  				if x.Mu8e == nil {
 10986  					r.EncodeNil()
 10987  				} else {
 10988  					h.encMapuint8c3RydWN0IHt9((map[uint8]struct{})(x.Mu8e), e)
 10989  				} // end block: if x.Mu8e map == nil
 10990  			}
 10991  			if yyq2[58] {
 10992  				z.EncWriteMapElemKey()
 10993  				if z.IsJSONHandle() {
 10994  					z.WriteStr("\"Mu8u64\"")
 10995  				} else {
 10996  					r.EncodeString(`Mu8u64`)
 10997  				}
 10998  				z.EncWriteMapElemValue()
 10999  				if x.Mu8u64 == nil {
 11000  					r.EncodeNil()
 11001  				} else {
 11002  					h.encMapuint8stringUint64T((map[uint8]stringUint64T)(x.Mu8u64), e)
 11003  				} // end block: if x.Mu8u64 map == nil
 11004  			}
 11005  			if yyq2[59] {
 11006  				z.EncWriteMapElemKey()
 11007  				if z.IsJSONHandle() {
 11008  					z.WriteStr("\"Msp2ss\"")
 11009  				} else {
 11010  					r.EncodeString(`Msp2ss`)
 11011  				}
 11012  				z.EncWriteMapElemValue()
 11013  				if x.Msp2ss == nil {
 11014  					r.EncodeNil()
 11015  				} else {
 11016  					h.encMapPtrtostringSlicestring((map[*string][]string)(x.Msp2ss), e)
 11017  				} // end block: if x.Msp2ss map == nil
 11018  			}
 11019  			if yyq2[60] {
 11020  				z.EncWriteMapElemKey()
 11021  				if z.IsJSONHandle() {
 11022  					z.WriteStr("\"Mip2ss\"")
 11023  				} else {
 11024  					r.EncodeString(`Mip2ss`)
 11025  				}
 11026  				z.EncWriteMapElemValue()
 11027  				if x.Mip2ss == nil {
 11028  					r.EncodeNil()
 11029  				} else {
 11030  					h.encMapPtrtouint64Slicestring((map[*uint64][]string)(x.Mip2ss), e)
 11031  				} // end block: if x.Mip2ss map == nil
 11032  			}
 11033  			if yyq2[61] {
 11034  				z.EncWriteMapElemKey()
 11035  				if z.IsJSONHandle() {
 11036  					z.WriteStr("\"Ms2misu\"")
 11037  				} else {
 11038  					r.EncodeString(`Ms2misu`)
 11039  				}
 11040  				z.EncWriteMapElemValue()
 11041  				if x.Ms2misu == nil {
 11042  					r.EncodeNil()
 11043  				} else {
 11044  					h.encMapstringMapuint64stringUint64T((map[string]map[uint64]stringUint64T)(x.Ms2misu), e)
 11045  				} // end block: if x.Ms2misu map == nil
 11046  			}
 11047  			if yyq2[62] {
 11048  				z.EncWriteMapElemKey()
 11049  				if z.IsJSONHandle() {
 11050  					z.WriteStr("\"Miwu64s\"")
 11051  				} else {
 11052  					r.EncodeString(`Miwu64s`)
 11053  				}
 11054  				z.EncWriteMapElemValue()
 11055  				if x.Miwu64s == nil {
 11056  					r.EncodeNil()
 11057  				} else {
 11058  					h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
 11059  				} // end block: if x.Miwu64s map == nil
 11060  			}
 11061  			if yyq2[63] {
 11062  				z.EncWriteMapElemKey()
 11063  				if z.IsJSONHandle() {
 11064  					z.WriteStr("\"Mfwss\"")
 11065  				} else {
 11066  					r.EncodeString(`Mfwss`)
 11067  				}
 11068  				z.EncWriteMapElemValue()
 11069  				if x.Mfwss == nil {
 11070  					r.EncodeNil()
 11071  				} else {
 11072  					h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
 11073  				} // end block: if x.Mfwss map == nil
 11074  			}
 11075  			if yyq2[64] {
 11076  				z.EncWriteMapElemKey()
 11077  				if z.IsJSONHandle() {
 11078  					z.WriteStr("\"Mf32wss\"")
 11079  				} else {
 11080  					r.EncodeString(`Mf32wss`)
 11081  				}
 11082  				z.EncWriteMapElemValue()
 11083  				if x.Mf32wss == nil {
 11084  					r.EncodeNil()
 11085  				} else {
 11086  					h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
 11087  				} // end block: if x.Mf32wss map == nil
 11088  			}
 11089  			if yyq2[65] {
 11090  				z.EncWriteMapElemKey()
 11091  				if z.IsJSONHandle() {
 11092  					z.WriteStr("\"Mui2wss\"")
 11093  				} else {
 11094  					r.EncodeString(`Mui2wss`)
 11095  				}
 11096  				z.EncWriteMapElemValue()
 11097  				if x.Mui2wss == nil {
 11098  					r.EncodeNil()
 11099  				} else {
 11100  					h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
 11101  				} // end block: if x.Mui2wss map == nil
 11102  			}
 11103  			if yyq2[66] {
 11104  				z.EncWriteMapElemKey()
 11105  				if z.IsJSONHandle() {
 11106  					z.WriteStr("\"Msu2wss\"")
 11107  				} else {
 11108  					r.EncodeString(`Msu2wss`)
 11109  				}
 11110  				z.EncWriteMapElemValue()
 11111  				if x.Msu2wss == nil {
 11112  					r.EncodeNil()
 11113  				} else {
 11114  					h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
 11115  				} // end block: if x.Msu2wss map == nil
 11116  			}
 11117  			if yyq2[67] {
 11118  				z.EncWriteMapElemKey()
 11119  				if z.IsJSONHandle() {
 11120  					z.WriteStr("\"Ci64\"")
 11121  				} else {
 11122  					r.EncodeString(`Ci64`)
 11123  				}
 11124  				z.EncWriteMapElemValue()
 11125  				if yyxt270 := z.Extension(x.Ci64); yyxt270 != nil {
 11126  					z.EncExtension(x.Ci64, yyxt270)
 11127  				} else {
 11128  					x.Ci64.CodecEncodeSelf(e)
 11129  				}
 11130  			}
 11131  			if yyq2[68] {
 11132  				z.EncWriteMapElemKey()
 11133  				if z.IsJSONHandle() {
 11134  					z.WriteStr("\"Swrapbytes\"")
 11135  				} else {
 11136  					r.EncodeString(`Swrapbytes`)
 11137  				}
 11138  				z.EncWriteMapElemValue()
 11139  				if x.Swrapbytes == nil {
 11140  					r.EncodeNil()
 11141  				} else {
 11142  					h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
 11143  				} // end block: if x.Swrapbytes slice == nil
 11144  			}
 11145  			if yyq2[69] {
 11146  				z.EncWriteMapElemKey()
 11147  				if z.IsJSONHandle() {
 11148  					z.WriteStr("\"Swrapuint8\"")
 11149  				} else {
 11150  					r.EncodeString(`Swrapuint8`)
 11151  				}
 11152  				z.EncWriteMapElemValue()
 11153  				if x.Swrapuint8 == nil {
 11154  					r.EncodeNil()
 11155  				} else {
 11156  					h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
 11157  				} // end block: if x.Swrapuint8 slice == nil
 11158  			}
 11159  			if yyq2[70] {
 11160  				z.EncWriteMapElemKey()
 11161  				if z.IsJSONHandle() {
 11162  					z.WriteStr("\"ArrStrUi64T\"")
 11163  				} else {
 11164  					r.EncodeString(`ArrStrUi64T`)
 11165  				}
 11166  				z.EncWriteMapElemValue()
 11167  				yy273 := &x.ArrStrUi64T
 11168  				h.encArray4stringUint64T((*[4]stringUint64T)(yy273), e)
 11169  			}
 11170  			if yyq2[71] {
 11171  				z.EncWriteMapElemKey()
 11172  				if z.IsJSONHandle() {
 11173  					z.WriteStr("\"Ui64array\"")
 11174  				} else {
 11175  					r.EncodeString(`Ui64array`)
 11176  				}
 11177  				z.EncWriteMapElemValue()
 11178  				yy275 := &x.Ui64array
 11179  				h.encArray4uint64((*[4]uint64)(yy275), e)
 11180  			}
 11181  			if yyq2[72] {
 11182  				z.EncWriteMapElemKey()
 11183  				if z.IsJSONHandle() {
 11184  					z.WriteStr("\"Ui64slicearray\"")
 11185  				} else {
 11186  					r.EncodeString(`Ui64slicearray`)
 11187  				}
 11188  				z.EncWriteMapElemValue()
 11189  				if x.Ui64slicearray == nil {
 11190  					r.EncodeNil()
 11191  				} else {
 11192  					h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
 11193  				} // end block: if x.Ui64slicearray slice == nil
 11194  			}
 11195  			if yyq2[73] {
 11196  				z.EncWriteMapElemKey()
 11197  				if z.IsJSONHandle() {
 11198  					z.WriteStr("\"SintfAarray\"")
 11199  				} else {
 11200  					r.EncodeString(`SintfAarray`)
 11201  				}
 11202  				z.EncWriteMapElemValue()
 11203  				if x.SintfAarray == nil {
 11204  					r.EncodeNil()
 11205  				} else {
 11206  					z.F.EncSliceIntfV(x.SintfAarray, e)
 11207  				} // end block: if x.SintfAarray slice == nil
 11208  			}
 11209  			if yyq2[74] {
 11210  				z.EncWriteMapElemKey()
 11211  				if z.IsJSONHandle() {
 11212  					z.WriteStr("\"MstrUi64TSelf\"")
 11213  				} else {
 11214  					r.EncodeString(`MstrUi64TSelf`)
 11215  				}
 11216  				z.EncWriteMapElemValue()
 11217  				if x.MstrUi64TSelf == nil {
 11218  					r.EncodeNil()
 11219  				} else {
 11220  					h.encMapstringUint64TPtrtostringUint64T((map[stringUint64T]*stringUint64T)(x.MstrUi64TSelf), e)
 11221  				} // end block: if x.MstrUi64TSelf map == nil
 11222  			}
 11223  			if yyq2[75] {
 11224  				z.EncWriteMapElemKey()
 11225  				if z.IsJSONHandle() {
 11226  					z.WriteStr("\"Ttime\"")
 11227  				} else {
 11228  					r.EncodeString(`Ttime`)
 11229  				}
 11230  				z.EncWriteMapElemValue()
 11231  				if z.EncBasicHandle().TimeBuiltin() {
 11232  					r.EncodeTime(x.Ttime)
 11233  				} else if yyxt280 := z.Extension(x.Ttime); yyxt280 != nil {
 11234  					z.EncExtension(x.Ttime, yyxt280)
 11235  				} else if z.EncBinary() {
 11236  					z.EncBinaryMarshal(x.Ttime)
 11237  				} else if !z.EncBinary() && z.IsJSONHandle() {
 11238  					z.EncJSONMarshal(x.Ttime)
 11239  				} else {
 11240  					z.EncFallback(x.Ttime)
 11241  				}
 11242  			}
 11243  			if yyq2[76] {
 11244  				z.EncWriteMapElemKey()
 11245  				if z.IsJSONHandle() {
 11246  					z.WriteStr("\"Ttimeptr\"")
 11247  				} else {
 11248  					r.EncodeString(`Ttimeptr`)
 11249  				}
 11250  				z.EncWriteMapElemValue()
 11251  				if yyn79 {
 11252  					r.EncodeNil()
 11253  				} else {
 11254  					yy281 := *x.Ttimeptr
 11255  					if z.EncBasicHandle().TimeBuiltin() {
 11256  						r.EncodeTime(yy281)
 11257  					} else if yyxt282 := z.Extension(yy281); yyxt282 != nil {
 11258  						z.EncExtension(yy281, yyxt282)
 11259  					} else if z.EncBinary() {
 11260  						z.EncBinaryMarshal(yy281)
 11261  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11262  						z.EncJSONMarshal(yy281)
 11263  					} else {
 11264  						z.EncFallback(yy281)
 11265  					}
 11266  				}
 11267  			}
 11268  			if yyq2[77] {
 11269  				z.EncWriteMapElemKey()
 11270  				if z.IsJSONHandle() {
 11271  					z.WriteStr("\"Islice\"")
 11272  				} else {
 11273  					r.EncodeString(`Islice`)
 11274  				}
 11275  				z.EncWriteMapElemValue()
 11276  				if yyn80 {
 11277  					r.EncodeNil()
 11278  				} else {
 11279  					if x.AnonInTestStrucIntf.Islice == nil {
 11280  						r.EncodeNil()
 11281  					} else {
 11282  						z.F.EncSliceIntfV(x.AnonInTestStrucIntf.Islice, e)
 11283  					} // end block: if x.AnonInTestStrucIntf.Islice slice == nil
 11284  				}
 11285  			}
 11286  			if yyq2[78] {
 11287  				z.EncWriteMapElemKey()
 11288  				if z.IsJSONHandle() {
 11289  					z.WriteStr("\"Ms\"")
 11290  				} else {
 11291  					r.EncodeString(`Ms`)
 11292  				}
 11293  				z.EncWriteMapElemValue()
 11294  				if yyn81 {
 11295  					r.EncodeNil()
 11296  				} else {
 11297  					if x.AnonInTestStrucIntf.Ms == nil {
 11298  						r.EncodeNil()
 11299  					} else {
 11300  						z.F.EncMapStringIntfV(x.AnonInTestStrucIntf.Ms, e)
 11301  					} // end block: if x.AnonInTestStrucIntf.Ms map == nil
 11302  				}
 11303  			}
 11304  			if yyq2[79] {
 11305  				z.EncWriteMapElemKey()
 11306  				if z.IsJSONHandle() {
 11307  					z.WriteStr("\"Nintf\"")
 11308  				} else {
 11309  					r.EncodeString(`Nintf`)
 11310  				}
 11311  				z.EncWriteMapElemValue()
 11312  				if yyn82 {
 11313  					r.EncodeNil()
 11314  				} else {
 11315  					z.EncFallback(x.AnonInTestStrucIntf.Nintf)
 11316  				}
 11317  			}
 11318  			if yyq2[80] {
 11319  				z.EncWriteMapElemKey()
 11320  				if z.IsJSONHandle() {
 11321  					z.WriteStr("\"T\"")
 11322  				} else {
 11323  					r.EncodeString(`T`)
 11324  				}
 11325  				z.EncWriteMapElemValue()
 11326  				if yyn83 {
 11327  					r.EncodeNil()
 11328  				} else {
 11329  					if z.EncBasicHandle().TimeBuiltin() {
 11330  						r.EncodeTime(x.AnonInTestStrucIntf.T)
 11331  					} else if yyxt286 := z.Extension(x.AnonInTestStrucIntf.T); yyxt286 != nil {
 11332  						z.EncExtension(x.AnonInTestStrucIntf.T, yyxt286)
 11333  					} else if z.EncBinary() {
 11334  						z.EncBinaryMarshal(x.AnonInTestStrucIntf.T)
 11335  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11336  						z.EncJSONMarshal(x.AnonInTestStrucIntf.T)
 11337  					} else {
 11338  						z.EncFallback(x.AnonInTestStrucIntf.T)
 11339  					}
 11340  				}
 11341  			}
 11342  			if yyq2[81] {
 11343  				z.EncWriteMapElemKey()
 11344  				if z.IsJSONHandle() {
 11345  					z.WriteStr("\"Tptr\"")
 11346  				} else {
 11347  					r.EncodeString(`Tptr`)
 11348  				}
 11349  				z.EncWriteMapElemValue()
 11350  				if yyn84 {
 11351  					r.EncodeNil()
 11352  				} else {
 11353  					yy287 := *x.AnonInTestStrucIntf.Tptr
 11354  					if z.EncBasicHandle().TimeBuiltin() {
 11355  						r.EncodeTime(yy287)
 11356  					} else if yyxt288 := z.Extension(yy287); yyxt288 != nil {
 11357  						z.EncExtension(yy287, yyxt288)
 11358  					} else if z.EncBinary() {
 11359  						z.EncBinaryMarshal(yy287)
 11360  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11361  						z.EncJSONMarshal(yy287)
 11362  					} else {
 11363  						z.EncFallback(yy287)
 11364  					}
 11365  				}
 11366  			}
 11367  			if yyq2[82] {
 11368  				z.EncWriteMapElemKey()
 11369  				if z.IsJSONHandle() {
 11370  					z.WriteStr("\"Msu\"")
 11371  				} else {
 11372  					r.EncodeString(`Msu`)
 11373  				}
 11374  				z.EncWriteMapElemValue()
 11375  				if x.Msu == nil {
 11376  					r.EncodeNil()
 11377  				} else {
 11378  					h.encMapwrapStringInterface((map[wrapString]interface{})(x.Msu), e)
 11379  				} // end block: if x.Msu map == nil
 11380  			}
 11381  			if yyq2[83] {
 11382  				z.EncWriteMapElemKey()
 11383  				if z.IsJSONHandle() {
 11384  					z.WriteStr("\"Mtsptr\"")
 11385  				} else {
 11386  					r.EncodeString(`Mtsptr`)
 11387  				}
 11388  				z.EncWriteMapElemValue()
 11389  				if x.Mtsptr == nil {
 11390  					r.EncodeNil()
 11391  				} else {
 11392  					h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
 11393  				} // end block: if x.Mtsptr map == nil
 11394  			}
 11395  			if yyq2[84] {
 11396  				z.EncWriteMapElemKey()
 11397  				if z.IsJSONHandle() {
 11398  					z.WriteStr("\"Mts\"")
 11399  				} else {
 11400  					r.EncodeString(`Mts`)
 11401  				}
 11402  				z.EncWriteMapElemValue()
 11403  				if x.Mts == nil {
 11404  					r.EncodeNil()
 11405  				} else {
 11406  					h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
 11407  				} // end block: if x.Mts map == nil
 11408  			}
 11409  			if yyq2[85] {
 11410  				z.EncWriteMapElemKey()
 11411  				if z.IsJSONHandle() {
 11412  					z.WriteStr("\"Its\"")
 11413  				} else {
 11414  					r.EncodeString(`Its`)
 11415  				}
 11416  				z.EncWriteMapElemValue()
 11417  				if x.Its == nil {
 11418  					r.EncodeNil()
 11419  				} else {
 11420  					h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
 11421  				} // end block: if x.Its slice == nil
 11422  			}
 11423  			if yyq2[86] {
 11424  				z.EncWriteMapElemKey()
 11425  				if z.IsJSONHandle() {
 11426  					z.WriteStr("\"Nteststruc\"")
 11427  				} else {
 11428  					r.EncodeString(`Nteststruc`)
 11429  				}
 11430  				z.EncWriteMapElemValue()
 11431  				if yyn89 {
 11432  					r.EncodeNil()
 11433  				} else {
 11434  					if yyxt293 := z.Extension(x.Nteststruc); yyxt293 != nil {
 11435  						z.EncExtension(x.Nteststruc, yyxt293)
 11436  					} else {
 11437  						x.Nteststruc.CodecEncodeSelf(e)
 11438  					}
 11439  				}
 11440  			}
 11441  			if yyq2[87] {
 11442  				z.EncWriteMapElemKey()
 11443  				if z.IsJSONHandle() {
 11444  					z.WriteStr("\"MarJ\"")
 11445  				} else {
 11446  					r.EncodeString(`MarJ`)
 11447  				}
 11448  				z.EncWriteMapElemValue()
 11449  				if yyxt294 := z.Extension(x.MarJ); yyxt294 != nil {
 11450  					z.EncExtension(x.MarJ, yyxt294)
 11451  				} else {
 11452  					x.MarJ.CodecEncodeSelf(e)
 11453  				}
 11454  			}
 11455  			if yyq2[88] {
 11456  				z.EncWriteMapElemKey()
 11457  				if z.IsJSONHandle() {
 11458  					z.WriteStr("\"MarT\"")
 11459  				} else {
 11460  					r.EncodeString(`MarT`)
 11461  				}
 11462  				z.EncWriteMapElemValue()
 11463  				if yyxt295 := z.Extension(x.MarT); yyxt295 != nil {
 11464  					z.EncExtension(x.MarT, yyxt295)
 11465  				} else {
 11466  					x.MarT.CodecEncodeSelf(e)
 11467  				}
 11468  			}
 11469  			if yyq2[89] {
 11470  				z.EncWriteMapElemKey()
 11471  				if z.IsJSONHandle() {
 11472  					z.WriteStr("\"MarB\"")
 11473  				} else {
 11474  					r.EncodeString(`MarB`)
 11475  				}
 11476  				z.EncWriteMapElemValue()
 11477  				if yyxt296 := z.Extension(x.MarB); yyxt296 != nil {
 11478  					z.EncExtension(x.MarB, yyxt296)
 11479  				} else {
 11480  					x.MarB.CodecEncodeSelf(e)
 11481  				}
 11482  			}
 11483  			if yyq2[90] {
 11484  				z.EncWriteMapElemKey()
 11485  				if z.IsJSONHandle() {
 11486  					z.WriteStr("\"XuintToBytes\"")
 11487  				} else {
 11488  					r.EncodeString(`XuintToBytes`)
 11489  				}
 11490  				z.EncWriteMapElemValue()
 11491  				if yyxt297 := z.Extension(x.XuintToBytes); yyxt297 != nil {
 11492  					z.EncExtension(x.XuintToBytes, yyxt297)
 11493  				} else {
 11494  					x.XuintToBytes.CodecEncodeSelf(e)
 11495  				}
 11496  			}
 11497  			if yyq2[91] {
 11498  				z.EncWriteMapElemKey()
 11499  				if z.IsJSONHandle() {
 11500  					z.WriteStr("\"Cmplx64\"")
 11501  				} else {
 11502  					r.EncodeString(`Cmplx64`)
 11503  				}
 11504  				z.EncWriteMapElemValue()
 11505  				z.EncEncodeComplex64(complex64(x.Cmplx64))
 11506  			}
 11507  			if yyq2[92] {
 11508  				z.EncWriteMapElemKey()
 11509  				if z.IsJSONHandle() {
 11510  					z.WriteStr("\"Cmplx128\"")
 11511  				} else {
 11512  					r.EncodeString(`Cmplx128`)
 11513  				}
 11514  				z.EncWriteMapElemValue()
 11515  				z.EncEncodeComplex128(complex128(x.Cmplx128))
 11516  			}
 11517  			z.EncWriteMapEnd()
 11518  		}
 11519  	}
 11520  }
 11521  
 11522  func (x *TestStrucFlex) CodecDecodeSelf(d *Decoder) {
 11523  	var h codecSelfer19780
 11524  	z, r := GenHelper().Decoder(d)
 11525  	_, _, _ = h, z, r
 11526  	yyct2 := r.ContainerType()
 11527  	if yyct2 == codecSelferValueTypeNil19780 {
 11528  		*(x) = TestStrucFlex{}
 11529  	} else if yyct2 == codecSelferValueTypeMap19780 {
 11530  		yyl2 := z.DecReadMapStart()
 11531  		if yyl2 == 0 {
 11532  		} else {
 11533  			x.codecDecodeSelfFromMap(yyl2, d)
 11534  		}
 11535  		z.DecReadMapEnd()
 11536  	} else if yyct2 == codecSelferValueTypeArray19780 {
 11537  		yyl2 := z.DecReadArrayStart()
 11538  		if yyl2 != 0 {
 11539  			x.codecDecodeSelfFromArray(yyl2, d)
 11540  		}
 11541  		z.DecReadArrayEnd()
 11542  	} else {
 11543  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 11544  	}
 11545  }
 11546  
 11547  func (x *TestStrucFlex) codecDecodeSelfFromMap(l int, d *Decoder) {
 11548  	var h codecSelfer19780
 11549  	z, r := GenHelper().Decoder(d)
 11550  	_, _, _ = h, z, r
 11551  	var yyhl3 bool = l >= 0
 11552  	for yyj3 := 0; ; yyj3++ {
 11553  		if yyhl3 {
 11554  			if yyj3 >= l {
 11555  				break
 11556  			}
 11557  		} else {
 11558  			if z.DecCheckBreak() {
 11559  				break
 11560  			}
 11561  		}
 11562  		z.DecReadMapElemKey()
 11563  		yys3 := r.DecodeStringAsBytes()
 11564  		z.DecReadMapElemValue()
 11565  		switch string(yys3) {
 11566  		case "S":
 11567  			x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 11568  		case "I64":
 11569  			x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
 11570  		case "I32":
 11571  			x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 11572  		case "I16":
 11573  			x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 11574  		case "I8":
 11575  			x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 11576  		case "I64n":
 11577  			x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
 11578  		case "I32n":
 11579  			x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 11580  		case "I16n":
 11581  			x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 11582  		case "I8n":
 11583  			x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 11584  		case "Ui64":
 11585  			x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
 11586  		case "Ui32":
 11587  			x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
 11588  		case "Ui16":
 11589  			x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
 11590  		case "Ui8":
 11591  			x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 11592  		case "F64":
 11593  			x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
 11594  		case "F32":
 11595  			x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
 11596  		case "B":
 11597  			x.TestStrucCommon.B = (bool)(r.DecodeBool())
 11598  		case "By":
 11599  			x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 11600  		case "Sslice":
 11601  			z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
 11602  		case "I64slice":
 11603  			z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
 11604  		case "I32slice":
 11605  			z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
 11606  		case "Ui64slice":
 11607  			z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
 11608  		case "Ui8slice":
 11609  			x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
 11610  		case "Bslice":
 11611  			z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
 11612  		case "Byslice":
 11613  			x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
 11614  		case "BytesSlice":
 11615  			z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
 11616  		case "Iptrslice":
 11617  			h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
 11618  		case "WrapSliceInt64":
 11619  			if yyxt40 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt40 != nil {
 11620  				z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt40)
 11621  			} else {
 11622  				x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
 11623  			}
 11624  		case "WrapSliceString":
 11625  			if yyxt42 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt42 != nil {
 11626  				z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt42)
 11627  			} else {
 11628  				x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
 11629  			}
 11630  		case "Msint":
 11631  			z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
 11632  		case "Msbytes":
 11633  			z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
 11634  		case "Simplef":
 11635  			if yyxt48 := z.Extension(x.TestStrucCommon.Simplef); yyxt48 != nil {
 11636  				z.DecExtension(&x.TestStrucCommon.Simplef, yyxt48)
 11637  			} else {
 11638  				x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
 11639  			}
 11640  		case "SstrUi64T":
 11641  			h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
 11642  		case "MstrUi64T":
 11643  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
 11644  		case "AS":
 11645  			x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 11646  		case "AI64":
 11647  			x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
 11648  		case "AI16":
 11649  			x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 11650  		case "AUi64":
 11651  			x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
 11652  		case "ASslice":
 11653  			z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
 11654  		case "AI64slice":
 11655  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
 11656  		case "AUi64slice":
 11657  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
 11658  		case "AF64slice":
 11659  			z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
 11660  		case "AF32slice":
 11661  			z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
 11662  		case "AMSS":
 11663  			z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
 11664  		case "AMSU64":
 11665  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
 11666  		case "AI64arr8":
 11667  			h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
 11668  		case "AI64arr0":
 11669  			h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
 11670  		case "AI64slice0":
 11671  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
 11672  		case "AUi64sliceN":
 11673  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
 11674  		case "AMSU64N":
 11675  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
 11676  		case "AMSU64E":
 11677  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
 11678  		case "NotAnon":
 11679  			if yyxt84 := z.Extension(x.TestStrucCommon.NotAnon); yyxt84 != nil {
 11680  				z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt84)
 11681  			} else {
 11682  				x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
 11683  			}
 11684  		case "Nmap":
 11685  			z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
 11686  		case "Nslice":
 11687  			x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
 11688  		case "Nint64":
 11689  			if r.TryNil() {
 11690  				if x.TestStrucCommon.Nint64 != nil { // remove the if-true
 11691  					x.TestStrucCommon.Nint64 = nil
 11692  				}
 11693  			} else {
 11694  				if x.TestStrucCommon.Nint64 == nil {
 11695  					x.TestStrucCommon.Nint64 = new(int64)
 11696  				}
 11697  				*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
 11698  			}
 11699  		case "Chstr":
 11700  			h.decChanstring((*chan string)(&x.Chstr), d)
 11701  		case "Mis":
 11702  			z.F.DecMapIntStringX(&x.Mis, d)
 11703  		case "Mbu64":
 11704  			h.decMapboolc3RydWN0IHt9((*map[bool]struct{})(&x.Mbu64), d)
 11705  		case "Mu8e":
 11706  			h.decMapuint8c3RydWN0IHt9((*map[uint8]struct{})(&x.Mu8e), d)
 11707  		case "Mu8u64":
 11708  			h.decMapuint8stringUint64T((*map[uint8]stringUint64T)(&x.Mu8u64), d)
 11709  		case "Msp2ss":
 11710  			h.decMapPtrtostringSlicestring((*map[*string][]string)(&x.Msp2ss), d)
 11711  		case "Mip2ss":
 11712  			h.decMapPtrtouint64Slicestring((*map[*uint64][]string)(&x.Mip2ss), d)
 11713  		case "Ms2misu":
 11714  			h.decMapstringMapuint64stringUint64T((*map[string]map[uint64]stringUint64T)(&x.Ms2misu), d)
 11715  		case "Miwu64s":
 11716  			h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
 11717  		case "Mfwss":
 11718  			h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
 11719  		case "Mf32wss":
 11720  			h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
 11721  		case "Mui2wss":
 11722  			h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
 11723  		case "Msu2wss":
 11724  			h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
 11725  		case "Ci64":
 11726  			if yyxt118 := z.Extension(x.Ci64); yyxt118 != nil {
 11727  				z.DecExtension(&x.Ci64, yyxt118)
 11728  			} else {
 11729  				x.Ci64.CodecDecodeSelf(d)
 11730  			}
 11731  		case "Swrapbytes":
 11732  			h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
 11733  		case "Swrapuint8":
 11734  			h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
 11735  		case "ArrStrUi64T":
 11736  			h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
 11737  		case "Ui64array":
 11738  			h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
 11739  		case "Ui64slicearray":
 11740  			h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
 11741  		case "SintfAarray":
 11742  			z.F.DecSliceIntfX(&x.SintfAarray, d)
 11743  		case "MstrUi64TSelf":
 11744  			h.decMapstringUint64TPtrtostringUint64T((*map[stringUint64T]*stringUint64T)(&x.MstrUi64TSelf), d)
 11745  		case "Ttime":
 11746  			if z.DecBasicHandle().TimeBuiltin() {
 11747  				x.Ttime = r.DecodeTime()
 11748  			} else if yyxt134 := z.Extension(x.Ttime); yyxt134 != nil {
 11749  				z.DecExtension(&x.Ttime, yyxt134)
 11750  			} else if z.DecBinary() {
 11751  				z.DecBinaryUnmarshal(&x.Ttime)
 11752  			} else if !z.DecBinary() && z.IsJSONHandle() {
 11753  				z.DecJSONUnmarshal(&x.Ttime)
 11754  			} else {
 11755  				z.DecFallback(&x.Ttime, false)
 11756  			}
 11757  		case "Ttimeptr":
 11758  			if r.TryNil() {
 11759  				if x.Ttimeptr != nil { // remove the if-true
 11760  					x.Ttimeptr = nil
 11761  				}
 11762  			} else {
 11763  				if x.Ttimeptr == nil {
 11764  					x.Ttimeptr = new(time.Time)
 11765  				}
 11766  				if z.DecBasicHandle().TimeBuiltin() {
 11767  					*x.Ttimeptr = r.DecodeTime()
 11768  				} else if yyxt136 := z.Extension(x.Ttimeptr); yyxt136 != nil {
 11769  					z.DecExtension(x.Ttimeptr, yyxt136)
 11770  				} else if z.DecBinary() {
 11771  					z.DecBinaryUnmarshal(x.Ttimeptr)
 11772  				} else if !z.DecBinary() && z.IsJSONHandle() {
 11773  					z.DecJSONUnmarshal(x.Ttimeptr)
 11774  				} else {
 11775  					z.DecFallback(x.Ttimeptr, false)
 11776  				}
 11777  			}
 11778  		case "Islice":
 11779  			if r.TryNil() {
 11780  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 11781  					x.AnonInTestStrucIntf.Islice = nil
 11782  				}
 11783  			} else {
 11784  				if x.AnonInTestStrucIntf == nil {
 11785  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 11786  				}
 11787  				z.F.DecSliceIntfX(&x.AnonInTestStrucIntf.Islice, d)
 11788  			}
 11789  		case "Ms":
 11790  			if r.TryNil() {
 11791  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 11792  					x.AnonInTestStrucIntf.Ms = nil
 11793  				}
 11794  			} else {
 11795  				if x.AnonInTestStrucIntf == nil {
 11796  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 11797  				}
 11798  				z.F.DecMapStringIntfX(&x.AnonInTestStrucIntf.Ms, d)
 11799  			}
 11800  		case "Nintf":
 11801  			if r.TryNil() {
 11802  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 11803  					x.AnonInTestStrucIntf.Nintf = nil
 11804  				}
 11805  			} else {
 11806  				if x.AnonInTestStrucIntf == nil {
 11807  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 11808  				}
 11809  				z.DecFallback(&x.AnonInTestStrucIntf.Nintf, true)
 11810  			}
 11811  		case "T":
 11812  			if r.TryNil() {
 11813  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 11814  					x.AnonInTestStrucIntf.T = time.Time{}
 11815  				}
 11816  			} else {
 11817  				if x.AnonInTestStrucIntf == nil {
 11818  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 11819  				}
 11820  				if z.DecBasicHandle().TimeBuiltin() {
 11821  					x.AnonInTestStrucIntf.T = r.DecodeTime()
 11822  				} else if yyxt144 := z.Extension(x.AnonInTestStrucIntf.T); yyxt144 != nil {
 11823  					z.DecExtension(&x.AnonInTestStrucIntf.T, yyxt144)
 11824  				} else if z.DecBinary() {
 11825  					z.DecBinaryUnmarshal(&x.AnonInTestStrucIntf.T)
 11826  				} else if !z.DecBinary() && z.IsJSONHandle() {
 11827  					z.DecJSONUnmarshal(&x.AnonInTestStrucIntf.T)
 11828  				} else {
 11829  					z.DecFallback(&x.AnonInTestStrucIntf.T, false)
 11830  				}
 11831  			}
 11832  		case "Tptr":
 11833  			if r.TryNil() {
 11834  				if x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil { // remove the if-true
 11835  					x.AnonInTestStrucIntf.Tptr = nil
 11836  				}
 11837  			} else {
 11838  				if x.AnonInTestStrucIntf == nil {
 11839  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 11840  				}
 11841  				if x.AnonInTestStrucIntf.Tptr == nil {
 11842  					x.AnonInTestStrucIntf.Tptr = new(time.Time)
 11843  				}
 11844  				if z.DecBasicHandle().TimeBuiltin() {
 11845  					*x.AnonInTestStrucIntf.Tptr = r.DecodeTime()
 11846  				} else if yyxt146 := z.Extension(x.AnonInTestStrucIntf.Tptr); yyxt146 != nil {
 11847  					z.DecExtension(x.AnonInTestStrucIntf.Tptr, yyxt146)
 11848  				} else if z.DecBinary() {
 11849  					z.DecBinaryUnmarshal(x.AnonInTestStrucIntf.Tptr)
 11850  				} else if !z.DecBinary() && z.IsJSONHandle() {
 11851  					z.DecJSONUnmarshal(x.AnonInTestStrucIntf.Tptr)
 11852  				} else {
 11853  					z.DecFallback(x.AnonInTestStrucIntf.Tptr, false)
 11854  				}
 11855  			}
 11856  		case "Msu":
 11857  			h.decMapwrapStringInterface((*map[wrapString]interface{})(&x.Msu), d)
 11858  		case "Mtsptr":
 11859  			h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
 11860  		case "Mts":
 11861  			h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
 11862  		case "Its":
 11863  			h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
 11864  		case "Nteststruc":
 11865  			if r.TryNil() {
 11866  				if x.Nteststruc != nil { // remove the if-true
 11867  					x.Nteststruc = nil
 11868  				}
 11869  			} else {
 11870  				if x.Nteststruc == nil {
 11871  					x.Nteststruc = new(TestStrucFlex)
 11872  				}
 11873  				if yyxt156 := z.Extension(x.Nteststruc); yyxt156 != nil {
 11874  					z.DecExtension(x.Nteststruc, yyxt156)
 11875  				} else {
 11876  					x.Nteststruc.CodecDecodeSelf(d)
 11877  				}
 11878  			}
 11879  		case "MarJ":
 11880  			if yyxt158 := z.Extension(x.MarJ); yyxt158 != nil {
 11881  				z.DecExtension(&x.MarJ, yyxt158)
 11882  			} else {
 11883  				x.MarJ.CodecDecodeSelf(d)
 11884  			}
 11885  		case "MarT":
 11886  			if yyxt160 := z.Extension(x.MarT); yyxt160 != nil {
 11887  				z.DecExtension(&x.MarT, yyxt160)
 11888  			} else {
 11889  				x.MarT.CodecDecodeSelf(d)
 11890  			}
 11891  		case "MarB":
 11892  			if yyxt162 := z.Extension(x.MarB); yyxt162 != nil {
 11893  				z.DecExtension(&x.MarB, yyxt162)
 11894  			} else {
 11895  				x.MarB.CodecDecodeSelf(d)
 11896  			}
 11897  		case "XuintToBytes":
 11898  			if yyxt164 := z.Extension(x.XuintToBytes); yyxt164 != nil {
 11899  				z.DecExtension(&x.XuintToBytes, yyxt164)
 11900  			} else {
 11901  				x.XuintToBytes.CodecDecodeSelf(d)
 11902  			}
 11903  		case "Cmplx64":
 11904  			x.Cmplx64 = (complex64)(complex(z.DecDecodeFloat32(), 0))
 11905  		case "Cmplx128":
 11906  			x.Cmplx128 = (complex128)(complex(r.DecodeFloat64(), 0))
 11907  		default:
 11908  			z.DecStructFieldNotFound(-1, string(yys3))
 11909  		} // end switch yys3
 11910  	} // end for yyj3
 11911  }
 11912  
 11913  func (x *TestStrucFlex) codecDecodeSelfFromArray(l int, d *Decoder) {
 11914  	var h codecSelfer19780
 11915  	z, r := GenHelper().Decoder(d)
 11916  	_, _, _ = h, z, r
 11917  	var yyj167 int
 11918  	var yyb167 bool
 11919  	var yyhl167 bool = l >= 0
 11920  	yyj167++
 11921  	if yyhl167 {
 11922  		yyb167 = yyj167 > l
 11923  	} else {
 11924  		yyb167 = z.DecCheckBreak()
 11925  	}
 11926  	if yyb167 {
 11927  		z.DecReadArrayEnd()
 11928  		return
 11929  	}
 11930  	z.DecReadArrayElem()
 11931  	x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 11932  	yyj167++
 11933  	if yyhl167 {
 11934  		yyb167 = yyj167 > l
 11935  	} else {
 11936  		yyb167 = z.DecCheckBreak()
 11937  	}
 11938  	if yyb167 {
 11939  		z.DecReadArrayEnd()
 11940  		return
 11941  	}
 11942  	z.DecReadArrayElem()
 11943  	x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
 11944  	yyj167++
 11945  	if yyhl167 {
 11946  		yyb167 = yyj167 > l
 11947  	} else {
 11948  		yyb167 = z.DecCheckBreak()
 11949  	}
 11950  	if yyb167 {
 11951  		z.DecReadArrayEnd()
 11952  		return
 11953  	}
 11954  	z.DecReadArrayElem()
 11955  	x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 11956  	yyj167++
 11957  	if yyhl167 {
 11958  		yyb167 = yyj167 > l
 11959  	} else {
 11960  		yyb167 = z.DecCheckBreak()
 11961  	}
 11962  	if yyb167 {
 11963  		z.DecReadArrayEnd()
 11964  		return
 11965  	}
 11966  	z.DecReadArrayElem()
 11967  	x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 11968  	yyj167++
 11969  	if yyhl167 {
 11970  		yyb167 = yyj167 > l
 11971  	} else {
 11972  		yyb167 = z.DecCheckBreak()
 11973  	}
 11974  	if yyb167 {
 11975  		z.DecReadArrayEnd()
 11976  		return
 11977  	}
 11978  	z.DecReadArrayElem()
 11979  	x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 11980  	yyj167++
 11981  	if yyhl167 {
 11982  		yyb167 = yyj167 > l
 11983  	} else {
 11984  		yyb167 = z.DecCheckBreak()
 11985  	}
 11986  	if yyb167 {
 11987  		z.DecReadArrayEnd()
 11988  		return
 11989  	}
 11990  	z.DecReadArrayElem()
 11991  	x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
 11992  	yyj167++
 11993  	if yyhl167 {
 11994  		yyb167 = yyj167 > l
 11995  	} else {
 11996  		yyb167 = z.DecCheckBreak()
 11997  	}
 11998  	if yyb167 {
 11999  		z.DecReadArrayEnd()
 12000  		return
 12001  	}
 12002  	z.DecReadArrayElem()
 12003  	x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 12004  	yyj167++
 12005  	if yyhl167 {
 12006  		yyb167 = yyj167 > l
 12007  	} else {
 12008  		yyb167 = z.DecCheckBreak()
 12009  	}
 12010  	if yyb167 {
 12011  		z.DecReadArrayEnd()
 12012  		return
 12013  	}
 12014  	z.DecReadArrayElem()
 12015  	x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 12016  	yyj167++
 12017  	if yyhl167 {
 12018  		yyb167 = yyj167 > l
 12019  	} else {
 12020  		yyb167 = z.DecCheckBreak()
 12021  	}
 12022  	if yyb167 {
 12023  		z.DecReadArrayEnd()
 12024  		return
 12025  	}
 12026  	z.DecReadArrayElem()
 12027  	x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 12028  	yyj167++
 12029  	if yyhl167 {
 12030  		yyb167 = yyj167 > l
 12031  	} else {
 12032  		yyb167 = z.DecCheckBreak()
 12033  	}
 12034  	if yyb167 {
 12035  		z.DecReadArrayEnd()
 12036  		return
 12037  	}
 12038  	z.DecReadArrayElem()
 12039  	x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
 12040  	yyj167++
 12041  	if yyhl167 {
 12042  		yyb167 = yyj167 > l
 12043  	} else {
 12044  		yyb167 = z.DecCheckBreak()
 12045  	}
 12046  	if yyb167 {
 12047  		z.DecReadArrayEnd()
 12048  		return
 12049  	}
 12050  	z.DecReadArrayElem()
 12051  	x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
 12052  	yyj167++
 12053  	if yyhl167 {
 12054  		yyb167 = yyj167 > l
 12055  	} else {
 12056  		yyb167 = z.DecCheckBreak()
 12057  	}
 12058  	if yyb167 {
 12059  		z.DecReadArrayEnd()
 12060  		return
 12061  	}
 12062  	z.DecReadArrayElem()
 12063  	x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
 12064  	yyj167++
 12065  	if yyhl167 {
 12066  		yyb167 = yyj167 > l
 12067  	} else {
 12068  		yyb167 = z.DecCheckBreak()
 12069  	}
 12070  	if yyb167 {
 12071  		z.DecReadArrayEnd()
 12072  		return
 12073  	}
 12074  	z.DecReadArrayElem()
 12075  	x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 12076  	yyj167++
 12077  	if yyhl167 {
 12078  		yyb167 = yyj167 > l
 12079  	} else {
 12080  		yyb167 = z.DecCheckBreak()
 12081  	}
 12082  	if yyb167 {
 12083  		z.DecReadArrayEnd()
 12084  		return
 12085  	}
 12086  	z.DecReadArrayElem()
 12087  	x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
 12088  	yyj167++
 12089  	if yyhl167 {
 12090  		yyb167 = yyj167 > l
 12091  	} else {
 12092  		yyb167 = z.DecCheckBreak()
 12093  	}
 12094  	if yyb167 {
 12095  		z.DecReadArrayEnd()
 12096  		return
 12097  	}
 12098  	z.DecReadArrayElem()
 12099  	x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
 12100  	yyj167++
 12101  	if yyhl167 {
 12102  		yyb167 = yyj167 > l
 12103  	} else {
 12104  		yyb167 = z.DecCheckBreak()
 12105  	}
 12106  	if yyb167 {
 12107  		z.DecReadArrayEnd()
 12108  		return
 12109  	}
 12110  	z.DecReadArrayElem()
 12111  	x.TestStrucCommon.B = (bool)(r.DecodeBool())
 12112  	yyj167++
 12113  	if yyhl167 {
 12114  		yyb167 = yyj167 > l
 12115  	} else {
 12116  		yyb167 = z.DecCheckBreak()
 12117  	}
 12118  	if yyb167 {
 12119  		z.DecReadArrayEnd()
 12120  		return
 12121  	}
 12122  	z.DecReadArrayElem()
 12123  	x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 12124  	yyj167++
 12125  	if yyhl167 {
 12126  		yyb167 = yyj167 > l
 12127  	} else {
 12128  		yyb167 = z.DecCheckBreak()
 12129  	}
 12130  	if yyb167 {
 12131  		z.DecReadArrayEnd()
 12132  		return
 12133  	}
 12134  	z.DecReadArrayElem()
 12135  	z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
 12136  	yyj167++
 12137  	if yyhl167 {
 12138  		yyb167 = yyj167 > l
 12139  	} else {
 12140  		yyb167 = z.DecCheckBreak()
 12141  	}
 12142  	if yyb167 {
 12143  		z.DecReadArrayEnd()
 12144  		return
 12145  	}
 12146  	z.DecReadArrayElem()
 12147  	z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
 12148  	yyj167++
 12149  	if yyhl167 {
 12150  		yyb167 = yyj167 > l
 12151  	} else {
 12152  		yyb167 = z.DecCheckBreak()
 12153  	}
 12154  	if yyb167 {
 12155  		z.DecReadArrayEnd()
 12156  		return
 12157  	}
 12158  	z.DecReadArrayElem()
 12159  	z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
 12160  	yyj167++
 12161  	if yyhl167 {
 12162  		yyb167 = yyj167 > l
 12163  	} else {
 12164  		yyb167 = z.DecCheckBreak()
 12165  	}
 12166  	if yyb167 {
 12167  		z.DecReadArrayEnd()
 12168  		return
 12169  	}
 12170  	z.DecReadArrayElem()
 12171  	z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
 12172  	yyj167++
 12173  	if yyhl167 {
 12174  		yyb167 = yyj167 > l
 12175  	} else {
 12176  		yyb167 = z.DecCheckBreak()
 12177  	}
 12178  	if yyb167 {
 12179  		z.DecReadArrayEnd()
 12180  		return
 12181  	}
 12182  	z.DecReadArrayElem()
 12183  	x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
 12184  	yyj167++
 12185  	if yyhl167 {
 12186  		yyb167 = yyj167 > l
 12187  	} else {
 12188  		yyb167 = z.DecCheckBreak()
 12189  	}
 12190  	if yyb167 {
 12191  		z.DecReadArrayEnd()
 12192  		return
 12193  	}
 12194  	z.DecReadArrayElem()
 12195  	z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
 12196  	yyj167++
 12197  	if yyhl167 {
 12198  		yyb167 = yyj167 > l
 12199  	} else {
 12200  		yyb167 = z.DecCheckBreak()
 12201  	}
 12202  	if yyb167 {
 12203  		z.DecReadArrayEnd()
 12204  		return
 12205  	}
 12206  	z.DecReadArrayElem()
 12207  	x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
 12208  	yyj167++
 12209  	if yyhl167 {
 12210  		yyb167 = yyj167 > l
 12211  	} else {
 12212  		yyb167 = z.DecCheckBreak()
 12213  	}
 12214  	if yyb167 {
 12215  		z.DecReadArrayEnd()
 12216  		return
 12217  	}
 12218  	z.DecReadArrayElem()
 12219  	z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
 12220  	yyj167++
 12221  	if yyhl167 {
 12222  		yyb167 = yyj167 > l
 12223  	} else {
 12224  		yyb167 = z.DecCheckBreak()
 12225  	}
 12226  	if yyb167 {
 12227  		z.DecReadArrayEnd()
 12228  		return
 12229  	}
 12230  	z.DecReadArrayElem()
 12231  	h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
 12232  	yyj167++
 12233  	if yyhl167 {
 12234  		yyb167 = yyj167 > l
 12235  	} else {
 12236  		yyb167 = z.DecCheckBreak()
 12237  	}
 12238  	if yyb167 {
 12239  		z.DecReadArrayEnd()
 12240  		return
 12241  	}
 12242  	z.DecReadArrayElem()
 12243  	if yyxt204 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt204 != nil {
 12244  		z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt204)
 12245  	} else {
 12246  		x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
 12247  	}
 12248  	yyj167++
 12249  	if yyhl167 {
 12250  		yyb167 = yyj167 > l
 12251  	} else {
 12252  		yyb167 = z.DecCheckBreak()
 12253  	}
 12254  	if yyb167 {
 12255  		z.DecReadArrayEnd()
 12256  		return
 12257  	}
 12258  	z.DecReadArrayElem()
 12259  	if yyxt206 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt206 != nil {
 12260  		z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt206)
 12261  	} else {
 12262  		x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
 12263  	}
 12264  	yyj167++
 12265  	if yyhl167 {
 12266  		yyb167 = yyj167 > l
 12267  	} else {
 12268  		yyb167 = z.DecCheckBreak()
 12269  	}
 12270  	if yyb167 {
 12271  		z.DecReadArrayEnd()
 12272  		return
 12273  	}
 12274  	z.DecReadArrayElem()
 12275  	z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
 12276  	yyj167++
 12277  	if yyhl167 {
 12278  		yyb167 = yyj167 > l
 12279  	} else {
 12280  		yyb167 = z.DecCheckBreak()
 12281  	}
 12282  	if yyb167 {
 12283  		z.DecReadArrayEnd()
 12284  		return
 12285  	}
 12286  	z.DecReadArrayElem()
 12287  	z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
 12288  	yyj167++
 12289  	if yyhl167 {
 12290  		yyb167 = yyj167 > l
 12291  	} else {
 12292  		yyb167 = z.DecCheckBreak()
 12293  	}
 12294  	if yyb167 {
 12295  		z.DecReadArrayEnd()
 12296  		return
 12297  	}
 12298  	z.DecReadArrayElem()
 12299  	if yyxt212 := z.Extension(x.TestStrucCommon.Simplef); yyxt212 != nil {
 12300  		z.DecExtension(&x.TestStrucCommon.Simplef, yyxt212)
 12301  	} else {
 12302  		x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
 12303  	}
 12304  	yyj167++
 12305  	if yyhl167 {
 12306  		yyb167 = yyj167 > l
 12307  	} else {
 12308  		yyb167 = z.DecCheckBreak()
 12309  	}
 12310  	if yyb167 {
 12311  		z.DecReadArrayEnd()
 12312  		return
 12313  	}
 12314  	z.DecReadArrayElem()
 12315  	h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
 12316  	yyj167++
 12317  	if yyhl167 {
 12318  		yyb167 = yyj167 > l
 12319  	} else {
 12320  		yyb167 = z.DecCheckBreak()
 12321  	}
 12322  	if yyb167 {
 12323  		z.DecReadArrayEnd()
 12324  		return
 12325  	}
 12326  	z.DecReadArrayElem()
 12327  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
 12328  	yyj167++
 12329  	if yyhl167 {
 12330  		yyb167 = yyj167 > l
 12331  	} else {
 12332  		yyb167 = z.DecCheckBreak()
 12333  	}
 12334  	if yyb167 {
 12335  		z.DecReadArrayEnd()
 12336  		return
 12337  	}
 12338  	z.DecReadArrayElem()
 12339  	x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 12340  	yyj167++
 12341  	if yyhl167 {
 12342  		yyb167 = yyj167 > l
 12343  	} else {
 12344  		yyb167 = z.DecCheckBreak()
 12345  	}
 12346  	if yyb167 {
 12347  		z.DecReadArrayEnd()
 12348  		return
 12349  	}
 12350  	z.DecReadArrayElem()
 12351  	x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
 12352  	yyj167++
 12353  	if yyhl167 {
 12354  		yyb167 = yyj167 > l
 12355  	} else {
 12356  		yyb167 = z.DecCheckBreak()
 12357  	}
 12358  	if yyb167 {
 12359  		z.DecReadArrayEnd()
 12360  		return
 12361  	}
 12362  	z.DecReadArrayElem()
 12363  	x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 12364  	yyj167++
 12365  	if yyhl167 {
 12366  		yyb167 = yyj167 > l
 12367  	} else {
 12368  		yyb167 = z.DecCheckBreak()
 12369  	}
 12370  	if yyb167 {
 12371  		z.DecReadArrayEnd()
 12372  		return
 12373  	}
 12374  	z.DecReadArrayElem()
 12375  	x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
 12376  	yyj167++
 12377  	if yyhl167 {
 12378  		yyb167 = yyj167 > l
 12379  	} else {
 12380  		yyb167 = z.DecCheckBreak()
 12381  	}
 12382  	if yyb167 {
 12383  		z.DecReadArrayEnd()
 12384  		return
 12385  	}
 12386  	z.DecReadArrayElem()
 12387  	z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
 12388  	yyj167++
 12389  	if yyhl167 {
 12390  		yyb167 = yyj167 > l
 12391  	} else {
 12392  		yyb167 = z.DecCheckBreak()
 12393  	}
 12394  	if yyb167 {
 12395  		z.DecReadArrayEnd()
 12396  		return
 12397  	}
 12398  	z.DecReadArrayElem()
 12399  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
 12400  	yyj167++
 12401  	if yyhl167 {
 12402  		yyb167 = yyj167 > l
 12403  	} else {
 12404  		yyb167 = z.DecCheckBreak()
 12405  	}
 12406  	if yyb167 {
 12407  		z.DecReadArrayEnd()
 12408  		return
 12409  	}
 12410  	z.DecReadArrayElem()
 12411  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
 12412  	yyj167++
 12413  	if yyhl167 {
 12414  		yyb167 = yyj167 > l
 12415  	} else {
 12416  		yyb167 = z.DecCheckBreak()
 12417  	}
 12418  	if yyb167 {
 12419  		z.DecReadArrayEnd()
 12420  		return
 12421  	}
 12422  	z.DecReadArrayElem()
 12423  	z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
 12424  	yyj167++
 12425  	if yyhl167 {
 12426  		yyb167 = yyj167 > l
 12427  	} else {
 12428  		yyb167 = z.DecCheckBreak()
 12429  	}
 12430  	if yyb167 {
 12431  		z.DecReadArrayEnd()
 12432  		return
 12433  	}
 12434  	z.DecReadArrayElem()
 12435  	z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
 12436  	yyj167++
 12437  	if yyhl167 {
 12438  		yyb167 = yyj167 > l
 12439  	} else {
 12440  		yyb167 = z.DecCheckBreak()
 12441  	}
 12442  	if yyb167 {
 12443  		z.DecReadArrayEnd()
 12444  		return
 12445  	}
 12446  	z.DecReadArrayElem()
 12447  	z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
 12448  	yyj167++
 12449  	if yyhl167 {
 12450  		yyb167 = yyj167 > l
 12451  	} else {
 12452  		yyb167 = z.DecCheckBreak()
 12453  	}
 12454  	if yyb167 {
 12455  		z.DecReadArrayEnd()
 12456  		return
 12457  	}
 12458  	z.DecReadArrayElem()
 12459  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
 12460  	yyj167++
 12461  	if yyhl167 {
 12462  		yyb167 = yyj167 > l
 12463  	} else {
 12464  		yyb167 = z.DecCheckBreak()
 12465  	}
 12466  	if yyb167 {
 12467  		z.DecReadArrayEnd()
 12468  		return
 12469  	}
 12470  	z.DecReadArrayElem()
 12471  	h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
 12472  	yyj167++
 12473  	if yyhl167 {
 12474  		yyb167 = yyj167 > l
 12475  	} else {
 12476  		yyb167 = z.DecCheckBreak()
 12477  	}
 12478  	if yyb167 {
 12479  		z.DecReadArrayEnd()
 12480  		return
 12481  	}
 12482  	z.DecReadArrayElem()
 12483  	h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
 12484  	yyj167++
 12485  	if yyhl167 {
 12486  		yyb167 = yyj167 > l
 12487  	} else {
 12488  		yyb167 = z.DecCheckBreak()
 12489  	}
 12490  	if yyb167 {
 12491  		z.DecReadArrayEnd()
 12492  		return
 12493  	}
 12494  	z.DecReadArrayElem()
 12495  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
 12496  	yyj167++
 12497  	if yyhl167 {
 12498  		yyb167 = yyj167 > l
 12499  	} else {
 12500  		yyb167 = z.DecCheckBreak()
 12501  	}
 12502  	if yyb167 {
 12503  		z.DecReadArrayEnd()
 12504  		return
 12505  	}
 12506  	z.DecReadArrayElem()
 12507  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
 12508  	yyj167++
 12509  	if yyhl167 {
 12510  		yyb167 = yyj167 > l
 12511  	} else {
 12512  		yyb167 = z.DecCheckBreak()
 12513  	}
 12514  	if yyb167 {
 12515  		z.DecReadArrayEnd()
 12516  		return
 12517  	}
 12518  	z.DecReadArrayElem()
 12519  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
 12520  	yyj167++
 12521  	if yyhl167 {
 12522  		yyb167 = yyj167 > l
 12523  	} else {
 12524  		yyb167 = z.DecCheckBreak()
 12525  	}
 12526  	if yyb167 {
 12527  		z.DecReadArrayEnd()
 12528  		return
 12529  	}
 12530  	z.DecReadArrayElem()
 12531  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
 12532  	yyj167++
 12533  	if yyhl167 {
 12534  		yyb167 = yyj167 > l
 12535  	} else {
 12536  		yyb167 = z.DecCheckBreak()
 12537  	}
 12538  	if yyb167 {
 12539  		z.DecReadArrayEnd()
 12540  		return
 12541  	}
 12542  	z.DecReadArrayElem()
 12543  	if yyxt248 := z.Extension(x.TestStrucCommon.NotAnon); yyxt248 != nil {
 12544  		z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt248)
 12545  	} else {
 12546  		x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
 12547  	}
 12548  	yyj167++
 12549  	if yyhl167 {
 12550  		yyb167 = yyj167 > l
 12551  	} else {
 12552  		yyb167 = z.DecCheckBreak()
 12553  	}
 12554  	if yyb167 {
 12555  		z.DecReadArrayEnd()
 12556  		return
 12557  	}
 12558  	z.DecReadArrayElem()
 12559  	z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
 12560  	yyj167++
 12561  	if yyhl167 {
 12562  		yyb167 = yyj167 > l
 12563  	} else {
 12564  		yyb167 = z.DecCheckBreak()
 12565  	}
 12566  	if yyb167 {
 12567  		z.DecReadArrayEnd()
 12568  		return
 12569  	}
 12570  	z.DecReadArrayElem()
 12571  	x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
 12572  	yyj167++
 12573  	if yyhl167 {
 12574  		yyb167 = yyj167 > l
 12575  	} else {
 12576  		yyb167 = z.DecCheckBreak()
 12577  	}
 12578  	if yyb167 {
 12579  		z.DecReadArrayEnd()
 12580  		return
 12581  	}
 12582  	z.DecReadArrayElem()
 12583  	if r.TryNil() {
 12584  		if x.TestStrucCommon.Nint64 != nil { // remove the if-true
 12585  			x.TestStrucCommon.Nint64 = nil
 12586  		}
 12587  	} else {
 12588  		if x.TestStrucCommon.Nint64 == nil {
 12589  			x.TestStrucCommon.Nint64 = new(int64)
 12590  		}
 12591  		*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
 12592  	}
 12593  	yyj167++
 12594  	if yyhl167 {
 12595  		yyb167 = yyj167 > l
 12596  	} else {
 12597  		yyb167 = z.DecCheckBreak()
 12598  	}
 12599  	if yyb167 {
 12600  		z.DecReadArrayEnd()
 12601  		return
 12602  	}
 12603  	z.DecReadArrayElem()
 12604  	h.decChanstring((*chan string)(&x.Chstr), d)
 12605  	yyj167++
 12606  	if yyhl167 {
 12607  		yyb167 = yyj167 > l
 12608  	} else {
 12609  		yyb167 = z.DecCheckBreak()
 12610  	}
 12611  	if yyb167 {
 12612  		z.DecReadArrayEnd()
 12613  		return
 12614  	}
 12615  	z.DecReadArrayElem()
 12616  	z.F.DecMapIntStringX(&x.Mis, d)
 12617  	yyj167++
 12618  	if yyhl167 {
 12619  		yyb167 = yyj167 > l
 12620  	} else {
 12621  		yyb167 = z.DecCheckBreak()
 12622  	}
 12623  	if yyb167 {
 12624  		z.DecReadArrayEnd()
 12625  		return
 12626  	}
 12627  	z.DecReadArrayElem()
 12628  	h.decMapboolc3RydWN0IHt9((*map[bool]struct{})(&x.Mbu64), d)
 12629  	yyj167++
 12630  	if yyhl167 {
 12631  		yyb167 = yyj167 > l
 12632  	} else {
 12633  		yyb167 = z.DecCheckBreak()
 12634  	}
 12635  	if yyb167 {
 12636  		z.DecReadArrayEnd()
 12637  		return
 12638  	}
 12639  	z.DecReadArrayElem()
 12640  	h.decMapuint8c3RydWN0IHt9((*map[uint8]struct{})(&x.Mu8e), d)
 12641  	yyj167++
 12642  	if yyhl167 {
 12643  		yyb167 = yyj167 > l
 12644  	} else {
 12645  		yyb167 = z.DecCheckBreak()
 12646  	}
 12647  	if yyb167 {
 12648  		z.DecReadArrayEnd()
 12649  		return
 12650  	}
 12651  	z.DecReadArrayElem()
 12652  	h.decMapuint8stringUint64T((*map[uint8]stringUint64T)(&x.Mu8u64), d)
 12653  	yyj167++
 12654  	if yyhl167 {
 12655  		yyb167 = yyj167 > l
 12656  	} else {
 12657  		yyb167 = z.DecCheckBreak()
 12658  	}
 12659  	if yyb167 {
 12660  		z.DecReadArrayEnd()
 12661  		return
 12662  	}
 12663  	z.DecReadArrayElem()
 12664  	h.decMapPtrtostringSlicestring((*map[*string][]string)(&x.Msp2ss), d)
 12665  	yyj167++
 12666  	if yyhl167 {
 12667  		yyb167 = yyj167 > l
 12668  	} else {
 12669  		yyb167 = z.DecCheckBreak()
 12670  	}
 12671  	if yyb167 {
 12672  		z.DecReadArrayEnd()
 12673  		return
 12674  	}
 12675  	z.DecReadArrayElem()
 12676  	h.decMapPtrtouint64Slicestring((*map[*uint64][]string)(&x.Mip2ss), d)
 12677  	yyj167++
 12678  	if yyhl167 {
 12679  		yyb167 = yyj167 > l
 12680  	} else {
 12681  		yyb167 = z.DecCheckBreak()
 12682  	}
 12683  	if yyb167 {
 12684  		z.DecReadArrayEnd()
 12685  		return
 12686  	}
 12687  	z.DecReadArrayElem()
 12688  	h.decMapstringMapuint64stringUint64T((*map[string]map[uint64]stringUint64T)(&x.Ms2misu), d)
 12689  	yyj167++
 12690  	if yyhl167 {
 12691  		yyb167 = yyj167 > l
 12692  	} else {
 12693  		yyb167 = z.DecCheckBreak()
 12694  	}
 12695  	if yyb167 {
 12696  		z.DecReadArrayEnd()
 12697  		return
 12698  	}
 12699  	z.DecReadArrayElem()
 12700  	h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
 12701  	yyj167++
 12702  	if yyhl167 {
 12703  		yyb167 = yyj167 > l
 12704  	} else {
 12705  		yyb167 = z.DecCheckBreak()
 12706  	}
 12707  	if yyb167 {
 12708  		z.DecReadArrayEnd()
 12709  		return
 12710  	}
 12711  	z.DecReadArrayElem()
 12712  	h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
 12713  	yyj167++
 12714  	if yyhl167 {
 12715  		yyb167 = yyj167 > l
 12716  	} else {
 12717  		yyb167 = z.DecCheckBreak()
 12718  	}
 12719  	if yyb167 {
 12720  		z.DecReadArrayEnd()
 12721  		return
 12722  	}
 12723  	z.DecReadArrayElem()
 12724  	h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
 12725  	yyj167++
 12726  	if yyhl167 {
 12727  		yyb167 = yyj167 > l
 12728  	} else {
 12729  		yyb167 = z.DecCheckBreak()
 12730  	}
 12731  	if yyb167 {
 12732  		z.DecReadArrayEnd()
 12733  		return
 12734  	}
 12735  	z.DecReadArrayElem()
 12736  	h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
 12737  	yyj167++
 12738  	if yyhl167 {
 12739  		yyb167 = yyj167 > l
 12740  	} else {
 12741  		yyb167 = z.DecCheckBreak()
 12742  	}
 12743  	if yyb167 {
 12744  		z.DecReadArrayEnd()
 12745  		return
 12746  	}
 12747  	z.DecReadArrayElem()
 12748  	h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
 12749  	yyj167++
 12750  	if yyhl167 {
 12751  		yyb167 = yyj167 > l
 12752  	} else {
 12753  		yyb167 = z.DecCheckBreak()
 12754  	}
 12755  	if yyb167 {
 12756  		z.DecReadArrayEnd()
 12757  		return
 12758  	}
 12759  	z.DecReadArrayElem()
 12760  	if yyxt282 := z.Extension(x.Ci64); yyxt282 != nil {
 12761  		z.DecExtension(&x.Ci64, yyxt282)
 12762  	} else {
 12763  		x.Ci64.CodecDecodeSelf(d)
 12764  	}
 12765  	yyj167++
 12766  	if yyhl167 {
 12767  		yyb167 = yyj167 > l
 12768  	} else {
 12769  		yyb167 = z.DecCheckBreak()
 12770  	}
 12771  	if yyb167 {
 12772  		z.DecReadArrayEnd()
 12773  		return
 12774  	}
 12775  	z.DecReadArrayElem()
 12776  	h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
 12777  	yyj167++
 12778  	if yyhl167 {
 12779  		yyb167 = yyj167 > l
 12780  	} else {
 12781  		yyb167 = z.DecCheckBreak()
 12782  	}
 12783  	if yyb167 {
 12784  		z.DecReadArrayEnd()
 12785  		return
 12786  	}
 12787  	z.DecReadArrayElem()
 12788  	h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
 12789  	yyj167++
 12790  	if yyhl167 {
 12791  		yyb167 = yyj167 > l
 12792  	} else {
 12793  		yyb167 = z.DecCheckBreak()
 12794  	}
 12795  	if yyb167 {
 12796  		z.DecReadArrayEnd()
 12797  		return
 12798  	}
 12799  	z.DecReadArrayElem()
 12800  	h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
 12801  	yyj167++
 12802  	if yyhl167 {
 12803  		yyb167 = yyj167 > l
 12804  	} else {
 12805  		yyb167 = z.DecCheckBreak()
 12806  	}
 12807  	if yyb167 {
 12808  		z.DecReadArrayEnd()
 12809  		return
 12810  	}
 12811  	z.DecReadArrayElem()
 12812  	h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
 12813  	yyj167++
 12814  	if yyhl167 {
 12815  		yyb167 = yyj167 > l
 12816  	} else {
 12817  		yyb167 = z.DecCheckBreak()
 12818  	}
 12819  	if yyb167 {
 12820  		z.DecReadArrayEnd()
 12821  		return
 12822  	}
 12823  	z.DecReadArrayElem()
 12824  	h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
 12825  	yyj167++
 12826  	if yyhl167 {
 12827  		yyb167 = yyj167 > l
 12828  	} else {
 12829  		yyb167 = z.DecCheckBreak()
 12830  	}
 12831  	if yyb167 {
 12832  		z.DecReadArrayEnd()
 12833  		return
 12834  	}
 12835  	z.DecReadArrayElem()
 12836  	z.F.DecSliceIntfX(&x.SintfAarray, d)
 12837  	yyj167++
 12838  	if yyhl167 {
 12839  		yyb167 = yyj167 > l
 12840  	} else {
 12841  		yyb167 = z.DecCheckBreak()
 12842  	}
 12843  	if yyb167 {
 12844  		z.DecReadArrayEnd()
 12845  		return
 12846  	}
 12847  	z.DecReadArrayElem()
 12848  	h.decMapstringUint64TPtrtostringUint64T((*map[stringUint64T]*stringUint64T)(&x.MstrUi64TSelf), d)
 12849  	yyj167++
 12850  	if yyhl167 {
 12851  		yyb167 = yyj167 > l
 12852  	} else {
 12853  		yyb167 = z.DecCheckBreak()
 12854  	}
 12855  	if yyb167 {
 12856  		z.DecReadArrayEnd()
 12857  		return
 12858  	}
 12859  	z.DecReadArrayElem()
 12860  	if z.DecBasicHandle().TimeBuiltin() {
 12861  		x.Ttime = r.DecodeTime()
 12862  	} else if yyxt298 := z.Extension(x.Ttime); yyxt298 != nil {
 12863  		z.DecExtension(&x.Ttime, yyxt298)
 12864  	} else if z.DecBinary() {
 12865  		z.DecBinaryUnmarshal(&x.Ttime)
 12866  	} else if !z.DecBinary() && z.IsJSONHandle() {
 12867  		z.DecJSONUnmarshal(&x.Ttime)
 12868  	} else {
 12869  		z.DecFallback(&x.Ttime, false)
 12870  	}
 12871  	yyj167++
 12872  	if yyhl167 {
 12873  		yyb167 = yyj167 > l
 12874  	} else {
 12875  		yyb167 = z.DecCheckBreak()
 12876  	}
 12877  	if yyb167 {
 12878  		z.DecReadArrayEnd()
 12879  		return
 12880  	}
 12881  	z.DecReadArrayElem()
 12882  	if r.TryNil() {
 12883  		if x.Ttimeptr != nil { // remove the if-true
 12884  			x.Ttimeptr = nil
 12885  		}
 12886  	} else {
 12887  		if x.Ttimeptr == nil {
 12888  			x.Ttimeptr = new(time.Time)
 12889  		}
 12890  		if z.DecBasicHandle().TimeBuiltin() {
 12891  			*x.Ttimeptr = r.DecodeTime()
 12892  		} else if yyxt300 := z.Extension(x.Ttimeptr); yyxt300 != nil {
 12893  			z.DecExtension(x.Ttimeptr, yyxt300)
 12894  		} else if z.DecBinary() {
 12895  			z.DecBinaryUnmarshal(x.Ttimeptr)
 12896  		} else if !z.DecBinary() && z.IsJSONHandle() {
 12897  			z.DecJSONUnmarshal(x.Ttimeptr)
 12898  		} else {
 12899  			z.DecFallback(x.Ttimeptr, false)
 12900  		}
 12901  	}
 12902  	yyj167++
 12903  	if yyhl167 {
 12904  		yyb167 = yyj167 > l
 12905  	} else {
 12906  		yyb167 = z.DecCheckBreak()
 12907  	}
 12908  	if yyb167 {
 12909  		z.DecReadArrayEnd()
 12910  		return
 12911  	}
 12912  	z.DecReadArrayElem()
 12913  	if r.TryNil() {
 12914  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 12915  			x.AnonInTestStrucIntf.Islice = nil
 12916  		}
 12917  	} else {
 12918  		if x.AnonInTestStrucIntf == nil {
 12919  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 12920  		}
 12921  		z.F.DecSliceIntfX(&x.AnonInTestStrucIntf.Islice, d)
 12922  	}
 12923  	yyj167++
 12924  	if yyhl167 {
 12925  		yyb167 = yyj167 > l
 12926  	} else {
 12927  		yyb167 = z.DecCheckBreak()
 12928  	}
 12929  	if yyb167 {
 12930  		z.DecReadArrayEnd()
 12931  		return
 12932  	}
 12933  	z.DecReadArrayElem()
 12934  	if r.TryNil() {
 12935  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 12936  			x.AnonInTestStrucIntf.Ms = nil
 12937  		}
 12938  	} else {
 12939  		if x.AnonInTestStrucIntf == nil {
 12940  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 12941  		}
 12942  		z.F.DecMapStringIntfX(&x.AnonInTestStrucIntf.Ms, d)
 12943  	}
 12944  	yyj167++
 12945  	if yyhl167 {
 12946  		yyb167 = yyj167 > l
 12947  	} else {
 12948  		yyb167 = z.DecCheckBreak()
 12949  	}
 12950  	if yyb167 {
 12951  		z.DecReadArrayEnd()
 12952  		return
 12953  	}
 12954  	z.DecReadArrayElem()
 12955  	if r.TryNil() {
 12956  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 12957  			x.AnonInTestStrucIntf.Nintf = nil
 12958  		}
 12959  	} else {
 12960  		if x.AnonInTestStrucIntf == nil {
 12961  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 12962  		}
 12963  		z.DecFallback(&x.AnonInTestStrucIntf.Nintf, true)
 12964  	}
 12965  	yyj167++
 12966  	if yyhl167 {
 12967  		yyb167 = yyj167 > l
 12968  	} else {
 12969  		yyb167 = z.DecCheckBreak()
 12970  	}
 12971  	if yyb167 {
 12972  		z.DecReadArrayEnd()
 12973  		return
 12974  	}
 12975  	z.DecReadArrayElem()
 12976  	if r.TryNil() {
 12977  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 12978  			x.AnonInTestStrucIntf.T = time.Time{}
 12979  		}
 12980  	} else {
 12981  		if x.AnonInTestStrucIntf == nil {
 12982  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 12983  		}
 12984  		if z.DecBasicHandle().TimeBuiltin() {
 12985  			x.AnonInTestStrucIntf.T = r.DecodeTime()
 12986  		} else if yyxt308 := z.Extension(x.AnonInTestStrucIntf.T); yyxt308 != nil {
 12987  			z.DecExtension(&x.AnonInTestStrucIntf.T, yyxt308)
 12988  		} else if z.DecBinary() {
 12989  			z.DecBinaryUnmarshal(&x.AnonInTestStrucIntf.T)
 12990  		} else if !z.DecBinary() && z.IsJSONHandle() {
 12991  			z.DecJSONUnmarshal(&x.AnonInTestStrucIntf.T)
 12992  		} else {
 12993  			z.DecFallback(&x.AnonInTestStrucIntf.T, false)
 12994  		}
 12995  	}
 12996  	yyj167++
 12997  	if yyhl167 {
 12998  		yyb167 = yyj167 > l
 12999  	} else {
 13000  		yyb167 = z.DecCheckBreak()
 13001  	}
 13002  	if yyb167 {
 13003  		z.DecReadArrayEnd()
 13004  		return
 13005  	}
 13006  	z.DecReadArrayElem()
 13007  	if r.TryNil() {
 13008  		if x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil { // remove the if-true
 13009  			x.AnonInTestStrucIntf.Tptr = nil
 13010  		}
 13011  	} else {
 13012  		if x.AnonInTestStrucIntf == nil {
 13013  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 13014  		}
 13015  		if x.AnonInTestStrucIntf.Tptr == nil {
 13016  			x.AnonInTestStrucIntf.Tptr = new(time.Time)
 13017  		}
 13018  		if z.DecBasicHandle().TimeBuiltin() {
 13019  			*x.AnonInTestStrucIntf.Tptr = r.DecodeTime()
 13020  		} else if yyxt310 := z.Extension(x.AnonInTestStrucIntf.Tptr); yyxt310 != nil {
 13021  			z.DecExtension(x.AnonInTestStrucIntf.Tptr, yyxt310)
 13022  		} else if z.DecBinary() {
 13023  			z.DecBinaryUnmarshal(x.AnonInTestStrucIntf.Tptr)
 13024  		} else if !z.DecBinary() && z.IsJSONHandle() {
 13025  			z.DecJSONUnmarshal(x.AnonInTestStrucIntf.Tptr)
 13026  		} else {
 13027  			z.DecFallback(x.AnonInTestStrucIntf.Tptr, false)
 13028  		}
 13029  	}
 13030  	yyj167++
 13031  	if yyhl167 {
 13032  		yyb167 = yyj167 > l
 13033  	} else {
 13034  		yyb167 = z.DecCheckBreak()
 13035  	}
 13036  	if yyb167 {
 13037  		z.DecReadArrayEnd()
 13038  		return
 13039  	}
 13040  	z.DecReadArrayElem()
 13041  	h.decMapwrapStringInterface((*map[wrapString]interface{})(&x.Msu), d)
 13042  	yyj167++
 13043  	if yyhl167 {
 13044  		yyb167 = yyj167 > l
 13045  	} else {
 13046  		yyb167 = z.DecCheckBreak()
 13047  	}
 13048  	if yyb167 {
 13049  		z.DecReadArrayEnd()
 13050  		return
 13051  	}
 13052  	z.DecReadArrayElem()
 13053  	h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
 13054  	yyj167++
 13055  	if yyhl167 {
 13056  		yyb167 = yyj167 > l
 13057  	} else {
 13058  		yyb167 = z.DecCheckBreak()
 13059  	}
 13060  	if yyb167 {
 13061  		z.DecReadArrayEnd()
 13062  		return
 13063  	}
 13064  	z.DecReadArrayElem()
 13065  	h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
 13066  	yyj167++
 13067  	if yyhl167 {
 13068  		yyb167 = yyj167 > l
 13069  	} else {
 13070  		yyb167 = z.DecCheckBreak()
 13071  	}
 13072  	if yyb167 {
 13073  		z.DecReadArrayEnd()
 13074  		return
 13075  	}
 13076  	z.DecReadArrayElem()
 13077  	h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
 13078  	yyj167++
 13079  	if yyhl167 {
 13080  		yyb167 = yyj167 > l
 13081  	} else {
 13082  		yyb167 = z.DecCheckBreak()
 13083  	}
 13084  	if yyb167 {
 13085  		z.DecReadArrayEnd()
 13086  		return
 13087  	}
 13088  	z.DecReadArrayElem()
 13089  	if r.TryNil() {
 13090  		if x.Nteststruc != nil { // remove the if-true
 13091  			x.Nteststruc = nil
 13092  		}
 13093  	} else {
 13094  		if x.Nteststruc == nil {
 13095  			x.Nteststruc = new(TestStrucFlex)
 13096  		}
 13097  		if yyxt320 := z.Extension(x.Nteststruc); yyxt320 != nil {
 13098  			z.DecExtension(x.Nteststruc, yyxt320)
 13099  		} else {
 13100  			x.Nteststruc.CodecDecodeSelf(d)
 13101  		}
 13102  	}
 13103  	yyj167++
 13104  	if yyhl167 {
 13105  		yyb167 = yyj167 > l
 13106  	} else {
 13107  		yyb167 = z.DecCheckBreak()
 13108  	}
 13109  	if yyb167 {
 13110  		z.DecReadArrayEnd()
 13111  		return
 13112  	}
 13113  	z.DecReadArrayElem()
 13114  	if yyxt322 := z.Extension(x.MarJ); yyxt322 != nil {
 13115  		z.DecExtension(&x.MarJ, yyxt322)
 13116  	} else {
 13117  		x.MarJ.CodecDecodeSelf(d)
 13118  	}
 13119  	yyj167++
 13120  	if yyhl167 {
 13121  		yyb167 = yyj167 > l
 13122  	} else {
 13123  		yyb167 = z.DecCheckBreak()
 13124  	}
 13125  	if yyb167 {
 13126  		z.DecReadArrayEnd()
 13127  		return
 13128  	}
 13129  	z.DecReadArrayElem()
 13130  	if yyxt324 := z.Extension(x.MarT); yyxt324 != nil {
 13131  		z.DecExtension(&x.MarT, yyxt324)
 13132  	} else {
 13133  		x.MarT.CodecDecodeSelf(d)
 13134  	}
 13135  	yyj167++
 13136  	if yyhl167 {
 13137  		yyb167 = yyj167 > l
 13138  	} else {
 13139  		yyb167 = z.DecCheckBreak()
 13140  	}
 13141  	if yyb167 {
 13142  		z.DecReadArrayEnd()
 13143  		return
 13144  	}
 13145  	z.DecReadArrayElem()
 13146  	if yyxt326 := z.Extension(x.MarB); yyxt326 != nil {
 13147  		z.DecExtension(&x.MarB, yyxt326)
 13148  	} else {
 13149  		x.MarB.CodecDecodeSelf(d)
 13150  	}
 13151  	yyj167++
 13152  	if yyhl167 {
 13153  		yyb167 = yyj167 > l
 13154  	} else {
 13155  		yyb167 = z.DecCheckBreak()
 13156  	}
 13157  	if yyb167 {
 13158  		z.DecReadArrayEnd()
 13159  		return
 13160  	}
 13161  	z.DecReadArrayElem()
 13162  	if yyxt328 := z.Extension(x.XuintToBytes); yyxt328 != nil {
 13163  		z.DecExtension(&x.XuintToBytes, yyxt328)
 13164  	} else {
 13165  		x.XuintToBytes.CodecDecodeSelf(d)
 13166  	}
 13167  	yyj167++
 13168  	if yyhl167 {
 13169  		yyb167 = yyj167 > l
 13170  	} else {
 13171  		yyb167 = z.DecCheckBreak()
 13172  	}
 13173  	if yyb167 {
 13174  		z.DecReadArrayEnd()
 13175  		return
 13176  	}
 13177  	z.DecReadArrayElem()
 13178  	x.Cmplx64 = (complex64)(complex(z.DecDecodeFloat32(), 0))
 13179  	yyj167++
 13180  	if yyhl167 {
 13181  		yyb167 = yyj167 > l
 13182  	} else {
 13183  		yyb167 = z.DecCheckBreak()
 13184  	}
 13185  	if yyb167 {
 13186  		z.DecReadArrayEnd()
 13187  		return
 13188  	}
 13189  	z.DecReadArrayElem()
 13190  	x.Cmplx128 = (complex128)(complex(r.DecodeFloat64(), 0))
 13191  	for {
 13192  		yyj167++
 13193  		if yyhl167 {
 13194  			yyb167 = yyj167 > l
 13195  		} else {
 13196  			yyb167 = z.DecCheckBreak()
 13197  		}
 13198  		if yyb167 {
 13199  			break
 13200  		}
 13201  		z.DecReadArrayElem()
 13202  		z.DecStructFieldNotFound(yyj167-1, "")
 13203  	}
 13204  }
 13205  
 13206  func (x *TestStrucFlex) IsCodecEmpty() bool {
 13207  	return !(!(x.TestStrucCommon.IsCodecEmpty()) || len(x.Chstr) != 0 || len(x.Mis) != 0 || len(x.Mbu64) != 0 || len(x.Mu8e) != 0 || len(x.Mu8u64) != 0 || len(x.Msp2ss) != 0 || len(x.Mip2ss) != 0 || len(x.Ms2misu) != 0 || len(x.Miwu64s) != 0 || len(x.Mfwss) != 0 || len(x.Mf32wss) != 0 || len(x.Mui2wss) != 0 || len(x.Msu2wss) != 0 || x.Ci64 != 0 || len(x.Swrapbytes) != 0 || len(x.Swrapuint8) != 0 || len(x.ArrStrUi64T) != 0 || len(x.Ui64array) != 0 || len(x.Ui64slicearray) != 0 || len(x.SintfAarray) != 0 || len(x.MstrUi64TSelf) != 0 || !(x.Ttime.IsZero()) || x.AnonInTestStrucIntf != nil && len(x.Msu) != 0 || len(x.Mtsptr) != 0 || len(x.Mts) != 0 || len(x.Its) != 0 || bool(x.MarJ) || x.MarT != "" || len(x.MarB) != 0 || x.XuintToBytes != 0 || x.Cmplx64 != 0 || x.Cmplx128 != 0 || false)
 13208  }
 13209  
 13210  func (x codecSelfer19780) encwrapUint64Slice(v wrapUint64Slice, e *Encoder) {
 13211  	var h codecSelfer19780
 13212  	z, r := GenHelper().Encoder(e)
 13213  	_, _, _ = h, z, r
 13214  	if v == nil {
 13215  		r.EncodeNil()
 13216  		return
 13217  	}
 13218  	z.EncWriteArrayStart(len(v))
 13219  	for yyv1 := range v {
 13220  		z.EncWriteArrayElem()
 13221  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 13222  			z.EncExtension(v[yyv1], yyxt2)
 13223  		} else {
 13224  			v[yyv1].CodecEncodeSelf(e)
 13225  		}
 13226  	}
 13227  	z.EncWriteArrayEnd()
 13228  }
 13229  
 13230  func (x codecSelfer19780) decwrapUint64Slice(v *wrapUint64Slice, d *Decoder) {
 13231  	var h codecSelfer19780
 13232  	z, r := GenHelper().Decoder(d)
 13233  	_, _, _ = h, z, r
 13234  
 13235  	yyv1 := *v
 13236  	yyh1, yyl1 := z.DecSliceHelperStart()
 13237  	var yyc1 bool
 13238  	_ = yyc1
 13239  	if yyh1.IsNil {
 13240  		if yyv1 != nil {
 13241  			yyv1 = nil
 13242  			yyc1 = true
 13243  		}
 13244  	} else if yyl1 == 0 {
 13245  		if yyv1 == nil {
 13246  			yyv1 = []wrapUint64{}
 13247  			yyc1 = true
 13248  		} else if len(yyv1) != 0 {
 13249  			yyv1 = yyv1[:0]
 13250  			yyc1 = true
 13251  		}
 13252  	} else {
 13253  		yyhl1 := yyl1 > 0
 13254  		var yyrl1 int
 13255  		_ = yyrl1
 13256  		if yyhl1 {
 13257  			if yyl1 > cap(yyv1) {
 13258  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 13259  				if yyrl1 <= cap(yyv1) {
 13260  					yyv1 = yyv1[:yyrl1]
 13261  				} else {
 13262  					yyv1 = make([]wrapUint64, yyrl1)
 13263  				}
 13264  				yyc1 = true
 13265  			} else if yyl1 != len(yyv1) {
 13266  				yyv1 = yyv1[:yyl1]
 13267  				yyc1 = true
 13268  			}
 13269  		}
 13270  		var yyj1 int
 13271  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13272  			if yyj1 == 0 && yyv1 == nil {
 13273  				if yyhl1 {
 13274  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 13275  				} else {
 13276  					yyrl1 = 8
 13277  				}
 13278  				yyv1 = make([]wrapUint64, yyrl1)
 13279  				yyc1 = true
 13280  			}
 13281  			yyh1.ElemContainerState(yyj1)
 13282  			var yydb1 bool
 13283  			if yyj1 >= len(yyv1) {
 13284  				yyv1 = append(yyv1, 0)
 13285  				yyc1 = true
 13286  			}
 13287  			if yydb1 {
 13288  				z.DecSwallow()
 13289  			} else {
 13290  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 13291  					z.DecExtension(&yyv1[yyj1], yyxt3)
 13292  				} else {
 13293  					yyv1[yyj1].CodecDecodeSelf(d)
 13294  				}
 13295  			}
 13296  		}
 13297  		if yyj1 < len(yyv1) {
 13298  			yyv1 = yyv1[:yyj1]
 13299  			yyc1 = true
 13300  		} else if yyj1 == 0 && yyv1 == nil {
 13301  			yyv1 = make([]wrapUint64, 0)
 13302  			yyc1 = true
 13303  		}
 13304  	}
 13305  	yyh1.End()
 13306  	if yyc1 {
 13307  		*v = yyv1
 13308  	}
 13309  }
 13310  
 13311  func (x codecSelfer19780) encwrapStringSlice(v wrapStringSlice, e *Encoder) {
 13312  	var h codecSelfer19780
 13313  	z, r := GenHelper().Encoder(e)
 13314  	_, _, _ = h, z, r
 13315  	if v == nil {
 13316  		r.EncodeNil()
 13317  		return
 13318  	}
 13319  	z.EncWriteArrayStart(len(v))
 13320  	for yyv1 := range v {
 13321  		z.EncWriteArrayElem()
 13322  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 13323  			z.EncExtension(v[yyv1], yyxt2)
 13324  		} else {
 13325  			v[yyv1].CodecEncodeSelf(e)
 13326  		}
 13327  	}
 13328  	z.EncWriteArrayEnd()
 13329  }
 13330  
 13331  func (x codecSelfer19780) decwrapStringSlice(v *wrapStringSlice, d *Decoder) {
 13332  	var h codecSelfer19780
 13333  	z, r := GenHelper().Decoder(d)
 13334  	_, _, _ = h, z, r
 13335  
 13336  	yyv1 := *v
 13337  	yyh1, yyl1 := z.DecSliceHelperStart()
 13338  	var yyc1 bool
 13339  	_ = yyc1
 13340  	if yyh1.IsNil {
 13341  		if yyv1 != nil {
 13342  			yyv1 = nil
 13343  			yyc1 = true
 13344  		}
 13345  	} else if yyl1 == 0 {
 13346  		if yyv1 == nil {
 13347  			yyv1 = []wrapString{}
 13348  			yyc1 = true
 13349  		} else if len(yyv1) != 0 {
 13350  			yyv1 = yyv1[:0]
 13351  			yyc1 = true
 13352  		}
 13353  	} else {
 13354  		yyhl1 := yyl1 > 0
 13355  		var yyrl1 int
 13356  		_ = yyrl1
 13357  		if yyhl1 {
 13358  			if yyl1 > cap(yyv1) {
 13359  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 13360  				if yyrl1 <= cap(yyv1) {
 13361  					yyv1 = yyv1[:yyrl1]
 13362  				} else {
 13363  					yyv1 = make([]wrapString, yyrl1)
 13364  				}
 13365  				yyc1 = true
 13366  			} else if yyl1 != len(yyv1) {
 13367  				yyv1 = yyv1[:yyl1]
 13368  				yyc1 = true
 13369  			}
 13370  		}
 13371  		var yyj1 int
 13372  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13373  			if yyj1 == 0 && yyv1 == nil {
 13374  				if yyhl1 {
 13375  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 13376  				} else {
 13377  					yyrl1 = 8
 13378  				}
 13379  				yyv1 = make([]wrapString, yyrl1)
 13380  				yyc1 = true
 13381  			}
 13382  			yyh1.ElemContainerState(yyj1)
 13383  			var yydb1 bool
 13384  			if yyj1 >= len(yyv1) {
 13385  				yyv1 = append(yyv1, "")
 13386  				yyc1 = true
 13387  			}
 13388  			if yydb1 {
 13389  				z.DecSwallow()
 13390  			} else {
 13391  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 13392  					z.DecExtension(&yyv1[yyj1], yyxt3)
 13393  				} else {
 13394  					yyv1[yyj1].CodecDecodeSelf(d)
 13395  				}
 13396  			}
 13397  		}
 13398  		if yyj1 < len(yyv1) {
 13399  			yyv1 = yyv1[:yyj1]
 13400  			yyc1 = true
 13401  		} else if yyj1 == 0 && yyv1 == nil {
 13402  			yyv1 = make([]wrapString, 0)
 13403  			yyc1 = true
 13404  		}
 13405  	}
 13406  	yyh1.End()
 13407  	if yyc1 {
 13408  		*v = yyv1
 13409  	}
 13410  }
 13411  
 13412  func (x codecSelfer19780) encArray8int64(v *[8]int64, e *Encoder) {
 13413  	var h codecSelfer19780
 13414  	z, r := GenHelper().Encoder(e)
 13415  	_, _, _ = h, z, r
 13416  	if v == nil {
 13417  		r.EncodeNil()
 13418  		return
 13419  	}
 13420  	z.EncWriteArrayStart(len(v))
 13421  	for yyv1 := range v {
 13422  		z.EncWriteArrayElem()
 13423  		r.EncodeInt(int64(v[yyv1]))
 13424  	}
 13425  	z.EncWriteArrayEnd()
 13426  }
 13427  
 13428  func (x codecSelfer19780) decArray8int64(v *[8]int64, d *Decoder) {
 13429  	var h codecSelfer19780
 13430  	z, r := GenHelper().Decoder(d)
 13431  	_, _, _ = h, z, r
 13432  
 13433  	yyv1 := v
 13434  	yyh1, yyl1 := z.DecSliceHelperStart()
 13435  	if yyl1 == 0 {
 13436  	} else {
 13437  		yyhl1 := yyl1 > 0
 13438  		var yyrl1 int
 13439  		_ = yyrl1
 13440  		var yyj1 int
 13441  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13442  			yyh1.ElemContainerState(yyj1)
 13443  			var yydb1 bool
 13444  			if yyj1 >= len(yyv1) {
 13445  				z.DecArrayCannotExpand(len(v), yyj1+1)
 13446  				yydb1 = true
 13447  			}
 13448  			if yydb1 {
 13449  				z.DecSwallow()
 13450  			} else {
 13451  				yyv1[yyj1] = (int64)(r.DecodeInt64())
 13452  			}
 13453  		}
 13454  	}
 13455  	yyh1.End()
 13456  }
 13457  
 13458  func (x codecSelfer19780) encArray0int64(v *[0]int64, e *Encoder) {
 13459  	var h codecSelfer19780
 13460  	z, r := GenHelper().Encoder(e)
 13461  	_, _, _ = h, z, r
 13462  	if v == nil {
 13463  		r.EncodeNil()
 13464  		return
 13465  	}
 13466  	z.EncWriteArrayStart(len(v))
 13467  	for yyv1 := range v {
 13468  		z.EncWriteArrayElem()
 13469  		r.EncodeInt(int64(v[yyv1]))
 13470  	}
 13471  	z.EncWriteArrayEnd()
 13472  }
 13473  
 13474  func (x codecSelfer19780) decArray0int64(v *[0]int64, d *Decoder) {
 13475  	var h codecSelfer19780
 13476  	z, r := GenHelper().Decoder(d)
 13477  	_, _, _ = h, z, r
 13478  
 13479  	yyv1 := v
 13480  	yyh1, yyl1 := z.DecSliceHelperStart()
 13481  	if yyl1 == 0 {
 13482  	} else {
 13483  		yyhl1 := yyl1 > 0
 13484  		var yyrl1 int
 13485  		_ = yyrl1
 13486  		var yyj1 int
 13487  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13488  			yyh1.ElemContainerState(yyj1)
 13489  			var yydb1 bool
 13490  			if yyj1 >= len(yyv1) {
 13491  				z.DecArrayCannotExpand(len(v), yyj1+1)
 13492  				yydb1 = true
 13493  			}
 13494  			if yydb1 {
 13495  				z.DecSwallow()
 13496  			} else {
 13497  				yyv1[yyj1] = (int64)(r.DecodeInt64())
 13498  			}
 13499  		}
 13500  	}
 13501  	yyh1.End()
 13502  }
 13503  
 13504  func (x codecSelfer19780) encSlicePtrtoint64(v []*int64, e *Encoder) {
 13505  	var h codecSelfer19780
 13506  	z, r := GenHelper().Encoder(e)
 13507  	_, _, _ = h, z, r
 13508  	if v == nil {
 13509  		r.EncodeNil()
 13510  		return
 13511  	}
 13512  	z.EncWriteArrayStart(len(v))
 13513  	for yyv1 := range v {
 13514  		z.EncWriteArrayElem()
 13515  		if v[yyv1] == nil {
 13516  			r.EncodeNil()
 13517  		} else {
 13518  			yy2 := *v[yyv1]
 13519  			r.EncodeInt(int64(yy2))
 13520  		}
 13521  	}
 13522  	z.EncWriteArrayEnd()
 13523  }
 13524  
 13525  func (x codecSelfer19780) decSlicePtrtoint64(v *[]*int64, d *Decoder) {
 13526  	var h codecSelfer19780
 13527  	z, r := GenHelper().Decoder(d)
 13528  	_, _, _ = h, z, r
 13529  
 13530  	yyv1 := *v
 13531  	yyh1, yyl1 := z.DecSliceHelperStart()
 13532  	var yyc1 bool
 13533  	_ = yyc1
 13534  	if yyh1.IsNil {
 13535  		if yyv1 != nil {
 13536  			yyv1 = nil
 13537  			yyc1 = true
 13538  		}
 13539  	} else if yyl1 == 0 {
 13540  		if yyv1 == nil {
 13541  			yyv1 = []*int64{}
 13542  			yyc1 = true
 13543  		} else if len(yyv1) != 0 {
 13544  			yyv1 = yyv1[:0]
 13545  			yyc1 = true
 13546  		}
 13547  	} else {
 13548  		yyhl1 := yyl1 > 0
 13549  		var yyrl1 int
 13550  		_ = yyrl1
 13551  		if yyhl1 {
 13552  			if yyl1 > cap(yyv1) {
 13553  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 13554  				if yyrl1 <= cap(yyv1) {
 13555  					yyv1 = yyv1[:yyrl1]
 13556  				} else {
 13557  					yyv1 = make([]*int64, yyrl1)
 13558  				}
 13559  				yyc1 = true
 13560  			} else if yyl1 != len(yyv1) {
 13561  				yyv1 = yyv1[:yyl1]
 13562  				yyc1 = true
 13563  			}
 13564  		}
 13565  		var yyj1 int
 13566  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13567  			if yyj1 == 0 && yyv1 == nil {
 13568  				if yyhl1 {
 13569  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 13570  				} else {
 13571  					yyrl1 = 8
 13572  				}
 13573  				yyv1 = make([]*int64, yyrl1)
 13574  				yyc1 = true
 13575  			}
 13576  			yyh1.ElemContainerState(yyj1)
 13577  			var yydb1 bool
 13578  			if yyj1 >= len(yyv1) {
 13579  				yyv1 = append(yyv1, nil)
 13580  				yyc1 = true
 13581  			}
 13582  			if yydb1 {
 13583  				z.DecSwallow()
 13584  			} else {
 13585  				if r.TryNil() {
 13586  					yyv1[yyj1] = nil
 13587  				} else {
 13588  					if yyv1[yyj1] == nil {
 13589  						yyv1[yyj1] = new(int64)
 13590  					}
 13591  					*yyv1[yyj1] = (int64)(r.DecodeInt64())
 13592  				}
 13593  			}
 13594  		}
 13595  		if yyj1 < len(yyv1) {
 13596  			yyv1 = yyv1[:yyj1]
 13597  			yyc1 = true
 13598  		} else if yyj1 == 0 && yyv1 == nil {
 13599  			yyv1 = make([]*int64, 0)
 13600  			yyc1 = true
 13601  		}
 13602  	}
 13603  	yyh1.End()
 13604  	if yyc1 {
 13605  		*v = yyv1
 13606  	}
 13607  }
 13608  
 13609  func (x codecSelfer19780) encSlicestringUint64T(v []stringUint64T, e *Encoder) {
 13610  	var h codecSelfer19780
 13611  	z, r := GenHelper().Encoder(e)
 13612  	_, _, _ = h, z, r
 13613  	if v == nil {
 13614  		r.EncodeNil()
 13615  		return
 13616  	}
 13617  	z.EncWriteArrayStart(len(v))
 13618  	for yyv1 := range v {
 13619  		z.EncWriteArrayElem()
 13620  		yy2 := &v[yyv1]
 13621  		if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 13622  			z.EncExtension(yy2, yyxt3)
 13623  		} else {
 13624  			yy2.CodecEncodeSelf(e)
 13625  		}
 13626  	}
 13627  	z.EncWriteArrayEnd()
 13628  }
 13629  
 13630  func (x codecSelfer19780) decSlicestringUint64T(v *[]stringUint64T, d *Decoder) {
 13631  	var h codecSelfer19780
 13632  	z, r := GenHelper().Decoder(d)
 13633  	_, _, _ = h, z, r
 13634  
 13635  	yyv1 := *v
 13636  	yyh1, yyl1 := z.DecSliceHelperStart()
 13637  	var yyc1 bool
 13638  	_ = yyc1
 13639  	if yyh1.IsNil {
 13640  		if yyv1 != nil {
 13641  			yyv1 = nil
 13642  			yyc1 = true
 13643  		}
 13644  	} else if yyl1 == 0 {
 13645  		if yyv1 == nil {
 13646  			yyv1 = []stringUint64T{}
 13647  			yyc1 = true
 13648  		} else if len(yyv1) != 0 {
 13649  			yyv1 = yyv1[:0]
 13650  			yyc1 = true
 13651  		}
 13652  	} else {
 13653  		yyhl1 := yyl1 > 0
 13654  		var yyrl1 int
 13655  		_ = yyrl1
 13656  		if yyhl1 {
 13657  			if yyl1 > cap(yyv1) {
 13658  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 13659  				if yyrl1 <= cap(yyv1) {
 13660  					yyv1 = yyv1[:yyrl1]
 13661  				} else {
 13662  					yyv1 = make([]stringUint64T, yyrl1)
 13663  				}
 13664  				yyc1 = true
 13665  			} else if yyl1 != len(yyv1) {
 13666  				yyv1 = yyv1[:yyl1]
 13667  				yyc1 = true
 13668  			}
 13669  		}
 13670  		var yyj1 int
 13671  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 13672  			if yyj1 == 0 && yyv1 == nil {
 13673  				if yyhl1 {
 13674  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 13675  				} else {
 13676  					yyrl1 = 8
 13677  				}
 13678  				yyv1 = make([]stringUint64T, yyrl1)
 13679  				yyc1 = true
 13680  			}
 13681  			yyh1.ElemContainerState(yyj1)
 13682  			var yydb1 bool
 13683  			if yyj1 >= len(yyv1) {
 13684  				yyv1 = append(yyv1, stringUint64T{})
 13685  				yyc1 = true
 13686  			}
 13687  			if yydb1 {
 13688  				z.DecSwallow()
 13689  			} else {
 13690  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 13691  					z.DecExtension(&yyv1[yyj1], yyxt3)
 13692  				} else {
 13693  					yyv1[yyj1].CodecDecodeSelf(d)
 13694  				}
 13695  			}
 13696  		}
 13697  		if yyj1 < len(yyv1) {
 13698  			yyv1 = yyv1[:yyj1]
 13699  			yyc1 = true
 13700  		} else if yyj1 == 0 && yyv1 == nil {
 13701  			yyv1 = make([]stringUint64T, 0)
 13702  			yyc1 = true
 13703  		}
 13704  	}
 13705  	yyh1.End()
 13706  	if yyc1 {
 13707  		*v = yyv1
 13708  	}
 13709  }
 13710  
 13711  func (x codecSelfer19780) encMapstringPtrtostringUint64T(v map[string]*stringUint64T, e *Encoder) {
 13712  	var h codecSelfer19780
 13713  	z, r := GenHelper().Encoder(e)
 13714  	_, _, _ = h, z, r
 13715  	if v == nil {
 13716  		r.EncodeNil()
 13717  	} else if z.EncBasicHandle().Canonical {
 13718  		z.EncEncodeMapNonNil(v)
 13719  	} else {
 13720  		z.EncWriteMapStart(len(v))
 13721  		for yyk1, yyv1 := range v {
 13722  			z.EncWriteMapElemKey()
 13723  			r.EncodeString(string(yyk1))
 13724  			z.EncWriteMapElemValue()
 13725  			if yyv1 == nil {
 13726  				r.EncodeNil()
 13727  			} else {
 13728  				if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 13729  					z.EncExtension(yyv1, yyxt3)
 13730  				} else {
 13731  					yyv1.CodecEncodeSelf(e)
 13732  				}
 13733  			}
 13734  		}
 13735  		z.EncWriteMapEnd()
 13736  	}
 13737  }
 13738  
 13739  func (x codecSelfer19780) decMapstringPtrtostringUint64T(v *map[string]*stringUint64T, d *Decoder) {
 13740  	var h codecSelfer19780
 13741  	z, r := GenHelper().Decoder(d)
 13742  	_, _, _ = h, z, r
 13743  
 13744  	yyv1 := *v
 13745  	yyl1 := z.DecReadMapStart()
 13746  	if yyl1 == codecSelferDecContainerLenNil19780 {
 13747  		*v = nil
 13748  	} else {
 13749  		if yyv1 == nil {
 13750  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 13751  			yyv1 = make(map[string]*stringUint64T, yyrl1)
 13752  			*v = yyv1
 13753  		}
 13754  		var yymk1 string
 13755  		var yymv1 *stringUint64T
 13756  		var yymg1, yymdn1, yyms1, yymok1 bool
 13757  		if z.DecBasicHandle().MapValueReset {
 13758  			yymg1 = true
 13759  		}
 13760  		if yyl1 != 0 {
 13761  			yyhl1 := yyl1 > 0
 13762  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 13763  				z.DecReadMapElemKey()
 13764  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 13765  				yyms1 = true
 13766  				if yymg1 {
 13767  					yymv1, yymok1 = yyv1[yymk1]
 13768  					if yymok1 {
 13769  						yyms1 = false
 13770  					}
 13771  				} else {
 13772  					yymv1 = nil
 13773  				}
 13774  				z.DecReadMapElemValue()
 13775  				yymdn1 = false
 13776  				if r.TryNil() {
 13777  					yymdn1 = true
 13778  				} else {
 13779  					if yymv1 == nil {
 13780  						yymv1 = new(stringUint64T)
 13781  					}
 13782  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 13783  						z.DecExtension(yymv1, yyxt4)
 13784  					} else {
 13785  						yymv1.CodecDecodeSelf(d)
 13786  					}
 13787  				}
 13788  				if yymdn1 {
 13789  					yyv1[yymk1] = nil
 13790  				} else if yyms1 {
 13791  					yyv1[yymk1] = yymv1
 13792  				}
 13793  			}
 13794  		} // else len==0: leave as-is (do not clear map entries)
 13795  		z.DecReadMapEnd()
 13796  	}
 13797  }
 13798  
 13799  func (x codecSelfer19780) encMapstringPtrtoTestStruc(v map[string]*TestStruc, e *Encoder) {
 13800  	var h codecSelfer19780
 13801  	z, r := GenHelper().Encoder(e)
 13802  	_, _, _ = h, z, r
 13803  	if v == nil {
 13804  		r.EncodeNil()
 13805  	} else if z.EncBasicHandle().Canonical {
 13806  		z.EncEncodeMapNonNil(v)
 13807  	} else {
 13808  		z.EncWriteMapStart(len(v))
 13809  		for yyk1, yyv1 := range v {
 13810  			z.EncWriteMapElemKey()
 13811  			r.EncodeString(string(yyk1))
 13812  			z.EncWriteMapElemValue()
 13813  			if yyv1 == nil {
 13814  				r.EncodeNil()
 13815  			} else {
 13816  				if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 13817  					z.EncExtension(yyv1, yyxt3)
 13818  				} else {
 13819  					yyv1.CodecEncodeSelf(e)
 13820  				}
 13821  			}
 13822  		}
 13823  		z.EncWriteMapEnd()
 13824  	}
 13825  }
 13826  
 13827  func (x codecSelfer19780) decMapstringPtrtoTestStruc(v *map[string]*TestStruc, d *Decoder) {
 13828  	var h codecSelfer19780
 13829  	z, r := GenHelper().Decoder(d)
 13830  	_, _, _ = h, z, r
 13831  
 13832  	yyv1 := *v
 13833  	yyl1 := z.DecReadMapStart()
 13834  	if yyl1 == codecSelferDecContainerLenNil19780 {
 13835  		*v = nil
 13836  	} else {
 13837  		if yyv1 == nil {
 13838  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 13839  			yyv1 = make(map[string]*TestStruc, yyrl1)
 13840  			*v = yyv1
 13841  		}
 13842  		var yymk1 string
 13843  		var yymv1 *TestStruc
 13844  		var yymg1, yymdn1, yyms1, yymok1 bool
 13845  		if z.DecBasicHandle().MapValueReset {
 13846  			yymg1 = true
 13847  		}
 13848  		if yyl1 != 0 {
 13849  			yyhl1 := yyl1 > 0
 13850  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 13851  				z.DecReadMapElemKey()
 13852  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 13853  				yyms1 = true
 13854  				if yymg1 {
 13855  					yymv1, yymok1 = yyv1[yymk1]
 13856  					if yymok1 {
 13857  						yyms1 = false
 13858  					}
 13859  				} else {
 13860  					yymv1 = nil
 13861  				}
 13862  				z.DecReadMapElemValue()
 13863  				yymdn1 = false
 13864  				if r.TryNil() {
 13865  					yymdn1 = true
 13866  				} else {
 13867  					if yymv1 == nil {
 13868  						yymv1 = new(TestStruc)
 13869  					}
 13870  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 13871  						z.DecExtension(yymv1, yyxt4)
 13872  					} else {
 13873  						yymv1.CodecDecodeSelf(d)
 13874  					}
 13875  				}
 13876  				if yymdn1 {
 13877  					yyv1[yymk1] = nil
 13878  				} else if yyms1 {
 13879  					yyv1[yymk1] = yymv1
 13880  				}
 13881  			}
 13882  		} // else len==0: leave as-is (do not clear map entries)
 13883  		z.DecReadMapEnd()
 13884  	}
 13885  }
 13886  
 13887  func (x codecSelfer19780) encMapstringTestStruc(v map[string]TestStruc, e *Encoder) {
 13888  	var h codecSelfer19780
 13889  	z, r := GenHelper().Encoder(e)
 13890  	_, _, _ = h, z, r
 13891  	if v == nil {
 13892  		r.EncodeNil()
 13893  	} else if z.EncBasicHandle().Canonical {
 13894  		z.EncEncodeMapNonNil(v)
 13895  	} else {
 13896  		z.EncWriteMapStart(len(v))
 13897  		for yyk1, yyv1 := range v {
 13898  			z.EncWriteMapElemKey()
 13899  			r.EncodeString(string(yyk1))
 13900  			z.EncWriteMapElemValue()
 13901  			yy3 := &yyv1
 13902  			if yyxt4 := z.Extension(yy3); yyxt4 != nil {
 13903  				z.EncExtension(yy3, yyxt4)
 13904  			} else {
 13905  				yy3.CodecEncodeSelf(e)
 13906  			}
 13907  		}
 13908  		z.EncWriteMapEnd()
 13909  	}
 13910  }
 13911  
 13912  func (x codecSelfer19780) decMapstringTestStruc(v *map[string]TestStruc, d *Decoder) {
 13913  	var h codecSelfer19780
 13914  	z, r := GenHelper().Decoder(d)
 13915  	_, _, _ = h, z, r
 13916  
 13917  	yyv1 := *v
 13918  	yyl1 := z.DecReadMapStart()
 13919  	if yyl1 == codecSelferDecContainerLenNil19780 {
 13920  		*v = nil
 13921  	} else {
 13922  		if yyv1 == nil {
 13923  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1368)
 13924  			yyv1 = make(map[string]TestStruc, yyrl1)
 13925  			*v = yyv1
 13926  		}
 13927  		var yymk1 string
 13928  		var yymv1 TestStruc
 13929  		var yymg1, yymdn1 bool
 13930  		if z.DecBasicHandle().MapValueReset {
 13931  			yymg1 = true
 13932  		}
 13933  		if yyl1 != 0 {
 13934  			yyhl1 := yyl1 > 0
 13935  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 13936  				z.DecReadMapElemKey()
 13937  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 13938  				if yymg1 {
 13939  					yymv1 = yyv1[yymk1]
 13940  				} else {
 13941  					yymv1 = TestStruc{}
 13942  				}
 13943  				z.DecReadMapElemValue()
 13944  				yymdn1 = false
 13945  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 13946  					z.DecExtension(&yymv1, yyxt4)
 13947  				} else {
 13948  					yymv1.CodecDecodeSelf(d)
 13949  				}
 13950  				if yymdn1 {
 13951  					yyv1[yymk1] = TestStruc{}
 13952  				} else {
 13953  					yyv1[yymk1] = yymv1
 13954  				}
 13955  			}
 13956  		} // else len==0: leave as-is (do not clear map entries)
 13957  		z.DecReadMapEnd()
 13958  	}
 13959  }
 13960  
 13961  func (x codecSelfer19780) encSlicePtrtoTestStruc(v []*TestStruc, e *Encoder) {
 13962  	var h codecSelfer19780
 13963  	z, r := GenHelper().Encoder(e)
 13964  	_, _, _ = h, z, r
 13965  	if v == nil {
 13966  		r.EncodeNil()
 13967  		return
 13968  	}
 13969  	z.EncWriteArrayStart(len(v))
 13970  	for yyv1 := range v {
 13971  		z.EncWriteArrayElem()
 13972  		if v[yyv1] == nil {
 13973  			r.EncodeNil()
 13974  		} else {
 13975  			if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 13976  				z.EncExtension(v[yyv1], yyxt2)
 13977  			} else {
 13978  				v[yyv1].CodecEncodeSelf(e)
 13979  			}
 13980  		}
 13981  	}
 13982  	z.EncWriteArrayEnd()
 13983  }
 13984  
 13985  func (x codecSelfer19780) decSlicePtrtoTestStruc(v *[]*TestStruc, d *Decoder) {
 13986  	var h codecSelfer19780
 13987  	z, r := GenHelper().Decoder(d)
 13988  	_, _, _ = h, z, r
 13989  
 13990  	yyv1 := *v
 13991  	yyh1, yyl1 := z.DecSliceHelperStart()
 13992  	var yyc1 bool
 13993  	_ = yyc1
 13994  	if yyh1.IsNil {
 13995  		if yyv1 != nil {
 13996  			yyv1 = nil
 13997  			yyc1 = true
 13998  		}
 13999  	} else if yyl1 == 0 {
 14000  		if yyv1 == nil {
 14001  			yyv1 = []*TestStruc{}
 14002  			yyc1 = true
 14003  		} else if len(yyv1) != 0 {
 14004  			yyv1 = yyv1[:0]
 14005  			yyc1 = true
 14006  		}
 14007  	} else {
 14008  		yyhl1 := yyl1 > 0
 14009  		var yyrl1 int
 14010  		_ = yyrl1
 14011  		if yyhl1 {
 14012  			if yyl1 > cap(yyv1) {
 14013  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 14014  				if yyrl1 <= cap(yyv1) {
 14015  					yyv1 = yyv1[:yyrl1]
 14016  				} else {
 14017  					yyv1 = make([]*TestStruc, yyrl1)
 14018  				}
 14019  				yyc1 = true
 14020  			} else if yyl1 != len(yyv1) {
 14021  				yyv1 = yyv1[:yyl1]
 14022  				yyc1 = true
 14023  			}
 14024  		}
 14025  		var yyj1 int
 14026  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 14027  			if yyj1 == 0 && yyv1 == nil {
 14028  				if yyhl1 {
 14029  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 14030  				} else {
 14031  					yyrl1 = 8
 14032  				}
 14033  				yyv1 = make([]*TestStruc, yyrl1)
 14034  				yyc1 = true
 14035  			}
 14036  			yyh1.ElemContainerState(yyj1)
 14037  			var yydb1 bool
 14038  			if yyj1 >= len(yyv1) {
 14039  				yyv1 = append(yyv1, nil)
 14040  				yyc1 = true
 14041  			}
 14042  			if yydb1 {
 14043  				z.DecSwallow()
 14044  			} else {
 14045  				if r.TryNil() {
 14046  					yyv1[yyj1] = nil
 14047  				} else {
 14048  					if yyv1[yyj1] == nil {
 14049  						yyv1[yyj1] = new(TestStruc)
 14050  					}
 14051  					if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 14052  						z.DecExtension(yyv1[yyj1], yyxt3)
 14053  					} else {
 14054  						yyv1[yyj1].CodecDecodeSelf(d)
 14055  					}
 14056  				}
 14057  			}
 14058  		}
 14059  		if yyj1 < len(yyv1) {
 14060  			yyv1 = yyv1[:yyj1]
 14061  			yyc1 = true
 14062  		} else if yyj1 == 0 && yyv1 == nil {
 14063  			yyv1 = make([]*TestStruc, 0)
 14064  			yyc1 = true
 14065  		}
 14066  	}
 14067  	yyh1.End()
 14068  	if yyc1 {
 14069  		*v = yyv1
 14070  	}
 14071  }
 14072  
 14073  func (x codecSelfer19780) encChanstring(v chan string, e *Encoder) {
 14074  	var h codecSelfer19780
 14075  	z, r := GenHelper().Encoder(e)
 14076  	_, _, _ = h, z, r
 14077  	if v == nil {
 14078  		r.EncodeNil()
 14079  		return
 14080  	}
 14081  	if v == nil {
 14082  		r.EncodeNil()
 14083  	} else {
 14084  		var sch1 []string
 14085  
 14086  	Lsch1:
 14087  		switch timeout1 := z.EncBasicHandle().ChanRecvTimeout; {
 14088  		case timeout1 == 0: // only consume available
 14089  			for {
 14090  				select {
 14091  				case b1 := <-v:
 14092  					sch1 = append(sch1, b1)
 14093  				default:
 14094  					break Lsch1
 14095  				}
 14096  			}
 14097  		case timeout1 > 0: // consume until timeout
 14098  			tt1 := time.NewTimer(timeout1)
 14099  			for {
 14100  				select {
 14101  				case b1 := <-v:
 14102  					sch1 = append(sch1, b1)
 14103  				case <-tt1.C:
 14104  					// close(tt.C)
 14105  					break Lsch1
 14106  				}
 14107  			}
 14108  		default: // consume until close
 14109  			for b1 := range v {
 14110  				sch1 = append(sch1, b1)
 14111  			}
 14112  		}
 14113  		z.EncWriteArrayStart(len(sch1))
 14114  		for yyv1 := range sch1 {
 14115  			z.EncWriteArrayElem()
 14116  			r.EncodeString(string(sch1[yyv1]))
 14117  		}
 14118  		z.EncWriteArrayEnd()
 14119  	}
 14120  }
 14121  
 14122  func (x codecSelfer19780) decChanstring(v *chan string, d *Decoder) {
 14123  	var h codecSelfer19780
 14124  	z, r := GenHelper().Decoder(d)
 14125  	_, _, _ = h, z, r
 14126  
 14127  	yyv1 := *v
 14128  	yyh1, yyl1 := z.DecSliceHelperStart()
 14129  	var yyc1 bool
 14130  	_ = yyc1
 14131  	if yyh1.IsNil {
 14132  		if yyv1 != nil {
 14133  			yyv1 = nil
 14134  			yyc1 = true
 14135  		}
 14136  	} else if yyl1 == 0 {
 14137  		if yyv1 == nil {
 14138  			yyv1 = make(chan string, 0)
 14139  			yyc1 = true
 14140  		}
 14141  	} else {
 14142  		yyhl1 := yyl1 > 0
 14143  		var yyrl1 int
 14144  		_ = yyrl1
 14145  		var yyj1 int
 14146  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 14147  			if yyj1 == 0 && yyv1 == nil {
 14148  				if yyhl1 {
 14149  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 14150  				} else {
 14151  					yyrl1 = 64
 14152  				}
 14153  				yyv1 = make(chan string, yyrl1)
 14154  				yyc1 = true
 14155  			}
 14156  			yyh1.ElemContainerState(yyj1)
 14157  			var yyvcx1 string
 14158  			yyvcx1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14159  			yyv1 <- yyvcx1
 14160  		}
 14161  	}
 14162  	yyh1.End()
 14163  	if yyc1 {
 14164  		*v = yyv1
 14165  	}
 14166  }
 14167  
 14168  func (x codecSelfer19780) encMapboolc3RydWN0IHt9(v map[bool]struct{}, e *Encoder) {
 14169  	var h codecSelfer19780
 14170  	z, r := GenHelper().Encoder(e)
 14171  	_, _, _ = h, z, r
 14172  	if v == nil {
 14173  		r.EncodeNil()
 14174  	} else if z.EncBasicHandle().Canonical {
 14175  		z.EncEncodeMapNonNil(v)
 14176  	} else {
 14177  		z.EncWriteMapStart(len(v))
 14178  		for yyk1, yyv1 := range v {
 14179  			z.EncWriteMapElemKey()
 14180  			r.EncodeBool(bool(yyk1))
 14181  			z.EncWriteMapElemValue()
 14182  			yy3 := &yyv1
 14183  			z.EncFallback(yy3)
 14184  		}
 14185  		z.EncWriteMapEnd()
 14186  	}
 14187  }
 14188  
 14189  func (x codecSelfer19780) decMapboolc3RydWN0IHt9(v *map[bool]struct{}, d *Decoder) {
 14190  	var h codecSelfer19780
 14191  	z, r := GenHelper().Decoder(d)
 14192  	_, _, _ = h, z, r
 14193  
 14194  	yyv1 := *v
 14195  	yyl1 := z.DecReadMapStart()
 14196  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14197  		*v = nil
 14198  	} else {
 14199  		if yyv1 == nil {
 14200  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 14201  			yyv1 = make(map[bool]struct{}, yyrl1)
 14202  			*v = yyv1
 14203  		}
 14204  		var yymk1 bool
 14205  		var yymv1 struct{}
 14206  		var yymg1, yymdn1 bool
 14207  		if z.DecBasicHandle().MapValueReset {
 14208  			yymg1 = true
 14209  		}
 14210  		if yyl1 != 0 {
 14211  			yyhl1 := yyl1 > 0
 14212  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14213  				z.DecReadMapElemKey()
 14214  				yymk1 = (bool)(r.DecodeBool())
 14215  				if yymg1 {
 14216  					yymv1 = yyv1[yymk1]
 14217  				} else {
 14218  					yymv1 = struct{}{}
 14219  				}
 14220  				z.DecReadMapElemValue()
 14221  				yymdn1 = false
 14222  				z.DecFallback(&yymv1, false)
 14223  				if yymdn1 {
 14224  					yyv1[yymk1] = struct{}{}
 14225  				} else {
 14226  					yyv1[yymk1] = yymv1
 14227  				}
 14228  			}
 14229  		} // else len==0: leave as-is (do not clear map entries)
 14230  		z.DecReadMapEnd()
 14231  	}
 14232  }
 14233  
 14234  func (x codecSelfer19780) encMapuint8c3RydWN0IHt9(v map[uint8]struct{}, e *Encoder) {
 14235  	var h codecSelfer19780
 14236  	z, r := GenHelper().Encoder(e)
 14237  	_, _, _ = h, z, r
 14238  	if v == nil {
 14239  		r.EncodeNil()
 14240  	} else if z.EncBasicHandle().Canonical {
 14241  		z.EncEncodeMapNonNil(v)
 14242  	} else {
 14243  		z.EncWriteMapStart(len(v))
 14244  		for yyk1, yyv1 := range v {
 14245  			z.EncWriteMapElemKey()
 14246  			r.EncodeUint(uint64(yyk1))
 14247  			z.EncWriteMapElemValue()
 14248  			yy3 := &yyv1
 14249  			z.EncFallback(yy3)
 14250  		}
 14251  		z.EncWriteMapEnd()
 14252  	}
 14253  }
 14254  
 14255  func (x codecSelfer19780) decMapuint8c3RydWN0IHt9(v *map[uint8]struct{}, d *Decoder) {
 14256  	var h codecSelfer19780
 14257  	z, r := GenHelper().Decoder(d)
 14258  	_, _, _ = h, z, r
 14259  
 14260  	yyv1 := *v
 14261  	yyl1 := z.DecReadMapStart()
 14262  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14263  		*v = nil
 14264  	} else {
 14265  		if yyv1 == nil {
 14266  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 14267  			yyv1 = make(map[uint8]struct{}, yyrl1)
 14268  			*v = yyv1
 14269  		}
 14270  		var yymk1 uint8
 14271  		var yymv1 struct{}
 14272  		var yymg1, yymdn1 bool
 14273  		if z.DecBasicHandle().MapValueReset {
 14274  			yymg1 = true
 14275  		}
 14276  		if yyl1 != 0 {
 14277  			yyhl1 := yyl1 > 0
 14278  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14279  				z.DecReadMapElemKey()
 14280  				yymk1 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14281  				if yymg1 {
 14282  					yymv1 = yyv1[yymk1]
 14283  				} else {
 14284  					yymv1 = struct{}{}
 14285  				}
 14286  				z.DecReadMapElemValue()
 14287  				yymdn1 = false
 14288  				z.DecFallback(&yymv1, false)
 14289  				if yymdn1 {
 14290  					yyv1[yymk1] = struct{}{}
 14291  				} else {
 14292  					yyv1[yymk1] = yymv1
 14293  				}
 14294  			}
 14295  		} // else len==0: leave as-is (do not clear map entries)
 14296  		z.DecReadMapEnd()
 14297  	}
 14298  }
 14299  
 14300  func (x codecSelfer19780) encMapuint8stringUint64T(v map[uint8]stringUint64T, e *Encoder) {
 14301  	var h codecSelfer19780
 14302  	z, r := GenHelper().Encoder(e)
 14303  	_, _, _ = h, z, r
 14304  	if v == nil {
 14305  		r.EncodeNil()
 14306  	} else if z.EncBasicHandle().Canonical {
 14307  		z.EncEncodeMapNonNil(v)
 14308  	} else {
 14309  		z.EncWriteMapStart(len(v))
 14310  		for yyk1, yyv1 := range v {
 14311  			z.EncWriteMapElemKey()
 14312  			r.EncodeUint(uint64(yyk1))
 14313  			z.EncWriteMapElemValue()
 14314  			yy3 := &yyv1
 14315  			if yyxt4 := z.Extension(yy3); yyxt4 != nil {
 14316  				z.EncExtension(yy3, yyxt4)
 14317  			} else {
 14318  				yy3.CodecEncodeSelf(e)
 14319  			}
 14320  		}
 14321  		z.EncWriteMapEnd()
 14322  	}
 14323  }
 14324  
 14325  func (x codecSelfer19780) decMapuint8stringUint64T(v *map[uint8]stringUint64T, d *Decoder) {
 14326  	var h codecSelfer19780
 14327  	z, r := GenHelper().Decoder(d)
 14328  	_, _, _ = h, z, r
 14329  
 14330  	yyv1 := *v
 14331  	yyl1 := z.DecReadMapStart()
 14332  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14333  		*v = nil
 14334  	} else {
 14335  		if yyv1 == nil {
 14336  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 25)
 14337  			yyv1 = make(map[uint8]stringUint64T, yyrl1)
 14338  			*v = yyv1
 14339  		}
 14340  		var yymk1 uint8
 14341  		var yymv1 stringUint64T
 14342  		var yymg1, yymdn1 bool
 14343  		if z.DecBasicHandle().MapValueReset {
 14344  			yymg1 = true
 14345  		}
 14346  		if yyl1 != 0 {
 14347  			yyhl1 := yyl1 > 0
 14348  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14349  				z.DecReadMapElemKey()
 14350  				yymk1 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14351  				if yymg1 {
 14352  					yymv1 = yyv1[yymk1]
 14353  				} else {
 14354  					yymv1 = stringUint64T{}
 14355  				}
 14356  				z.DecReadMapElemValue()
 14357  				yymdn1 = false
 14358  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14359  					z.DecExtension(&yymv1, yyxt4)
 14360  				} else {
 14361  					yymv1.CodecDecodeSelf(d)
 14362  				}
 14363  				if yymdn1 {
 14364  					yyv1[yymk1] = stringUint64T{}
 14365  				} else {
 14366  					yyv1[yymk1] = yymv1
 14367  				}
 14368  			}
 14369  		} // else len==0: leave as-is (do not clear map entries)
 14370  		z.DecReadMapEnd()
 14371  	}
 14372  }
 14373  
 14374  func (x codecSelfer19780) encMapPtrtostringSlicestring(v map[*string][]string, e *Encoder) {
 14375  	var h codecSelfer19780
 14376  	z, r := GenHelper().Encoder(e)
 14377  	_, _, _ = h, z, r
 14378  	if v == nil {
 14379  		r.EncodeNil()
 14380  	} else if z.EncBasicHandle().Canonical {
 14381  		z.EncEncodeMapNonNil(v)
 14382  	} else {
 14383  		z.EncWriteMapStart(len(v))
 14384  		for yyk1, yyv1 := range v {
 14385  			z.EncWriteMapElemKey()
 14386  			if yyk1 == nil {
 14387  				r.EncodeNil()
 14388  			} else {
 14389  				yy2 := *yyk1
 14390  				r.EncodeString(string(yy2))
 14391  			}
 14392  			z.EncWriteMapElemValue()
 14393  			if yyv1 == nil {
 14394  				r.EncodeNil()
 14395  			} else {
 14396  				z.F.EncSliceStringV(yyv1, e)
 14397  			} // end block: if yyv1 slice == nil
 14398  		}
 14399  		z.EncWriteMapEnd()
 14400  	}
 14401  }
 14402  
 14403  func (x codecSelfer19780) decMapPtrtostringSlicestring(v *map[*string][]string, d *Decoder) {
 14404  	var h codecSelfer19780
 14405  	z, r := GenHelper().Decoder(d)
 14406  	_, _, _ = h, z, r
 14407  
 14408  	yyv1 := *v
 14409  	yyl1 := z.DecReadMapStart()
 14410  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14411  		*v = nil
 14412  	} else {
 14413  		if yyv1 == nil {
 14414  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14415  			yyv1 = make(map[*string][]string, yyrl1)
 14416  			*v = yyv1
 14417  		}
 14418  		var yymk1 *string
 14419  		var yymv1 []string
 14420  		var yymg1, yymdn1 bool
 14421  		if z.DecBasicHandle().MapValueReset {
 14422  			yymg1 = true
 14423  		}
 14424  		if yyl1 != 0 {
 14425  			yyhl1 := yyl1 > 0
 14426  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14427  				z.DecReadMapElemKey()
 14428  				if r.TryNil() {
 14429  					*yymk1 = ""
 14430  				} else {
 14431  					if yymk1 == nil {
 14432  						yymk1 = new(string)
 14433  					}
 14434  					*yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14435  				}
 14436  				if yymg1 {
 14437  					yymv1 = yyv1[yymk1]
 14438  				} else {
 14439  					yymv1 = nil
 14440  				}
 14441  				z.DecReadMapElemValue()
 14442  				yymdn1 = false
 14443  				z.F.DecSliceStringX(&yymv1, d)
 14444  				if yymdn1 {
 14445  					yyv1[yymk1] = nil
 14446  				} else {
 14447  					yyv1[yymk1] = yymv1
 14448  				}
 14449  			}
 14450  		} // else len==0: leave as-is (do not clear map entries)
 14451  		z.DecReadMapEnd()
 14452  	}
 14453  }
 14454  
 14455  func (x codecSelfer19780) encMapPtrtouint64Slicestring(v map[*uint64][]string, e *Encoder) {
 14456  	var h codecSelfer19780
 14457  	z, r := GenHelper().Encoder(e)
 14458  	_, _, _ = h, z, r
 14459  	if v == nil {
 14460  		r.EncodeNil()
 14461  	} else if z.EncBasicHandle().Canonical {
 14462  		z.EncEncodeMapNonNil(v)
 14463  	} else {
 14464  		z.EncWriteMapStart(len(v))
 14465  		for yyk1, yyv1 := range v {
 14466  			z.EncWriteMapElemKey()
 14467  			if yyk1 == nil {
 14468  				r.EncodeNil()
 14469  			} else {
 14470  				yy2 := *yyk1
 14471  				r.EncodeUint(uint64(yy2))
 14472  			}
 14473  			z.EncWriteMapElemValue()
 14474  			if yyv1 == nil {
 14475  				r.EncodeNil()
 14476  			} else {
 14477  				z.F.EncSliceStringV(yyv1, e)
 14478  			} // end block: if yyv1 slice == nil
 14479  		}
 14480  		z.EncWriteMapEnd()
 14481  	}
 14482  }
 14483  
 14484  func (x codecSelfer19780) decMapPtrtouint64Slicestring(v *map[*uint64][]string, d *Decoder) {
 14485  	var h codecSelfer19780
 14486  	z, r := GenHelper().Decoder(d)
 14487  	_, _, _ = h, z, r
 14488  
 14489  	yyv1 := *v
 14490  	yyl1 := z.DecReadMapStart()
 14491  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14492  		*v = nil
 14493  	} else {
 14494  		if yyv1 == nil {
 14495  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14496  			yyv1 = make(map[*uint64][]string, yyrl1)
 14497  			*v = yyv1
 14498  		}
 14499  		var yymk1 *uint64
 14500  		var yymv1 []string
 14501  		var yymg1, yymdn1 bool
 14502  		if z.DecBasicHandle().MapValueReset {
 14503  			yymg1 = true
 14504  		}
 14505  		if yyl1 != 0 {
 14506  			yyhl1 := yyl1 > 0
 14507  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14508  				z.DecReadMapElemKey()
 14509  				if r.TryNil() {
 14510  					*yymk1 = 0
 14511  				} else {
 14512  					if yymk1 == nil {
 14513  						yymk1 = new(uint64)
 14514  					}
 14515  					*yymk1 = (uint64)(r.DecodeUint64())
 14516  				}
 14517  				if yymg1 {
 14518  					yymv1 = yyv1[yymk1]
 14519  				} else {
 14520  					yymv1 = nil
 14521  				}
 14522  				z.DecReadMapElemValue()
 14523  				yymdn1 = false
 14524  				z.F.DecSliceStringX(&yymv1, d)
 14525  				if yymdn1 {
 14526  					yyv1[yymk1] = nil
 14527  				} else {
 14528  					yyv1[yymk1] = yymv1
 14529  				}
 14530  			}
 14531  		} // else len==0: leave as-is (do not clear map entries)
 14532  		z.DecReadMapEnd()
 14533  	}
 14534  }
 14535  
 14536  func (x codecSelfer19780) encMapstringMapuint64stringUint64T(v map[string]map[uint64]stringUint64T, e *Encoder) {
 14537  	var h codecSelfer19780
 14538  	z, r := GenHelper().Encoder(e)
 14539  	_, _, _ = h, z, r
 14540  	if v == nil {
 14541  		r.EncodeNil()
 14542  	} else if z.EncBasicHandle().Canonical {
 14543  		z.EncEncodeMapNonNil(v)
 14544  	} else {
 14545  		z.EncWriteMapStart(len(v))
 14546  		for yyk1, yyv1 := range v {
 14547  			z.EncWriteMapElemKey()
 14548  			r.EncodeString(string(yyk1))
 14549  			z.EncWriteMapElemValue()
 14550  			if yyv1 == nil {
 14551  				r.EncodeNil()
 14552  			} else {
 14553  				h.encMapuint64stringUint64T((map[uint64]stringUint64T)(yyv1), e)
 14554  			} // end block: if yyv1 map == nil
 14555  		}
 14556  		z.EncWriteMapEnd()
 14557  	}
 14558  }
 14559  
 14560  func (x codecSelfer19780) decMapstringMapuint64stringUint64T(v *map[string]map[uint64]stringUint64T, d *Decoder) {
 14561  	var h codecSelfer19780
 14562  	z, r := GenHelper().Decoder(d)
 14563  	_, _, _ = h, z, r
 14564  
 14565  	yyv1 := *v
 14566  	yyl1 := z.DecReadMapStart()
 14567  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14568  		*v = nil
 14569  	} else {
 14570  		if yyv1 == nil {
 14571  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 14572  			yyv1 = make(map[string]map[uint64]stringUint64T, yyrl1)
 14573  			*v = yyv1
 14574  		}
 14575  		var yymk1 string
 14576  		var yymv1 map[uint64]stringUint64T
 14577  		var yymg1, yymdn1 bool
 14578  		if z.DecBasicHandle().MapValueReset {
 14579  			yymg1 = true
 14580  		}
 14581  		if yyl1 != 0 {
 14582  			yyhl1 := yyl1 > 0
 14583  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14584  				z.DecReadMapElemKey()
 14585  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14586  				if yymg1 {
 14587  					yymv1 = yyv1[yymk1]
 14588  				} else {
 14589  					yymv1 = nil
 14590  				}
 14591  				z.DecReadMapElemValue()
 14592  				yymdn1 = false
 14593  				h.decMapuint64stringUint64T((*map[uint64]stringUint64T)(&yymv1), d)
 14594  				if yymdn1 {
 14595  					yyv1[yymk1] = nil
 14596  				} else {
 14597  					yyv1[yymk1] = yymv1
 14598  				}
 14599  			}
 14600  		} // else len==0: leave as-is (do not clear map entries)
 14601  		z.DecReadMapEnd()
 14602  	}
 14603  }
 14604  
 14605  func (x codecSelfer19780) encMapuint64stringUint64T(v map[uint64]stringUint64T, e *Encoder) {
 14606  	var h codecSelfer19780
 14607  	z, r := GenHelper().Encoder(e)
 14608  	_, _, _ = h, z, r
 14609  	if v == nil {
 14610  		r.EncodeNil()
 14611  	} else if z.EncBasicHandle().Canonical {
 14612  		z.EncEncodeMapNonNil(v)
 14613  	} else {
 14614  		z.EncWriteMapStart(len(v))
 14615  		for yyk1, yyv1 := range v {
 14616  			z.EncWriteMapElemKey()
 14617  			r.EncodeUint(uint64(yyk1))
 14618  			z.EncWriteMapElemValue()
 14619  			yy3 := &yyv1
 14620  			if yyxt4 := z.Extension(yy3); yyxt4 != nil {
 14621  				z.EncExtension(yy3, yyxt4)
 14622  			} else {
 14623  				yy3.CodecEncodeSelf(e)
 14624  			}
 14625  		}
 14626  		z.EncWriteMapEnd()
 14627  	}
 14628  }
 14629  
 14630  func (x codecSelfer19780) decMapuint64stringUint64T(v *map[uint64]stringUint64T, d *Decoder) {
 14631  	var h codecSelfer19780
 14632  	z, r := GenHelper().Decoder(d)
 14633  	_, _, _ = h, z, r
 14634  
 14635  	yyv1 := *v
 14636  	yyl1 := z.DecReadMapStart()
 14637  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14638  		*v = nil
 14639  	} else {
 14640  		if yyv1 == nil {
 14641  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14642  			yyv1 = make(map[uint64]stringUint64T, yyrl1)
 14643  			*v = yyv1
 14644  		}
 14645  		var yymk1 uint64
 14646  		var yymv1 stringUint64T
 14647  		var yymg1, yymdn1 bool
 14648  		if z.DecBasicHandle().MapValueReset {
 14649  			yymg1 = true
 14650  		}
 14651  		if yyl1 != 0 {
 14652  			yyhl1 := yyl1 > 0
 14653  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14654  				z.DecReadMapElemKey()
 14655  				yymk1 = (uint64)(r.DecodeUint64())
 14656  				if yymg1 {
 14657  					yymv1 = yyv1[yymk1]
 14658  				} else {
 14659  					yymv1 = stringUint64T{}
 14660  				}
 14661  				z.DecReadMapElemValue()
 14662  				yymdn1 = false
 14663  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14664  					z.DecExtension(&yymv1, yyxt4)
 14665  				} else {
 14666  					yymv1.CodecDecodeSelf(d)
 14667  				}
 14668  				if yymdn1 {
 14669  					yyv1[yymk1] = stringUint64T{}
 14670  				} else {
 14671  					yyv1[yymk1] = yymv1
 14672  				}
 14673  			}
 14674  		} // else len==0: leave as-is (do not clear map entries)
 14675  		z.DecReadMapEnd()
 14676  	}
 14677  }
 14678  
 14679  func (x codecSelfer19780) encMapintwrapUint64Slice(v map[int]wrapUint64Slice, e *Encoder) {
 14680  	var h codecSelfer19780
 14681  	z, r := GenHelper().Encoder(e)
 14682  	_, _, _ = h, z, r
 14683  	if v == nil {
 14684  		r.EncodeNil()
 14685  	} else if z.EncBasicHandle().Canonical {
 14686  		z.EncEncodeMapNonNil(v)
 14687  	} else {
 14688  		z.EncWriteMapStart(len(v))
 14689  		for yyk1, yyv1 := range v {
 14690  			z.EncWriteMapElemKey()
 14691  			r.EncodeInt(int64(yyk1))
 14692  			z.EncWriteMapElemValue()
 14693  			if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 14694  				z.EncExtension(yyv1, yyxt3)
 14695  			} else {
 14696  				yyv1.CodecEncodeSelf(e)
 14697  			}
 14698  		}
 14699  		z.EncWriteMapEnd()
 14700  	}
 14701  }
 14702  
 14703  func (x codecSelfer19780) decMapintwrapUint64Slice(v *map[int]wrapUint64Slice, d *Decoder) {
 14704  	var h codecSelfer19780
 14705  	z, r := GenHelper().Decoder(d)
 14706  	_, _, _ = h, z, r
 14707  
 14708  	yyv1 := *v
 14709  	yyl1 := z.DecReadMapStart()
 14710  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14711  		*v = nil
 14712  	} else {
 14713  		if yyv1 == nil {
 14714  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14715  			yyv1 = make(map[int]wrapUint64Slice, yyrl1)
 14716  			*v = yyv1
 14717  		}
 14718  		var yymk1 int
 14719  		var yymv1 wrapUint64Slice
 14720  		var yymg1, yymdn1 bool
 14721  		if z.DecBasicHandle().MapValueReset {
 14722  			yymg1 = true
 14723  		}
 14724  		if yyl1 != 0 {
 14725  			yyhl1 := yyl1 > 0
 14726  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14727  				z.DecReadMapElemKey()
 14728  				yymk1 = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
 14729  				if yymg1 {
 14730  					yymv1 = yyv1[yymk1]
 14731  				} else {
 14732  					yymv1 = nil
 14733  				}
 14734  				z.DecReadMapElemValue()
 14735  				yymdn1 = false
 14736  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14737  					z.DecExtension(&yymv1, yyxt4)
 14738  				} else {
 14739  					yymv1.CodecDecodeSelf(d)
 14740  				}
 14741  				if yymdn1 {
 14742  					yyv1[yymk1] = nil
 14743  				} else {
 14744  					yyv1[yymk1] = yymv1
 14745  				}
 14746  			}
 14747  		} // else len==0: leave as-is (do not clear map entries)
 14748  		z.DecReadMapEnd()
 14749  	}
 14750  }
 14751  
 14752  func (x codecSelfer19780) encMapfloat64wrapStringSlice(v map[float64]wrapStringSlice, e *Encoder) {
 14753  	var h codecSelfer19780
 14754  	z, r := GenHelper().Encoder(e)
 14755  	_, _, _ = h, z, r
 14756  	if v == nil {
 14757  		r.EncodeNil()
 14758  	} else if z.EncBasicHandle().Canonical {
 14759  		z.EncEncodeMapNonNil(v)
 14760  	} else {
 14761  		z.EncWriteMapStart(len(v))
 14762  		for yyk1, yyv1 := range v {
 14763  			z.EncWriteMapElemKey()
 14764  			r.EncodeFloat64(float64(yyk1))
 14765  			z.EncWriteMapElemValue()
 14766  			if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 14767  				z.EncExtension(yyv1, yyxt3)
 14768  			} else {
 14769  				yyv1.CodecEncodeSelf(e)
 14770  			}
 14771  		}
 14772  		z.EncWriteMapEnd()
 14773  	}
 14774  }
 14775  
 14776  func (x codecSelfer19780) decMapfloat64wrapStringSlice(v *map[float64]wrapStringSlice, d *Decoder) {
 14777  	var h codecSelfer19780
 14778  	z, r := GenHelper().Decoder(d)
 14779  	_, _, _ = h, z, r
 14780  
 14781  	yyv1 := *v
 14782  	yyl1 := z.DecReadMapStart()
 14783  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14784  		*v = nil
 14785  	} else {
 14786  		if yyv1 == nil {
 14787  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14788  			yyv1 = make(map[float64]wrapStringSlice, yyrl1)
 14789  			*v = yyv1
 14790  		}
 14791  		var yymk1 float64
 14792  		var yymv1 wrapStringSlice
 14793  		var yymg1, yymdn1 bool
 14794  		if z.DecBasicHandle().MapValueReset {
 14795  			yymg1 = true
 14796  		}
 14797  		if yyl1 != 0 {
 14798  			yyhl1 := yyl1 > 0
 14799  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14800  				z.DecReadMapElemKey()
 14801  				yymk1 = (float64)(r.DecodeFloat64())
 14802  				if yymg1 {
 14803  					yymv1 = yyv1[yymk1]
 14804  				} else {
 14805  					yymv1 = nil
 14806  				}
 14807  				z.DecReadMapElemValue()
 14808  				yymdn1 = false
 14809  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14810  					z.DecExtension(&yymv1, yyxt4)
 14811  				} else {
 14812  					yymv1.CodecDecodeSelf(d)
 14813  				}
 14814  				if yymdn1 {
 14815  					yyv1[yymk1] = nil
 14816  				} else {
 14817  					yyv1[yymk1] = yymv1
 14818  				}
 14819  			}
 14820  		} // else len==0: leave as-is (do not clear map entries)
 14821  		z.DecReadMapEnd()
 14822  	}
 14823  }
 14824  
 14825  func (x codecSelfer19780) encMapfloat32wrapStringSlice(v map[float32]wrapStringSlice, e *Encoder) {
 14826  	var h codecSelfer19780
 14827  	z, r := GenHelper().Encoder(e)
 14828  	_, _, _ = h, z, r
 14829  	if v == nil {
 14830  		r.EncodeNil()
 14831  	} else if z.EncBasicHandle().Canonical {
 14832  		z.EncEncodeMapNonNil(v)
 14833  	} else {
 14834  		z.EncWriteMapStart(len(v))
 14835  		for yyk1, yyv1 := range v {
 14836  			z.EncWriteMapElemKey()
 14837  			r.EncodeFloat32(float32(yyk1))
 14838  			z.EncWriteMapElemValue()
 14839  			if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 14840  				z.EncExtension(yyv1, yyxt3)
 14841  			} else {
 14842  				yyv1.CodecEncodeSelf(e)
 14843  			}
 14844  		}
 14845  		z.EncWriteMapEnd()
 14846  	}
 14847  }
 14848  
 14849  func (x codecSelfer19780) decMapfloat32wrapStringSlice(v *map[float32]wrapStringSlice, d *Decoder) {
 14850  	var h codecSelfer19780
 14851  	z, r := GenHelper().Decoder(d)
 14852  	_, _, _ = h, z, r
 14853  
 14854  	yyv1 := *v
 14855  	yyl1 := z.DecReadMapStart()
 14856  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14857  		*v = nil
 14858  	} else {
 14859  		if yyv1 == nil {
 14860  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 28)
 14861  			yyv1 = make(map[float32]wrapStringSlice, yyrl1)
 14862  			*v = yyv1
 14863  		}
 14864  		var yymk1 float32
 14865  		var yymv1 wrapStringSlice
 14866  		var yymg1, yymdn1 bool
 14867  		if z.DecBasicHandle().MapValueReset {
 14868  			yymg1 = true
 14869  		}
 14870  		if yyl1 != 0 {
 14871  			yyhl1 := yyl1 > 0
 14872  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14873  				z.DecReadMapElemKey()
 14874  				yymk1 = (float32)(z.DecDecodeFloat32())
 14875  				if yymg1 {
 14876  					yymv1 = yyv1[yymk1]
 14877  				} else {
 14878  					yymv1 = nil
 14879  				}
 14880  				z.DecReadMapElemValue()
 14881  				yymdn1 = false
 14882  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14883  					z.DecExtension(&yymv1, yyxt4)
 14884  				} else {
 14885  					yymv1.CodecDecodeSelf(d)
 14886  				}
 14887  				if yymdn1 {
 14888  					yyv1[yymk1] = nil
 14889  				} else {
 14890  					yyv1[yymk1] = yymv1
 14891  				}
 14892  			}
 14893  		} // else len==0: leave as-is (do not clear map entries)
 14894  		z.DecReadMapEnd()
 14895  	}
 14896  }
 14897  
 14898  func (x codecSelfer19780) encMapuint64wrapStringSlice(v map[uint64]wrapStringSlice, e *Encoder) {
 14899  	var h codecSelfer19780
 14900  	z, r := GenHelper().Encoder(e)
 14901  	_, _, _ = h, z, r
 14902  	if v == nil {
 14903  		r.EncodeNil()
 14904  	} else if z.EncBasicHandle().Canonical {
 14905  		z.EncEncodeMapNonNil(v)
 14906  	} else {
 14907  		z.EncWriteMapStart(len(v))
 14908  		for yyk1, yyv1 := range v {
 14909  			z.EncWriteMapElemKey()
 14910  			r.EncodeUint(uint64(yyk1))
 14911  			z.EncWriteMapElemValue()
 14912  			if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 14913  				z.EncExtension(yyv1, yyxt3)
 14914  			} else {
 14915  				yyv1.CodecEncodeSelf(e)
 14916  			}
 14917  		}
 14918  		z.EncWriteMapEnd()
 14919  	}
 14920  }
 14921  
 14922  func (x codecSelfer19780) decMapuint64wrapStringSlice(v *map[uint64]wrapStringSlice, d *Decoder) {
 14923  	var h codecSelfer19780
 14924  	z, r := GenHelper().Decoder(d)
 14925  	_, _, _ = h, z, r
 14926  
 14927  	yyv1 := *v
 14928  	yyl1 := z.DecReadMapStart()
 14929  	if yyl1 == codecSelferDecContainerLenNil19780 {
 14930  		*v = nil
 14931  	} else {
 14932  		if yyv1 == nil {
 14933  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 14934  			yyv1 = make(map[uint64]wrapStringSlice, yyrl1)
 14935  			*v = yyv1
 14936  		}
 14937  		var yymk1 uint64
 14938  		var yymv1 wrapStringSlice
 14939  		var yymg1, yymdn1 bool
 14940  		if z.DecBasicHandle().MapValueReset {
 14941  			yymg1 = true
 14942  		}
 14943  		if yyl1 != 0 {
 14944  			yyhl1 := yyl1 > 0
 14945  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 14946  				z.DecReadMapElemKey()
 14947  				yymk1 = (uint64)(r.DecodeUint64())
 14948  				if yymg1 {
 14949  					yymv1 = yyv1[yymk1]
 14950  				} else {
 14951  					yymv1 = nil
 14952  				}
 14953  				z.DecReadMapElemValue()
 14954  				yymdn1 = false
 14955  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 14956  					z.DecExtension(&yymv1, yyxt4)
 14957  				} else {
 14958  					yymv1.CodecDecodeSelf(d)
 14959  				}
 14960  				if yymdn1 {
 14961  					yyv1[yymk1] = nil
 14962  				} else {
 14963  					yyv1[yymk1] = yymv1
 14964  				}
 14965  			}
 14966  		} // else len==0: leave as-is (do not clear map entries)
 14967  		z.DecReadMapEnd()
 14968  	}
 14969  }
 14970  
 14971  func (x codecSelfer19780) encMapstringUint64TwrapStringSlice(v map[stringUint64T]wrapStringSlice, e *Encoder) {
 14972  	var h codecSelfer19780
 14973  	z, r := GenHelper().Encoder(e)
 14974  	_, _, _ = h, z, r
 14975  	if v == nil {
 14976  		r.EncodeNil()
 14977  	} else if z.EncBasicHandle().Canonical {
 14978  		z.EncEncodeMapNonNil(v)
 14979  	} else {
 14980  		z.EncWriteMapStart(len(v))
 14981  		for yyk1, yyv1 := range v {
 14982  			z.EncWriteMapElemKey()
 14983  			yy2 := &yyk1
 14984  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 14985  				z.EncExtension(yy2, yyxt3)
 14986  			} else {
 14987  				yy2.CodecEncodeSelf(e)
 14988  			}
 14989  			z.EncWriteMapElemValue()
 14990  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 14991  				z.EncExtension(yyv1, yyxt4)
 14992  			} else {
 14993  				yyv1.CodecEncodeSelf(e)
 14994  			}
 14995  		}
 14996  		z.EncWriteMapEnd()
 14997  	}
 14998  }
 14999  
 15000  func (x codecSelfer19780) decMapstringUint64TwrapStringSlice(v *map[stringUint64T]wrapStringSlice, d *Decoder) {
 15001  	var h codecSelfer19780
 15002  	z, r := GenHelper().Decoder(d)
 15003  	_, _, _ = h, z, r
 15004  
 15005  	yyv1 := *v
 15006  	yyl1 := z.DecReadMapStart()
 15007  	if yyl1 == codecSelferDecContainerLenNil19780 {
 15008  		*v = nil
 15009  	} else {
 15010  		if yyv1 == nil {
 15011  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 48)
 15012  			yyv1 = make(map[stringUint64T]wrapStringSlice, yyrl1)
 15013  			*v = yyv1
 15014  		}
 15015  		var yymk1 stringUint64T
 15016  		var yymv1 wrapStringSlice
 15017  		var yymg1, yymdn1 bool
 15018  		if z.DecBasicHandle().MapValueReset {
 15019  			yymg1 = true
 15020  		}
 15021  		if yyl1 != 0 {
 15022  			yyhl1 := yyl1 > 0
 15023  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 15024  				z.DecReadMapElemKey()
 15025  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 15026  					z.DecExtension(&yymk1, yyxt3)
 15027  				} else {
 15028  					yymk1.CodecDecodeSelf(d)
 15029  				}
 15030  				if yymg1 {
 15031  					yymv1 = yyv1[yymk1]
 15032  				} else {
 15033  					yymv1 = nil
 15034  				}
 15035  				z.DecReadMapElemValue()
 15036  				yymdn1 = false
 15037  				if yyxt5 := z.Extension(yymv1); yyxt5 != nil {
 15038  					z.DecExtension(&yymv1, yyxt5)
 15039  				} else {
 15040  					yymv1.CodecDecodeSelf(d)
 15041  				}
 15042  				if yymdn1 {
 15043  					yyv1[yymk1] = nil
 15044  				} else {
 15045  					yyv1[yymk1] = yymv1
 15046  				}
 15047  			}
 15048  		} // else len==0: leave as-is (do not clear map entries)
 15049  		z.DecReadMapEnd()
 15050  	}
 15051  }
 15052  
 15053  func (x codecSelfer19780) encSlicewrapBytes(v []wrapBytes, e *Encoder) {
 15054  	var h codecSelfer19780
 15055  	z, r := GenHelper().Encoder(e)
 15056  	_, _, _ = h, z, r
 15057  	if v == nil {
 15058  		r.EncodeNil()
 15059  		return
 15060  	}
 15061  	z.EncWriteArrayStart(len(v))
 15062  	for yyv1 := range v {
 15063  		z.EncWriteArrayElem()
 15064  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 15065  			z.EncExtension(v[yyv1], yyxt2)
 15066  		} else {
 15067  			v[yyv1].CodecEncodeSelf(e)
 15068  		}
 15069  	}
 15070  	z.EncWriteArrayEnd()
 15071  }
 15072  
 15073  func (x codecSelfer19780) decSlicewrapBytes(v *[]wrapBytes, d *Decoder) {
 15074  	var h codecSelfer19780
 15075  	z, r := GenHelper().Decoder(d)
 15076  	_, _, _ = h, z, r
 15077  
 15078  	yyv1 := *v
 15079  	yyh1, yyl1 := z.DecSliceHelperStart()
 15080  	var yyc1 bool
 15081  	_ = yyc1
 15082  	if yyh1.IsNil {
 15083  		if yyv1 != nil {
 15084  			yyv1 = nil
 15085  			yyc1 = true
 15086  		}
 15087  	} else if yyl1 == 0 {
 15088  		if yyv1 == nil {
 15089  			yyv1 = []wrapBytes{}
 15090  			yyc1 = true
 15091  		} else if len(yyv1) != 0 {
 15092  			yyv1 = yyv1[:0]
 15093  			yyc1 = true
 15094  		}
 15095  	} else {
 15096  		yyhl1 := yyl1 > 0
 15097  		var yyrl1 int
 15098  		_ = yyrl1
 15099  		if yyhl1 {
 15100  			if yyl1 > cap(yyv1) {
 15101  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 15102  				if yyrl1 <= cap(yyv1) {
 15103  					yyv1 = yyv1[:yyrl1]
 15104  				} else {
 15105  					yyv1 = make([]wrapBytes, yyrl1)
 15106  				}
 15107  				yyc1 = true
 15108  			} else if yyl1 != len(yyv1) {
 15109  				yyv1 = yyv1[:yyl1]
 15110  				yyc1 = true
 15111  			}
 15112  		}
 15113  		var yyj1 int
 15114  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15115  			if yyj1 == 0 && yyv1 == nil {
 15116  				if yyhl1 {
 15117  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 15118  				} else {
 15119  					yyrl1 = 8
 15120  				}
 15121  				yyv1 = make([]wrapBytes, yyrl1)
 15122  				yyc1 = true
 15123  			}
 15124  			yyh1.ElemContainerState(yyj1)
 15125  			var yydb1 bool
 15126  			if yyj1 >= len(yyv1) {
 15127  				yyv1 = append(yyv1, nil)
 15128  				yyc1 = true
 15129  			}
 15130  			if yydb1 {
 15131  				z.DecSwallow()
 15132  			} else {
 15133  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15134  					z.DecExtension(&yyv1[yyj1], yyxt3)
 15135  				} else {
 15136  					yyv1[yyj1].CodecDecodeSelf(d)
 15137  				}
 15138  			}
 15139  		}
 15140  		if yyj1 < len(yyv1) {
 15141  			yyv1 = yyv1[:yyj1]
 15142  			yyc1 = true
 15143  		} else if yyj1 == 0 && yyv1 == nil {
 15144  			yyv1 = make([]wrapBytes, 0)
 15145  			yyc1 = true
 15146  		}
 15147  	}
 15148  	yyh1.End()
 15149  	if yyc1 {
 15150  		*v = yyv1
 15151  	}
 15152  }
 15153  
 15154  func (x codecSelfer19780) encSlicewrapUint8(v []wrapUint8, e *Encoder) {
 15155  	var h codecSelfer19780
 15156  	z, r := GenHelper().Encoder(e)
 15157  	_, _, _ = h, z, r
 15158  	if v == nil {
 15159  		r.EncodeNil()
 15160  		return
 15161  	}
 15162  	z.EncWriteArrayStart(len(v))
 15163  	for yyv1 := range v {
 15164  		z.EncWriteArrayElem()
 15165  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 15166  			z.EncExtension(v[yyv1], yyxt2)
 15167  		} else {
 15168  			v[yyv1].CodecEncodeSelf(e)
 15169  		}
 15170  	}
 15171  	z.EncWriteArrayEnd()
 15172  }
 15173  
 15174  func (x codecSelfer19780) decSlicewrapUint8(v *[]wrapUint8, d *Decoder) {
 15175  	var h codecSelfer19780
 15176  	z, r := GenHelper().Decoder(d)
 15177  	_, _, _ = h, z, r
 15178  
 15179  	yyv1 := *v
 15180  	yyh1, yyl1 := z.DecSliceHelperStart()
 15181  	var yyc1 bool
 15182  	_ = yyc1
 15183  	if yyh1.IsNil {
 15184  		if yyv1 != nil {
 15185  			yyv1 = nil
 15186  			yyc1 = true
 15187  		}
 15188  	} else if yyl1 == 0 {
 15189  		if yyv1 == nil {
 15190  			yyv1 = []wrapUint8{}
 15191  			yyc1 = true
 15192  		} else if len(yyv1) != 0 {
 15193  			yyv1 = yyv1[:0]
 15194  			yyc1 = true
 15195  		}
 15196  	} else {
 15197  		yyhl1 := yyl1 > 0
 15198  		var yyrl1 int
 15199  		_ = yyrl1
 15200  		if yyhl1 {
 15201  			if yyl1 > cap(yyv1) {
 15202  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 15203  				if yyrl1 <= cap(yyv1) {
 15204  					yyv1 = yyv1[:yyrl1]
 15205  				} else {
 15206  					yyv1 = make([]wrapUint8, yyrl1)
 15207  				}
 15208  				yyc1 = true
 15209  			} else if yyl1 != len(yyv1) {
 15210  				yyv1 = yyv1[:yyl1]
 15211  				yyc1 = true
 15212  			}
 15213  		}
 15214  		var yyj1 int
 15215  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15216  			if yyj1 == 0 && yyv1 == nil {
 15217  				if yyhl1 {
 15218  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 15219  				} else {
 15220  					yyrl1 = 8
 15221  				}
 15222  				yyv1 = make([]wrapUint8, yyrl1)
 15223  				yyc1 = true
 15224  			}
 15225  			yyh1.ElemContainerState(yyj1)
 15226  			var yydb1 bool
 15227  			if yyj1 >= len(yyv1) {
 15228  				yyv1 = append(yyv1, 0)
 15229  				yyc1 = true
 15230  			}
 15231  			if yydb1 {
 15232  				z.DecSwallow()
 15233  			} else {
 15234  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15235  					z.DecExtension(&yyv1[yyj1], yyxt3)
 15236  				} else {
 15237  					yyv1[yyj1].CodecDecodeSelf(d)
 15238  				}
 15239  			}
 15240  		}
 15241  		if yyj1 < len(yyv1) {
 15242  			yyv1 = yyv1[:yyj1]
 15243  			yyc1 = true
 15244  		} else if yyj1 == 0 && yyv1 == nil {
 15245  			yyv1 = make([]wrapUint8, 0)
 15246  			yyc1 = true
 15247  		}
 15248  	}
 15249  	yyh1.End()
 15250  	if yyc1 {
 15251  		*v = yyv1
 15252  	}
 15253  }
 15254  
 15255  func (x codecSelfer19780) encArray4stringUint64T(v *[4]stringUint64T, e *Encoder) {
 15256  	var h codecSelfer19780
 15257  	z, r := GenHelper().Encoder(e)
 15258  	_, _, _ = h, z, r
 15259  	if v == nil {
 15260  		r.EncodeNil()
 15261  		return
 15262  	}
 15263  	z.EncWriteArrayStart(len(v))
 15264  	for yyv1 := range v {
 15265  		z.EncWriteArrayElem()
 15266  		yy2 := &v[yyv1]
 15267  		if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 15268  			z.EncExtension(yy2, yyxt3)
 15269  		} else {
 15270  			yy2.CodecEncodeSelf(e)
 15271  		}
 15272  	}
 15273  	z.EncWriteArrayEnd()
 15274  }
 15275  
 15276  func (x codecSelfer19780) decArray4stringUint64T(v *[4]stringUint64T, d *Decoder) {
 15277  	var h codecSelfer19780
 15278  	z, r := GenHelper().Decoder(d)
 15279  	_, _, _ = h, z, r
 15280  
 15281  	yyv1 := v
 15282  	yyh1, yyl1 := z.DecSliceHelperStart()
 15283  	if yyl1 == 0 {
 15284  	} else {
 15285  		yyhl1 := yyl1 > 0
 15286  		var yyrl1 int
 15287  		_ = yyrl1
 15288  		var yyj1 int
 15289  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15290  			yyh1.ElemContainerState(yyj1)
 15291  			var yydb1 bool
 15292  			if yyj1 >= len(yyv1) {
 15293  				z.DecArrayCannotExpand(len(v), yyj1+1)
 15294  				yydb1 = true
 15295  			}
 15296  			if yydb1 {
 15297  				z.DecSwallow()
 15298  			} else {
 15299  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15300  					z.DecExtension(&yyv1[yyj1], yyxt3)
 15301  				} else {
 15302  					yyv1[yyj1].CodecDecodeSelf(d)
 15303  				}
 15304  			}
 15305  		}
 15306  	}
 15307  	yyh1.End()
 15308  }
 15309  
 15310  func (x codecSelfer19780) encArray4uint64(v *[4]uint64, e *Encoder) {
 15311  	var h codecSelfer19780
 15312  	z, r := GenHelper().Encoder(e)
 15313  	_, _, _ = h, z, r
 15314  	if v == nil {
 15315  		r.EncodeNil()
 15316  		return
 15317  	}
 15318  	z.EncWriteArrayStart(len(v))
 15319  	for yyv1 := range v {
 15320  		z.EncWriteArrayElem()
 15321  		r.EncodeUint(uint64(v[yyv1]))
 15322  	}
 15323  	z.EncWriteArrayEnd()
 15324  }
 15325  
 15326  func (x codecSelfer19780) decArray4uint64(v *[4]uint64, d *Decoder) {
 15327  	var h codecSelfer19780
 15328  	z, r := GenHelper().Decoder(d)
 15329  	_, _, _ = h, z, r
 15330  
 15331  	yyv1 := v
 15332  	yyh1, yyl1 := z.DecSliceHelperStart()
 15333  	if yyl1 == 0 {
 15334  	} else {
 15335  		yyhl1 := yyl1 > 0
 15336  		var yyrl1 int
 15337  		_ = yyrl1
 15338  		var yyj1 int
 15339  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15340  			yyh1.ElemContainerState(yyj1)
 15341  			var yydb1 bool
 15342  			if yyj1 >= len(yyv1) {
 15343  				z.DecArrayCannotExpand(len(v), yyj1+1)
 15344  				yydb1 = true
 15345  			}
 15346  			if yydb1 {
 15347  				z.DecSwallow()
 15348  			} else {
 15349  				yyv1[yyj1] = (uint64)(r.DecodeUint64())
 15350  			}
 15351  		}
 15352  	}
 15353  	yyh1.End()
 15354  }
 15355  
 15356  func (x codecSelfer19780) encSlicePtrtoArray4uint64(v []*[4]uint64, e *Encoder) {
 15357  	var h codecSelfer19780
 15358  	z, r := GenHelper().Encoder(e)
 15359  	_, _, _ = h, z, r
 15360  	if v == nil {
 15361  		r.EncodeNil()
 15362  		return
 15363  	}
 15364  	z.EncWriteArrayStart(len(v))
 15365  	for yyv1 := range v {
 15366  		z.EncWriteArrayElem()
 15367  		if v[yyv1] == nil {
 15368  			r.EncodeNil()
 15369  		} else {
 15370  			h.encArray4uint64((*[4]uint64)(v[yyv1]), e)
 15371  		}
 15372  	}
 15373  	z.EncWriteArrayEnd()
 15374  }
 15375  
 15376  func (x codecSelfer19780) decSlicePtrtoArray4uint64(v *[]*[4]uint64, d *Decoder) {
 15377  	var h codecSelfer19780
 15378  	z, r := GenHelper().Decoder(d)
 15379  	_, _, _ = h, z, r
 15380  
 15381  	yyv1 := *v
 15382  	yyh1, yyl1 := z.DecSliceHelperStart()
 15383  	var yyc1 bool
 15384  	_ = yyc1
 15385  	if yyh1.IsNil {
 15386  		if yyv1 != nil {
 15387  			yyv1 = nil
 15388  			yyc1 = true
 15389  		}
 15390  	} else if yyl1 == 0 {
 15391  		if yyv1 == nil {
 15392  			yyv1 = []*[4]uint64{}
 15393  			yyc1 = true
 15394  		} else if len(yyv1) != 0 {
 15395  			yyv1 = yyv1[:0]
 15396  			yyc1 = true
 15397  		}
 15398  	} else {
 15399  		yyhl1 := yyl1 > 0
 15400  		var yyrl1 int
 15401  		_ = yyrl1
 15402  		if yyhl1 {
 15403  			if yyl1 > cap(yyv1) {
 15404  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15405  				if yyrl1 <= cap(yyv1) {
 15406  					yyv1 = yyv1[:yyrl1]
 15407  				} else {
 15408  					yyv1 = make([]*[4]uint64, yyrl1)
 15409  				}
 15410  				yyc1 = true
 15411  			} else if yyl1 != len(yyv1) {
 15412  				yyv1 = yyv1[:yyl1]
 15413  				yyc1 = true
 15414  			}
 15415  		}
 15416  		var yyj1 int
 15417  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15418  			if yyj1 == 0 && yyv1 == nil {
 15419  				if yyhl1 {
 15420  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15421  				} else {
 15422  					yyrl1 = 8
 15423  				}
 15424  				yyv1 = make([]*[4]uint64, yyrl1)
 15425  				yyc1 = true
 15426  			}
 15427  			yyh1.ElemContainerState(yyj1)
 15428  			var yydb1 bool
 15429  			if yyj1 >= len(yyv1) {
 15430  				yyv1 = append(yyv1, nil)
 15431  				yyc1 = true
 15432  			}
 15433  			if yydb1 {
 15434  				z.DecSwallow()
 15435  			} else {
 15436  				if r.TryNil() {
 15437  					yyv1[yyj1] = nil
 15438  				} else {
 15439  					if yyv1[yyj1] == nil {
 15440  						yyv1[yyj1] = new([4]uint64)
 15441  					}
 15442  					h.decArray4uint64((*[4]uint64)(yyv1[yyj1]), d)
 15443  				}
 15444  			}
 15445  		}
 15446  		if yyj1 < len(yyv1) {
 15447  			yyv1 = yyv1[:yyj1]
 15448  			yyc1 = true
 15449  		} else if yyj1 == 0 && yyv1 == nil {
 15450  			yyv1 = make([]*[4]uint64, 0)
 15451  			yyc1 = true
 15452  		}
 15453  	}
 15454  	yyh1.End()
 15455  	if yyc1 {
 15456  		*v = yyv1
 15457  	}
 15458  }
 15459  
 15460  func (x codecSelfer19780) encMapstringUint64TPtrtostringUint64T(v map[stringUint64T]*stringUint64T, e *Encoder) {
 15461  	var h codecSelfer19780
 15462  	z, r := GenHelper().Encoder(e)
 15463  	_, _, _ = h, z, r
 15464  	if v == nil {
 15465  		r.EncodeNil()
 15466  	} else if z.EncBasicHandle().Canonical {
 15467  		z.EncEncodeMapNonNil(v)
 15468  	} else {
 15469  		z.EncWriteMapStart(len(v))
 15470  		for yyk1, yyv1 := range v {
 15471  			z.EncWriteMapElemKey()
 15472  			yy2 := &yyk1
 15473  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 15474  				z.EncExtension(yy2, yyxt3)
 15475  			} else {
 15476  				yy2.CodecEncodeSelf(e)
 15477  			}
 15478  			z.EncWriteMapElemValue()
 15479  			if yyv1 == nil {
 15480  				r.EncodeNil()
 15481  			} else {
 15482  				if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 15483  					z.EncExtension(yyv1, yyxt4)
 15484  				} else {
 15485  					yyv1.CodecEncodeSelf(e)
 15486  				}
 15487  			}
 15488  		}
 15489  		z.EncWriteMapEnd()
 15490  	}
 15491  }
 15492  
 15493  func (x codecSelfer19780) decMapstringUint64TPtrtostringUint64T(v *map[stringUint64T]*stringUint64T, d *Decoder) {
 15494  	var h codecSelfer19780
 15495  	z, r := GenHelper().Decoder(d)
 15496  	_, _, _ = h, z, r
 15497  
 15498  	yyv1 := *v
 15499  	yyl1 := z.DecReadMapStart()
 15500  	if yyl1 == codecSelferDecContainerLenNil19780 {
 15501  		*v = nil
 15502  	} else {
 15503  		if yyv1 == nil {
 15504  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 15505  			yyv1 = make(map[stringUint64T]*stringUint64T, yyrl1)
 15506  			*v = yyv1
 15507  		}
 15508  		var yymk1 stringUint64T
 15509  		var yymv1 *stringUint64T
 15510  		var yymg1, yymdn1, yyms1, yymok1 bool
 15511  		if z.DecBasicHandle().MapValueReset {
 15512  			yymg1 = true
 15513  		}
 15514  		if yyl1 != 0 {
 15515  			yyhl1 := yyl1 > 0
 15516  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 15517  				z.DecReadMapElemKey()
 15518  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 15519  					z.DecExtension(&yymk1, yyxt3)
 15520  				} else {
 15521  					yymk1.CodecDecodeSelf(d)
 15522  				}
 15523  				yyms1 = true
 15524  				if yymg1 {
 15525  					yymv1, yymok1 = yyv1[yymk1]
 15526  					if yymok1 {
 15527  						yyms1 = false
 15528  					}
 15529  				} else {
 15530  					yymv1 = nil
 15531  				}
 15532  				z.DecReadMapElemValue()
 15533  				yymdn1 = false
 15534  				if r.TryNil() {
 15535  					yymdn1 = true
 15536  				} else {
 15537  					if yymv1 == nil {
 15538  						yymv1 = new(stringUint64T)
 15539  					}
 15540  					if yyxt5 := z.Extension(yymv1); yyxt5 != nil {
 15541  						z.DecExtension(yymv1, yyxt5)
 15542  					} else {
 15543  						yymv1.CodecDecodeSelf(d)
 15544  					}
 15545  				}
 15546  				if yymdn1 {
 15547  					yyv1[yymk1] = nil
 15548  				} else if yyms1 {
 15549  					yyv1[yymk1] = yymv1
 15550  				}
 15551  			}
 15552  		} // else len==0: leave as-is (do not clear map entries)
 15553  		z.DecReadMapEnd()
 15554  	}
 15555  }
 15556  
 15557  func (x codecSelfer19780) encMapwrapStringInterface(v map[wrapString]interface{}, e *Encoder) {
 15558  	var h codecSelfer19780
 15559  	z, r := GenHelper().Encoder(e)
 15560  	_, _, _ = h, z, r
 15561  	if v == nil {
 15562  		r.EncodeNil()
 15563  	} else if z.EncBasicHandle().Canonical {
 15564  		z.EncEncodeMapNonNil(v)
 15565  	} else {
 15566  		z.EncWriteMapStart(len(v))
 15567  		for yyk1, yyv1 := range v {
 15568  			z.EncWriteMapElemKey()
 15569  			if yyxt2 := z.Extension(yyk1); yyxt2 != nil {
 15570  				z.EncExtension(yyk1, yyxt2)
 15571  			} else {
 15572  				yyk1.CodecEncodeSelf(e)
 15573  			}
 15574  			z.EncWriteMapElemValue()
 15575  			if yyv1 == nil {
 15576  				r.EncodeNil()
 15577  			} else {
 15578  				z.EncFallback(yyv1)
 15579  			}
 15580  		}
 15581  		z.EncWriteMapEnd()
 15582  	}
 15583  }
 15584  
 15585  func (x codecSelfer19780) decMapwrapStringInterface(v *map[wrapString]interface{}, d *Decoder) {
 15586  	var h codecSelfer19780
 15587  	z, r := GenHelper().Decoder(d)
 15588  	_, _, _ = h, z, r
 15589  
 15590  	yyv1 := *v
 15591  	yyl1 := z.DecReadMapStart()
 15592  	if yyl1 == codecSelferDecContainerLenNil19780 {
 15593  		*v = nil
 15594  	} else {
 15595  		if yyv1 == nil {
 15596  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 15597  			yyv1 = make(map[wrapString]interface{}, yyrl1)
 15598  			*v = yyv1
 15599  		}
 15600  		var yymk1 wrapString
 15601  		var yymv1 interface{}
 15602  		var yymg1, yymdn1 bool
 15603  		if z.DecBasicHandle().MapValueReset {
 15604  			if !z.DecBasicHandle().InterfaceReset {
 15605  				yymg1 = true
 15606  			}
 15607  		}
 15608  		if yyl1 != 0 {
 15609  			yyhl1 := yyl1 > 0
 15610  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 15611  				z.DecReadMapElemKey()
 15612  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 15613  					z.DecExtension(&yymk1, yyxt3)
 15614  				} else {
 15615  					yymk1.CodecDecodeSelf(d)
 15616  				}
 15617  				if yymg1 {
 15618  					yymv1 = yyv1[yymk1]
 15619  				} else {
 15620  					yymv1 = nil
 15621  				}
 15622  				z.DecReadMapElemValue()
 15623  				yymdn1 = false
 15624  				z.DecFallback(&yymv1, true)
 15625  				if yymdn1 {
 15626  					yyv1[yymk1] = nil
 15627  				} else {
 15628  					yyv1[yymk1] = yymv1
 15629  				}
 15630  			}
 15631  		} // else len==0: leave as-is (do not clear map entries)
 15632  		z.DecReadMapEnd()
 15633  	}
 15634  }
 15635  
 15636  func (x codecSelfer19780) encMapstringPtrtoTestStrucFlex(v map[string]*TestStrucFlex, e *Encoder) {
 15637  	var h codecSelfer19780
 15638  	z, r := GenHelper().Encoder(e)
 15639  	_, _, _ = h, z, r
 15640  	if v == nil {
 15641  		r.EncodeNil()
 15642  	} else if z.EncBasicHandle().Canonical {
 15643  		z.EncEncodeMapNonNil(v)
 15644  	} else {
 15645  		z.EncWriteMapStart(len(v))
 15646  		for yyk1, yyv1 := range v {
 15647  			z.EncWriteMapElemKey()
 15648  			r.EncodeString(string(yyk1))
 15649  			z.EncWriteMapElemValue()
 15650  			if yyv1 == nil {
 15651  				r.EncodeNil()
 15652  			} else {
 15653  				if yyxt3 := z.Extension(yyv1); yyxt3 != nil {
 15654  					z.EncExtension(yyv1, yyxt3)
 15655  				} else {
 15656  					yyv1.CodecEncodeSelf(e)
 15657  				}
 15658  			}
 15659  		}
 15660  		z.EncWriteMapEnd()
 15661  	}
 15662  }
 15663  
 15664  func (x codecSelfer19780) decMapstringPtrtoTestStrucFlex(v *map[string]*TestStrucFlex, d *Decoder) {
 15665  	var h codecSelfer19780
 15666  	z, r := GenHelper().Decoder(d)
 15667  	_, _, _ = h, z, r
 15668  
 15669  	yyv1 := *v
 15670  	yyl1 := z.DecReadMapStart()
 15671  	if yyl1 == codecSelferDecContainerLenNil19780 {
 15672  		*v = nil
 15673  	} else {
 15674  		if yyv1 == nil {
 15675  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 15676  			yyv1 = make(map[string]*TestStrucFlex, yyrl1)
 15677  			*v = yyv1
 15678  		}
 15679  		var yymk1 string
 15680  		var yymv1 *TestStrucFlex
 15681  		var yymg1, yymdn1, yyms1, yymok1 bool
 15682  		if z.DecBasicHandle().MapValueReset {
 15683  			yymg1 = true
 15684  		}
 15685  		if yyl1 != 0 {
 15686  			yyhl1 := yyl1 > 0
 15687  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 15688  				z.DecReadMapElemKey()
 15689  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 15690  				yyms1 = true
 15691  				if yymg1 {
 15692  					yymv1, yymok1 = yyv1[yymk1]
 15693  					if yymok1 {
 15694  						yyms1 = false
 15695  					}
 15696  				} else {
 15697  					yymv1 = nil
 15698  				}
 15699  				z.DecReadMapElemValue()
 15700  				yymdn1 = false
 15701  				if r.TryNil() {
 15702  					yymdn1 = true
 15703  				} else {
 15704  					if yymv1 == nil {
 15705  						yymv1 = new(TestStrucFlex)
 15706  					}
 15707  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 15708  						z.DecExtension(yymv1, yyxt4)
 15709  					} else {
 15710  						yymv1.CodecDecodeSelf(d)
 15711  					}
 15712  				}
 15713  				if yymdn1 {
 15714  					yyv1[yymk1] = nil
 15715  				} else if yyms1 {
 15716  					yyv1[yymk1] = yymv1
 15717  				}
 15718  			}
 15719  		} // else len==0: leave as-is (do not clear map entries)
 15720  		z.DecReadMapEnd()
 15721  	}
 15722  }
 15723  
 15724  func (x codecSelfer19780) encMapstringTestStrucFlex(v map[string]TestStrucFlex, e *Encoder) {
 15725  	var h codecSelfer19780
 15726  	z, r := GenHelper().Encoder(e)
 15727  	_, _, _ = h, z, r
 15728  	if v == nil {
 15729  		r.EncodeNil()
 15730  	} else if z.EncBasicHandle().Canonical {
 15731  		z.EncEncodeMapNonNil(v)
 15732  	} else {
 15733  		z.EncWriteMapStart(len(v))
 15734  		for yyk1, yyv1 := range v {
 15735  			z.EncWriteMapElemKey()
 15736  			r.EncodeString(string(yyk1))
 15737  			z.EncWriteMapElemValue()
 15738  			yy3 := &yyv1
 15739  			if yyxt4 := z.Extension(yy3); yyxt4 != nil {
 15740  				z.EncExtension(yy3, yyxt4)
 15741  			} else {
 15742  				yy3.CodecEncodeSelf(e)
 15743  			}
 15744  		}
 15745  		z.EncWriteMapEnd()
 15746  	}
 15747  }
 15748  
 15749  func (x codecSelfer19780) decMapstringTestStrucFlex(v *map[string]TestStrucFlex, d *Decoder) {
 15750  	var h codecSelfer19780
 15751  	z, r := GenHelper().Decoder(d)
 15752  	_, _, _ = h, z, r
 15753  
 15754  	yyv1 := *v
 15755  	yyl1 := z.DecReadMapStart()
 15756  	if yyl1 == codecSelferDecContainerLenNil19780 {
 15757  		*v = nil
 15758  	} else {
 15759  		if yyv1 == nil {
 15760  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1864)
 15761  			yyv1 = make(map[string]TestStrucFlex, yyrl1)
 15762  			*v = yyv1
 15763  		}
 15764  		var yymk1 string
 15765  		var yymv1 TestStrucFlex
 15766  		var yymg1, yymdn1 bool
 15767  		if z.DecBasicHandle().MapValueReset {
 15768  			yymg1 = true
 15769  		}
 15770  		if yyl1 != 0 {
 15771  			yyhl1 := yyl1 > 0
 15772  			for yyj1 := 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ {
 15773  				z.DecReadMapElemKey()
 15774  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 15775  				if yymg1 {
 15776  					yymv1 = yyv1[yymk1]
 15777  				} else {
 15778  					yymv1 = TestStrucFlex{}
 15779  				}
 15780  				z.DecReadMapElemValue()
 15781  				yymdn1 = false
 15782  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 15783  					z.DecExtension(&yymv1, yyxt4)
 15784  				} else {
 15785  					yymv1.CodecDecodeSelf(d)
 15786  				}
 15787  				if yymdn1 {
 15788  					yyv1[yymk1] = TestStrucFlex{}
 15789  				} else {
 15790  					yyv1[yymk1] = yymv1
 15791  				}
 15792  			}
 15793  		} // else len==0: leave as-is (do not clear map entries)
 15794  		z.DecReadMapEnd()
 15795  	}
 15796  }
 15797  
 15798  func (x codecSelfer19780) encSlicePtrtoTestStrucFlex(v []*TestStrucFlex, e *Encoder) {
 15799  	var h codecSelfer19780
 15800  	z, r := GenHelper().Encoder(e)
 15801  	_, _, _ = h, z, r
 15802  	if v == nil {
 15803  		r.EncodeNil()
 15804  		return
 15805  	}
 15806  	z.EncWriteArrayStart(len(v))
 15807  	for yyv1 := range v {
 15808  		z.EncWriteArrayElem()
 15809  		if v[yyv1] == nil {
 15810  			r.EncodeNil()
 15811  		} else {
 15812  			if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 15813  				z.EncExtension(v[yyv1], yyxt2)
 15814  			} else {
 15815  				v[yyv1].CodecEncodeSelf(e)
 15816  			}
 15817  		}
 15818  	}
 15819  	z.EncWriteArrayEnd()
 15820  }
 15821  
 15822  func (x codecSelfer19780) decSlicePtrtoTestStrucFlex(v *[]*TestStrucFlex, d *Decoder) {
 15823  	var h codecSelfer19780
 15824  	z, r := GenHelper().Decoder(d)
 15825  	_, _, _ = h, z, r
 15826  
 15827  	yyv1 := *v
 15828  	yyh1, yyl1 := z.DecSliceHelperStart()
 15829  	var yyc1 bool
 15830  	_ = yyc1
 15831  	if yyh1.IsNil {
 15832  		if yyv1 != nil {
 15833  			yyv1 = nil
 15834  			yyc1 = true
 15835  		}
 15836  	} else if yyl1 == 0 {
 15837  		if yyv1 == nil {
 15838  			yyv1 = []*TestStrucFlex{}
 15839  			yyc1 = true
 15840  		} else if len(yyv1) != 0 {
 15841  			yyv1 = yyv1[:0]
 15842  			yyc1 = true
 15843  		}
 15844  	} else {
 15845  		yyhl1 := yyl1 > 0
 15846  		var yyrl1 int
 15847  		_ = yyrl1
 15848  		if yyhl1 {
 15849  			if yyl1 > cap(yyv1) {
 15850  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15851  				if yyrl1 <= cap(yyv1) {
 15852  					yyv1 = yyv1[:yyrl1]
 15853  				} else {
 15854  					yyv1 = make([]*TestStrucFlex, yyrl1)
 15855  				}
 15856  				yyc1 = true
 15857  			} else if yyl1 != len(yyv1) {
 15858  				yyv1 = yyv1[:yyl1]
 15859  				yyc1 = true
 15860  			}
 15861  		}
 15862  		var yyj1 int
 15863  		for yyj1 = 0; (yyhl1 && yyj1 < yyl1) || !(yyhl1 || z.DecCheckBreak()); yyj1++ { // bounds-check-elimination
 15864  			if yyj1 == 0 && yyv1 == nil {
 15865  				if yyhl1 {
 15866  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15867  				} else {
 15868  					yyrl1 = 8
 15869  				}
 15870  				yyv1 = make([]*TestStrucFlex, yyrl1)
 15871  				yyc1 = true
 15872  			}
 15873  			yyh1.ElemContainerState(yyj1)
 15874  			var yydb1 bool
 15875  			if yyj1 >= len(yyv1) {
 15876  				yyv1 = append(yyv1, nil)
 15877  				yyc1 = true
 15878  			}
 15879  			if yydb1 {
 15880  				z.DecSwallow()
 15881  			} else {
 15882  				if r.TryNil() {
 15883  					yyv1[yyj1] = nil
 15884  				} else {
 15885  					if yyv1[yyj1] == nil {
 15886  						yyv1[yyj1] = new(TestStrucFlex)
 15887  					}
 15888  					if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15889  						z.DecExtension(yyv1[yyj1], yyxt3)
 15890  					} else {
 15891  						yyv1[yyj1].CodecDecodeSelf(d)
 15892  					}
 15893  				}
 15894  			}
 15895  		}
 15896  		if yyj1 < len(yyv1) {
 15897  			yyv1 = yyv1[:yyj1]
 15898  			yyc1 = true
 15899  		} else if yyj1 == 0 && yyv1 == nil {
 15900  			yyv1 = make([]*TestStrucFlex, 0)
 15901  			yyc1 = true
 15902  		}
 15903  	}
 15904  	yyh1.End()
 15905  	if yyc1 {
 15906  		*v = yyv1
 15907  	}
 15908  }