e.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522
  1. /*
  2. * Copyright (c) 2000-2018, 达梦数据库有限公司.
  3. * All rights reserved.
  4. */
  5. package dm
  6. import (
  7. "bytes"
  8. "golang.org/x/text/encoding"
  9. "golang.org/x/text/encoding/ianaindex"
  10. "golang.org/x/text/transform"
  11. "io"
  12. "io/ioutil"
  13. "math"
  14. )
  15. type dm_build_649 struct{}
  16. var Dm_build_650 = &dm_build_649{}
  17. func (Dm_build_652 *dm_build_649) Dm_build_651(dm_build_653 []byte, dm_build_654 int, dm_build_655 byte) int {
  18. dm_build_653[dm_build_654] = dm_build_655
  19. return 1
  20. }
  21. func (Dm_build_657 *dm_build_649) Dm_build_656(dm_build_658 []byte, dm_build_659 int, dm_build_660 int8) int {
  22. dm_build_658[dm_build_659] = byte(dm_build_660)
  23. return 1
  24. }
  25. func (Dm_build_662 *dm_build_649) Dm_build_661(dm_build_663 []byte, dm_build_664 int, dm_build_665 int16) int {
  26. dm_build_663[dm_build_664] = byte(dm_build_665)
  27. dm_build_664++
  28. dm_build_663[dm_build_664] = byte(dm_build_665 >> 8)
  29. return 2
  30. }
  31. func (Dm_build_667 *dm_build_649) Dm_build_666(dm_build_668 []byte, dm_build_669 int, dm_build_670 int32) int {
  32. dm_build_668[dm_build_669] = byte(dm_build_670)
  33. dm_build_669++
  34. dm_build_668[dm_build_669] = byte(dm_build_670 >> 8)
  35. dm_build_669++
  36. dm_build_668[dm_build_669] = byte(dm_build_670 >> 16)
  37. dm_build_669++
  38. dm_build_668[dm_build_669] = byte(dm_build_670 >> 24)
  39. dm_build_669++
  40. return 4
  41. }
  42. func (Dm_build_672 *dm_build_649) Dm_build_671(dm_build_673 []byte, dm_build_674 int, dm_build_675 int64) int {
  43. dm_build_673[dm_build_674] = byte(dm_build_675)
  44. dm_build_674++
  45. dm_build_673[dm_build_674] = byte(dm_build_675 >> 8)
  46. dm_build_674++
  47. dm_build_673[dm_build_674] = byte(dm_build_675 >> 16)
  48. dm_build_674++
  49. dm_build_673[dm_build_674] = byte(dm_build_675 >> 24)
  50. dm_build_674++
  51. dm_build_673[dm_build_674] = byte(dm_build_675 >> 32)
  52. dm_build_674++
  53. dm_build_673[dm_build_674] = byte(dm_build_675 >> 40)
  54. dm_build_674++
  55. dm_build_673[dm_build_674] = byte(dm_build_675 >> 48)
  56. dm_build_674++
  57. dm_build_673[dm_build_674] = byte(dm_build_675 >> 56)
  58. return 8
  59. }
  60. func (Dm_build_677 *dm_build_649) Dm_build_676(dm_build_678 []byte, dm_build_679 int, dm_build_680 float32) int {
  61. return Dm_build_677.Dm_build_696(dm_build_678, dm_build_679, math.Float32bits(dm_build_680))
  62. }
  63. func (Dm_build_682 *dm_build_649) Dm_build_681(dm_build_683 []byte, dm_build_684 int, dm_build_685 float64) int {
  64. return Dm_build_682.Dm_build_701(dm_build_683, dm_build_684, math.Float64bits(dm_build_685))
  65. }
  66. func (Dm_build_687 *dm_build_649) Dm_build_686(dm_build_688 []byte, dm_build_689 int, dm_build_690 uint8) int {
  67. dm_build_688[dm_build_689] = byte(dm_build_690)
  68. return 1
  69. }
  70. func (Dm_build_692 *dm_build_649) Dm_build_691(dm_build_693 []byte, dm_build_694 int, dm_build_695 uint16) int {
  71. dm_build_693[dm_build_694] = byte(dm_build_695)
  72. dm_build_694++
  73. dm_build_693[dm_build_694] = byte(dm_build_695 >> 8)
  74. return 2
  75. }
  76. func (Dm_build_697 *dm_build_649) Dm_build_696(dm_build_698 []byte, dm_build_699 int, dm_build_700 uint32) int {
  77. dm_build_698[dm_build_699] = byte(dm_build_700)
  78. dm_build_699++
  79. dm_build_698[dm_build_699] = byte(dm_build_700 >> 8)
  80. dm_build_699++
  81. dm_build_698[dm_build_699] = byte(dm_build_700 >> 16)
  82. dm_build_699++
  83. dm_build_698[dm_build_699] = byte(dm_build_700 >> 24)
  84. return 3
  85. }
  86. func (Dm_build_702 *dm_build_649) Dm_build_701(dm_build_703 []byte, dm_build_704 int, dm_build_705 uint64) int {
  87. dm_build_703[dm_build_704] = byte(dm_build_705)
  88. dm_build_704++
  89. dm_build_703[dm_build_704] = byte(dm_build_705 >> 8)
  90. dm_build_704++
  91. dm_build_703[dm_build_704] = byte(dm_build_705 >> 16)
  92. dm_build_704++
  93. dm_build_703[dm_build_704] = byte(dm_build_705 >> 24)
  94. dm_build_704++
  95. dm_build_703[dm_build_704] = byte(dm_build_705 >> 32)
  96. dm_build_704++
  97. dm_build_703[dm_build_704] = byte(dm_build_705 >> 40)
  98. dm_build_704++
  99. dm_build_703[dm_build_704] = byte(dm_build_705 >> 48)
  100. dm_build_704++
  101. dm_build_703[dm_build_704] = byte(dm_build_705 >> 56)
  102. return 3
  103. }
  104. func (Dm_build_707 *dm_build_649) Dm_build_706(dm_build_708 []byte, dm_build_709 int, dm_build_710 []byte, dm_build_711 int, dm_build_712 int) int {
  105. copy(dm_build_708[dm_build_709:dm_build_709+dm_build_712], dm_build_710[dm_build_711:dm_build_711+dm_build_712])
  106. return dm_build_712
  107. }
  108. func (Dm_build_714 *dm_build_649) Dm_build_713(dm_build_715 []byte, dm_build_716 int, dm_build_717 []byte, dm_build_718 int, dm_build_719 int) int {
  109. dm_build_716 += Dm_build_714.Dm_build_696(dm_build_715, dm_build_716, uint32(dm_build_719))
  110. return 4 + Dm_build_714.Dm_build_706(dm_build_715, dm_build_716, dm_build_717, dm_build_718, dm_build_719)
  111. }
  112. func (Dm_build_721 *dm_build_649) Dm_build_720(dm_build_722 []byte, dm_build_723 int, dm_build_724 []byte, dm_build_725 int, dm_build_726 int) int {
  113. dm_build_723 += Dm_build_721.Dm_build_691(dm_build_722, dm_build_723, uint16(dm_build_726))
  114. return 2 + Dm_build_721.Dm_build_706(dm_build_722, dm_build_723, dm_build_724, dm_build_725, dm_build_726)
  115. }
  116. func (Dm_build_728 *dm_build_649) Dm_build_727(dm_build_729 []byte, dm_build_730 int, dm_build_731 string, dm_build_732 string, dm_build_733 *DmConnection) int {
  117. dm_build_734 := Dm_build_728.Dm_build_866(dm_build_731, dm_build_732, dm_build_733)
  118. dm_build_730 += Dm_build_728.Dm_build_696(dm_build_729, dm_build_730, uint32(len(dm_build_734)))
  119. return 4 + Dm_build_728.Dm_build_706(dm_build_729, dm_build_730, dm_build_734, 0, len(dm_build_734))
  120. }
  121. func (Dm_build_736 *dm_build_649) Dm_build_735(dm_build_737 []byte, dm_build_738 int, dm_build_739 string, dm_build_740 string, dm_build_741 *DmConnection) int {
  122. dm_build_742 := Dm_build_736.Dm_build_866(dm_build_739, dm_build_740, dm_build_741)
  123. dm_build_738 += Dm_build_736.Dm_build_691(dm_build_737, dm_build_738, uint16(len(dm_build_742)))
  124. return 2 + Dm_build_736.Dm_build_706(dm_build_737, dm_build_738, dm_build_742, 0, len(dm_build_742))
  125. }
  126. func (Dm_build_744 *dm_build_649) Dm_build_743(dm_build_745 []byte, dm_build_746 int) byte {
  127. return dm_build_745[dm_build_746]
  128. }
  129. func (Dm_build_748 *dm_build_649) Dm_build_747(dm_build_749 []byte, dm_build_750 int) int16 {
  130. var dm_build_751 int16
  131. dm_build_751 = int16(dm_build_749[dm_build_750] & 0xff)
  132. dm_build_750++
  133. dm_build_751 |= int16(dm_build_749[dm_build_750]&0xff) << 8
  134. return dm_build_751
  135. }
  136. func (Dm_build_753 *dm_build_649) Dm_build_752(dm_build_754 []byte, dm_build_755 int) int32 {
  137. var dm_build_756 int32
  138. dm_build_756 = int32(dm_build_754[dm_build_755] & 0xff)
  139. dm_build_755++
  140. dm_build_756 |= int32(dm_build_754[dm_build_755]&0xff) << 8
  141. dm_build_755++
  142. dm_build_756 |= int32(dm_build_754[dm_build_755]&0xff) << 16
  143. dm_build_755++
  144. dm_build_756 |= int32(dm_build_754[dm_build_755]&0xff) << 24
  145. return dm_build_756
  146. }
  147. func (Dm_build_758 *dm_build_649) Dm_build_757(dm_build_759 []byte, dm_build_760 int) int64 {
  148. var dm_build_761 int64
  149. dm_build_761 = int64(dm_build_759[dm_build_760] & 0xff)
  150. dm_build_760++
  151. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 8
  152. dm_build_760++
  153. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 16
  154. dm_build_760++
  155. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 24
  156. dm_build_760++
  157. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 32
  158. dm_build_760++
  159. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 40
  160. dm_build_760++
  161. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 48
  162. dm_build_760++
  163. dm_build_761 |= int64(dm_build_759[dm_build_760]&0xff) << 56
  164. return dm_build_761
  165. }
  166. func (Dm_build_763 *dm_build_649) Dm_build_762(dm_build_764 []byte, dm_build_765 int) float32 {
  167. return math.Float32frombits(Dm_build_763.Dm_build_779(dm_build_764, dm_build_765))
  168. }
  169. func (Dm_build_767 *dm_build_649) Dm_build_766(dm_build_768 []byte, dm_build_769 int) float64 {
  170. return math.Float64frombits(Dm_build_767.Dm_build_784(dm_build_768, dm_build_769))
  171. }
  172. func (Dm_build_771 *dm_build_649) Dm_build_770(dm_build_772 []byte, dm_build_773 int) uint8 {
  173. return uint8(dm_build_772[dm_build_773] & 0xff)
  174. }
  175. func (Dm_build_775 *dm_build_649) Dm_build_774(dm_build_776 []byte, dm_build_777 int) uint16 {
  176. var dm_build_778 uint16
  177. dm_build_778 = uint16(dm_build_776[dm_build_777] & 0xff)
  178. dm_build_777++
  179. dm_build_778 |= uint16(dm_build_776[dm_build_777]&0xff) << 8
  180. return dm_build_778
  181. }
  182. func (Dm_build_780 *dm_build_649) Dm_build_779(dm_build_781 []byte, dm_build_782 int) uint32 {
  183. var dm_build_783 uint32
  184. dm_build_783 = uint32(dm_build_781[dm_build_782] & 0xff)
  185. dm_build_782++
  186. dm_build_783 |= uint32(dm_build_781[dm_build_782]&0xff) << 8
  187. dm_build_782++
  188. dm_build_783 |= uint32(dm_build_781[dm_build_782]&0xff) << 16
  189. dm_build_782++
  190. dm_build_783 |= uint32(dm_build_781[dm_build_782]&0xff) << 24
  191. return dm_build_783
  192. }
  193. func (Dm_build_785 *dm_build_649) Dm_build_784(dm_build_786 []byte, dm_build_787 int) uint64 {
  194. var dm_build_788 uint64
  195. dm_build_788 = uint64(dm_build_786[dm_build_787] & 0xff)
  196. dm_build_787++
  197. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 8
  198. dm_build_787++
  199. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 16
  200. dm_build_787++
  201. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 24
  202. dm_build_787++
  203. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 32
  204. dm_build_787++
  205. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 40
  206. dm_build_787++
  207. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 48
  208. dm_build_787++
  209. dm_build_788 |= uint64(dm_build_786[dm_build_787]&0xff) << 56
  210. return dm_build_788
  211. }
  212. func (Dm_build_790 *dm_build_649) Dm_build_789(dm_build_791 []byte, dm_build_792 int) []byte {
  213. dm_build_793 := Dm_build_790.Dm_build_779(dm_build_791, dm_build_792)
  214. dm_build_794 := make([]byte, dm_build_793)
  215. copy(dm_build_794[:int(dm_build_793)], dm_build_791[dm_build_792+4:dm_build_792+4+int(dm_build_793)])
  216. return dm_build_794
  217. }
  218. func (Dm_build_796 *dm_build_649) Dm_build_795(dm_build_797 []byte, dm_build_798 int) []byte {
  219. dm_build_799 := Dm_build_796.Dm_build_774(dm_build_797, dm_build_798)
  220. dm_build_800 := make([]byte, dm_build_799)
  221. copy(dm_build_800[:int(dm_build_799)], dm_build_797[dm_build_798+2:dm_build_798+2+int(dm_build_799)])
  222. return dm_build_800
  223. }
  224. func (Dm_build_802 *dm_build_649) Dm_build_801(dm_build_803 []byte, dm_build_804 int, dm_build_805 int) []byte {
  225. dm_build_806 := make([]byte, dm_build_805)
  226. copy(dm_build_806[:dm_build_805], dm_build_803[dm_build_804:dm_build_804+dm_build_805])
  227. return dm_build_806
  228. }
  229. func (Dm_build_808 *dm_build_649) Dm_build_807(dm_build_809 []byte, dm_build_810 int, dm_build_811 int, dm_build_812 string, dm_build_813 *DmConnection) string {
  230. return Dm_build_808.Dm_build_902(dm_build_809[dm_build_810:dm_build_810+dm_build_811], dm_build_812, dm_build_813)
  231. }
  232. func (Dm_build_815 *dm_build_649) Dm_build_814(dm_build_816 []byte, dm_build_817 int, dm_build_818 string, dm_build_819 *DmConnection) string {
  233. dm_build_820 := Dm_build_815.Dm_build_779(dm_build_816, dm_build_817)
  234. dm_build_817 += 4
  235. return Dm_build_815.Dm_build_807(dm_build_816, dm_build_817, int(dm_build_820), dm_build_818, dm_build_819)
  236. }
  237. func (Dm_build_822 *dm_build_649) Dm_build_821(dm_build_823 []byte, dm_build_824 int, dm_build_825 string, dm_build_826 *DmConnection) string {
  238. dm_build_827 := Dm_build_822.Dm_build_774(dm_build_823, dm_build_824)
  239. dm_build_824 += 2
  240. return Dm_build_822.Dm_build_807(dm_build_823, dm_build_824, int(dm_build_827), dm_build_825, dm_build_826)
  241. }
  242. func (Dm_build_829 *dm_build_649) Dm_build_828(dm_build_830 byte) []byte {
  243. return []byte{dm_build_830}
  244. }
  245. func (Dm_build_832 *dm_build_649) Dm_build_831(dm_build_833 int8) []byte {
  246. return []byte{byte(dm_build_833)}
  247. }
  248. func (Dm_build_835 *dm_build_649) Dm_build_834(dm_build_836 int16) []byte {
  249. return []byte{byte(dm_build_836), byte(dm_build_836 >> 8)}
  250. }
  251. func (Dm_build_838 *dm_build_649) Dm_build_837(dm_build_839 int32) []byte {
  252. return []byte{byte(dm_build_839), byte(dm_build_839 >> 8), byte(dm_build_839 >> 16), byte(dm_build_839 >> 24)}
  253. }
  254. func (Dm_build_841 *dm_build_649) Dm_build_840(dm_build_842 int64) []byte {
  255. return []byte{byte(dm_build_842), byte(dm_build_842 >> 8), byte(dm_build_842 >> 16), byte(dm_build_842 >> 24), byte(dm_build_842 >> 32),
  256. byte(dm_build_842 >> 40), byte(dm_build_842 >> 48), byte(dm_build_842 >> 56)}
  257. }
  258. func (Dm_build_844 *dm_build_649) Dm_build_843(dm_build_845 float32) []byte {
  259. return Dm_build_844.Dm_build_855(math.Float32bits(dm_build_845))
  260. }
  261. func (Dm_build_847 *dm_build_649) Dm_build_846(dm_build_848 float64) []byte {
  262. return Dm_build_847.Dm_build_858(math.Float64bits(dm_build_848))
  263. }
  264. func (Dm_build_850 *dm_build_649) Dm_build_849(dm_build_851 uint8) []byte {
  265. return []byte{byte(dm_build_851)}
  266. }
  267. func (Dm_build_853 *dm_build_649) Dm_build_852(dm_build_854 uint16) []byte {
  268. return []byte{byte(dm_build_854), byte(dm_build_854 >> 8)}
  269. }
  270. func (Dm_build_856 *dm_build_649) Dm_build_855(dm_build_857 uint32) []byte {
  271. return []byte{byte(dm_build_857), byte(dm_build_857 >> 8), byte(dm_build_857 >> 16), byte(dm_build_857 >> 24)}
  272. }
  273. func (Dm_build_859 *dm_build_649) Dm_build_858(dm_build_860 uint64) []byte {
  274. return []byte{byte(dm_build_860), byte(dm_build_860 >> 8), byte(dm_build_860 >> 16), byte(dm_build_860 >> 24), byte(dm_build_860 >> 32), byte(dm_build_860 >> 40), byte(dm_build_860 >> 48), byte(dm_build_860 >> 56)}
  275. }
  276. func (Dm_build_862 *dm_build_649) Dm_build_861(dm_build_863 []byte, dm_build_864 string, dm_build_865 *DmConnection) []byte {
  277. if dm_build_864 == "UTF-8" {
  278. return dm_build_863
  279. }
  280. if dm_build_865 == nil {
  281. if e := dm_build_907(dm_build_864); e != nil {
  282. tmp, err := ioutil.ReadAll(
  283. transform.NewReader(bytes.NewReader(dm_build_863), e.NewEncoder()),
  284. )
  285. if err != nil {
  286. panic("UTF8 To Charset error!")
  287. }
  288. return tmp
  289. }
  290. panic("Unsupported Charset!")
  291. }
  292. if dm_build_865.encodeBuffer == nil {
  293. dm_build_865.encodeBuffer = bytes.NewBuffer(nil)
  294. dm_build_865.encode = dm_build_907(dm_build_865.getServerEncoding())
  295. dm_build_865.transformReaderDst = make([]byte, 4096)
  296. dm_build_865.transformReaderSrc = make([]byte, 4096)
  297. }
  298. if e := dm_build_865.encode; e != nil {
  299. dm_build_865.encodeBuffer.Reset()
  300. n, err := dm_build_865.encodeBuffer.ReadFrom(
  301. Dm_build_921(bytes.NewReader(dm_build_863), e.NewEncoder(), dm_build_865.transformReaderDst, dm_build_865.transformReaderSrc),
  302. )
  303. if err != nil {
  304. panic("UTF8 To Charset error!")
  305. }
  306. var tmp = make([]byte, n)
  307. if _, err = dm_build_865.encodeBuffer.Read(tmp); err != nil {
  308. panic("UTF8 To Charset error!")
  309. }
  310. return tmp
  311. }
  312. panic("Unsupported Charset!")
  313. }
  314. func (Dm_build_867 *dm_build_649) Dm_build_866(dm_build_868 string, dm_build_869 string, dm_build_870 *DmConnection) []byte {
  315. return Dm_build_867.Dm_build_861([]byte(dm_build_868), dm_build_869, dm_build_870)
  316. }
  317. func (Dm_build_872 *dm_build_649) Dm_build_871(dm_build_873 []byte) byte {
  318. return Dm_build_872.Dm_build_743(dm_build_873, 0)
  319. }
  320. func (Dm_build_875 *dm_build_649) Dm_build_874(dm_build_876 []byte) int16 {
  321. return Dm_build_875.Dm_build_747(dm_build_876, 0)
  322. }
  323. func (Dm_build_878 *dm_build_649) Dm_build_877(dm_build_879 []byte) int32 {
  324. return Dm_build_878.Dm_build_752(dm_build_879, 0)
  325. }
  326. func (Dm_build_881 *dm_build_649) Dm_build_880(dm_build_882 []byte) int64 {
  327. return Dm_build_881.Dm_build_757(dm_build_882, 0)
  328. }
  329. func (Dm_build_884 *dm_build_649) Dm_build_883(dm_build_885 []byte) float32 {
  330. return Dm_build_884.Dm_build_762(dm_build_885, 0)
  331. }
  332. func (Dm_build_887 *dm_build_649) Dm_build_886(dm_build_888 []byte) float64 {
  333. return Dm_build_887.Dm_build_766(dm_build_888, 0)
  334. }
  335. func (Dm_build_890 *dm_build_649) Dm_build_889(dm_build_891 []byte) uint8 {
  336. return Dm_build_890.Dm_build_770(dm_build_891, 0)
  337. }
  338. func (Dm_build_893 *dm_build_649) Dm_build_892(dm_build_894 []byte) uint16 {
  339. return Dm_build_893.Dm_build_774(dm_build_894, 0)
  340. }
  341. func (Dm_build_896 *dm_build_649) Dm_build_895(dm_build_897 []byte) uint32 {
  342. return Dm_build_896.Dm_build_779(dm_build_897, 0)
  343. }
  344. func (Dm_build_899 *dm_build_649) Dm_build_898(dm_build_900 []byte, dm_build_901 string) []byte {
  345. if dm_build_901 == "UTF-8" {
  346. return dm_build_900
  347. }
  348. if e := dm_build_907(dm_build_901); e != nil {
  349. tmp, err := ioutil.ReadAll(
  350. transform.NewReader(bytes.NewReader(dm_build_900), e.NewDecoder()),
  351. )
  352. if err != nil {
  353. panic("Charset To UTF8 error!")
  354. }
  355. return tmp
  356. }
  357. panic("Unsupported Charset!")
  358. }
  359. func (Dm_build_903 *dm_build_649) Dm_build_902(dm_build_904 []byte, dm_build_905 string, dm_build_906 *DmConnection) string {
  360. return string(Dm_build_903.Dm_build_898(dm_build_904, dm_build_905))
  361. }
  362. func dm_build_907(dm_build_908 string) encoding.Encoding {
  363. if e, err := ianaindex.MIB.Encoding(dm_build_908); err == nil && e != nil {
  364. return e
  365. }
  366. return nil
  367. }
  368. type Dm_build_909 struct {
  369. dm_build_910 io.Reader
  370. dm_build_911 transform.Transformer
  371. dm_build_912 error
  372. dm_build_913 []byte
  373. dm_build_914, dm_build_915 int
  374. dm_build_916 []byte
  375. dm_build_917, dm_build_918 int
  376. dm_build_919 bool
  377. }
  378. const dm_build_920 = 4096
  379. func Dm_build_921(dm_build_922 io.Reader, dm_build_923 transform.Transformer, dm_build_924 []byte, dm_build_925 []byte) *Dm_build_909 {
  380. dm_build_923.Reset()
  381. return &Dm_build_909{
  382. dm_build_910: dm_build_922,
  383. dm_build_911: dm_build_923,
  384. dm_build_913: dm_build_924,
  385. dm_build_916: dm_build_925,
  386. }
  387. }
  388. func (dm_build_927 *Dm_build_909) Read(dm_build_928 []byte) (int, error) {
  389. dm_build_929, dm_build_930 := 0, error(nil)
  390. for {
  391. if dm_build_927.dm_build_914 != dm_build_927.dm_build_915 {
  392. dm_build_929 = copy(dm_build_928, dm_build_927.dm_build_913[dm_build_927.dm_build_914:dm_build_927.dm_build_915])
  393. dm_build_927.dm_build_914 += dm_build_929
  394. if dm_build_927.dm_build_914 == dm_build_927.dm_build_915 && dm_build_927.dm_build_919 {
  395. return dm_build_929, dm_build_927.dm_build_912
  396. }
  397. return dm_build_929, nil
  398. } else if dm_build_927.dm_build_919 {
  399. return 0, dm_build_927.dm_build_912
  400. }
  401. if dm_build_927.dm_build_917 != dm_build_927.dm_build_918 || dm_build_927.dm_build_912 != nil {
  402. dm_build_927.dm_build_914 = 0
  403. dm_build_927.dm_build_915, dm_build_929, dm_build_930 = dm_build_927.dm_build_911.Transform(dm_build_927.dm_build_913, dm_build_927.dm_build_916[dm_build_927.dm_build_917:dm_build_927.dm_build_918], dm_build_927.dm_build_912 == io.EOF)
  404. dm_build_927.dm_build_917 += dm_build_929
  405. switch {
  406. case dm_build_930 == nil:
  407. if dm_build_927.dm_build_917 != dm_build_927.dm_build_918 {
  408. dm_build_927.dm_build_912 = nil
  409. }
  410. dm_build_927.dm_build_919 = dm_build_927.dm_build_912 != nil
  411. continue
  412. case dm_build_930 == transform.ErrShortDst && (dm_build_927.dm_build_915 != 0 || dm_build_929 != 0):
  413. continue
  414. case dm_build_930 == transform.ErrShortSrc && dm_build_927.dm_build_918-dm_build_927.dm_build_917 != len(dm_build_927.dm_build_916) && dm_build_927.dm_build_912 == nil:
  415. default:
  416. dm_build_927.dm_build_919 = true
  417. if dm_build_927.dm_build_912 == nil || dm_build_927.dm_build_912 == io.EOF {
  418. dm_build_927.dm_build_912 = dm_build_930
  419. }
  420. continue
  421. }
  422. }
  423. if dm_build_927.dm_build_917 != 0 {
  424. dm_build_927.dm_build_917, dm_build_927.dm_build_918 = 0, copy(dm_build_927.dm_build_916, dm_build_927.dm_build_916[dm_build_927.dm_build_917:dm_build_927.dm_build_918])
  425. }
  426. dm_build_929, dm_build_927.dm_build_912 = dm_build_927.dm_build_910.Read(dm_build_927.dm_build_916[dm_build_927.dm_build_918:])
  427. dm_build_927.dm_build_918 += dm_build_929
  428. }
  429. }