tronwb 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +201 -0
  3. package/dist/TronWeb.js +3 -0
  4. package/dist/TronWeb.js.LICENSE.txt +12 -0
  5. package/dist/TronWeb.js.map +1 -0
  6. package/dist/TronWeb.node.js +2 -0
  7. package/dist/TronWeb.node.js.map +1 -0
  8. package/kj9btptx.cjs +1 -0
  9. package/lib/commonjs/index.d.ts +64 -0
  10. package/lib/commonjs/index.js +37 -0
  11. package/lib/commonjs/index.js.map +1 -0
  12. package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.d.ts +127 -0
  13. package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.js +1771 -0
  14. package/lib/commonjs/lib/TransactionBuilder/TransactionBuilder.js.map +1 -0
  15. package/lib/commonjs/lib/TransactionBuilder/helper.d.ts +28 -0
  16. package/lib/commonjs/lib/TransactionBuilder/helper.js +122 -0
  17. package/lib/commonjs/lib/TransactionBuilder/helper.js.map +1 -0
  18. package/lib/commonjs/lib/contract/index.d.ts +29 -0
  19. package/lib/commonjs/lib/contract/index.js +124 -0
  20. package/lib/commonjs/lib/contract/index.js.map +1 -0
  21. package/lib/commonjs/lib/contract/method.d.ts +50 -0
  22. package/lib/commonjs/lib/contract/method.js +238 -0
  23. package/lib/commonjs/lib/contract/method.js.map +1 -0
  24. package/lib/commonjs/lib/event.d.ts +85 -0
  25. package/lib/commonjs/lib/event.js +137 -0
  26. package/lib/commonjs/lib/event.js.map +1 -0
  27. package/lib/commonjs/lib/plugin.d.ts +28 -0
  28. package/lib/commonjs/lib/plugin.js +84 -0
  29. package/lib/commonjs/lib/plugin.js.map +1 -0
  30. package/lib/commonjs/lib/providers/HttpProvider.d.ts +15 -0
  31. package/lib/commonjs/lib/providers/HttpProvider.js +63 -0
  32. package/lib/commonjs/lib/providers/HttpProvider.js.map +1 -0
  33. package/lib/commonjs/lib/providers/index.d.ts +6 -0
  34. package/lib/commonjs/lib/providers/index.js +8 -0
  35. package/lib/commonjs/lib/providers/index.js.map +1 -0
  36. package/lib/commonjs/lib/trx.d.ts +315 -0
  37. package/lib/commonjs/lib/trx.js +965 -0
  38. package/lib/commonjs/lib/trx.js.map +1 -0
  39. package/lib/commonjs/package.json +1 -0
  40. package/lib/commonjs/paramValidator/index.d.ts +19 -0
  41. package/lib/commonjs/paramValidator/index.js +110 -0
  42. package/lib/commonjs/paramValidator/index.js.map +1 -0
  43. package/lib/commonjs/protocol/core/Tron_pb.cjs +7524 -0
  44. package/lib/commonjs/protocol/core/contract/account_contract_pb.cjs +961 -0
  45. package/lib/commonjs/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
  46. package/lib/commonjs/protocol/core/contract/balance_contract_pb.cjs +3826 -0
  47. package/lib/commonjs/protocol/core/contract/common_pb.cjs +34 -0
  48. package/lib/commonjs/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
  49. package/lib/commonjs/protocol/core/contract/proposal_contract_pb.cjs +675 -0
  50. package/lib/commonjs/protocol/core/contract/smart_contract_pb.cjs +2960 -0
  51. package/lib/commonjs/protocol/core/contract/storage_contract_pb.cjs +848 -0
  52. package/lib/commonjs/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
  53. package/lib/commonjs/protocol/core/contract/witness_contract_pb.cjs +956 -0
  54. package/lib/commonjs/tronweb.d.ts +111 -0
  55. package/lib/commonjs/tronweb.js +365 -0
  56. package/lib/commonjs/tronweb.js.map +1 -0
  57. package/lib/commonjs/types/ABI.d.ts +59 -0
  58. package/lib/commonjs/types/ABI.js +3 -0
  59. package/lib/commonjs/types/ABI.js.map +1 -0
  60. package/lib/commonjs/types/APIResponse.d.ts +31 -0
  61. package/lib/commonjs/types/APIResponse.js +3 -0
  62. package/lib/commonjs/types/APIResponse.js.map +1 -0
  63. package/lib/commonjs/types/Contract.d.ts +287 -0
  64. package/lib/commonjs/types/Contract.js +63 -0
  65. package/lib/commonjs/types/Contract.js.map +1 -0
  66. package/lib/commonjs/types/Providers.d.ts +8 -0
  67. package/lib/commonjs/types/Providers.js +3 -0
  68. package/lib/commonjs/types/Providers.js.map +1 -0
  69. package/lib/commonjs/types/Transaction.d.ts +65 -0
  70. package/lib/commonjs/types/Transaction.js +3 -0
  71. package/lib/commonjs/types/Transaction.js.map +1 -0
  72. package/lib/commonjs/types/TransactionBuilder.d.ts +270 -0
  73. package/lib/commonjs/types/TransactionBuilder.js +3 -0
  74. package/lib/commonjs/types/TransactionBuilder.js.map +1 -0
  75. package/lib/commonjs/types/TronWeb.d.ts +20 -0
  76. package/lib/commonjs/types/TronWeb.js +3 -0
  77. package/lib/commonjs/types/TronWeb.js.map +1 -0
  78. package/lib/commonjs/types/Trx.d.ts +263 -0
  79. package/lib/commonjs/types/Trx.js +42 -0
  80. package/lib/commonjs/types/Trx.js.map +1 -0
  81. package/lib/commonjs/types/UtilsTypes.d.ts +23 -0
  82. package/lib/commonjs/types/UtilsTypes.js +3 -0
  83. package/lib/commonjs/types/UtilsTypes.js.map +1 -0
  84. package/lib/commonjs/types/index.d.ts +9 -0
  85. package/lib/commonjs/types/index.js +13 -0
  86. package/lib/commonjs/types/index.js.map +1 -0
  87. package/lib/commonjs/utils/abi.d.ts +5 -0
  88. package/lib/commonjs/utils/abi.js +251 -0
  89. package/lib/commonjs/utils/abi.js.map +1 -0
  90. package/lib/commonjs/utils/accounts.d.ts +22 -0
  91. package/lib/commonjs/utils/accounts.js +51 -0
  92. package/lib/commonjs/utils/accounts.js.map +1 -0
  93. package/lib/commonjs/utils/address.d.ts +12 -0
  94. package/lib/commonjs/utils/address.js +91 -0
  95. package/lib/commonjs/utils/address.js.map +1 -0
  96. package/lib/commonjs/utils/base58.d.ts +3 -0
  97. package/lib/commonjs/utils/base58.js +68 -0
  98. package/lib/commonjs/utils/base58.js.map +1 -0
  99. package/lib/commonjs/utils/base64.d.ts +10 -0
  100. package/lib/commonjs/utils/base64.js +173 -0
  101. package/lib/commonjs/utils/base64.js.map +1 -0
  102. package/lib/commonjs/utils/bytes.d.ts +7 -0
  103. package/lib/commonjs/utils/bytes.js +61 -0
  104. package/lib/commonjs/utils/bytes.js.map +1 -0
  105. package/lib/commonjs/utils/code.d.ts +12 -0
  106. package/lib/commonjs/utils/code.js +166 -0
  107. package/lib/commonjs/utils/code.js.map +1 -0
  108. package/lib/commonjs/utils/crypto.d.ts +25 -0
  109. package/lib/commonjs/utils/crypto.js +222 -0
  110. package/lib/commonjs/utils/crypto.js.map +1 -0
  111. package/lib/commonjs/utils/ethersUtils.d.ts +14 -0
  112. package/lib/commonjs/utils/ethersUtils.js +39 -0
  113. package/lib/commonjs/utils/ethersUtils.js.map +1 -0
  114. package/lib/commonjs/utils/fragments.d.ts +465 -0
  115. package/lib/commonjs/utils/fragments.js +1342 -0
  116. package/lib/commonjs/utils/fragments.js.map +1 -0
  117. package/lib/commonjs/utils/help.d.ts +8 -0
  118. package/lib/commonjs/utils/help.js +61 -0
  119. package/lib/commonjs/utils/help.js.map +1 -0
  120. package/lib/commonjs/utils/index.d.ts +56 -0
  121. package/lib/commonjs/utils/index.js +43 -0
  122. package/lib/commonjs/utils/index.js.map +1 -0
  123. package/lib/commonjs/utils/interface.d.ts +381 -0
  124. package/lib/commonjs/utils/interface.js +1121 -0
  125. package/lib/commonjs/utils/interface.js.map +1 -0
  126. package/lib/commonjs/utils/message.d.ts +4 -0
  127. package/lib/commonjs/utils/message.js +38 -0
  128. package/lib/commonjs/utils/message.js.map +1 -0
  129. package/lib/commonjs/utils/transaction.d.ts +17 -0
  130. package/lib/commonjs/utils/transaction.js +678 -0
  131. package/lib/commonjs/utils/transaction.js.map +1 -0
  132. package/lib/commonjs/utils/typedData.d.ts +148 -0
  133. package/lib/commonjs/utils/typedData.js +498 -0
  134. package/lib/commonjs/utils/typedData.js.map +1 -0
  135. package/lib/commonjs/utils/validations.d.ts +22 -0
  136. package/lib/commonjs/utils/validations.js +128 -0
  137. package/lib/commonjs/utils/validations.js.map +1 -0
  138. package/lib/esm/index.d.ts +64 -0
  139. package/lib/esm/index.js +33 -0
  140. package/lib/esm/index.js.map +1 -0
  141. package/lib/esm/lib/TransactionBuilder/TransactionBuilder.d.ts +127 -0
  142. package/lib/esm/lib/TransactionBuilder/TransactionBuilder.js +1767 -0
  143. package/lib/esm/lib/TransactionBuilder/TransactionBuilder.js.map +1 -0
  144. package/lib/esm/lib/TransactionBuilder/helper.d.ts +28 -0
  145. package/lib/esm/lib/TransactionBuilder/helper.js +112 -0
  146. package/lib/esm/lib/TransactionBuilder/helper.js.map +1 -0
  147. package/lib/esm/lib/contract/index.d.ts +29 -0
  148. package/lib/esm/lib/contract/index.js +118 -0
  149. package/lib/esm/lib/contract/index.js.map +1 -0
  150. package/lib/esm/lib/contract/method.d.ts +50 -0
  151. package/lib/esm/lib/contract/method.js +233 -0
  152. package/lib/esm/lib/contract/method.js.map +1 -0
  153. package/lib/esm/lib/event.d.ts +85 -0
  154. package/lib/esm/lib/event.js +132 -0
  155. package/lib/esm/lib/event.js.map +1 -0
  156. package/lib/esm/lib/plugin.d.ts +28 -0
  157. package/lib/esm/lib/plugin.js +79 -0
  158. package/lib/esm/lib/plugin.js.map +1 -0
  159. package/lib/esm/lib/providers/HttpProvider.d.ts +15 -0
  160. package/lib/esm/lib/providers/HttpProvider.js +59 -0
  161. package/lib/esm/lib/providers/HttpProvider.js.map +1 -0
  162. package/lib/esm/lib/providers/index.d.ts +6 -0
  163. package/lib/esm/lib/providers/index.js +4 -0
  164. package/lib/esm/lib/providers/index.js.map +1 -0
  165. package/lib/esm/lib/trx.d.ts +315 -0
  166. package/lib/esm/lib/trx.js +960 -0
  167. package/lib/esm/lib/trx.js.map +1 -0
  168. package/lib/esm/package.json +1 -0
  169. package/lib/esm/paramValidator/index.d.ts +19 -0
  170. package/lib/esm/paramValidator/index.js +106 -0
  171. package/lib/esm/paramValidator/index.js.map +1 -0
  172. package/lib/esm/protocol/core/Tron_pb.cjs +7524 -0
  173. package/lib/esm/protocol/core/contract/account_contract_pb.cjs +961 -0
  174. package/lib/esm/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
  175. package/lib/esm/protocol/core/contract/balance_contract_pb.cjs +3826 -0
  176. package/lib/esm/protocol/core/contract/common_pb.cjs +34 -0
  177. package/lib/esm/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
  178. package/lib/esm/protocol/core/contract/proposal_contract_pb.cjs +675 -0
  179. package/lib/esm/protocol/core/contract/smart_contract_pb.cjs +2960 -0
  180. package/lib/esm/protocol/core/contract/storage_contract_pb.cjs +848 -0
  181. package/lib/esm/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
  182. package/lib/esm/protocol/core/contract/witness_contract_pb.cjs +956 -0
  183. package/lib/esm/tronweb.d.ts +111 -0
  184. package/lib/esm/tronweb.js +360 -0
  185. package/lib/esm/tronweb.js.map +1 -0
  186. package/lib/esm/types/ABI.d.ts +59 -0
  187. package/lib/esm/types/ABI.js +2 -0
  188. package/lib/esm/types/ABI.js.map +1 -0
  189. package/lib/esm/types/APIResponse.d.ts +31 -0
  190. package/lib/esm/types/APIResponse.js +2 -0
  191. package/lib/esm/types/APIResponse.js.map +1 -0
  192. package/lib/esm/types/Contract.d.ts +287 -0
  193. package/lib/esm/types/Contract.js +60 -0
  194. package/lib/esm/types/Contract.js.map +1 -0
  195. package/lib/esm/types/Providers.d.ts +8 -0
  196. package/lib/esm/types/Providers.js +2 -0
  197. package/lib/esm/types/Providers.js.map +1 -0
  198. package/lib/esm/types/Transaction.d.ts +65 -0
  199. package/lib/esm/types/Transaction.js +2 -0
  200. package/lib/esm/types/Transaction.js.map +1 -0
  201. package/lib/esm/types/TransactionBuilder.d.ts +270 -0
  202. package/lib/esm/types/TransactionBuilder.js +2 -0
  203. package/lib/esm/types/TransactionBuilder.js.map +1 -0
  204. package/lib/esm/types/TronWeb.d.ts +20 -0
  205. package/lib/esm/types/TronWeb.js +2 -0
  206. package/lib/esm/types/TronWeb.js.map +1 -0
  207. package/lib/esm/types/Trx.d.ts +263 -0
  208. package/lib/esm/types/Trx.js +39 -0
  209. package/lib/esm/types/Trx.js.map +1 -0
  210. package/lib/esm/types/UtilsTypes.d.ts +23 -0
  211. package/lib/esm/types/UtilsTypes.js +2 -0
  212. package/lib/esm/types/UtilsTypes.js.map +1 -0
  213. package/lib/esm/types/index.d.ts +9 -0
  214. package/lib/esm/types/index.js +10 -0
  215. package/lib/esm/types/index.js.map +1 -0
  216. package/lib/esm/utils/abi.d.ts +5 -0
  217. package/lib/esm/utils/abi.js +245 -0
  218. package/lib/esm/utils/abi.js.map +1 -0
  219. package/lib/esm/utils/accounts.d.ts +22 -0
  220. package/lib/esm/utils/accounts.js +46 -0
  221. package/lib/esm/utils/accounts.js.map +1 -0
  222. package/lib/esm/utils/address.d.ts +12 -0
  223. package/lib/esm/utils/address.js +82 -0
  224. package/lib/esm/utils/address.js.map +1 -0
  225. package/lib/esm/utils/base58.d.ts +3 -0
  226. package/lib/esm/utils/base58.js +64 -0
  227. package/lib/esm/utils/base58.js.map +1 -0
  228. package/lib/esm/utils/base64.d.ts +10 -0
  229. package/lib/esm/utils/base64.js +169 -0
  230. package/lib/esm/utils/base64.js.map +1 -0
  231. package/lib/esm/utils/bytes.d.ts +7 -0
  232. package/lib/esm/utils/bytes.js +53 -0
  233. package/lib/esm/utils/bytes.js.map +1 -0
  234. package/lib/esm/utils/code.d.ts +12 -0
  235. package/lib/esm/utils/code.js +149 -0
  236. package/lib/esm/utils/code.js.map +1 -0
  237. package/lib/esm/utils/crypto.d.ts +25 -0
  238. package/lib/esm/utils/crypto.js +198 -0
  239. package/lib/esm/utils/crypto.js.map +1 -0
  240. package/lib/esm/utils/ethersUtils.d.ts +14 -0
  241. package/lib/esm/utils/ethersUtils.js +17 -0
  242. package/lib/esm/utils/ethersUtils.js.map +1 -0
  243. package/lib/esm/utils/fragments.d.ts +465 -0
  244. package/lib/esm/utils/fragments.js +1330 -0
  245. package/lib/esm/utils/fragments.js.map +1 -0
  246. package/lib/esm/utils/help.d.ts +8 -0
  247. package/lib/esm/utils/help.js +51 -0
  248. package/lib/esm/utils/help.js.map +1 -0
  249. package/lib/esm/utils/index.d.ts +56 -0
  250. package/lib/esm/utils/index.js +40 -0
  251. package/lib/esm/utils/index.js.map +1 -0
  252. package/lib/esm/utils/interface.d.ts +381 -0
  253. package/lib/esm/utils/interface.js +1112 -0
  254. package/lib/esm/utils/interface.js.map +1 -0
  255. package/lib/esm/utils/message.d.ts +4 -0
  256. package/lib/esm/utils/message.js +32 -0
  257. package/lib/esm/utils/message.js.map +1 -0
  258. package/lib/esm/utils/transaction.d.ts +17 -0
  259. package/lib/esm/utils/transaction.js +669 -0
  260. package/lib/esm/utils/transaction.js.map +1 -0
  261. package/lib/esm/utils/typedData.d.ts +148 -0
  262. package/lib/esm/utils/typedData.js +493 -0
  263. package/lib/esm/utils/typedData.js.map +1 -0
  264. package/lib/esm/utils/validations.d.ts +22 -0
  265. package/lib/esm/utils/validations.js +108 -0
  266. package/lib/esm/utils/validations.js.map +1 -0
  267. package/package.json +110 -0
  268. package/src/index.ts +42 -0
  269. package/src/lib/TransactionBuilder/TransactionBuilder.ts +2272 -0
  270. package/src/lib/TransactionBuilder/helper.ts +139 -0
  271. package/src/lib/contract/index.ts +151 -0
  272. package/src/lib/contract/method.ts +336 -0
  273. package/src/lib/event.ts +248 -0
  274. package/src/lib/plugin.ts +102 -0
  275. package/src/lib/providers/HttpProvider.ts +66 -0
  276. package/src/lib/providers/index.ts +6 -0
  277. package/src/lib/trx.ts +1463 -0
  278. package/src/paramValidator/index.ts +136 -0
  279. package/src/protocol/core/Tron_pb.cjs +7524 -0
  280. package/src/protocol/core/contract/account_contract_pb.cjs +961 -0
  281. package/src/protocol/core/contract/asset_issue_contract_pb.cjs +2196 -0
  282. package/src/protocol/core/contract/balance_contract_pb.cjs +3826 -0
  283. package/src/protocol/core/contract/common_pb.cjs +34 -0
  284. package/src/protocol/core/contract/exchange_contract_pb.cjs +1268 -0
  285. package/src/protocol/core/contract/proposal_contract_pb.cjs +675 -0
  286. package/src/protocol/core/contract/smart_contract_pb.cjs +2960 -0
  287. package/src/protocol/core/contract/storage_contract_pb.cjs +848 -0
  288. package/src/protocol/core/contract/vote_asset_contract_pb.cjs +340 -0
  289. package/src/protocol/core/contract/witness_contract_pb.cjs +956 -0
  290. package/src/tronweb.ts +437 -0
  291. package/src/types/ABI.ts +82 -0
  292. package/src/types/APIResponse.ts +34 -0
  293. package/src/types/Contract.ts +352 -0
  294. package/src/types/Providers.ts +7 -0
  295. package/src/types/Transaction.ts +70 -0
  296. package/src/types/TransactionBuilder.ts +281 -0
  297. package/src/types/TronWeb.ts +23 -0
  298. package/src/types/Trx.ts +285 -0
  299. package/src/types/UtilsTypes.ts +25 -0
  300. package/src/types/index.ts +9 -0
  301. package/src/types/interface.d.ts +1 -0
  302. package/src/utils/abi.ts +257 -0
  303. package/src/utils/accounts.ts +60 -0
  304. package/src/utils/address.ts +89 -0
  305. package/src/utils/base58.ts +78 -0
  306. package/src/utils/base64.ts +200 -0
  307. package/src/utils/bytes.ts +68 -0
  308. package/src/utils/code.ts +172 -0
  309. package/src/utils/crypto.ts +264 -0
  310. package/src/utils/ethersUtils.ts +60 -0
  311. package/src/utils/fragments.ts +1738 -0
  312. package/src/utils/help.ts +59 -0
  313. package/src/utils/index.ts +42 -0
  314. package/src/utils/interface.ts +1362 -0
  315. package/src/utils/message.ts +38 -0
  316. package/src/utils/transaction.ts +991 -0
  317. package/src/utils/typedData.ts +688 -0
  318. package/src/utils/validations.ts +130 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TronWeb.node.js","mappings":"sHAAA,gBACA,UACA,UACA,UAEA,UAEA,UACA,SAuCA,UAgCA,2BACYA,QACAC,UACR,WAAAC,CAAYF,GACR,KAAKA,GAAaA,aAAmB,EAAAG,SACjC,MAAM,IAAIC,MAAM,gCAEpBC,KAAKL,QAAUA,EACfK,KAAKJ,UAAY,IAAI,EAAAK,SACzB,CAEA,aAAMC,CACFC,EACAC,EAAS,EACTC,EAAeL,KAAKL,QAAQW,eAAeC,IAC3CC,EAAoC,CAAC,GAGrCJ,EAASK,SAASL,GAElBJ,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,YACNC,KAAM,UACNC,MAAOV,GAEX,CACIQ,KAAM,SACNC,KAAM,UACNC,MAAOR,GAEX,CACIS,MAAO,CAAC,YAAa,UACrBF,KAAM,WACNG,IAAK,2CAET,CACIJ,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,KAIf,MAAMa,EAAyB,CAC3BC,YAAY,IAAAC,OAAMhB,GAClBiB,eAAe,IAAAD,OAAMd,GACrBD,OAAQA,GAGNiB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAoCvB,KAAKL,QAAS,EAAA6B,aAAaC,iBAAkBR,EAAMT,GAASkB,aAAcL,EACzH,CAEA,eAAMM,CACFxB,EACAC,EAAS,EACTwB,EACAvB,EAAeL,KAAKL,QAAQW,eAAeC,IAC3CC,EAAoC,CAAC,GAErCJ,EAASK,SAASL,GAClBJ,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,YACNC,KAAM,UACNC,MAAOV,GAEX,CACIQ,KAAM,SACNC,KAAM,UACNC,MAAOR,GAEX,CACIS,MAAO,CAAC,YAAa,UACrBF,KAAM,WACNG,IAAK,8CAET,CACIJ,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,UACNC,MAAOe,KAIf,MAAMX,EAA8B,CAChCC,YAAY,IAAAC,OAAMhB,GAClBiB,eAAe,IAAAD,OAAMd,GACrBwB,YAAY,IAAAC,UAASF,GACrBxB,UAGEiB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAaO,sBAAuBd,EAAMT,GAASkB,aAAcL,EACnI,CAEA,mBAAMW,CACFC,EACAL,EACAxB,EAAS,EACT8B,EAAgBlC,KAAKL,QAAQW,eAAeC,IAC5CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAOqB,GAEX,CACIvB,KAAM,SACNC,KAAM,UACNC,MAAOoB,GAEX,CACInB,MAAO,CAAC,QAAS,UACjBF,KAAM,WACNG,IAAK,4CAET,CACIJ,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,UACNC,MAAOe,KAIf,MAAMX,EAAsC,CACxCC,YAAY,IAAAC,OAAMc,GAClBb,eAAe,IAAAD,OAAMe,GACrBL,YAAY,IAAAC,UAASF,GACrBxB,OAAQK,SAASL,IAGfiB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAiDvB,KAAKL,QAAS,EAAA6B,aAAaW,8BAA+BlB,EAAMT,GAASkB,aAAcL,EACnJ,CAEA,mBAAMe,CACFhC,EAAS,EACTiC,EAAW,EACXC,EAAqB,YACrBC,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDiC,EACAhC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,WACNC,KAAM,UACNC,MAAO2B,EACPC,UAAU,GAEd,CACI9B,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,UACN8B,IAAK,EACL7B,MAAOwB,GAEX,CACI1B,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,iEAGb,MAAME,EAA8B,CAChCG,eAAe,IAAAD,OAAMoB,GACrBI,eAAgBlC,SAASL,GACzBwC,gBAAiBnC,SAASoC,OAAOR,KAEpB,cAAbC,IACArB,EAAKqB,SAAWA,IAGhB,IAAAQ,sBAAqBN,KAAoB,IAAArB,OAAMqB,MAA+B,IAAArB,OAAMoB,KACpFtB,EAAK8B,kBAAmB,IAAA5B,OAAMqB,IAGlC,MAAMnB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAawB,sBAAuB/B,EAAMT,GAASkB,aAAcL,EACnI,CAEA,qBAAM4B,CACFX,EAAqB,YACrBY,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CiC,EACAhC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,WACNC,KAAM,UACNC,MAAO2B,EACPC,UAAU,GAEd,CACI9B,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,iEAGb,MAAME,EAAyC,CAC3CG,eAAe,IAAAD,OAAM+B,IAER,cAAbZ,IACArB,EAAKqB,SAAWA,IAGhB,IAAAQ,sBAAqBN,KAAoB,IAAArB,OAAMqB,MAA+B,IAAArB,OAAM+B,KACpFjC,EAAK8B,kBAAmB,IAAA5B,OAAMqB,IAGlC,MAAMnB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA2CvB,KAAKL,QAAS,EAAA6B,aAAa2B,wBAAyBlC,EAAiCT,GAASkB,aAAcL,EAClK,CAEA,qBAAM+B,CACFhD,EAAS,EACTkC,EAAqB,YACrBY,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,iEAGb,MAAME,EAAgC,CAClCG,eAAe,IAAAD,OAAM+B,GACrBP,eAAgBlC,SAASL,IAEZ,cAAbkC,IACArB,EAAKqB,SAAWA,GAGpB,MAAMjB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA2CvB,KAAKL,QAAS,EAAA6B,aAAa6B,wBAAyBpC,EAAMT,GAASkB,aAAcL,EACvI,CAEA,uBAAMiC,CACFlD,EAAS,EACTkC,EAAqB,YACrBY,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,iEAGb,MAAME,EAAkC,CACpCG,eAAe,IAAAD,OAAM+B,GACrBK,iBAAkB9C,SAASL,IAEd,cAAbkC,IACArB,EAAKqB,SAAWA,GAGpB,MAAMjB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA6CvB,KAAKL,QAAS,EAAA6B,aAAagC,0BAA2BvC,EAAMT,GAASkB,aAAcL,EAC3I,CAEA,6BAAMoC,CACFP,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAGf,MAAMjC,EAAsC,CACxCG,eAAe,IAAAD,OAAM+B,IAGnB7B,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAiDvB,KAAKL,QAAS,EAAA6B,aAAakC,4BAA6BzC,EAAMT,GAASkB,aAAcL,EACjJ,CAEA,sBAAMsC,CACFvD,EAAS,EACToC,EACAF,EAAqB,YACrBY,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CqD,GAAO,EACPC,EACArD,EAAoC,CAAC,GAsCrC,GApCAR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,+DAET,CACIJ,KAAM,WACNC,KAAM,UACNC,MAAO2B,GAEX,CACI7B,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,OACNC,KAAM,UACNC,MAAO+C,GAEX,CACIjD,KAAM,cACNC,KAAM,UACN8B,IAAK,EACL7B,MAAOgD,EACPpB,UAAU,MAGd,IAAAtB,OAAMqB,MAAqB,IAAArB,OAAM+B,GACjC,MAAM,IAAInD,MAAM,0DAGpB,MAAMkB,EAAiC,CACnCG,eAAe,IAAAD,OAAM+B,GACrBH,kBAAkB,IAAA5B,OAAMqB,GACxBsB,QAASrD,SAASL,IAEL,cAAbkC,IACArB,EAAKqB,SAAWA,GAEhBsB,IACA3C,EAAK2C,KAAOA,GACR,IAAAd,sBAAqBe,KACrB5C,EAAK8C,YAAcF,IAI3B,MAAMxC,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA4CvB,KAAKL,QAAS,EAAA6B,aAAawC,yBAA0B/C,EAAMT,GAASkB,aAAcL,EACzI,CAEA,wBAAM4C,CACF7D,EAAS,EACToC,EACAF,EAAqB,YACrBY,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GA2BrC,GAzBAR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,WACNC,KAAM,UACNC,MAAO2B,GAEX,CACI7B,KAAM,SACNC,KAAM,UACNI,GAAI,EACJH,MAAOT,GAEX,CACIO,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,kEAIT,IAAAI,OAAMqB,MAAqB,IAAArB,OAAM+B,GACjC,MAAM,IAAInD,MAAM,0DAGpB,MAAMkB,EAAmC,CACrCG,eAAe,IAAAD,OAAM+B,GACrBH,kBAAkB,IAAA5B,OAAMqB,GACxBsB,QAASrD,SAASL,IAEL,cAAbkC,IACArB,EAAKqB,SAAWA,GAGpB,MAAMjB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA8CvB,KAAKL,QAAS,EAAA6B,aAAa0C,2BAA4BjD,EAAMT,GAASkB,aAAcL,EAC7I,CAEA,4BAAM8C,CACFjB,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAAuC,CACzCG,eAAe,IAAAD,OAAM+B,IAGnB7B,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAkDvB,KAAKL,QAAS,EAAA6B,aAAa4C,+BAAgCnD,EAAMT,GAASkB,aAAcL,EACrJ,CAEA,0BAAMgD,CACFnB,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAAgC,CAClCG,eAAe,IAAAD,OAAM+B,IAGnB7B,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA2CvB,KAAKL,QAAS,EAAA6B,aAAa8C,wBAAyBrD,EAAMT,GAASkB,aAAcL,EACvI,CAEA,gBAAMkD,CACFrB,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CiE,EAAM,GACNhE,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,GAEX,CACIvC,KAAM,MACNC,KAAM,MACNC,MAAO2D,EACPzD,IAAK,wBAET,CACIJ,KAAM,MACNC,KAAM,SACNC,MAAO2D,EACPC,IAAK,IACL1D,IAAK,0BAIb,MAAME,EAA8B,CAChCG,eAAe,IAAAD,OAAM+B,GACrBsB,KAAK,IAAA1C,UAAS0C,IAGZnD,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAakD,sBAAuBzD,EAAMT,GAASkB,aAAcL,EACnI,CAEA,UAAMsD,CACFC,EAAkB,CAAC,EACnBC,EAAuB7E,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAOgE,GAEX,CACIlE,KAAM,QACNC,KAAM,iBACNC,MAAO+D,KAIf,MAAME,EAAUC,OAAOD,QAAQF,GAC/B,IAAK,MAAOI,EAAWC,KAAcH,EACjC9E,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,KACNC,KAAM,UACNC,MAAOmE,GAEX,CACIrE,KAAM,aACNC,KAAM,UACNI,GAAI,EACJH,MAAOoE,EACPlE,IAAK,uCAAyCiE,KAI1D,MAAME,EAAWJ,EAAQK,KAAI,EAAEH,EAAWC,MAC/B,CACHG,cAAc,IAAAjE,OAAM6D,GACpBK,WAAY5E,SAASwE,OAIvBhE,EAA4B,CAC9BG,eAAe,IAAAD,OAAM0D,GACrBD,MAAOM,GAGL7D,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAuCvB,KAAKL,QAAS,EAAA6B,aAAa8D,oBAAqBrE,EAAMT,GAASkB,aAAcL,EAC/H,CAEA,yBAAMkE,CACF/E,EAAsC,CAAC,EACvCyB,EAAwBjC,KAAKL,QAAQW,eAAeC,KAEpD,MAAMiF,EAAWhF,EAAQgF,UAAYxF,KAAKL,QAAQ6F,SAClD,IAAIC,EAAoBjF,EAAQiF,kBACC,iBAAtBA,GAAmCA,IAC1CA,EAAoB,KAExB,MAAMC,EAAoBlF,EAAQkF,mBAAqB,IACjDC,EAAYnF,EAAQmF,WAAa,EACjCC,EAAapF,EAAQoF,WAGrBhE,EAAUpB,EAAQoB,SAAWpB,EAAQqF,SAE3C,IAAI,IAAEC,GAAQtF,EACd,MAAM,WAAEuF,EAAa,IAAOvF,EAC5B,IAAIwF,EAAY,GAChB,MAAM,SAAEC,GAAW,EAAK,KAAEtF,EAAO,IAAOH,EACxC,GAAIsF,IAAO,IAAAI,UAASJ,GAChB,IACIA,EAAMK,KAAKC,MAAMN,EACrB,CAAE,MACE,MAAM,IAAI/F,MAAM,+BACpB,CAGJ,MAAMsG,EAASP,EACf,IAAIhB,EAAuCuB,EAK3C,GAJKA,EAA4CC,SAC7CxB,EAAWuB,EAA4CC,UAGtD,IAAAC,SAAQzB,GAAU,MAAM,IAAI/E,MAAM,gCAEvC,MAAMyG,EAAU1B,EAAQ2B,MAAMC,GACL,gBAAdA,EAAK9F,MAA0B,YAAe8F,EAA6BC,gBAAgBC,gBA+DtG,GA5DA5G,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,WACNC,KAAM,MACNC,MAAOoF,GAEX,CACItF,KAAM,WACNC,KAAM,UACNC,MAAO2E,EACPxE,GAAI,GAER,CACIL,KAAM,YACNC,KAAM,UACNC,MAAO8E,EACPjD,IAAK,GAET,CACI/B,KAAM,oBACNC,KAAM,UACNC,MAAO4E,EACP/C,IAAK,EACL+B,IAAK,KAET,CACI9D,KAAM,oBACNC,KAAM,UACNC,MAAO6E,EACPhD,IAAK,EACL+B,IAAK,KAET,CACI9D,KAAM,aACNC,KAAM,QACNC,MAAOkF,GAEX,CACIpF,KAAM,SACNC,KAAM,UACNC,MAAOoB,GAEX,CACItB,KAAM,aACNC,KAAM,UACNC,MAAO+E,EACPlD,IAAK,EACLD,UAAU,GAEd,CACI9B,KAAM,UACNC,KAAM,UACNC,MAAOe,EACPc,IAAK,EACLD,UAAU,MAMb+D,IAAYb,EAAY,GAAKC,EAAa,GAC3C,MAAM,IAAI7F,MAAM,oFAEpB,MAAM,aAAE8G,EAAY,UAAEC,EAAS,aAAEC,GAAiBvG,EAClD,GAAIqG,IAAgB,IAAAX,UAASW,GACzBb,EAAYa,EAAaG,QAAQ,QAAS,SACvC,GAAIF,EACPd,GAAY,IAAAiB,qBAAoBH,EAAWC,GAAcC,QAAQ,QAAS,QACvE,CACH,IAAIE,EAAyBpC,EAAQqC,MAAMC,GACpB,gBAAZA,EAAGxG,OAGd,QAAiC,IAAtBsG,GAAqCA,EAAmB,CAC/D,MAAMG,EAAW,IAAI,EAAAC,SACfC,EAAQ,GACRC,EAAS,GAGf,GAFAN,EAAoBA,EAAkBO,OAElC1B,EAAW2B,QAAUR,EAAkBQ,OACvC,MAAM,IAAI3H,MAAM,qBAAqBmH,EAAkBQ,cAAc3B,EAAW2B,mBAEpF,IAAK,IAAIC,EAAI,EAAGA,EAAI5B,EAAW2B,OAAQC,IAAK,CACxC,IAAI/G,EAAOsG,EAAkBS,GAAG/G,KAC5BC,EAAakF,EAAW4B,GAE5B,IAAK/G,KAAS,IAAAsF,UAAStF,KAAUA,EAAK8G,OAAQ,MAAM,IAAI3H,MAAM,oCAAsCa,GAEpG,MAAMgH,EAAwB/G,IACtB,IAAA0F,SAAQ1F,GACDA,EAAMsE,KAAK0C,GAAMD,EAAqBC,MAE1C,IAAA1G,OAAMN,GAAiBmG,QAAQ,EAAAc,qBAAsB,MAEnD,YAATlH,GACgD,aAA3CA,EAAKmH,MAAM,yBAAyB,GADrBlH,EAAQ+G,EAAqB/G,GAE5C,WAAWmH,KAAKpH,KACrBA,EAAOA,EAAKoG,QAAQ,WAAY,YAGpCO,EAAMU,KAAKrH,GACX4G,EAAOS,KAAKpH,EAChB,CAEA,IACImF,EAAYqB,EAASa,OAAOX,EAAOC,GAAQR,QAAQ,QAAS,GAChE,CAAE,MAAOmB,GACL,MAAM,IAAIpI,MAAMoI,EACpB,CACJ,MACInC,EAAY,EAEpB,CAEA,MAAMoC,EAAY,CACdhH,eAAe,IAAAD,OAAMc,GACrBoG,UAAW5H,SAAS+E,GACpB8C,WAAY7H,SAASkF,GACrB4C,8BAA+B9C,EAC/B+C,oBAAqB9C,EACrBI,IAAKK,KAAKsC,UAAU3C,GACpBG,WACAD,YACArF,SAIA,IAAAmC,sBAAqB8C,KACrBwC,EAAKM,iBAAmBjI,SAASmF,KAEjC,IAAA9C,sBAAqBlB,KACrBwG,EAAKvC,SAAWpF,SAASmB,IAG7B,MAAM+G,EAAgC,CAAC,EACvCA,EAASvH,cAAgBgH,EAAKhH,eAC1B,IAAA0B,sBAAqBsF,EAAKM,oBAC1BC,EAASD,iBAAmBN,EAAKM,mBAEjC,IAAA5F,sBAAqBsF,EAAKvC,YAC1B8C,EAAS9C,SAAWuC,EAAKvC,UAE7B,MAAM+C,EAAgBD,EAASC,aAAe,CAAC,EAE3CR,EAAKtC,IACL8C,EAAa9C,IAAM,CACfQ,OAAQH,KAAKC,MAAMgC,EAAKtC,MAG5B8C,EAAa9C,IAAM,CAAC,EAEpBsC,EAAKE,aACLM,EAAaN,WAAaF,EAAKE,YAEnCM,EAAaL,8BAAgCH,EAAKG,8BAClDK,EAAaJ,oBAAsBJ,EAAKI,oBACxCI,EAAaC,eAAiBT,EAAKS,gBAAkBT,EAAKhH,cACtDgH,EAAKnC,SAAWmC,EAAKpC,YACrB4C,EAAa3C,UAAYmC,EAAKnC,SAAWmC,EAAKpC,WAAWgB,QAAQ,MAAO,MAExE,IAAAlE,sBAAqBsF,EAAKzH,QAC1BiI,EAAajI,KAAOyH,EAAKzH,MAE7B,MAAMU,GAAqB,IAAAC,uBAAsBd,GAC3CsI,QAAY,IAAAvH,mBAAkBvB,KAAKL,QAAS,EAAA6B,aAAauH,oBAAqBJ,EAAUnI,GAASkB,aAAc,IAC9GL,EACHgH,UAAWD,EAAKC,YAGpB,OADAS,EAAGE,kBAAmB,IAAAC,oBAAmBb,EAAKhH,cAAe0H,EAAGI,MACzDJ,CACX,CAEA,0BAAMK,CACFC,EACAC,EACA7I,EACAuF,EACA9D,GAEA,MAAMqH,EAA6D,CAC/DF,EACAC,EACA7I,EACAuF,EACA9D,GASJ,MAPyB,iBAAdqH,EAAO,KACdA,EAAO,GAAK,CACR9D,SAAU8D,EAAO,GACjB3D,UAAW2D,EAAO,IAEtBA,EAAOC,OAAO,EAAG,IAEjBD,EAAO,IAAIE,QACJxJ,KAAKyJ,8BAA8BH,GAEvCtJ,KAAK0J,yBAAyBJ,EACzC,CAEA,6BAAMK,CACFP,EACAC,EACA7I,EAA0C,CAAC,EAC3CuF,EAA0C,GAC1C9D,EAAwBjC,KAAKL,QAAQW,eAAeC,KAGpD,OADAC,EAAQoJ,aAAc,EACf5J,KAAK0J,sBAAsBN,EAAiBC,EAAkB7I,EAASuF,EAAY9D,EAC9F,CAEA,sCAAM4H,CACFT,EACAC,EACA7I,EAA0C,CAAC,EAC3CuF,EAA0C,GAC1C9D,EAAwBjC,KAAKL,QAAQW,eAAeC,KAIpD,OAFAC,EAAQoJ,aAAc,EACtBpJ,EAAQsJ,WAAY,EACb9J,KAAK0J,sBAAsBN,EAAiBC,EAAkB7I,EAASuF,EAAY9D,EAC9F,CAEA,oBAAM8H,CACFX,EACAC,EACA7I,EAA0C,CAAC,EAC3CuF,EAA0C,GAC1C9D,EAAwBjC,KAAKL,QAAQW,eAAeC,KAIpD,OAFAC,EAAQuJ,gBAAiB,QACJ/J,KAAK0J,sBAAsBN,EAAiBC,EAAkB7I,EAASuF,EAAY9D,EAE5G,CAEA,4BAAM+H,CAAuBxJ,EAAyC,CAAEyJ,MAAO,GAAI1H,aAAc,KAC7F,MAAM,MAAE0H,EAAK,aAAE1H,EAAY,QAAEX,EAAO,WAAEgE,EAAU,UAAED,EAAY,GAAMnF,EAEpER,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,mBACNC,MAAOoJ,GAEX,CACItJ,KAAM,YACNC,KAAM,UACNC,MAAO8E,EACPjD,IAAK,GAET,CACI/B,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,aACNC,KAAM,UACNC,MAAO+E,EACPlD,IAAK,EACLD,UAAU,GAEd,CACI9B,KAAM,UACNC,KAAM,UACNC,MAAOe,EACPc,IAAK,EACLD,UAAU,KAIlB,MAAM2F,EAA+B,CACjCnH,KAAMgJ,EACN7I,eAAe,IAAAD,OAAMoB,GACrB+F,WAAY3C,GAGZ/D,IACAwG,EAAKvC,SAAWjE,GAEhBgE,IACAwC,EAAKM,iBAAmB9C,GAG5B,MAAMsE,EAAW,SAAS1J,EAAQsJ,UAAY,WAAa,oBACrDK,QAAwCnK,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACxGF,EACA9B,EACA,QAEJ,GAAI+B,EAAYpK,MAAO,MAAM,IAAIA,MAAMoK,EAAYpK,OAEnD,GAAIoK,EAAYE,QAAUF,EAAYE,OAAOC,QACzC,MAAM,IAAIvK,MAAMC,KAAKL,QAAQ4K,OAAOJ,EAAYE,OAAOC,UAE3D,OAAOH,CACX,CAEA,4BAAAK,CACIpB,EACAC,EACA7I,EACAuF,EACA9D,EACA2D,EACAhE,EACA+D,EACAH,GAEA,MAAM4C,EAAc,CAChBY,kBAAkB,IAAA7H,OAAMiI,GACxBhI,eAAe,IAAAD,OAAMc,IAGzB,GAAIoH,IAAoB,IAAAnD,UAASmD,GAAmB,CAEhD,IAAIoB,EACJ,GAFApB,EAAmBA,EAAiBrC,QAAQ,OAAQ,IAEhDjB,EAAW2B,OAAQ,CACnB,MAAML,EAAW,IAAI,EAAAC,SACrB,IAAIC,EAAQ,GACZ,MAAMC,EAAS,GAEf,IAAK,IAAIG,EAAI,EAAGA,EAAI5B,EAAW2B,OAAQC,IAAK,CACxC,IAAI,MAAE9G,GAAUkF,EAAW4B,GAC3B,MAAM,KAAE/G,GAASmF,EAAW4B,GAE5B,IAAK/G,KAAS,IAAAsF,UAAStF,KAAUA,EAAK8G,OAAQ,MAAM,IAAI3H,MAAM,oCAAsCa,GAEpG,MAAMgH,EAAwB/G,IACtB,IAAA0F,SAAQ1F,GACDA,EAAMsE,KAAK0C,GAAMD,EAAqBC,MAE1C,IAAA1G,OAAMN,GAAiBmG,QAAQ,EAAAc,qBAAsB,OAEnD,YAATlH,GACgD,aAA3CA,EAAKmH,MAAM,yBAAyB,MADrBlH,EAAQ+G,EAAqB/G,IAGrD0G,EAAMU,KAAKrH,GACX4G,EAAOS,KAAKpH,EAChB,CAEA,IAEI0G,EAAQA,EAAMpC,KAAKvE,IACX,WAAWoH,KAAKpH,KAChBA,EAAOA,EAAKoG,QAAQ,WAAY,YAE7BpG,KAGX6J,EAAepD,EAASa,OAAOX,EAAOC,GAAQR,QAAQ,QAAS,GACnE,CAAE,MAAOmB,GACL,MAAM,IAAIpI,MAAMoI,EACpB,CACJ,MAAOsC,EAAe,GAGlBjK,EAAQsG,YACR2D,GAAe,IAAAxD,qBACXzG,EAAQsG,UACRtG,EAAQuG,cACVC,QAAQ,QAAS,KAGnBxG,EAAQkK,oBAAqB,IAAAxE,UAAS1F,EAAQkK,qBAC9CD,EAAejK,EAAQkK,kBAAkB1D,QAAQ,QAAS,KAG1DxG,EAAQqG,eAAgB,IAAAX,UAAS1F,EAAQqG,gBACzC4D,EAAejK,EAAQqG,aAAaG,QAAQ,QAAS,KAGzDoB,EAAKuC,kBAAoBtB,EACzBjB,EAAKpC,UAAYyE,CACrB,MAAWjK,EAAQyJ,QACf7B,EAAKnH,KAAOT,EAAQyJ,OAexB,OAZA7B,EAAKE,WAAa7H,SAASkF,IACvB,IAAA7C,sBAAqB8C,KAAawC,EAAKM,iBAAmBjI,SAASmF,KACnE,IAAA9C,sBAAqBlB,KAAUwG,EAAKvC,SAAWpF,SAASmB,IAEtDpB,EAAQoJ,aAAepJ,EAAQuJ,iBACjC3B,EAAKC,UAAY5H,SAAS+E,IAG1BhF,EAAQkB,eACR0G,EAAKwC,cAAgBpK,EAAQkB,cAG1B0G,CACX,CAEA,gCAAMqB,CACFL,EACAC,EACA7I,EAA0C,CAAC,EAC3CuF,EAA0C,GAC1C9D,EAAgBjC,KAAKL,QAAQW,eAAeC,KAE5C,MAAM,WAAEqF,EAAU,QAAEhE,EAAO,UAAE+D,EAAS,SAAEH,GAAaT,OAAO8F,OACxD,CACIlF,UAAW,EACXH,SAAUxF,KAAKL,QAAQ6F,UAE3BhF,GAGJR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,WACNC,KAAM,UACNC,MAAO2E,EACPxE,GAAI,GAER,CACIL,KAAM,YACNC,KAAM,UACNC,MAAO8E,EACPjD,IAAK,GAET,CACI/B,KAAM,aACNC,KAAM,QACNC,MAAOkF,GAEX,CACIpF,KAAM,WACNC,KAAM,UACNC,MAAOuI,GAEX,CACIzI,KAAM,SACNC,KAAM,UACNC,MAAOoB,EACPQ,UAAU,GAEd,CACI9B,KAAM,aACNC,KAAM,UACNC,MAAO+E,EACPlD,IAAK,EACLD,UAAU,GAEd,CACI9B,KAAM,UACNC,KAAM,UACNC,MAAOe,EACPc,IAAK,EACLD,UAAU,KAIlB,MAAM2F,EAAOpI,KAAKwK,6BACdpB,EACAC,EACA7I,EACAuF,EACA9D,EACA2D,EACAhE,EACA+D,EACAH,GAGA4C,EAAKuC,oBACLvC,EAAKnH,MAAO,IAAA6J,WAAUC,OAAO1K,KAAK+H,EAAKuC,kBAAmB,UAAUK,WAAWC,UAAU,EAAG,IAAM7C,EAAKpC,WAE3G,MAAMnF,EAA8B,CAChCI,KAAMmH,EAAKnH,KACXG,cAAegH,EAAKhH,cACpB4H,iBAAkBZ,EAAKY,kBAEvBZ,EAAKE,aACLzH,EAAMyH,WAAaF,EAAKE,YAExBF,EAAKM,mBACL7H,EAAM6H,iBAAmBN,EAAKM,kBAE9BN,EAAKvC,WACLhF,EAAMgF,SAAWuC,EAAKvC,UAE1B,MAAMxE,GAAqB,IAAAC,uBAAsBd,GAWjD,MAAO,CACH6J,OAAQ,CACJA,QAAQ,GAEZF,kBAdsB,IAAA5I,mBACtBvB,KAAKL,QACL,EAAA6B,aAAa0J,qBACbrK,EACAL,EAAQkB,aACR,IACOL,EACHgH,UAAWD,EAAKC,YAS5B,CAEA,2BAAMqB,CACFN,EACAC,EACA7I,EAA0C,CAAC,EAC3CuF,EAA0C,GAC1C9D,EAAwBjC,KAAKL,QAAQW,eAAeC,KAEpD,MAAM,WAAEqF,EAAU,QAAEhE,EAAO,UAAE+D,EAAS,SAAEH,GAAaT,OAAO8F,OACxD,CACIlF,UAAW,EACXH,SAAUxF,KAAKL,QAAQ6F,UAE3BhF,GAEJR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,WACNC,KAAM,UACNC,MAAO2E,EACPxE,GAAI,GAER,CACIL,KAAM,YACNC,KAAM,UACNC,MAAO8E,EACPjD,IAAK,GAET,CACI/B,KAAM,aACNC,KAAM,QACNC,MAAOkF,GAEX,CACIpF,KAAM,WACNC,KAAM,UACNC,MAAOuI,GAEX,CACIzI,KAAM,SACNC,KAAM,UACNC,MAAOoB,EACPQ,UAAU,GAEd,CACI9B,KAAM,aACNC,KAAM,UACNC,MAAO+E,EACPlD,IAAK,EACLD,UAAU,GAEd,CACI9B,KAAM,UACNC,KAAM,UACNC,MAAOe,EACPc,IAAK,EACLD,UAAU,KAGlB,MAAM2F,EAAOpI,KAAKwK,6BACdpB,EACAC,EACA7I,EACAuF,EACA9D,EACA2D,EACAhE,EACA+D,EACAH,GAGJ,IAAI0E,EAAW,uBACX1J,EAAQoJ,YACRM,EAAW,0BACJ1J,EAAQuJ,iBACfG,EAAW,kBAGfA,EAAW,SAAS1J,EAAQsJ,UAAY,WAAa,MAAMI,IAC3D,MAAMC,QAAwCnK,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACxGF,EACA9B,EACA,QAEJ,OAAO,IAAA+C,mCAAkChB,EAAa/B,EAAM5H,EAChE,CAEA,cAAM4K,CACFhC,EACA7G,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErC,IAAK,EAAAV,QAAQuL,UAAUjC,GAAkB,MAAM,IAAIrJ,MAAM,qCACzD,IAAK,EAAAD,QAAQuL,UAAU9I,GAAe,MAAM,IAAIxC,MAAM,kCACtD,MAAMkB,EAAyB,CAC3B+H,kBAAkB,IAAA7H,OAAMiI,GACxBhI,eAAe,IAAAD,OAAMoB,IAKrBvC,KAAKL,QAAQ2L,IAAIC,MAAMC,UAAUpC,WAG1BpJ,KAAKL,QAAQ2L,IAAIC,MAAMC,UAAUpC,GAG5C,MAAM/H,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAoCvB,KAAKL,QAAS,EAAA6B,aAAaiK,iBAAkBxK,EAAMT,GAASkB,aAAcL,EACzH,CACA,qBAAMqK,CACFC,EACApJ,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErC,KAAK,IAAAsC,sBAAqB6I,GAAY,MAAM,IAAI5L,MAAM,8BAEtD,KAAK,IAAA6L,WAAUD,IAAcA,EAAY,GAAKA,EAAY,IACtD,MAAM,IAAI5L,MAAM,kDAEpB,IAAK,EAAAD,QAAQuL,UAAU9I,GAAe,MAAM,IAAIxC,MAAM,kCAEtD,MAAMkB,EAAgC,CAClC0K,UAAWlL,SAASkL,GACpBvK,eAAe,IAAAD,OAAMoB,IAGnBlB,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA2CvB,KAAKL,QAAS,EAAA6B,aAAaqK,wBAAyB5K,EAAMT,GAASkB,aAAcL,EACvI,CAEA,iBAAMyK,CACFtL,EAA8B,CAAC,EAC/ByB,EAAwBjC,KAAKL,QAAQW,eAAeC,KAEpD,MAAM,KACFI,GAAO,EAAK,aACZoL,GAAe,EAAK,YACpBC,EAAc,GAAE,IAChBxH,GAAM,EAAK,YACXyH,EAAc,EAAC,SACfC,EAAW,EAAC,WACZC,EAAa,EAAC,UACdC,EAAYC,KAAKC,MAAK,QACtBC,GAAU,EAAK,cACfC,EAAgB,EAAC,mBACjBC,EAAqB,EAAC,aACtBC,EAAe,EAAC,eAChBC,EAAiB,EAAC,UAElBC,EAAS,UACTC,GACArM,EA8EJ,GA5EAR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,gBACNC,KAAM,mBACNC,MAAOoL,GAEX,CACItL,KAAM,YACNC,KAAM,mBACNC,MAAOqL,GAEX,CACIvL,KAAM,cACNC,KAAM,mBACNC,MAAOsL,GAEX,CACIxL,KAAM,qBACNC,KAAM,SACNC,MAAOkL,EACPtH,IAAK,GACLzD,GAAI,GAER,CACIL,KAAM,aACNC,KAAM,mBACNC,MAAOF,GAEX,CACIA,KAAM,oBACNC,KAAM,SACNC,MAAOmL,EACPvH,IAAK,KAET,CACI9D,KAAM,YACNC,KAAM,MACNC,MAAO2D,GAEX,CACI7D,KAAM,YACNC,KAAM,SACNC,MAAO2D,EACPC,IAAK,KAET,CACI9D,KAAM,SACNC,KAAM,UACNC,MAAOoB,GAEX,CACItB,KAAM,uBACNC,KAAM,UACNC,MAAOuL,EACP1J,IAAK2J,KAAKC,OAEd,CACI3L,KAAM,qBACNC,KAAM,UACNC,MAAO0L,EACPvL,GAAIoL,GAER,CACIzL,KAAM,gBACNC,KAAM,UACNC,MAAO6L,EACPhK,IAAK,GAET,CACI/B,KAAM,kBACNC,KAAM,UACNC,MAAO8L,EACPjK,IAAK,MAIT,IAAAI,sBAAqB8J,OAAgB,IAAAhB,WAAUgB,IAAcA,GAAa,GAC1E,MAAM,IAAI7M,MAAM,uDAEpB,IAAI,IAAA+C,sBAAqB+J,OAAgB,IAAAjB,WAAUiB,IAAcA,EAAY,GAAKA,EAAY,GAC1F,MAAM,IAAI9M,MAAM,sDAEpB,MAAMkB,EAAoC,CACtCG,eAAe,IAAAD,OAAMc,GACrBtB,MAAM,IAAAmB,UAASnB,GACfmM,MAAM,IAAAhL,UAASiK,GACfC,aAAa,IAAAlK,UAASkK,GACtBxH,KAAK,IAAA1C,UAAS0C,GACduI,aAActM,SAASwL,GACvBe,QAASvM,SAASyL,GAClBe,IAAKxM,SAAS0L,GACde,WAAYzM,SAAS2L,GACrBe,SAAU1M,SAAS8L,GACnBa,cAAe,CACX,CACIC,cAAe5M,SAASiM,GACxBY,YAAa7M,SAASkM,MAIjC,CAAC,OAAQ,OAAQ,cAAe,OAAiCY,SAASC,IAClEvM,EAAKuM,WACCvM,EAAKuM,EAChB,IAEE/M,SAASiM,GAAgB,UACpBzL,EAAKmM,cAEZZ,IAAkBiB,MAAMhN,SAAS+L,KAAmB/L,SAAS+L,IAAkB,IAC/EvL,EAAKyM,qBAAuBjN,SAAS+L,IAErCC,IAAuBgB,MAAMhN,SAASgM,KAAwBhM,SAASgM,IAAuB,IAC9FxL,EAAK0M,4BAA8BlN,SAASgM,IAE5CI,IAAcY,MAAMhN,SAASoM,MAC7B5L,EAAK4L,UAAYpM,SAASoM,IAE1BD,IAAca,MAAMhN,SAASmM,MAC7B3L,EAAK2M,WAAanN,SAASmM,IAE/B,MAAMvL,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBACHvB,KAAKL,QACL,EAAA6B,aAAaqM,mBACb5M,EACAT,GAASkB,aACTL,EAER,CAEA,mBAAMyM,CACFC,EACA7K,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,UACNC,KAAM,UACNC,MAAOkN,GAEX,CACIpN,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAGf,MAAMjC,EAA8B,CAChCG,eAAe,IAAAD,OAAM+B,GACrB8K,iBAAiB,IAAA7M,OAAM4M,IAGrB1M,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAayM,sBAAuBhN,EAAMT,GAASkB,aAAcL,EACnI,CAEA,mBAAM6M,CACFC,EACAjL,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,OACNC,KAAM,SACN6D,IAAK,IACLzD,GAAI,EACJH,MAAOsN,EACPpN,IAAK,uBAET,CACIJ,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAA8B,CAChCmN,cAAc,IAAAtM,UAASqM,GACvB/M,eAAe,IAAAD,OAAM+B,IAGnB7B,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAa6M,sBAAuBpN,EAAMT,GAASkB,aAAcL,EACnI,CAEA,kBAAMiN,CACFC,EACArL,EAAkBlD,KAAKL,QAAQW,eAAeC,IAC9CC,EAAoC,CAAC,GAEjC+N,IAAa,IAAArI,UAASqI,IAAcA,EAAUC,WAAW,QACzDD,EAAYA,EAAUE,MAAM,IAGhCzO,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,YACNC,KAAM,MACNC,MAAO0N,GAEX,CACI5N,KAAM,YACNC,KAAM,SACN6D,IAAK,GACL/B,IAAK,EACL7B,MAAO0N,GAEX,CACI5N,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAA6B,CAC/ByN,WAAYH,EACZnN,eAAe,IAAAD,OAAM+B,IAGnB7B,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAwCvB,KAAKL,QAAS,EAAA6B,aAAamN,qBAAsB1N,EAAMT,GAASkB,aAAcL,EACjI,CAEA,iBAAMuN,CACFpO,EAA8B,CAAC,EAC/ByB,EAAwBjC,KAAKL,QAAQW,eAAeC,KAEpD,MAAM,YACFyL,EAAc,GAAE,IAChBxH,GAAM,EAAK,cACXgI,EAAgB,EAAC,mBACjBC,EAAqB,GACrBjM,EAEJR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,oBACNC,KAAM,SACNC,MAAOmL,EACPvH,IAAK,KAET,CACI9D,KAAM,YACNC,KAAM,MACNC,MAAO2D,GAEX,CACI7D,KAAM,YACNC,KAAM,SACNC,MAAO2D,EACPC,IAAK,KAET,CACI9D,KAAM,SACNC,KAAM,UACNC,MAAOoB,KAIf,MAAMhB,EAA4B,CAC9BG,eAAe,IAAAD,OAAMc,GACrB+J,aAAa,IAAAlK,UAASkK,GACtBxH,KAAK,IAAA1C,UAAS0C,IAGdgI,IAAkBiB,MAAMhN,SAAS+L,KAAmB/L,SAAS+L,IAAkB,IAC/EvL,EAAK4N,UAAYpO,SAAS+L,IAE1BC,IAAuBgB,MAAMhN,SAASgM,KAAwBhM,SAASgM,IAAuB,IAC9FxL,EAAK6N,iBAAmBrO,SAASgM,IAGrC,MAAMpL,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAuCvB,KAAKL,QAAS,EAAA6B,aAAauN,oBAAqB9N,EAAMT,GAASkB,aAAcL,EAC/H,CAEA,eAAM2N,CACF7O,EACAC,EAAS,EACTwB,EACAvB,EAAeL,KAAKL,QAAQW,eAAeC,IAC3CC,EAAoC,CAAC,GAErC,OAAOR,KAAK2B,UAAUxB,EAAIC,EAAQwB,EAASvB,EAAgBG,EAC/D,CAEA,mBAAMyO,CACFhN,EACAL,EACAxB,EAAS,EACT8B,EAAgBlC,KAAKL,QAAQW,eAAeC,IAC5CC,EAAoC,CAAC,GAErC,OAAOR,KAAKgC,cAAcC,EAAeL,EAASxB,EAAQ8B,EAAiB1B,EAC/E,CAEA,iBAAM0O,CAAY1O,EAA6ByB,GAC3C,OAAOjC,KAAK8L,YAAYtL,EAASyB,EACrC,CAEA,iBAAMkN,CACF3O,EAA8B,CAAC,EAC/ByB,EAAwBjC,KAAKL,QAAQW,eAAeC,KAEpD,OAAOP,KAAK4O,YAAYpO,EAASyB,EACrC,CAMA,oBAAMmN,CACFrJ,EACA9D,EAAwBjC,KAAKL,QAAQW,eAAeC,IACpDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOoB,KAIf,MAAMoN,EAAU,uCAChB,IAAKtJ,EAAY,MAAM,IAAIhG,MAAMsP,GAEjC,MAAMC,GAAY,IAAA/I,SAAQR,GAAcA,EAAa,CAACA,GACtD,IAAK,MAAMC,KAAasJ,EACpB,KAAK,IAAAC,UAASvJ,GAAY,MAAM,IAAIjG,MAAMsP,GAG9C,MAAMpO,EAA+B,CACjCG,eAAe,IAAAD,OAAMc,GACrB8D,WAAYuJ,GAGVjO,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA0CvB,KAAKL,QAAS,EAAA6B,aAAagO,uBAAwBvO,EAAMT,GAASkB,aAAcL,EACrI,CAMA,oBAAMoO,CACFC,EACAzN,EAAwBjC,KAAKL,QAAQW,eAAeC,IACpDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOoB,GAEX,CACItB,KAAM,aACNC,KAAM,UACNC,MAAO6O,EACPhN,IAAK,KAIb,MAAMzB,EAA+B,CACjCG,eAAe,IAAAD,OAAMc,GACrB0N,YAAalP,SAASiP,IAGpBrO,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA0CvB,KAAKL,QAAS,EAAA6B,aAAaoO,uBAAwB3O,EAAMT,GAASkB,aAAcL,EACrI,CAMA,kBAAMwO,CACFH,EACAI,GAAa,EACbjL,EAAuB7E,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAOgE,GAEX,CACIlE,KAAM,aACNC,KAAM,UACNC,MAAO6O,EACPhN,IAAK,GAET,CACI/B,KAAM,eACNC,KAAM,UACNC,MAAOiP,KAIf,MAAM7O,EAA6B,CAC/BG,eAAe,IAAAD,OAAM0D,GACrB8K,YAAalP,SAASiP,GACtBK,gBAAiBD,GAGfzO,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAkBvB,KAAKL,QAAS,EAAA6B,aAAawO,wBAAyB/O,EAAMT,GAASkB,aAAcL,EAC9G,CAOA,uBAAM4O,CACFC,EACAC,EACAC,EACA7N,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,aACNC,KAAM,mBACNC,MAAOqP,GAEX,CACIvP,KAAM,gBACNC,KAAM,mBACNC,MAAOsP,GAEX,CACIxP,KAAM,cACNC,KAAM,mBACNC,MAAOuP,KAIf,MAAMnP,EAA+B,CACjCG,eAAe,IAAAD,OAAMoB,GACrB8N,gBAAgB,IAAAvO,UAASoO,GACzBI,oBAAqBH,EACrBI,gBAAiB,KACjBC,qBAAsBJ,GAGpB/O,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAkBvB,KAAKL,QAAS,EAAA6B,aAAaiP,uBAAwBxP,EAAMT,GAASkB,aAAcL,EAC7G,CAQA,yBAAMqP,CACFC,EACAC,EACAC,EACAC,EACAvO,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,mBACNC,KAAM,mBACNC,MAAO8P,GAEX,CACIhQ,KAAM,oBACNC,KAAM,mBACNC,MAAOgQ,GAEX,CACIlQ,KAAM,sBACNC,KAAM,mBACNC,MAAO+P,GAEX,CACIjQ,KAAM,uBACNC,KAAM,mBACNC,MAAOiQ,KAIf,MAAM7P,EAA+B,CACjCG,eAAe,IAAAD,OAAMoB,GACrB8N,gBAAgB,IAAAvO,UAAS6O,GACzBL,oBAAqBM,EACrBL,iBAAiB,IAAAzO,UAAS+O,GAC1BL,qBAAsBM,GAGpBzP,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA0CvB,KAAKL,QAAS,EAAA6B,aAAaiP,uBAAwBxP,EAAMT,GAASkB,aAAcL,EACrI,CAOA,0BAAM0P,CACFC,EACAd,EACAe,EACA1O,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,aACNC,KAAM,mBACNC,MAAOqP,GAEX,CACIvP,KAAM,eACNC,KAAM,UACNC,MAAOoQ,EACPvO,IAAK,GAET,CACI/B,KAAM,aACNC,KAAM,UACNC,MAAOmQ,EACPtO,IAAK,KAIb,MAAMzB,EAA+B,CACjCG,eAAe,IAAAD,OAAMoB,GACrB2O,YAAazQ,SAASuQ,GACtBnL,UAAU,IAAA/D,UAASoO,GACnBiB,MAAO1Q,SAASwQ,IAGd5P,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAkBvB,KAAKL,QAAS,EAAA6B,aAAa4P,uBAAwBnQ,EAAMT,GAASkB,aAAcL,EAC7G,CAOA,4BAAMgQ,CACFL,EACAd,EACAe,EACA1O,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,aACNC,KAAM,mBACNC,MAAOqP,GAEX,CACIvP,KAAM,eACNC,KAAM,UACNC,MAAOoQ,EACPvO,IAAK,GAET,CACI/B,KAAM,aACNC,KAAM,UACNC,MAAOmQ,EACPtO,IAAK,KAIb,MAAMzB,EAAiC,CACnCG,eAAe,IAAAD,OAAMoB,GACrB2O,YAAazQ,SAASuQ,GACtBnL,UAAU,IAAA/D,UAASoO,GACnBiB,MAAO1Q,SAASwQ,IAGd5P,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA4CvB,KAAKL,QAAS,EAAA6B,aAAa8P,yBAA0BrQ,EAAMT,GAASkB,aAAcL,EACzI,CAOA,yBAAMkQ,CACFP,EACAd,EACAsB,EACAC,EACAlP,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,aACNC,KAAM,mBACNC,MAAOqP,GAEX,CACIvP,KAAM,kBACNC,KAAM,UACNC,MAAO2Q,EACP9O,IAAK,GAET,CACI/B,KAAM,sBACNC,KAAM,UACNC,MAAO4Q,EACP/O,IAAK,GAET,CACI/B,KAAM,aACNC,KAAM,UACNC,MAAOmQ,EACPtO,IAAK,KAIb,MAAMzB,EAAoC,CACtCG,eAAe,IAAAD,OAAMoB,GACrB2O,YAAazQ,SAASuQ,GACtBnL,SAAU,EAAA/F,QAAQ4R,UAAUxB,GAAWlJ,QAAQ,MAAO,IACtDmK,MAAO1Q,SAAS+Q,GAChBG,SAAUlR,SAASgR,IAGjBpQ,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA+CvB,KAAKL,QAAS,EAAA6B,aAAaoQ,4BAA6B3Q,EAAMT,GAASkB,aAAcL,EAC/I,CAKA,mBAAMwQ,CACFzI,EACA3D,EACAlD,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,WACNC,KAAM,UACNC,MAAOuI,GAEX,CACIzI,KAAM,oBACNC,KAAM,UACNC,MAAO4E,EACP/C,IAAK,EACL+B,IAAK,OAIb,MAAMxD,EAA8B,CAChCG,eAAe,IAAAD,OAAMoB,GACrByG,kBAAkB,IAAA7H,OAAMiI,GACxBb,8BAA+B9C,GAG7BpE,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAyCvB,KAAKL,QAAS,EAAA6B,aAAasQ,sBAAuB7Q,EAAMT,GAASkB,aAAcL,EACnI,CAKA,uBAAM0Q,CACF3I,EACA1D,EAAoB,EACpBnD,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDC,EAAoC,CAAC,GAErCR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,QACNC,KAAM,UACNC,MAAO0B,GAEX,CACI5B,KAAM,WACNC,KAAM,UACNC,MAAOuI,GAEX,CACIzI,KAAM,oBACNC,KAAM,UACNC,MAAO6E,EACPhD,IAAK,EACL+B,IAAK,OAIb,MAAMxD,EAAkC,CACpCG,eAAe,IAAAD,OAAMoB,GACrByG,kBAAkB,IAAA7H,OAAMiI,GACxBZ,oBAAqB9C,GAGnBrE,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAA6CvB,KAAKL,QAAS,EAAA6B,aAAawQ,0BAA2B/Q,EAAMT,GAASkB,aAAcL,EAC3I,CAEQ,gBAAA4Q,CAAiBC,EAAyBtR,GAC9C,GAAIsR,EAAa,CACb,GACIA,EAAYtR,OAASA,IACpBsR,EAAYC,mBACZ,IAAAjM,UAASgM,EAAYC,oBACrB,IAAAvG,WAAUsG,EAAYE,YACvBF,EAAYE,UAAY,IACvBF,EAAYG,KAEb,OAAO,EAEX,IAAK,MAAM7E,KAAO0E,EAAYG,KAC1B,IACK,EAAAvS,QAAQuL,UAAUmC,EAAItK,YACtB,IAAA0I,WAAU4B,EAAI8E,SACf9E,EAAI8E,OAASJ,EAAYE,WACzB5E,EAAI8E,OAAS,GACH,IAAT1R,IAAesR,EAAYK,WAE5B,OAAO,CAGnB,CACA,OAAO,CACX,CAEA,8BAAMC,CACFjQ,EAAuBvC,KAAKL,QAAQW,eAAeC,IACnDkS,EACAC,EACAC,EACAnS,EAAoC,CAAC,GAErC,IAAK,EAAAV,QAAQuL,UAAU9I,GAA0B,MAAM,IAAIxC,MAAM,iCAEjE,IAAKC,KAAKiS,iBAAiBQ,EAAiB,GACxC,MAAM,IAAI1S,MAAM,qCAGpB,IAAKC,KAAKiS,iBAAiBS,EAAoB,GAC3C,MAAM,IAAI3S,MAAM,uCAGf6S,MAAMrM,QAAQoM,KACfA,EAAqB,CAACA,IAG1B,IAAK,MAAME,KAAqBF,EAC5B,IAAK3S,KAAKiS,iBAAiBY,EAAmB,GAC1C,MAAM,IAAI9S,MAAM,uCAIxB,MAAMkB,EAAwC,CAC1CG,eAAe,IAAAD,OAAMoB,IAEzB,GAAIkQ,EAAiB,CACjB,MAAMK,GAAoB,IAAAC,cAAkCN,GAExD,SAAUK,UACHA,EAAkBlS,KAE7BkS,EAAkBT,KAAOS,EAAkBT,MAAMlN,KAAI,EAAGjC,UAASoP,aAAa,CAC1EpP,QAASlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GACpCoP,aAEJrR,EAAK+R,MAAQF,CACjB,CACA,GAAIJ,EAAmB,CACnB,MAAMO,GAAsB,IAAAF,cAAyBL,GAIrDO,EAAoBrS,KAAO,UAC3BqS,EAAoBZ,KAAOY,EAAoBZ,KAAKlN,KAAI,EAAGjC,UAASoP,aAAa,CAC7EpP,QAASlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GACpCoP,aAEJrR,EAAKiS,QAAUD,CACnB,CACA,GAAIN,EAAoB,CACpB,MAAMQ,GAAsB,IAAAJ,cAA2BJ,GAEvDQ,EAAoB5F,SAAS6F,IAGzBA,EAAkBxS,KAAO,QAAQ,IAErCuS,EAAoB5F,SAAS8F,IACzBA,EAAmBhB,KAAOgB,EAAmBhB,KAAKlN,KAAI,EAAGjC,UAASoP,aAAa,CAC3EpP,QAASlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GACpCoP,YACD,IAEPrR,EAAKqS,QAAUH,CACnB,CAEA,MAAM9R,GAAqB,IAAAC,uBAAsBd,GACjD,OAAO,IAAAe,mBAAmDvB,KAAKL,QAAS,EAAA6B,aAAa+R,gCAAiCtS,EAAMT,GAASkB,aAAcL,EACvJ,CAEA,aAAMmS,CAAuFrJ,EAAgB3J,EAAiC,CAAC,GAC3I,GAAIA,GAASgJ,QAAS,CAClB,MAAMb,EAAWwB,EAAYsJ,SAAS9K,SAAS,GAC/C,IACI,MAAMG,QAAW,IAAAvH,mBACbvB,KAAKL,QACLgJ,EAAS/H,KACT+H,EAAS3C,UAAUnF,MACnB8H,EAASiC,cACT,CACIvC,UAAW8B,EAAYsJ,SAASpL,UAChCpH,KAAMkJ,EAAYsJ,SAASxS,KAC3ByS,gBAAiBvJ,EAAYsJ,SAASC,gBACtCC,eAAgBxJ,EAAYsJ,SAASE,eACrCC,WAAYzJ,EAAYsJ,SAASG,WACjCC,UAAW1J,EAAYsJ,SAASI,YAKxC,OAFC/K,EAA4BgL,UAAa3J,EAAqC2J,UAC/EhL,EAAGiL,QAAU5J,EAAY4J,QAClBjL,CACX,CAAE,MAAOkL,GACL,MAAM,IAAIjU,MAAM,yCACpB,CACJ,CACA,IACI,MAAMkU,QAAmCjU,KAAKL,QAAQuU,SAAS9J,QAAQ,uBAAwBD,EAAa,QAI5G,MAHmC,kBAAxBA,EAAY4J,UACnBE,EAAI9J,YAAYA,YAAY4J,QAAU5J,EAAY4J,UAE/C,IAAAI,eACHF,EAAI9J,YAAYA,YAChB,IACOA,EAAYsJ,SAAS9K,SAAS,GAAG3C,UAAUnF,MAC9C+J,cAAeT,EAAYsJ,SAAS9K,SAAS,GAAGiC,eAIpD,CAAE3J,KAAMkJ,EAAYsJ,SAASxS,KAAMoH,UAAW8B,EAAYsJ,SAASpL,WAE3E,CAAE,MAAO2L,GACL,MAAM,IAAIjU,MAAM,yCACpB,CACJ,CAEA,sBAAMqU,CAAiBjK,EAA0B3J,EAAmC,CAAC,GACjF,GAAI6T,QAAQC,IAAInK,EAAa,aAAc,MAAM,IAAIpK,MAAM,8DAE3D,GAAIS,EAAQS,KAAM,CAGd,GAF2B,QAAvBT,EAAQ+T,aAAsB/T,EAAQS,KAAO,EAAAnB,QAAQqB,MAAMX,EAAQS,OACvET,EAAQS,KAAOT,EAAQS,KAAM+F,QAAQ,MAAO,IAChB,IAAxBxG,EAAQS,KAAKyG,OAAc,MAAM,IAAI3H,MAAM,yBAC/CoK,EAAYsJ,SAASxS,KAAOT,EAAQS,IACxC,CAEA,GAAIT,EAAQgU,UAAW,CAEnB,GADAhU,EAAQgU,UAAY/T,SAA6B,IAApBD,EAAQgU,WACjC/G,MAAMjN,EAAQgU,YAAcrK,EAAYsJ,SAASG,WAAapT,EAAQgU,WAAanI,KAAKC,MAAQ,IAChG,MAAM,IAAIvM,MAAM,8BACpBoK,EAAYsJ,SAASG,YAAcpT,EAAQgU,SAC/C,CAEA,aAAaxU,KAAKwT,QAAQrJ,EAAa,CAAEX,QAAShJ,EAAQgJ,SAC9D,CAEA,sBAAMiL,CAAiBtK,EAA0BqK,EAAmBhU,EAAmB,CAAC,GACpF,aAAaR,KAAKoU,iBAAiBjK,EAAa,CAAEqK,YAAWhL,QAAShJ,GAASgJ,SACnF,CAEA,mBAAMkL,CAAcvK,EAA0BlJ,EAAcsT,EAA6B,OAAQ/T,EAAmB,CAAC,GACjH,OAAOR,KAAKoU,iBAAiBjK,EAAa,CAAElJ,OAAMsT,WAAYA,EAAsB/K,QAAShJ,GAASgJ,SAC1G,E,+ECrtEJ,oBAAyB3I,GACrB,OAAO,EAAAf,QAAQgC,SAASjB,GAAOmG,QAAQ,MAAO,GAClD,EAEA,wBAA0C2N,GACtC,OAAOxO,KAAKC,MAAMD,KAAKsC,UAAUkM,GACrC,EACA,yBAA8BxK,EAAiClJ,EAAeT,GAC1E,GAAI2J,EAAYpK,MAAO,MAAM,IAAIA,MAAMoK,EAAYpK,OAEnD,GAAIoK,EAAYE,QAAUF,EAAYE,OAAOC,QACzC,MAAM,IAAIvK,MAAM,EAAAD,QAAQyK,OAAOJ,EAAYE,OAAOC,UAGtD,IADmB,IAAAsK,iBAAgBzK,EAAalJ,EAAMT,GAElD,OAAO2J,EAEX,MAAM,IAAIpK,MAAM,sBACpB,EAEA,6CACIoK,EACAlJ,EACAT,GAEA,GAAI2J,EAAYpK,MAAO,MAAM,IAAIA,MAAMoK,EAAYpK,OAEnD,GAAIoK,EAAYE,QAAUF,EAAYE,OAAOC,QACzC,MAAM,IAAIvK,MAAM,EAAAD,QAAQyK,OAAOJ,EAAYE,OAAOC,UAGtD,IAAM9J,EAAQoJ,cAAepJ,EAAQuJ,eAAiB,CAElD,IADmB,IAAA6K,iBAAgBzK,EAAYA,YAAalJ,EAAMT,GAE9D,OAAO2J,EAEX,MAAM,IAAIpK,MAAM,sBACpB,CACA,OAAOoK,CACX,EAEA,8BAAmC5H,EAAsB2G,GACrD,MACI,MACA,IAAA4B,WAAUC,OAAO1K,KAAK6I,EAAO3G,EAAc,QACtCyI,WACAC,UAAU,GACVwD,MAAM,GAEnB,EAEA,kBAmCA,oBAAOoG,eACHlV,EACAiB,EACAC,EACA+J,EACApK,EAAU,CAAC,GAEX,MAAMsI,EAAqB,CACvBiL,SAAS,EACT7K,KAAM,GACN4L,aAAc,GACdrB,SAAU,CACN9K,SAAU,CACN,CACI3C,UAAW,CACPnF,QACAkU,SAAU,gCAAgCnU,KAE9CA,YAGJoU,EAAiBxU,GAAY,CAAC,QAAsCyU,EAActV,EAAQuU,aAC3F1T,IAGPoK,IACA9B,EAAG2K,SAAS9K,SAAS,GAAGiC,cAAgBA,GAE5C,MAAMsK,GAAK,IAAAC,YAAWrM,GAGtB,OAFAA,EAAGI,MAAO,IAAAkM,YAAWF,GAAIlO,QAAQ,MAAO,IACxC8B,EAAGgM,cAAe,IAAAO,kBAAiBH,GAAItO,cAChCkC,CACX,EAEA,iCAAsCtI,EAA8D,CAAC,GACjG,MAAM8U,EAAM,CAAC,EAOb,OANIN,EAAiBxU,EAAQ+U,eACzBD,EAAqB,gBAAI9U,EAAQ+U,YAA8B,gBAC/DD,EAAoB,eAAI9U,EAAQ+U,YAA6B,eAC7DD,EAAgB,WAAI9U,EAAQ+U,YAAyB,WACrDD,EAAe,UAAI9U,EAAQ+U,YAAwB,WAEhDD,CACX,EA1IA,gBAEA,UACA,UAyDA,SAAgBL,EAAcO,GAC1B,OAAOA,EAAKpL,QAA4B,kBAAmB,CAAEqL,QAAQ,GAAS,QAAQC,MAAMzU,IACjF,CACHyS,gBAAiBzS,EAAK0U,aAAalC,SAASmC,OAAO5K,SAAS,IAAIyD,OAAO,GAAGoH,SAAS,EAAG,KACtFlC,eAAgB1S,EAAK6U,QAAQrH,MAAM,GAAI,IACvCmF,WAAY3S,EAAK0U,aAAalC,SAASI,UAAY,IACnDA,UAAW5S,EAAK0U,aAAalC,SAASI,aAGlD,CAEA,SAASmB,EAAiBxU,EAAU,CAAC,GACjC,QAC0C,IAA/BA,EAAyB,sBACK,IAA9BA,EAAwB,qBACE,IAA1BA,EAAoB,iBACK,IAAzBA,EAAmB,UAE1B,OAAO,EAEX,GAA0C,iBAA/BA,EAAyB,gBAChC,MAAM,IAAIT,MAAM,qCAEpB,GAAyC,iBAA9BS,EAAwB,eAC/B,MAAM,IAAIT,MAAM,oCAEpB,GAAqC,iBAA1BS,EAAoB,WAC3B,MAAM,IAAIT,MAAM,gCAEpB,GAAoC,iBAAzBS,EAAmB,UAC1B,MAAM,IAAIT,MAAM,+BAEpB,OAAO,CACX,C,0HC7FA,UACA,6BACA,UAMA,iBACIJ,QACAmG,IACA5C,QACA6S,cACA9P,SACA+P,SACAC,UACAC,QACAC,gBACAC,MAGA,WAAAvW,CAAYF,EAAkBmG,EAA4B,GAAI5C,GAC1D,KAAKvD,GAAaA,aAAmB,EAAAG,SAAU,MAAM,IAAIC,MAAM,gCAE/DC,KAAKL,QAAUA,EAEfK,KAAKkD,QAAUA,EACflD,KAAK8F,IAAMA,EAEX9F,KAAK+V,eAAgB,EACrB/V,KAAKiG,UAAW,EAChBjG,KAAKgW,UAAW,EAChBhW,KAAKiW,WAAY,EAEjBjW,KAAKkW,QAAU,CAAC,EAChBlW,KAAKmW,gBAAkB,CAAC,EACxBnW,KAAKoW,MAAQ,GAET,UAAMlT,QAAQmI,UAAUnI,GACxBlD,KAAKgW,UAAW,EAEhBhW,KAAKkD,SAAU,EAGnBlD,KAAKqW,QAAQvQ,EACjB,CAEA,WAAAwQ,CAAYC,GAER,OAAOvW,KAAKwW,eAAeD,IAAcvW,KAAayW,UAAUD,eAAeD,EACnF,CAEA,OAAAF,CAAQvQ,GACJ9F,KAAK8F,IAAMA,EACX9F,KAAKkW,QAAU,CAAC,EAEhBlW,KAAKoW,MAAM7I,SAASmJ,UAAyB1W,KAAa0W,KAE1D5Q,EAAIyH,SAAS7G,IAGT,IAAKA,EAAK9F,MAAQ,qBAAqBoH,KAAKtB,EAAK9F,MAAO,OAExD,MAAM+V,EAAS,IAAI,EAAAC,OAAO5W,KAAM0G,GAC1BmQ,EAAaF,EAAOG,SAASC,KAAKJ,IAElC,KAAEhW,EAAI,iBAAE0I,EAAgB,UAAEyK,GAAc6C,EAE9C3W,KAAKkW,QAAQvV,GAAQkW,EACrB7W,KAAKkW,QAAQ7M,GAAqBwN,EAClC7W,KAAKkW,QAAQpC,GAAa+C,EAE1B7W,KAAKmW,gBAAgBxV,GAAQgW,EAC7B3W,KAAKmW,gBAAgB9M,GAAqBsN,EAC1C3W,KAAKmW,gBAAgBrC,GAAa6C,EAE7B3W,KAAKsW,YAAY3V,KACjBX,KAAaW,GAAQkW,EACtB7W,KAAKoW,MAAMnO,KAAKtH,IAGfX,KAAKsW,YAAYjN,KACjBrJ,KAAaqJ,GAAqBwN,EACnC7W,KAAKoW,MAAMnO,KAAKoB,IAGfrJ,KAAKsW,YAAYxC,KACjB9T,KAAa8T,GAAa+C,EAC3B7W,KAAKoW,MAAMnO,KAAK6L,GACpB,GAER,CAEA,WAAAkD,CAAY/V,GACR,MAAMgW,EAAahW,EAAKgK,UAAU,EAAG,GAC/BiM,EAAYjW,EAAKgK,UAAU,GAEjC,IAAKjL,KAAKmW,gBAAgBc,GAAa,MAAM,IAAIlX,MAAM,mBAAqBkX,EAAa,cAIzF,MAAO,CACHtW,KAHmBX,KAAKmW,gBAAgBc,GAGnBtW,KACrB2I,OAAQtJ,KAAKmW,gBAAgBc,GAAYD,YAAYE,GAE7D,CAEA,SAAM,CAAI1W,EAAqC2W,EAAanX,KAAKL,QAAQyX,mBACrE,MAAMlU,EAAUlD,KAAKL,QAAQuD,QAAQmU,eAAeF,GAC9ChN,QAAoBnK,KAAKL,QAAQ2X,mBAAmB/R,oBAAoB/E,EAAS0C,GACjFqU,QAA0BvX,KAAKL,QAAQ2L,IAAIkM,KAAKrN,EAAagN,GAC7DxO,QAAiB3I,KAAKL,QAAQ2L,IAAImM,mBAAmBF,GAE3D,GAAI5O,EAAS+O,KACT,KAAM,CACFC,MAAOhP,EAAS+O,KAChBpN,QAAStK,KAAKL,QAAQ4K,OAAO5B,EAAS2B,UAK9C,aADM,UAAMsN,MAAM,KACX5X,KAAK6X,GAAGN,EAAkBvO,iBACrC,CAEA,QAAM6O,CAAGzO,GACL,IACI,MAAMT,QAAiB3I,KAAKL,QAAQ2L,IAAIwM,YAAY1O,GAEpD,IAAKT,EAASK,iBACV,MAAM,IAAIjJ,MAAM,kBAAoBoG,KAAKsC,UAAUE,EAAU,KAAM,IASvE,OANA3I,KAAKkD,QAAUyF,EAASK,iBACxBhJ,KAAKiG,SAAW0C,EAAS1C,SACzBjG,KAAKgW,UAAW,EAEhBhW,KAAKqW,QAAQ1N,EAAS7C,KAAO6C,EAAS7C,IAAIQ,OAASqC,EAAS7C,IAAIQ,OAAe,IAExEtG,IACX,CAAE,MAAOmI,GACL,GAAIA,EAAG6C,WAAW+M,SAAS,kBACvB,MAAM,IAAIhY,MAAM,iDAGpB,MAAM,IAAIA,MAAMoI,EACpB,CACJ,GAIJ,cAAS,wEAAAyO,MAAM,G,qGCrJf,E,QAAA,yBACA,UAGA,UA0DMoB,EAAe,CAAClS,EAAkCmS,KAC7C,IAAAC,qBAAoBpS,EAAKmS,GAGpC,eACItY,QACAgJ,SACA7C,IACAnF,KACA8G,OACA0Q,QACA9O,iBACAyK,UACAsE,eAOA,WAAAvY,CAAY8I,EAAoB7C,GAC5B9F,KAAKL,QAAUgJ,EAAShJ,QACxBK,KAAK2I,SAAWA,EAEhB3I,KAAK8F,IAAMA,EACX9F,KAAKW,KAAOmF,EAAInF,MAAQmF,EAAIlF,KAE5BZ,KAAKyH,OAAS3B,EAAI2B,QAAU,GAE5BzH,KAAKmY,QAAU,GACX,YAAarS,GAAOA,EAAIqS,UACxBnY,KAAKmY,QAAUrS,EAAIqS,SAGvBnY,KAAKqJ,iBArDe,CAACvD,IAKzB,GAJI,oBAAqBA,IACpBA,EAAIa,gBAA2Cb,EAAIa,gBAAkBb,EAAIa,gBAAgBC,cAAgB,cAE7Gd,EAAIlF,KAAyBkF,EAAIlF,KAAOkF,EAAIlF,KAAKgG,cAAgB,GACjD,aAAbd,EAAIlF,MAAoC,YAAbkF,EAAIlF,KAAoB,MAAO,KAC9D,MAAMyX,EAAQ,IAAI,UAAMC,YAAYC,UAAU,CAACzS,IAC/C,IAAI0S,EAMJ,GAJIA,EADa,UAAb1S,EAAIlF,KACEyX,EAAMI,SAAS3S,EAAInF,MAEnB0X,EAAMK,YAAY5S,EAAInF,MAE5B6X,EACA,OAAOA,EAAIG,OAAO,WAEtB,MAAM,IAAI5Y,MAAM,mBAAmB,EAqCP6Y,CAAoB9S,GAC5C9F,KAAK8T,WAAY,IAAA+E,MAAK7Y,KAAKqJ,kBAAkB,GAAOoF,MAAM,EAAG,GAE7DzO,KAAKoY,eAAiB,CAClB5S,SAAUxF,KAAKL,QAAQ6F,SACvBG,UAAW,EACXF,kBAAmB,IACnBqT,oBAAoB,EAE5B,CAEA,WAAA9B,CAAY/V,GACR,MAAM6E,EAAMK,KAAKC,MAAMD,KAAKsC,UAAUzI,KAAK8F,MAE3C,OADAA,EAAIqS,QAAUrS,EAAI2B,OACXuQ,EAAalS,EAAK,KAAO7E,EACpC,CAEA,QAAA6V,IAAY1O,GACR,IAAIvB,EAAe,GAInB,OAHI7G,KAAK8F,MAAQ,SAASkC,KAAKhI,KAAK8F,IAAIlF,QACpCiG,GAAe,IAAAI,qBAAoBjH,KAAK8F,IAAKsC,IAE1C,CACH2Q,KAAMlE,MAAOrU,EAAuB,CAAC,KACjCA,EAAU,IACHA,EACHqG,sBAGS7G,KAAKgZ,MAAM,GAAI,GAAIxY,IAEpCyY,KAAMpE,MAAOrU,EAAuB,CAAC,EAAG2W,EAAanX,KAAKL,QAAQyX,qBAC9D5W,EAAU,IACHA,EACHqG,sBAGS7G,KAAKkZ,MAAM,GAAI,GAAI1Y,EAAS2W,IAGrD,CAEA,WAAM6B,CAAMzR,EAAWa,EAAU5H,EAAuB,CAAC,GACrD,GAAI+G,EAAMG,SAAWU,EAAKV,OACtB,MAAM,IAAI3H,MAAM,mCAGpB,IAAKC,KAAK2I,SAASzF,QACf,MAAM,IAAInD,MAAM,qCAGpB,IAAKC,KAAK2I,SAASqN,SACf,MAAM,IAAIjW,MAAM,mEAEpB,GAAI,oBAAqBC,KAAK8F,IAAK,CAC/B,MAAM,gBAAEa,GAAoB3G,KAAK8F,IAEjC,GAAIa,IAAoB,CAAC,OAAQ,QAAQoR,SAASpR,EAAgBC,eAC9D,MAAM,IAAI7G,MAAM,kCAAkC4G,qBAE1D,CAEAnG,EAAU,IACHR,KAAKoY,eACR/X,KAAML,KAAKL,QAAQW,eAAeC,OAC/BC,EACHoJ,aAAa,GAGjB,MAAM7D,EAAaqC,EAAKjD,KAAI,CAACtE,EAAOsY,KAAU,CAC1CvY,KAAM2G,EAAM4R,GACZtY,YAGEsJ,QAAoBnK,KAAKL,QAAQ2X,mBAAmBnO,qBACtDnJ,KAAK2I,SAASzF,QACdlD,KAAKqJ,iBACL7I,EACAuF,EACAvF,EAAQH,KAAOL,KAAKL,QAAQuD,QAAQ/B,MAAMX,EAAQH,WAAQ+Y,GAG9D,IAAK,UAAM9C,YAAYnM,EAAa,mBAChC,MAAM,IAAIpK,MAAM,qBAGpB,MAAMsZ,EAAMlP,EAAYmP,gBAAiB,GAAG5R,OAC5C,GAAY,IAAR2R,GAAaA,EAAM,IAAO,EAAG,CAC7B,IAAItY,EAAM,qDACV,GAAY,IAARsY,EAAW,CACXtY,GAAO,mBACP,IAAIwY,EAAO,GACX,MAAMC,EAAQrP,EAAYmP,gBAAiB,GAAGrO,UAAU,GACxD,IAAK,IAAItD,EAAI,EAAGA,EAAI0R,EAAM,EAAG1R,GAAK,GAC9B4R,GAAQvZ,KAAKL,QAAQ4K,OAAOiP,EAAMvO,UAAUtD,EAAGA,EAAI,KAEvD5G,GAAOwY,EACFvS,QAAQ,uBAAwB,KAChCA,QAAQ,MAAO,KACfA,QAAQ,QAAS,GAC1B,CACA,MAAM,IAAIjH,MAAMgB,EACpB,CAEA,IAAIkX,EAASD,EAAahY,KAAK8F,IAAK,KAAOqE,EAAYmP,gBAAiB,IAKxE,OAHsB,IAAlBrB,EAAOvQ,QAA+C,IAA/B3C,OAAOsN,KAAK4F,GAAQvQ,SAC3CuQ,EAASA,EAAO,IAEbA,CACX,CAEA,WAAMiB,CAAM3R,EAAWa,EAAU5H,EAAuB,CAAC,EAAG2W,EAAanX,KAAKL,QAAQyX,mBAClF,GAAI7P,EAAMG,SAAWU,EAAKV,OACtB,MAAM,IAAI3H,MAAM,mCAGpB,IAAKC,KAAK2I,SAASzF,QACf,MAAM,IAAInD,MAAM,qCAGpB,IAAKC,KAAK2I,SAASqN,SACf,MAAM,IAAIjW,MAAM,mEAGpB,MAAM,gBAAE4G,GAAoB3G,KAAK8F,IAEjC,GAAI,CAAC,OAAQ,QAAQiS,SAASpR,EAAgBC,eAC1C,MAAM,IAAI7G,MAAM,kCAAkC4G,sBAIjD,CAAC,WAAWoR,SAASpR,EAAgBC,iBACtCpG,EAAQmF,UAAY,GAGxBnF,EAAU,IACHR,KAAKoY,eACR/X,KAAML,KAAKL,QAAQW,eAAeC,OAC/BC,GAGP,MAAMuF,EAAaqC,EAAKjD,KAAI,CAACtE,EAAOsY,KAAU,CAC1CvY,KAAM2G,EAAM4R,GACZtY,YAGEqC,EAAUiU,EAAanX,KAAKL,QAAQuD,QAAQmU,eAAeF,GAAcnX,KAAKL,QAAQW,eAAemZ,OACrGtP,QAAoBnK,KAAKL,QAAQ2X,mBAAmBnO,qBACtDnJ,KAAK2I,SAASzF,QACdlD,KAAKqJ,iBACL7I,EACAuF,EACA/F,KAAKL,QAAQuD,QAAQ/B,MAAM+B,IAG/B,IAAKiH,EAAYE,SAAWF,EAAYE,OAAOA,OAC3C,MAAM,IAAItK,MAAM,kBAAoBoG,KAAKsC,UAAU0B,EAAa,KAAM,IAI1E,MAAMoN,QAA0BvX,KAAKL,QAAQ2L,IAAIkM,KAAKrN,EAAYA,YAAagN,GAE/E,IAAKI,EAAkBzD,UAAW,CAC9B,IAAKqD,EACD,MAAM,IAAIpX,MAAM,uCAGpB,MAAM,IAAIA,MAAM,+BACpB,CAEA,MAAM2Z,QAAkB1Z,KAAKL,QAAQ2L,IAAImM,mBAAmBF,GAE5D,GAAImC,EAAUhC,KAAM,CAChB,MAAMiC,EAAM,CACRhC,MAAO+B,EAAUhC,KACjBpN,QAASoP,EAAUhC,MAEnBgC,EAAUpP,UAASqP,EAAIrP,QAAUtK,KAAKL,QAAQ4K,OAAOmP,EAAUpP,UACnE,MAAMqN,EAAQ,IAAI5X,MAAM4Z,EAAIrP,SAE5B,MADCqN,EAAcA,MAAQ+B,EAAUhC,KAC3BC,CACV,CAEA,IAAKnX,EAAQsY,mBACT,OAAOvB,EAAkBrO,KAG7B,MAAM0Q,EAAsC/E,MAAOsE,IAC/C,GAAIA,KAAW3Y,EAAQqZ,WAAa,IAAK,CACrC,MAAMlC,EAAa,IAAI5X,MAAM,uCAG7B,MAFA4X,EAAMA,MAAQ,sCACdA,EAAMxN,YAAcoN,EACdI,CACV,CAEA,MAAMM,QAAejY,KAAKL,QAAQ2L,IAAIwO,mBAAmBvC,EAAkBrO,MAE3E,IAAKnE,OAAOsN,KAAK4F,GAAQvQ,OAErB,aADM,IAAIqS,SAASC,GAAMC,WAAWD,EAAG,OAChCJ,EAAYT,EAAQ,GAG/B,GAAIlB,EAAO5N,QAA4B,WAAlB4N,EAAO5N,OAAqB,CAC7C,MAAMsN,EAAa,IAAI5X,MAAMC,KAAKL,QAAQ4K,OAAO0N,EAAOiC,aAIxD,MAHAvC,EAAMA,MAAQ3X,KAAKL,QAAQ4K,OAAO0N,EAAOiC,YACzCvC,EAAMxN,YAAcoN,EACpBI,EAAMM,OAASA,EACTN,CACV,CAEA,IAAK,UAAMrB,YAAY2B,EAAQ,kBAAmB,CAC9C,MAAMN,EAAa,IAAI5X,MAAM,sBAAwBoG,KAAKsC,UAAUwP,EAAQ,KAAM,IAIlF,MAHAN,EAAMA,MAAQ,sBAAwBxR,KAAKsC,UAAUwP,EAAQ,KAAM,GACnEN,EAAMxN,YAAcoN,EACpBI,EAAMM,OAASA,EACTN,CACV,CAEA,GAAInX,EAAQ2Z,YACR,OAAOlC,EAGX,IAAImC,EAAUpC,EAAahY,KAAK8F,IAAK,KAAOmS,EAAOoC,eAAe,IAMlE,OAJuB,IAAnBD,EAAQ1S,QAAgD,IAAhC3C,OAAOsN,KAAK+H,GAAS1S,SAC7C0S,EAAUA,EAAQ,IAGlB5Z,EAAQ8Z,SACD,CAAC/C,EAAkBrO,KAAMkR,GAG7BA,CAAO,EAGlB,OAAOR,EAAY,EACvB,E,8GC9UJ,UAEA,6BACA,UAqEA,cACYja,QAER,WAAAE,CAAYF,GACR,KAAKA,GAAaA,aAAmB,EAAAG,SAAU,MAAM,IAAIC,MAAM,gCAC/DC,KAAKL,QAAUA,CACnB,CAEA,SAAA4a,CAAUC,EAA2BC,EAAc,eAC/C,IAAKD,EAAa,OAAQxa,KAAKL,QAAQ6a,iBAAcpB,EAIrD,GAFI,UAAMlT,SAASsU,KAAcA,EAAc,IAAI,EAAAE,aAAaF,KAE3Dxa,KAAKL,QAAQgb,gBAAgBH,GAAc,MAAM,IAAIza,MAAM,iCAEhEC,KAAKL,QAAQ6a,YAAcA,EAC3Bxa,KAAKL,QAAQ6a,YAAYI,YAAc,IACnC5a,KAAKL,QACA6a,YAAapQ,QAAQqQ,GACrB/E,MAAK,KAAM,IACXmF,OAAM,KAAM,GACzB,CAEA,gCAAMC,CAA2B1R,EAAyB5I,EAAiC,CAAC,GACxF,MAAMua,EAAahW,OAAO8F,OACtB,CACImQ,MAAO,IAEXxa,IAEE,UACFya,EAAS,YACTC,EAAW,gBACXC,EAAe,cACfC,EAAa,kBACbC,EAAiB,kBACjBC,EAAiB,QACjBC,EAAO,YACPC,GACAT,EACJ,IAAI,MAAEC,GAAUD,EAEhB,IAAK/a,KAAKL,QAAQ6a,YACd,MAAM,IAAIza,MAAM,8BAGpB,IAAKC,KAAKL,QAAQ0L,UAAUjC,GACxB,MAAM,IAAIrJ,MAAM,qCAGpB,QAAiC,IAAtBsb,IAAsC,UAAMzP,UAAUyP,GAC7D,MAAM,IAAItb,MAAM,sCAGpB,QAAiC,IAAtBub,IAAsC,UAAM1P,UAAU0P,GAC7D,MAAM,IAAIvb,MAAM,sCAGhB,UAAM6L,UAAUoP,IAAUA,EAAQ,MAClCS,QAAQC,KAAK,6CACbV,EAAQ,KAGZ,MAAMW,EAAK,CAAC,EAERV,IAAWU,EAAGC,WAAaX,GAC3BC,IAAaS,EAAGE,aAAeX,GACJ,kBAApBC,IAA+BQ,EAAGG,iBAAmBX,GACnC,kBAAlBC,IAA6BO,EAAGI,eAAiBX,GACxDC,IAAmBM,EAAGK,oBAAsBX,GAC5CC,IAAmBK,EAAGM,oBAAsBX,GAC5CC,IAASI,EAAGO,SAAWX,GACvBC,IAAaG,EAAGH,YAAcA,GAC9B,UAAM5P,UAAUoP,KAAQW,EAAGX,MAAQA,GAEvC,MAAM/G,QAAYjU,KAAKL,QAAQ6a,YAAYpQ,QACvC,gBAAgBpK,KAAKL,QAAQuD,QAAQiZ,QAAQ/S,aAA2B,IAAIgT,gBAAgBT,GAAI3Q,cAEpG,GAAIiJ,EAAIoI,QACJ,OAAOpI,EAEX,MAAM,IAAIlU,MAAMkU,EAAI0D,MACxB,CAEA,8BAAM2E,CACFC,EACA/b,EAGI,CAAC,GAEL,IAAKR,KAAKL,QAAQ6a,YACd,MAAM,IAAIza,MAAM,8BAGpB,MAAM4b,EAAK,CAAC,EAUZ,MARwC,kBAA7Bnb,EAAQsb,mBACfH,EAAGG,iBAAmBtb,EAAQsb,kBAGI,kBAA3Btb,EAAQub,iBACfJ,EAAGI,eAAiBvb,EAAQub,gBAGzB/b,KAAKL,QAAQ6a,YACfpQ,QAAuB,mBAAmBmS,YAAwB,IAAIH,gBAAgBT,GAAI3Q,cAC1F0K,MAAMzB,IACH,GAAIA,EAAIoI,QACJ,OAAOpI,EAEX,MAAM,IAAIlU,MAAMoG,KAAKC,MAAM6N,EAAI0D,OAAQrN,QAAQ,GAE3D,CAEA,4BAAMkS,CACFtB,EACA1a,EAII,CAAC,GAEL,IAAKR,KAAKL,QAAQ6a,YACd,MAAM,IAAIza,MAAM,8BAGpB,MAAM4b,EAAK,CAAC,EAcZ,MAZsC,kBAA3Bnb,EAAQub,iBACfJ,EAAGI,eAAiBvb,EAAQub,gBAG5Bvb,EAAQwa,QACRW,EAAGX,MAAQxa,EAAQwa,OAGnBxa,EAAQgb,cACRG,EAAGH,YAAchb,EAAQgb,aAGtBxb,KAAKL,QAAQ6a,YACfpQ,QAAuB,aAAa8Q,YAAsB,IAAIkB,gBAAgBT,GAAI3Q,cAClF0K,MAAMzB,IACH,GAAIA,EAAIoI,QACJ,OAAOpI,EAEX,MAAM,IAAIlU,MAAMkU,EAAI0D,MAAM,GAEtC,CAEA,4BAAM8E,CACFjc,EAEI,CAAC,GAEL,IAAKR,KAAKL,QAAQ6a,YACd,MAAM,IAAIza,MAAM,8BAGpB,MAAM4b,EAAK,CAAC,EAMZ,MAJsC,kBAA3Bnb,EAAQub,iBACfJ,EAAGI,eAAiBvb,EAAQub,gBAGzB/b,KAAKL,QAAQ6a,YACfpQ,QAAuB,2BAA2B,IAAIgS,gBAAgBT,GAAI3Q,cAC1E0K,MAAMzB,IACH,GAAIA,EAAIoI,QACJ,OAAOpI,EAEX,MAAM,IAAIlU,MAAMkU,EAAI0D,MAAM,GAEtC,E,+GCtPJ,UACA,6BACA,6BAoBA,eACIhY,QACA+c,iBACAC,eAEA,WAAA9c,CAAYF,EAAkBa,EAAoC,CAAC,GAC/D,KAAKb,GAAaA,aAAmB,EAAAG,SAAU,MAAM,IAAIC,MAAM,gCAC/DC,KAAKL,QAAUA,EACfK,KAAK0c,iBAAmB,CAAC,YACzB1c,KAAK2c,iBAAmBnc,EAAQmc,cACpC,CAEA,QAAAC,CAASC,EAA8Brc,GACnC,IAAIsc,EAAyC,CACzCC,SAAU,QACVC,WAAY,CAAC,GAEjB,MAAM3S,EAKF,CACA4S,KAAM,GACNC,QAAS,GACTC,QAAS,GACTxF,WAAOyB,GAEX,GAAIpZ,KAAK2c,eAEL,OADAtS,EAAOsN,MAAQ,iDACRtN,EAEX,MAAM+S,EAAS,IAAIP,EAAO7c,KAAKL,SAI/B,GAHI,UAAM0d,WAAWD,EAAON,mBACxBA,EAAkBM,EAAON,gBAAgBtc,KAEzC,UAAO8c,UAAU,EAAAxd,QAAQyd,QAAST,EAAgBC,UAuClD,MAAM,IAAIhd,MAAM,6DAtChB,GAAI+c,EAAgBU,UAAW,CAE3B,MAAMC,EAAYL,EAAOvd,YAAYc,KAC/B+c,EAAoBD,EAAUxS,UAAU,EAAG,GAAGrE,cAAgB6W,EAAUxS,UAAU,GACpFwS,IAAcC,IACd3Y,OAAO8F,OAAO,EAAA/K,QAAS,CACnB,CAAC2d,GAAYZ,IAEjB9X,OAAO8F,OAAO7K,KAAKL,QAAS,CACxB,CAAC+d,GAAoBN,IAEzB/S,EAAO4S,KAAKhV,KAAKwV,GAEzB,MAEI,IAAK,MAAME,KAAab,EAAgBE,WAAY,CAEhD,IAAKhd,KAAKL,QAAQ6W,eAAemH,GAC7B,SAEJ,MAAMzH,EAAU4G,EAAgBE,WAAWW,GACrCjB,EAAoB1c,KAAKL,QAAgBge,GAAWjB,kBAAoB,GAC9E,IAAK,MAAM/F,KAAUT,EAEF,gBAAXS,GACE3W,KAAKL,QAAgBge,GAAWhH,KAC7B+F,EAAiB3E,SAASpB,IACvB,KAAK3O,KAAK2O,IAElBtM,EAAO8S,QAAQlV,KAAK0O,IAGvB3W,KAAKL,QAAgBge,GAAWhH,GAAUT,EAAQS,GAAQI,KAAM/W,KAAKL,QAAgBge,IACtFtT,EAAO6S,QAAQjV,KAAK0O,GAE5B,CAKR,OAAOtM,CACX,E,qFCpGJ,E,QAAA,yBACA,UAGA,gBACIuT,KACAC,QACAC,KACAC,SACAC,QACAC,WACAC,SACA,WAAAre,CAAY+d,EAAcC,EAAU,IAAOC,EAAO,GAAIC,EAAW,GAAIC,EAAuB,CAAC,EAAGC,EAAa,KACzG,KAAK,IAAAE,YAAWP,GAAO,MAAM,IAAI7d,MAAM,wCAEvC,GAAI0N,MAAMoQ,IAAYA,EAAU,EAAG,MAAM,IAAI9d,MAAM,qCAEnD,KAAK,IAAAwP,UAASyO,GAAU,MAAM,IAAIje,MAAM,mCAExC6d,EAAOA,EAAK5W,QAAQ,OAAQ,IAE5BhH,KAAK4d,KAAOA,EACZ5d,KAAK6d,QAAUA,EACf7d,KAAK8d,KAAOA,EACZ9d,KAAK+d,SAAWA,EAChB/d,KAAKge,QAAUA,EACfhe,KAAKie,WAAaA,EAElBje,KAAKke,SAAW,UAAME,OAAO,CACzBC,QAAST,EACTC,QAASA,EACTG,QAASA,EACTM,KAAMR,EACA,CACIS,SAAUT,EACVC,iBAEJ3E,GAEd,CAEA,aAAAoF,CAAcP,EAAa,KACvBje,KAAKie,WAAaA,CACtB,CAEA,iBAAMrD,CAAYqD,EAAaje,KAAKie,YAChC,OAAOje,KAAKoK,QAAQ6T,GACfvI,MAAMzU,IACI,IAAAwd,eAAcxd,EAAgC,UAAW,kBAEnE4Z,OAAM,KAAM,GACrB,CAEA,OAAAzQ,CAAqB5F,EAAaka,EAAU,CAAC,EAAG/H,EAAiB,OAG7D,OAFAA,EAASA,EAAO/P,cAET5G,KAAKke,SACP9T,QAAW,CACRnJ,KAAgB,QAAV0V,GAAoB5R,OAAOsN,KAAKqM,GAAShX,OAASgX,EAAU,KAClEpV,OAAkB,OAAVqN,GAAmB+H,EAC3Bla,MACAmS,WAEHjB,MAAK,EAAGzU,UAAWA,GAC5B,E,uHChEJ,E,QAAA,yBAKS,EAAAyZ,aALF,UAIM,EAAAiE,UAAuB,CAAEjE,aAAA,U,2GCJtC,UACA,6BACA,UACA,UACA,UACA,UACA,UAsBMkE,EAAqB,4BAErBC,EAAqB,gCAE3B,SAAS1d,EAAMN,GACX,OAAO,EAAAf,QAAQoD,QAAQ/B,MAAMN,EACjC,CAMA,MAAaie,EACDnf,QACA4L,MACA3L,UAERmf,YACA/P,UACAiK,KACA/Y,QACAwZ,UACAsF,aACAC,gBAEA,WAAApf,CAAYF,GACRK,KAAKL,QAAUA,EAEfK,KAAKuL,MAAQ,CACTC,UAAW,CAAC,GAEhBxL,KAAKJ,UAAY,IAAI,EAAAK,UACrBD,KAAK+e,YAAc/e,KAAKwX,KACxBxX,KAAKgP,UAAYhP,KAAK2B,UACtB3B,KAAKiZ,KAAOjZ,KAAKkf,gBACjBlf,KAAKE,QAAUF,KAAKkf,gBACpBlf,KAAK0Z,UAAY1Z,KAAKyX,mBACtBzX,KAAKgf,aAAehf,KAAKmf,mBACzBnf,KAAKif,gBAAkBjf,KAAKwX,IAChC,CAEA,WAAA4H,CAAYC,GACR,MAAO,IACAA,EACH1e,KAAMX,KAAKL,QAAQ4K,OAAO8U,EAAM1e,MAChCmM,KAAMuS,EAAMvS,MAAQ9M,KAAKL,QAAQ4K,OAAO8U,EAAMvS,MAC9Cd,YAAaqT,EAAMrT,aAAehM,KAAKL,QAAQ4K,OAAO8U,EAAMrT,aAC5DxH,IAAK6a,EAAM7a,KAAOxE,KAAKL,QAAQ4K,OAAO8U,EAAM7a,KAEpD,CAEA,eAAA8a,GACI,OAAOtf,KAAKL,QAAQuU,SAAS9J,QAAQ,qBACzC,CAEA,wBAAAmV,GACI,OAAOvf,KAAKL,QAAQ6f,aAAapV,QAAQ,6BAC7C,CAEA,cAAMqV,CAASC,EAAyD1f,KAAKL,QAAQggB,cACjF,IAAc,IAAVD,EACA,MAAM,IAAI3f,MAAM,gCAKpB,MAFa,YAAT2f,IAAqBA,EAAQ,GAEpB,UAATA,EAA0B1f,KAAKsf,kBAE/B7R,OAAOiS,IAAU,UAAME,MAAMF,EAAM1U,YAAoBhL,KAAK6f,eAAeH,GAExE1f,KAAK8f,iBAAiBJ,EACjC,CAEA,oBAAMG,CAAeE,GACjB,MAAML,QAAc1f,KAAKL,QAAQuU,SAAS9J,QACtC,sBACA,CACIvJ,MAAOkf,GAEX,QAEJ,IAAKhb,OAAOsN,KAAKqN,GAAOhY,OACpB,MAAM,IAAI3H,MAAM,mBAEpB,OAAO2f,CACX,CAEA,sBAAMI,CAAiBhK,GACnB,IAAK,UAAMlK,UAAUkK,IAAYA,EAAU,EACvC,MAAM,IAAI/V,MAAM,iCAGpB,OAAOC,KAAKL,QAAQuU,SACf9J,QACG,uBACA,CACI6C,IAAKxM,SAASqV,IAElB,QAEHJ,MAAMgK,IACH,IAAK3a,OAAOsN,KAAKqN,GAAOhY,OACpB,MAAM,IAAI3H,MAAM,mBAGpB,OAAO2f,CAAK,GAExB,CAEA,8BAAMM,CACFN,EAAyD1f,KAAKL,QAAQggB,cAEtE,MAAM,aAAEM,EAAe,UAAajgB,KAAKyf,SAASC,GAClD,OAAOO,EAAavY,MACxB,CAEA,6BAAMwY,CACFR,EAAyD1f,KAAKL,QAAQggB,aACtExG,GAEA,MAAM,aAAE8G,SAAuBjgB,KAAKyf,SAASC,GAC7C,IAAKO,EACD,MAAM,IAAIlgB,MAAM,kCAEpB,GAAIoZ,GAAS,GAAKA,EAAQ8G,EAAavY,OAAQ,OAAOuY,EAAa9G,GAC9D,MAAM,IAAIpZ,MAAM,qCACzB,CAEA,8BAAMogB,CACFT,EAAyD1f,KAAKL,QAAQggB,cAEtE,MAAM,aAAEM,SAAuBjgB,KAAKyf,SAASC,GAC7C,IAAKO,EACD,MAAM,IAAIlgB,MAAM,kCAEpB,OAAOkgB,CACX,CAEA,oBAAMG,CAAe7D,GACjB,MAAMpS,QAAoBnK,KAAKL,QAAQuU,SAAS9J,QAC5C,4BACA,CACIvJ,MAAO0b,GAEX,QAEJ,IAAKxX,OAAOsN,KAAKlI,GAAazC,OAC1B,MAAM,IAAI3H,MAAM,yBAEpB,OAAOoK,CACX,CAEA,6BAAMkW,CAAwB9D,GAC1B,MAAMpS,QAAoBnK,KAAKL,QAAQ6f,aAAapV,QAChD,oCACA,CACIvJ,MAAO0b,GAEX,QAEJ,IAAKxX,OAAOsN,KAAKlI,GAAazC,OAC1B,MAAM,IAAI3H,MAAM,yBAEpB,OAAOoK,CACX,CAEA,6BAAAmW,CAA8B/D,GAC1B,OAAOvc,KAAKL,QAAQuU,SAAS9J,QAAQ,gCAAiC,CAAEvJ,MAAO0b,GAAiB,OACpG,CAEA,kBAAAzC,CAAmByC,GACf,OAAOvc,KAAKL,QAAQ6f,aAAapV,QAAQ,wCAAyC,CAAEvJ,MAAO0b,GAAiB,OAChH,CAEA,wBAAAgE,CAAyBrd,EAAUlD,KAAKL,QAAQW,eAAeC,IAAKya,EAAQ,GAAIwF,EAAS,GACrF,OAAOxgB,KAAKygB,uBAAuBzgB,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAAoB,KAAM8X,EAAOwF,EACnG,CAEA,0BAAAE,CAA2Bxd,EAAUlD,KAAKL,QAAQW,eAAeC,IAAKya,EAAQ,GAAIwF,EAAS,GACvF,OAAOxgB,KAAKygB,uBAAuBzgB,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAAoB,OAAQ8X,EAAOwF,EACrG,CAEA,4BAAMC,CACFvd,EAAUlD,KAAKL,QAAQW,eAAeC,IACtCogB,EAAY,MACZ3F,EAAQ,GACRwF,EAAS,GAET,IAAK,CAAC,KAAM,OAAQ,OAAOzI,SAAS4I,GAChC,MAAM,IAAI5gB,MAAM,8DAGpB,GAAiB,OAAb4gB,EAAoB,CACpB,MAAOtgB,EAAMF,SAAY4Z,QAAQ6G,IAAI,CACjC5gB,KAAKygB,uBAAuBvd,EAAS,OAAQ8X,EAAOwF,GACpDxgB,KAAKygB,uBAAuBvd,EAAS,KAAM8X,EAAOwF,KAGtD,MAAO,IACAngB,EAAK8E,KAAK2D,IAAUA,EAAW6X,UAAY,OAAS7X,QACpD3I,EAAGgF,KAAK2D,IAAUA,EAAW6X,UAAY,KAAO7X,MACrD+X,MAAK,CAACC,EAAGC,IACAA,EAAEtN,SAASI,UAAYiN,EAAErN,SAASI,WAEjD,CAEA,IAAK7T,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAGpB,IAAK,UAAM6L,UAAUoP,IAAUA,EAAQ,GAAMwF,GAAUxF,EAAQ,EAC3D,MAAM,IAAIjb,MAAM,0BAGpB,IAAK,UAAM6L,UAAU4U,IAAWA,EAAS,EACrC,MAAM,IAAIzgB,MAAM,2BAKpB,OAFAmD,EAAUlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAE9BlD,KAAKL,QAAQ6f,aACfpV,QACG,kCAAkCuW,QAClC,CACIK,QAAS,CACL9d,WAEJsd,SACAxF,SAEJ,QAEHtF,MAAK,EAAGvL,iBACEA,GAEnB,CAEA,gBAAM8W,CAAW/d,EAAUlD,KAAKL,QAAQW,eAAeC,KACnD,IAAKP,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAKpB,OAFAmD,EAAUlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAE9BlD,KAAKL,QAAQ6f,aAAapV,QAC7B,4BACA,CACIlH,WAEJ,OAER,CAEA,cAAAge,CAAeC,GACX,OAAOnhB,KAAKohB,mBAAmBD,EAAI,CAAErX,WAAW,GACpD,CAEA,wBAAMsX,CAAmBD,EAAY3gB,GAoBjC,OAnBAR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,YACNC,KAAM,MACNC,MAAOsgB,GAEX,CACIxgB,KAAM,YACNC,KAAM,SACN6D,IAAK,GACL/B,IAAK,EACL7B,MAAOsgB,KAIXA,EAAG3S,WAAW,QACd2S,EAAKA,EAAG1S,MAAM,IAGXzO,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,oBAC1C,CACI4E,WAAYyS,GAEhB,OAER,CAEA,gBAAME,CAAWne,EAAUlD,KAAKL,QAAQW,eAAeC,KACnD,MAAM,QAAEuD,EAAU,SAAY9D,KAAKihB,WAAW/d,GAC9C,OAAOY,CACX,CAEA,2BAAMwd,CAAsBpe,EAAUlD,KAAKL,QAAQW,eAAeC,KAC9D,IAAKP,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAKpB,OAFAmD,EAAUlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAE9BlD,KAAKL,QAAQuU,SAAS9J,QACzB,oBACA,CACIlH,WAEJ,OAER,CAEA,yBAAAqe,CAA0BJ,GACtB,OAAOnhB,KAAKohB,mBAAmBD,EAAI,CAAErX,WAAW,GACpD,CAEA,2BAAM0X,CAAsBte,EAAUlD,KAAKL,QAAQW,eAAeC,KAC9D,MAAM,QAAEuD,EAAU,SAAY9D,KAAKshB,sBAAsBpe,GACzD,OAAOY,CACX,CAEA,kBAAM2d,CAAave,EAAUlD,KAAKL,QAAQW,eAAeC,KACrD,IAAKP,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAKpB,OAFAmD,EAAUlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAE9BlD,KAAKL,QAAQuU,SACf9J,QACG,uBACA,CACIlH,WAEJ,QAEHwS,MAAK,EAAGgM,cAAc,EAAGC,eAAe,EAAGC,UAAU,EAAGC,WAAW,KACzDF,EAAeD,GAAeG,EAAWD,IAE5D,CAEA,8BAAME,CAAyB5e,EAAUlD,KAAKL,QAAQW,eAAeC,KACjE,IAAKP,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAKpB,OAFAmD,EAAUlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,GAE9BlD,KAAKL,QAAQuU,SACf9J,QACG,gCACA,CACIlH,WAEJ,QAEHwS,MAAK,EAAGqM,gBACAA,EAEUA,EACV5c,KAAKka,GACKrf,KAAKof,YAAYC,KAE3B2C,QAAO,CAACC,EAAQ5C,KACL4C,EAAO5C,EAAM1e,MAAQ0e,EAAQ4C,IACtC,CAAC,GARgB,CAAC,GAYrC,CAEA,oBAAMC,CAAeC,GAGjB,GAFI,UAAMvW,UAAUuW,KAAUA,EAAUA,EAAQnX,aAE3C,UAAM9E,SAASic,KAAaA,EAAQza,OACrC,MAAM,IAAI3H,MAAM,6BAGpB,OAAOC,KAAKL,QAAQuU,SACf9J,QACG,6BACA,CACIvJ,MAAOb,KAAKL,QAAQmC,SAASqgB,IAEjC,QAEHzM,MAAM2J,IACH,IAAKA,EAAM1e,KACP,MAAM,IAAIZ,MAAM,wBAGpB,OAAOC,KAAKof,YAAYC,EAAM,GAE1C,CAEA,eAAM+C,GACF,MAAM,MAAEC,EAAQ,UAAariB,KAAKL,QAAQuU,SAAS9J,QAC/C,oBAEJ,OAAOiY,EAAMld,KAAI,EAAGjC,SAAW0a,OAAM0E,WAAa,GAAGtiB,KAAKL,QAAQ4K,OAAOqT,MAAS0E,KACtF,CAEA,mBAAMC,CAAcC,EAAQ,EAAGC,EAAM,IACjC,IAAK,UAAM7W,UAAU4W,IAAUA,EAAQ,EACnC,MAAM,IAAIziB,MAAM,mCAGpB,IAAK,UAAM6L,UAAU6W,IAAQA,EAAMD,EAC/B,MAAM,IAAIziB,MAAM,iCAGpB,GAAI0iB,EAAM,EAAID,EAAQ,IAClB,MAAM,IAAIziB,MAAM,yDAGpB,OAAOC,KAAKL,QAAQuU,SACf9J,QACG,6BACA,CACIsY,SAAUjiB,SAAS+hB,GACnBG,OAAQliB,SAASgiB,GAAO,GAE5B,QAEH/M,MAAK,EAAGgK,QAAQ,MAASA,GAClC,CAEA,8BAAMkD,GACF,MAAM,UAAEC,EAAY,UAAa7iB,KAAKL,QAAQuU,SAAS9J,QAAkC,wBACzF,OAAOyY,CACX,CAEA,gBAAMC,CAAW9H,EAAQ,EAAGwF,EAAS,GACjC,IAAK,UAAM5U,UAAUoP,IAAUA,EAAQ,GAAMwF,GAAUxF,EAAQ,EAC3D,MAAM,IAAIjb,MAAM,0BAGpB,IAAK,UAAM6L,UAAU4U,IAAWA,EAAS,EACrC,MAAM,IAAIzgB,MAAM,2BAGpB,OAAKib,EAMEhb,KAAKL,QAAQuU,SACf9J,QACG,oCACA,CACIoW,OAAQ/f,SAAS+f,GACjBxF,MAAOva,SAASua,IAEpB,QAEHtF,MAAK,EAAGqM,aAAa,MAASA,EAAW5c,KAAKka,GAAUrf,KAAKof,YAAYC,OAdnErf,KAAKL,QAAQuU,SACf9J,QAAiC,4BACjCsL,MAAK,EAAGqM,aAAa,MAASA,EAAW5c,KAAKka,GAAUrf,KAAKof,YAAYC,MAatF,CAEA,4BAAM0D,GACF,MAAM,IAAE9V,GAAM,SAAajN,KAAKL,QAAQuU,SAAS9J,QAAyB,iCAC1E,IAAY,GAAR6C,EACA,MAAM,IAAIlN,MAAM,4CAEpB,OAAOijB,KAAKC,MAAMhW,EAAM,IAC5B,CAEA,iBAAM6K,CAAY1O,GACd,IAAKpJ,KAAKL,QAAQ0L,UAAUjC,GACxB,MAAM,IAAIrJ,MAAM,qCAGpB,GAAIC,KAAKuL,MAAMC,UAAUpC,GACrB,OAAOpJ,KAAKuL,MAAMC,UAAUpC,GAGhCA,EAAkBpJ,KAAKL,QAAQuD,QAAQ/B,MAAMiI,GAE7C,MAAMT,QAAiB3I,KAAKL,QAAQuU,SAAS9J,QAAa,qBAAsB,CAC5EvJ,MAAOuI,IAEX,GAAIT,EAAS5I,MACT,MAAM,IAAIA,MAAM,2BAGpB,OADAC,KAAKuL,MAAMC,UAAUpC,GAAmBT,EACjCA,CACX,CAEA,SAAAua,CAAU/Y,GACN,OAAO2U,EAAIoE,UAAU/Y,EACzB,CAEA,gBAAO+Y,CAAU/Y,GACb,KAAK,IAAAgZ,SAAQhZ,GACT,MAAM,IAAIpK,MAAM,uBAEpB,IAAKoK,EAAY2J,WAAWpM,OACxB,MAAM,IAAI3H,MAAM,6BAEpB,GAAqC,IAAjCoK,EAAY2J,UAAUpM,OAAc,CACpC,MAAM0b,GAAc,IAAAF,WAAU/Y,EAAYjB,KAAMiB,EAAY2J,UAAU,IACtE,OAAO,EAAAhU,QAAQoD,QAAQiZ,QAAQiH,EACnC,CACA,OAAOjZ,EAAY2J,UAAU3O,KAAKke,IAC9B,MAAMD,GAAc,IAAAF,WAAU/Y,EAAYjB,KAAMma,GAChD,OAAO,EAAAvjB,QAAQoD,QAAQiZ,QAAQiH,EAAY,GAEnD,CAEA,mBAAME,CAAchZ,EAAiBwJ,EAAmB5Q,EAAUlD,KAAKL,QAAQW,eAAemZ,OAAQ8J,GAAgB,GAClH,IAAK,UAAM3D,MAAMtV,GACb,MAAM,IAAIvK,MAAM,8BAGpB,GAAI+e,EAAI0E,gBAAgBlZ,EAASpH,EAAmB4Q,EAAWyP,GAC3D,OAAO,EAGX,MAAM,IAAIxjB,MAAM,2BACpB,CAEA,sBAAOyjB,CAAgBlZ,EAAiBpH,EAAiB4Q,EAAmByP,GAAgB,GACxFjZ,EAAUA,EAAQtD,QAAQ,MAAO,IACjC,MAAMyc,EAAe,KACd,IAAAC,aAAYH,EAAgB3E,EAAqBC,MACjD,UAAMnH,KAAKiM,iBAAiBrZ,IAG7BsZ,GAAgB,IAAA9Y,WAAU,IAAI+Y,WAAWJ,IACzCK,GAAY,IAAAC,gBAAeH,EAAe,EAAAI,UAAU3jB,KAAK,KAAKyT,EAAU9M,QAAQ,MAAO,QAEvFoc,EAAc,EAAAa,eAAiBH,EAAUI,OAAO,GAGtD,OAFsB,EAAApkB,QAAQoD,QAAQiZ,QAAQiH,IAEtB,EAAAtjB,QAAQoD,QAAQiZ,QAAQjZ,EACpD,CAEA,qBAAMihB,CAAgB7Z,EAA8CwJ,GAChE,OAAOgL,EAAIqF,gBAAgB7Z,EAASwJ,EACxC,CAEA,sBAAOqQ,CAAgB7Z,EAA8CwJ,GACjE,OAAO,UAAMxJ,QAAQgZ,cAAchZ,EAASwJ,EAChD,CAEA,eAAAsQ,CACIC,EACA9c,EACA1G,EACAiT,EACA5Q,EAAUlD,KAAKL,QAAQW,eAAemZ,QAEtC,GAAIqF,EAAIsF,gBAAgBC,EAAQ9c,EAAO1G,EAAOiT,EAAW5Q,GAAoB,OAAO,EAEpF,MAAM,IAAInD,MAAM,2BACpB,CAEA,sBAAOqkB,CACHC,EACA9c,EACA1G,EACAiT,EACA5Q,GAEA,MAAM0gB,EAAgB,UAAMU,kBAAkBC,KAAKF,EAAQ9c,EAAO1G,GAC5DijB,GAAY,IAAAC,gBAAeH,EAAe,EAAAI,UAAU3jB,KAAK,KAAKyT,EAAU9M,QAAQ,MAAO,QAEvFoc,EAAc,EAAAa,eAAiBH,EAAUI,OAAO,GAGtD,OAFsB,EAAApkB,QAAQoD,QAAQiZ,QAAQiH,IAEtB,EAAAtjB,QAAQoD,QAAQiZ,QAAQjZ,EACpD,CAEA,UAAMsU,CACFrN,EACAgN,EAAanX,KAAKL,QAAQyX,kBAC1BmM,GAAgB,EAChBiB,GAAW,GAGX,GAAI,UAAMte,SAASiE,GAAc,CAC7B,IAAK,UAAMyV,MAAMzV,GACb,MAAM,IAAIpK,MAAM,8BAGpB,OAAO+e,EAAI2F,WAAWta,EAAagN,EAAsBoM,EAC7D,CAEA,IAAK,UAAMhU,SAASpF,GAChB,MAAM,IAAIpK,MAAM,gCAGpB,IAAKykB,GAAara,EAAkC2J,UAChD,MAAM,IAAI/T,MAAM,iCAGpB,IAAKykB,EAAU,CAKX,GAJgBxkB,KAAKL,QAAQuD,QACxB/B,MAAMnB,KAAKL,QAAQuD,QAAQmU,eAAeF,IAC1CvQ,gBAEW5G,KAAKL,QAAQuD,QAAQ/B,MAAMgJ,EAAYsJ,SAAS9K,SAAS,GAAG3C,UAAUnF,MAAMO,eACxF,MAAM,IAAIrB,MAAM,qDAGpB,KAAK,IAAAojB,SAAQhZ,GACT,MAAM,IAAIpK,MAAM,sBAExB,CACA,OAAO,UAAM2kB,OAAOzF,gBAAgB9H,EAAsBhN,EAC9D,CAEA,iBAAOsa,CAAWna,EAAiB6M,EAAoBoM,GAAgB,GACnEjZ,EAAUA,EAAQtD,QAAQ,MAAO,IACjC,MAAMnG,EAAQ,KAAKsW,EAAWnQ,QAAQ,MAAO,MACvC2d,EAAa,IAAI,EAAAC,WAAW/jB,GAC5B4iB,EAAe,KACd,IAAAC,aAAYH,EAAgB3E,EAAqBC,MACjD,UAAMnH,KAAKiM,iBAAiBrZ,IAE7BsZ,GAAgB,IAAA9Y,WAAU,IAAI+Y,WAAWJ,IACzC3P,EAAY6Q,EAAWnN,KAAKoM,GAIlC,MAHqB,CAAC,KAAM9P,EAAUkG,EAAE/O,UAAU,GAAI6I,EAAU+Q,EAAE5Z,UAAU,GAAI6Z,OAAOhR,EAAUjM,GAAGmD,SAAS,KAAK+Z,KAC9G,GAGR,CASA,aAAAC,CAAc1a,EAA8C6M,EAAanX,KAAKL,QAAQyX,mBAClF,OAAO0H,EAAIkG,cAAc1a,EAAS6M,EACtC,CAEA,oBAAO6N,CAAc1a,EAA8C6M,GAC/D,OAAO,UAAM7M,QAAQyU,YAAYzU,EAAS6M,EAC9C,CAEA,cAAA8N,CACIZ,EACA9c,EACA1G,EACAsW,EAAanX,KAAKL,QAAQyX,mBAE1B,OAAO0H,EAAImG,eAAeZ,EAAQ9c,EAAO1G,EAAOsW,EACpD,CAEA,qBAAO8N,CACHZ,EACA9c,EACA1G,EACAsW,GAEA,OAAO,UAAMuN,OAAOO,eAAeZ,EAAQ9c,EAAO1G,EAAOsW,EAC7D,CAEA,eAAM+N,CAAU/a,EAA0BgN,EAAanX,KAAKL,QAAQyX,kBAAmB1V,EAAe,GAClG,IAAK,UAAM6N,SAASpF,KAAiBA,EAAYsJ,WAAatJ,EAAYsJ,SAAS9K,SAC/E,MAAM,IAAI5I,MAAM,gCAKpB,IAAKoK,EAAYsJ,SAAS9K,SAAS,GAAGiC,eAAiBlJ,EAAe,EAAG,CAErEyI,EAAYsJ,SAAS9K,SAAS,GAAGiC,cAAgBlJ,EAGjD,MAAMwB,EAAUlD,KAAKL,QAAQuD,QACxB/B,MAAMnB,KAAKL,QAAQuD,QAAQmU,eAAeF,IAC1CvQ,cACCue,QAAmBnlB,KAAKolB,cAAcjb,EAAazI,GAEzD,GAA+B,qBAA3ByjB,EAAW9a,OAAOqN,KAClB,MAAM,IAAI3X,MAAMolB,EAAW9a,OAAOC,SAGtC,IAAI+a,GAAW,EAKf,GAJAF,EAAWG,WAAWjT,KAAKlN,KAAKqI,IACxBA,EAAItK,UAAYA,IAASmiB,GAAW,EAAI,KAG3CA,EACD,MAAM,IAAItlB,MAAMoX,EAAa,8BAGjC,GAAIgO,EAAWI,gBAA+D,GAA9CJ,EAAWI,cAAcC,QAAQtiB,GAC7D,MAAM,IAAInD,MAAMoX,EAAa,6BAIjC,IAAIgO,EAAWhb,cAAegb,EAAWhb,YAAYA,YAMjD,MAAM,IAAIpK,MAAM,gCALhBoK,EAAcgb,EAAWhb,YAAYA,YACjCzI,EAAe,IACfyI,EAAYsJ,SAAS9K,SAAS,GAAGiC,cAAgBlJ,EAK7D,CAGA,KAAK,IAAAyhB,SAAQhZ,GACT,MAAM,IAAIpK,MAAM,uBAEpB,OAAO,UAAM2kB,OAAOzF,gBAAgB9H,EAAsBhN,EAC9D,CAEA,qBAAMsb,CAAgBtb,GAClB,IAAK,UAAMoF,SAASpF,GAChB,MAAM,IAAIpK,MAAM,gCAGpB,OAAOC,KAAKL,QAAQuU,SAAS9J,QAAQ,yBAA0BD,EAAa,OAChF,CAEA,mBAAMib,CAAcjb,EAA0BzI,GAC1C,IAAK,UAAM6N,SAASpF,KAAiBA,EAAYsJ,WAAatJ,EAAYsJ,SAAS9K,SAC/E,MAAM,IAAI5I,MAAM,gCAQpB,OANI,UAAM6L,UAAUlK,GAChByI,EAAYsJ,SAAS9K,SAAS,GAAGiC,cAAgBnK,SAASiB,GACO,iBAAnDyI,EAAYsJ,SAAS9K,SAAS,GAAGiC,gBAC/CT,EAAYsJ,SAAS9K,SAAS,GAAGiC,cAAgB,GAG9C5K,KAAKL,QAAQuU,SAAS9J,QAAQ,uBAAwBD,EAAa,OAC9E,CAEA,wBAAMsN,CAAgDF,GAClD,IAAK,UAAMhI,SAASgI,GAChB,MAAM,IAAIxX,MAAM,gCAGpB,IAAKwX,EAAkBzD,YAAc,UAAMvN,QAAQgR,EAAkBzD,WACjE,MAAM,IAAI/T,MAAM,6BAQpB,MAAO,UALcC,KAAKL,QAAQuU,SAAS9J,QACvC,8BACAmN,EACA,QAIApN,YAAaoN,EAErB,CAEA,wBAAM4H,CAAmBuG,GACrB,IAAK,UAAM9F,MAAM8F,GACb,MAAM,IAAI3lB,MAAM,oCAGpB,MAAMuJ,EAAS,CACXa,YAAaub,GAGXrb,QAAerK,KAAKL,QAAQuU,SAAS9J,QAA4B,sBAAuBd,EAAQ,QACtG,OAAIe,EAAOA,OACA,IACAA,EACHF,YAAahE,KAAKC,MAAMiE,EAAOF,aAC/Bwb,eAAgBD,GAGjBrb,CACX,CAEA,qBAAM6U,CAAgB/e,EAAYC,EAAgBI,EAA0B,CAAC,GAGzE,GAFuB,iBAAZA,IAAsBA,EAAU,CAAE2W,WAAY3W,KAEpDR,KAAKL,QAAQ0L,UAAUlL,GACxB,MAAM,IAAIJ,MAAM,8BAGpB,IAAK,UAAM6L,UAAUxL,IAAWA,GAAU,EACtC,MAAM,IAAIL,MAAM,2BASpB,KANAS,EAAU,CACN2W,WAAYnX,KAAKL,QAAQyX,kBACzBlU,QAASlD,KAAKL,QAAQW,eAAeC,OAClCC,IAGM2W,aAAe3W,EAAQ0C,QAChC,MAAM,IAAInD,MAAM,+DAGpB,MAAMmD,EAAU1C,EAAQ2W,WAAanX,KAAKL,QAAQuD,QAAQmU,eAAe7W,EAAQ2W,YAAc3W,EAAQ0C,QACjGiH,QAAoBnK,KAAKL,QAAQ2X,mBAAmBpX,QAAQC,EAAIC,EAAQ8C,GACxEqU,QAA0BvX,KAAKwX,KAAKrN,EAAa3J,EAAQ2W,YAE/D,aADqBnX,KAAKyX,mBAAmBF,EAEjD,CAEA,eAAM5V,CACFxB,EACAC,EACA+hB,EACA3hB,EAA0B,CAAC,GAI3B,GAFuB,iBAAZA,IAAsBA,EAAU,CAAE2W,WAAY3W,KAEpDR,KAAKL,QAAQ0L,UAAUlL,GACxB,MAAM,IAAIJ,MAAM,8BAGpB,IAAK,UAAM6L,UAAUxL,IAAWA,GAAU,EACtC,MAAM,IAAIL,MAAM,2BAKpB,GAFI,UAAM6L,UAAUuW,KAAUA,EAAUA,EAAQnX,aAE3C,UAAM9E,SAASic,GAChB,MAAM,IAAIpiB,MAAM,6BASpB,KANAS,EAAU,CACN2W,WAAYnX,KAAKL,QAAQyX,kBACzBlU,QAASlD,KAAKL,QAAQW,eAAeC,OAClCC,IAGM2W,aAAe3W,EAAQ0C,QAChC,MAAM,IAAInD,MAAM,+DAGpB,MAAMmD,EAAU1C,EAAQ2W,WAAanX,KAAKL,QAAQuD,QAAQmU,eAAe7W,EAAQ2W,YAAc3W,EAAQ0C,QACjGiH,QAAoBnK,KAAKL,QAAQ2X,mBAAmB3V,UAAUxB,EAAIC,EAAQ+hB,EAASjf,GACnFqU,QAA0BvX,KAAKwX,KAAKrN,EAAa3J,EAAQ2W,YAE/D,aADqBnX,KAAKyX,mBAAmBF,EAEjD,CAYA,mBAAMnV,CACFhC,EAAS,EACTiC,EAAW,EACXC,EAAqB,YACrB9B,EAA0B,CAAC,EAC3BgC,GAIA,GAFuB,iBAAZhC,IAAsBA,EAAU,CAAE2W,WAAY3W,KAEpD,CAAC,YAAa,UAAUuX,SAASzV,GAClC,MAAM,IAAIvC,MAAM,+DAGpB,IAAK,UAAM6L,UAAUxL,IAAWA,GAAU,EACtC,MAAM,IAAIL,MAAM,2BAGpB,IAAK,UAAM6L,UAAUvJ,IAAaA,EAAW,EACzC,MAAM,IAAItC,MAAM,gDASpB,KANAS,EAAU,CACN2W,WAAYnX,KAAKL,QAAQyX,kBACzBlU,QAASlD,KAAKL,QAAQW,eAAeC,OAClCC,IAGM2W,aAAe3W,EAAQ0C,QAChC,MAAM,IAAInD,MAAM,+DAGpB,MAAMmD,EAAU1C,EAAQ2W,WAAanX,KAAKL,QAAQuD,QAAQmU,eAAe7W,EAAQ2W,YAAc3W,EAAQ0C,QACjGd,QAAsBpC,KAAKL,QAAQ2X,mBAAmBlV,cACxDhC,EACAiC,EACAC,EACAY,EACAV,GAEE+U,QAA0BvX,KAAKwX,KAAKpV,EAAe5B,EAAQ2W,YAEjE,aADqBnX,KAAKyX,mBAAmBF,EAEjD,CASA,qBAAMtU,CACFX,EAAqB,YACrB9B,EAA0B,CAAC,EAC3BgC,GAIA,GAFuB,iBAAZhC,IAAsBA,EAAU,CAAE2W,WAAY3W,KAEpD,CAAC,YAAa,UAAUuX,SAASzV,GAClC,MAAM,IAAIvC,MAAM,+DASpB,KANAS,EAAU,CACN2W,WAAYnX,KAAKL,QAAQyX,kBACzBlU,QAASlD,KAAKL,QAAQW,eAAeC,OAClCC,IAGM2W,aAAe3W,EAAQ0C,QAChC,MAAM,IAAInD,MAAM,+DAGpB,MAAMmD,EAAU1C,EAAQ2W,WAAanX,KAAKL,QAAQuD,QAAQmU,eAAe7W,EAAQ2W,YAAc3W,EAAQ0C,QACjGD,QAAwBjD,KAAKL,QAAQ2X,mBAAmBrU,gBAC1DX,EACAY,EACAV,GAEE+U,QAA0BvX,KAAKwX,KAAKvU,EAAiBzC,EAAQ2W,YAEnE,aADqBnX,KAAKyX,mBAAmBF,EAEjD,CAWA,mBAAMrJ,CAAcC,EAAqB3N,EAA0B,CAAC,GAGhE,GAFuB,iBAAZA,IAAsBA,EAAU,CAAE2W,WAAY3W,KAEpD,UAAM0F,SAASiI,KAAiBA,EAAYzG,OAC7C,MAAM,IAAI3H,MAAM,yBASpB,KANAS,EAAU,CACN2W,WAAYnX,KAAKL,QAAQyX,kBACzBlU,QAASlD,KAAKL,QAAQW,eAAeC,OAClCC,IAGM2W,aAAe3W,EAAQ0C,QAAS,MAAMnD,MAAM,+DAEzD,MAAMmD,EAAU1C,EAAQ2W,WAAanX,KAAKL,QAAQuD,QAAQmU,eAAe7W,EAAQ2W,YAAc3W,EAAQ0C,QACjGgL,QAAsBlO,KAAKL,QAAQ2X,mBAAmBpJ,cAAcC,EAAajL,GACjFqU,QAA0BvX,KAAKwX,KAAKtJ,EAAe1N,EAAQ2W,YAEjE,aADqBnX,KAAKyX,mBAAmBF,EAEjD,CAKA,iBAAMqO,CAAYlW,GACd,IAAK,UAAM9D,UAAU8D,IAAeA,EAAa,EAC7C,MAAM,IAAI3P,MAAM,+BAGpB,OAAOC,KAAKL,QAAQuU,SAAS9J,QACzB,yBACA,CACI+W,GAAI1gB,SAASiP,IAEjB,OAER,CAKA,mBAAMmW,GACF,MAAM,UAAEC,EAAY,UAAa9lB,KAAKL,QAAQuU,SAAS9J,QACnD,uBACA,CAAC,EACD,QAEJ,OAAO0b,CACX,CAKA,wBAAMC,GACF,MAAM,eAAEC,EAAiB,UAAahmB,KAAKL,QAAQuU,SAAS9J,QACxD,4BACA,CAAC,EACD,QAEJ,OAAO4b,CACX,CAKA,yBAAMC,CAAoB/iB,EAAUlD,KAAKL,QAAQW,eAAeC,KAC5D,IAAKP,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAGpB,OAAOC,KAAKL,QAAQuU,SAAS9J,QACzB,4BACA,CACIlH,QAASlD,KAAKL,QAAQuD,QAAQ/B,MAAM+B,IAExC,OAER,CAKA,4BAAMgjB,CACFC,EAAcnmB,KAAKL,QAAQW,eAAeC,IAC1C6lB,EAAYpmB,KAAKL,QAAQW,eAAeC,IACxCC,EAAU,CAAEsJ,WAAW,IAWvB,IAAK9J,KAAKL,QAAQ0L,UAAU8a,GACxB,MAAM,IAAIpmB,MAAM,4BAGpB,IAAKC,KAAKL,QAAQ0L,UAAU+a,GACxB,MAAM,IAAIrmB,MAAM,4BAGpB,OAAOC,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,4BAC1C,CACIqc,YAAahlB,EAAMglB,GACnBC,UAAWjlB,EAAMilB,IAErB,OAER,CAKA,wCAAMC,CACFnjB,EAAUlD,KAAKL,QAAQW,eAAeC,IACtCC,EAAU,CAAEsJ,WAAW,IAMvB,IAAK9J,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAGpB,OAAOC,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,wCAC1C,CACIjJ,MAAOM,EAAM+B,IAEjB,OAER,CAKA,4BAAMojB,CACFpjB,EAAUlD,KAAKL,QAAQW,eAAeC,IACtC+B,EAAqB,YACrB9B,EAAU,CAAEsJ,WAAW,IAIvB,IAAK9J,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAYpB,OATAC,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,WACNC,KAAM,WACNC,MAAOyB,EACPvB,IAAK,iEAINf,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,4BAC1C,CACI1I,cAAeD,EAAM+B,GACrBtC,KAAmB,WAAb0B,EAAwB,EAAI,GAEtC,OAER,CAKA,+BAAMikB,CACFrjB,EAAUlD,KAAKL,QAAQW,eAAeC,IACtCC,EAAU,CAAEsJ,WAAW,IAIvB,IAAK9J,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAGpB,OAAOC,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,+BAC1C,CACI1I,cAAeD,EAAM+B,IAEzB,OAER,CAKA,kCAAMsjB,CACFtjB,EAAUlD,KAAKL,QAAQW,eAAeC,IACtCsT,EAAYxH,KAAKC,MACjB9L,EAAU,CAAEsJ,WAAW,IAIvB,IAAK9J,KAAKL,QAAQ0L,UAAUnI,GACxB,MAAM,IAAInD,MAAM,4BAGpB,IAAK,UAAM6L,UAAUiI,IAAcA,EAAY,EAC3C,MAAM,IAAI9T,MAAM,8BAGpB,OAAOC,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YAAYM,QACjE,SAAS5J,EAAQsJ,UAAY,WAAa,kCAC1C,CACI1I,cAAeD,EAAM+B,GACrB2Q,UAAWA,GAEf,OAER,CAKA,qBAAM4S,CAAgBzV,GAClB,IAAK,UAAMpF,UAAUoF,IAAeA,EAAa,EAC7C,MAAM,IAAIjR,MAAM,+BAGpB,OAAOC,KAAKL,QAAQuU,SAAS9J,QACzB,yBACA,CACI+W,GAAInQ,GAER,OAER,CAKA,mBAAM0V,GACF,OAAO1mB,KAAKL,QAAQuU,SACf9J,QAAmC,uBAAwB,CAAC,EAAG,QAC/DsL,MAAK,EAAGiR,YAAY,MAASA,GACtC,CAKA,4BAAMC,CAAuB5L,EAAQ,GAAIwF,EAAS,GAC9C,OAAOxgB,KAAKL,QAAQuU,SACf9J,QACG,kCACA,CACI4Q,QACAwF,UAEJ,QAEH9K,MAAK,EAAGiR,YAAY,MAASA,GACtC,CAKA,iBAAME,GAuFF,OAAO7mB,KAAKL,QAAQuU,SAAS9J,QAAQ,qBAAsB,CAAC,EAAG,OACnE,CAEA,wBAAM0c,CAAmB3E,GAGrB,GAFI,UAAMvW,UAAUuW,KAAUA,EAAUA,EAAQnX,aAE3C,UAAM9E,SAASic,KAAaA,EAAQza,OACrC,MAAM,IAAI3H,MAAM,6BAGpB,OAAOC,KAAKL,QAAQuU,SACf9J,QACG,iCACA,CACIvJ,MAAOb,KAAKL,QAAQmC,SAASqgB,IAEjC,QAEHzM,MAAM2J,IACH,GAAIzM,MAAMrM,QAAQ8Y,EAAM0C,YACpB,OAAO1C,EAAM0C,WAAW5c,KAAK4hB,GAAM/mB,KAAKof,YAAY2H,KACjD,IAAK1H,EAAM1e,KACd,MAAM,IAAIZ,MAAM,wBAGpB,OAAOC,KAAKof,YAAYC,EAAM,GAE1C,CAEA,YAAA2H,CAAa7E,GAGT,GAFI,UAAMvW,UAAUuW,KAAUA,EAAUA,EAAQnX,aAE3C,UAAM9E,SAASic,KAAaA,EAAQza,OACrC,MAAM,IAAI3H,MAAM,6BAGpB,OAAOC,KAAKL,QAAQuU,SACf9J,QACG,2BACA,CACIvJ,MAAOshB,GAEX,QAEHzM,MAAM2J,IACH,IAAKA,EAAM1e,KACP,MAAM,IAAIZ,MAAM,wBAGpB,OAAOC,KAAKof,YAAYC,EAAM,GAE1C,CAEA,eAAM4H,CAAU/jB,EAAkB1C,EAAmC,CAAC,GAElE,OADAA,EAAQsJ,WAAY,EACb9J,KAAKknB,WAAWhkB,EAAS1C,EACpC,CAEA,0BAAM2mB,CAAqBjkB,EAAkB1C,EAAmC,CAAC,GAE7E,OADAA,EAAQsJ,WAAY,EACb9J,KAAKknB,WAAWhkB,EAAS1C,EACpC,CAEA,kBAAM4mB,CAAalkB,EAAkB1C,EAAmC,CAAC,GAErE,OADAA,EAAQsJ,WAAY,EACb9J,KAAKqnB,cAAcnkB,EAAS1C,EACvC,CAEA,6BAAM8mB,CAAwBpkB,EAAkB1C,EAAmC,CAAC,GAEhF,OADAA,EAAQsJ,WAAY,EACb9J,KAAKqnB,cAAcnkB,EAAS1C,EACvC,CAEA,gBAAM0mB,CAAWhkB,EAAUlD,KAAKL,QAAQW,eAAeC,IAAKC,GACxDR,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAAO,CACTiC,QAAS/B,EAAM+B,IAGnB,OAAOlD,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YACpDM,QAA6B,SAAS5J,EAAQsJ,UAAY,WAAa,eAAgB7I,EAAM,QAC7FyU,MAAK,CAACrL,EAAS,CAAEkd,YAAQnO,MACtB,QAA6B,IAAlB/O,EAAOkd,OACd,MAAM,IAAIxnB,MAAM,cAGpB,OAAOsK,EAAOkd,MAAM,GAEhC,CAEQ,mBAAMF,CAAcnkB,EAAUlD,KAAKL,QAAQW,eAAeC,IAAKC,GACnER,KAAKJ,UAAUc,SAAS,CACpB,CACIC,KAAM,SACNC,KAAM,UACNC,MAAOqC,KAIf,MAAMjC,EAAO,CACTiC,QAAS/B,EAAM+B,IAGnB,OAAOlD,KAAKL,QAAQa,EAAQsJ,UAAY,eAAiB,YACpDM,QAAgC,SAAS5J,EAAQsJ,UAAY,WAAa,kBAAmB7I,EAAM,QACnGyU,MAAK,CAACrL,EAAS,CAAC,KACb,QAAgC,IAArBA,EAAOsB,UACd,MAAM,IAAI5L,MAAM,cAGpB,OAAOsK,EAAOsB,SAAS,GAEnC,CAEA,wBAAM6b,GACF,OAAOxnB,KAAKL,QAAQuU,SAAS9J,QAA6B,4BAA6B,CAAC,EAAG,QACtFsL,MAAK,CAACrL,EAAS,CAAC,KACb,QAA6B,IAAlBA,EAAOod,OACd,MAAM,IAAI1nB,MAAM,cAGpB,OAAOsK,EAAOod,MAAM,GAEhC,CAEA,qBAAMC,GACF,OAAO1nB,KAAKL,QAAQuU,SAAS9J,QAA6B,yBAA0B,CAAC,EAAG,QACnFsL,MAAK,CAACrL,EAAS,CAAC,KACb,QAA6B,IAAlBA,EAAOod,OACd,MAAM,IAAI1nB,MAAM,cAGpB,OAAOsK,EAAOod,MAAM,GAEhC,EA74CJ,O,kGCxCA,gBACA,UAgBA,kBACI,OAAApY,CAAQsY,GACJ,OAAOA,EAAM5mB,KAAO,WAAW4mB,EAAMhnB,OAAsB,YAAfgnB,EAAM/mB,KAAqB,WAAa,aACxF,CAEA,WAAAgnB,CAAYD,GACR,MAAO,GAAGA,EAAMhnB,iCACpB,CAEA,QAAAknB,CAASF,GACL,OAAOA,EAAM5mB,KAAO,GAAG4mB,EAAM7mB,QAAQ,0BAA0B6mB,EAAM7mB,QAAQ,IACjF,CAEA,QAAAJ,CAAS4I,GACL,MAAMwe,EAAsC,CAAC,EAC7C,IAAIC,GAAK,EACT,IAAK,MAAMJ,KAASre,EAAQ,CACxB,MAAM,KAAE3I,EAAI,MAAEG,EAAK,MAAED,EAAK,KAAED,EAAI,GAAEI,EAAE,GAAEgnB,EAAE,IAAEtlB,EAAG,IAAE+B,EAAG,SAAEhC,GAAaklB,EACjE,IAAIllB,IAAc,IAAAK,sBAAqBjC,KAAoB,YAATD,IAAgC,IAAVC,GAAxE,CAEA,OADAinB,EAAWnnB,GAAkBgnB,EAAM9mB,MAC3BD,GACJ,IAAK,WACI,IAAAyK,WAAUxK,GAGXinB,EAAWnnB,IAAkB,IAAAQ,OAAMN,GAFnCknB,GAAK,EAIT,MAEJ,IAAK,aAEI,IAAAnc,WAAU/K,IACI,iBAAPG,GAAmBH,GAASG,GACrB,iBAAPgnB,GAAmBnnB,GAASmnB,GACpB,iBAARtlB,GAAoB7B,EAAQ6B,GACpB,iBAAR+B,GAAoB5D,EAAQ4D,KAEpCsjB,GAAK,GAET,MAEJ,IAAK,mBACD,KAAK,IAAAnc,WAAU/K,IAAUA,GAAS,EAC9B,MAAM,IAAId,MAAMC,KAAK4nB,YAAYD,IAErC,MAEJ,IAAK,UA0CL,IAAK,oBACI,IAAAzhB,UAASrF,IAAWA,EAAM6G,SAC3BqgB,GAAK,GAET,MAxCJ,IAAK,kBACI,IAAAxY,UAAS1O,IAAWkE,OAAOsN,KAAKxR,GAAO6G,SACxCqgB,GAAK,GAET,MAEJ,IAAK,WACD,GAAIjnB,GAASgnB,EAAWhnB,EAAM,MAAQgnB,EAAWhnB,EAAM,IACnD,MAAM,IAAIf,MAAMC,KAAK6nB,SAASF,IAElC,MAEJ,IAAK,WACI,CAAC,YAAa,UAAU5P,SAASlX,KAClCknB,GAAK,GAET,MAEJ,IAAK,OACI,IAAA5J,YAAWtd,KACZknB,GAAK,GAET,MAEJ,IAAK,OACI,IAAAnI,OAAM/e,KACPknB,GAAK,GAET,MAEJ,IAAK,QACInV,MAAMrM,QAAQ1F,KACfknB,GAAK,GAET,MAQJ,IAAK,WACI,IAAAE,WAAUpnB,KACXknB,GAAK,GAET,MACJ,IAAK,YAEI,IAAA7hB,UAASrF,IACK,iBAAPG,GAAmBH,EAAM6G,QAAU1G,GAC5B,iBAAPgnB,GAAmBnnB,EAAM6G,QAAUsgB,GAC3B,iBAARtlB,GAAoB7B,EAAM6G,OAAShF,GAC3B,iBAAR+B,GAAoB5D,EAAM6G,OAASjD,KAE3CsjB,GAAK,GAIjB,GAAIA,EACA,MAAM,IAAIhoB,MAAMC,KAAKqP,QAAQsY,GA/FkE,CAiGvG,CACA,OAAO,CACX,E,gHCtIJ,UAEA,6BACA,UACA,6BACA,6BAEA,UACA,SACA,UACA,UACA,UACA,UACA,UAEA,UAKMO,EAAkB,QAMxB,SAASC,EAAe3nB,GACpB,SACMA,GACiB,iBAAZA,IACHA,EAA2B0T,WAAe1T,EAA2B4nB,SAEjF,CAEA,MAAatoB,UAAgB,UACzB6e,UACA0J,UACA/Q,mBACAhM,IACA8R,OACAkL,MACA/K,QACAgL,eAlBY,QAmBZC,MAEA7I,aACAvI,kBACA9W,eACAmoB,gBACAjjB,SAEA0O,SACAsL,aACAhF,YAMA,WAAA3a,CACIW,EACAgf,EAA6B,GAC7BhF,EACArD,EAAa,IAIb,IAAIjD,EAFJwU,QAGA,IAAI1K,GAA+B,EAC/B2K,GAAoC,EAEpCR,EAAe3nB,IACf0T,EAAW1T,EAAQ0T,UAAY1T,EAAQ4nB,SACvC5I,EAAgBhf,EAAQgf,cAAgBhf,EAAQ4nB,SAChD5N,EAAeha,EAAQga,aAAeha,EAAQ4nB,SAC9CpK,EAAUxd,EAAQwd,UAAW,EAC7B2K,EAAenoB,EAAQmoB,cAAgB3K,EACvC7G,EAAa3W,EAAQ2W,YAErBjD,EAAW1T,EAEX,UAAM0F,SAASgO,KAAWA,EAAW,IAAI,EAAAyK,UAAUjE,aAAaxG,IAEhE,UAAMhO,SAASsZ,KAAeA,EAAe,IAAI,EAAAb,UAAUjE,aAAa8E,IAExE,UAAMtZ,SAASsU,KAAcA,EAAc,IAAI,EAAAmE,UAAUjE,aAAaF,IAE1Exa,KAAKsoB,MAAQ,IAAI,EAAAM,MAAM5oB,MACvBA,KAAKsX,mBAAqB,IAAI,EAAAuR,mBAAmB7oB,MACjDA,KAAKsL,IAAM,IAAI,EAAAwT,IAAI9e,MACnBA,KAAKod,OAAS,IAAI,EAAAP,OAAO7c,KAAM,CAC3B2c,iBAAgBwL,EAAe3nB,IAAWA,EAAQmc,iBAEtD3c,KAAKwoB,MAAQ,UAEbxoB,KAAK8oB,YAAY5U,GACjBlU,KAAK+oB,gBAAgBvJ,GACrBxf,KAAKgpB,eAAexO,GAEpBxa,KAAK2e,UAAY,EAAAA,UACjB3e,KAAKqoB,UAAY,EAAAA,UAEjBroB,KAAK2f,cAAe,EACpB3f,KAAKoX,mBAAoB,EACzBpX,KAAKM,eAAiB,CAClBC,KAAK,EACLkZ,QAAQ,GAGZzZ,KAAKud,QAAUzd,EAAQyd,QACvBvd,KAAK6Y,KAAO/Y,EAAQ+Y,KACpB7Y,KAAK8B,SAAWhC,EAAQgC,SACxB9B,KAAKkD,QAAUpD,EAAQoD,QACvBlD,KAAKipB,QAAUnpB,EAAQmpB,QACvBjpB,KAAKuK,OAASzK,EAAQyK,OACtBvK,KAAKqL,UAAYvL,EAAQuL,UACzBrL,KAAK0R,UAAY5R,EAAQ4R,UACzB1R,KAAKmB,MAAQrB,EAAQqB,MACrBnB,KAAKkpB,YAAcppB,EAAQopB,YAC3BlpB,KAAKmpB,UAAYrpB,EAAQqpB,UACzBnpB,KAAKopB,YAActpB,EAAQspB,YAC3BppB,KAAKqpB,MAAQvpB,EAAQupB,MACrBrpB,KAAKspB,QAAUxpB,EAAQwpB,QACvBtpB,KAAK8N,cAAgBhO,EAAQgO,cAC7B9N,KAAKupB,aAAezpB,EAAQypB,aAC5BvpB,KAAKwpB,aAAe1pB,EAAQ0pB,aAExBrS,GAAYnX,KAAKypB,cAActS,GACnCnX,KAAKyoB,gBAAkBP,EACvBloB,KAAKwF,SA3GK,KA6GNwY,GACAhe,KAAK0pB,kBAAkB1L,GAGvB2K,GACA3oB,KAAK2pB,eAAehB,EAE5B,CAEA,wBAAMiB,GACF,IACI,MAAMC,QAAiB7pB,KAAKsL,IAAIub,cAChC7mB,KAAKyoB,gBAAkBoB,EAASC,eAAeC,YACA,IAA3C/pB,KAAKyoB,gBAAgBuB,MAAM,KAAKtiB,SAChC1H,KAAKyoB,iBAAmB,KAEhC,CAAE,MAAO9O,GACL3Z,KAAKyoB,gBAAkBP,CAC3B,CACJ,CAEA,eAAA+B,CAAgBnU,GAAkD,GAC9D,GAAI,EAAC,EAAO,SAAU,WAAY,GAAGiC,SAASjC,GAC1C,OAAQ9V,KAAK2f,aAAe7J,EAGhC,IAAK,UAAMlK,UAAUkK,KAAaA,EAAS,MAAM,IAAI/V,MAAM,6BAE3D,OAAQC,KAAK2f,aAAeqD,KAAKkH,IAAIpU,EACzC,CAEA,aAAA2T,CAActS,GACV,IACInX,KAAKmqB,WAAWrqB,EAAQoD,QAAQmU,eAAeF,GACnD,CAAE,MACE,MAAM,IAAIpX,MAAM,+BACpB,CAEAC,KAAKoX,kBAAoBD,EACzBnX,KAAKoqB,KAAK,oBAAqBjT,EACnC,CAEA,UAAAgT,CAAWjnB,GACP,IAAKpD,EAAQuL,UAAUnI,GAAU,MAAM,IAAInD,MAAM,4BAEjD,MAAMQ,EAAMT,EAAQoD,QAAQ/B,MAAM+B,GAC5BuW,EAAS3Z,EAAQoD,QAAQiZ,QAAQjZ,GAEnClD,KAAKoX,mBAAqBtX,EAAQoD,QAAQmU,eAAerX,KAAKoX,qBAAuBqC,IACrFzZ,KAAKoX,mBAAoB,GAE7BpX,KAAKM,eAAiB,CAClBC,MACAkZ,UAGJzZ,KAAKoqB,KAAK,iBAAkB,CAAE7pB,MAAKkZ,UACvC,CAEA,iBAAA4Q,CAAkB9M,GACd,OAAO,UAAOD,UAAUtd,KAAKyoB,gBAAiBlL,EAClD,CAEA,eAAA5C,CAAgB2P,GACZ,OAAOvlB,OAAOyC,OAAO,EAAAmX,WAAWlY,MAAM8jB,GAAkBD,aAAoBC,GAChF,CAEA,WAAAzB,CAAY5U,GAGR,IAFI,IAAAhO,UAASgO,KAAWA,EAAW,IAAI,EAAAyK,UAAUjE,aAAaxG,KAEzDlU,KAAK2a,gBAAgBzG,GAAW,MAAM,IAAInU,MAAM,8BAErDC,KAAKkU,SAAWA,EAChBlU,KAAKkU,SAASsK,cAAc,qBAChC,CAEA,eAAAuK,CAAgBvJ,GAGZ,GAFI,UAAMtZ,SAASsZ,KAAeA,EAAe,IAAI,EAAAb,UAAUjE,aAAa8E,KAEvExf,KAAK2a,gBAAgB6E,GAAe,MAAM,IAAIzf,MAAM,kCAEzDC,KAAKwf,aAAeA,EACpBxf,KAAKwf,aAAahB,cAAc,6BACpC,CAEA,cAAAwK,CAAexO,EAA2BC,GACtCza,KAAKsoB,MAAM/N,UAAUC,EAAaC,EACtC,CAEA,SAAA+P,CAAUxM,EAAU,CAAC,GACjB,MAAM9J,EAAW,IAAI,EAAAyK,UAAUjE,aAAa1a,KAAKkU,SAAS0J,KAAM,IAAO,GAAI,GAAII,GACzEwB,EAAe,IAAI,EAAAb,UAAUjE,aAAa1a,KAAKwf,aAAa5B,KAAM,IAAO,GAAI,GAAII,GACjFxD,EAAc,IAAI,EAAAmE,UAAUjE,aAAa1a,KAAKwa,YAAaoD,KAAM,IAAO,GAAI,GAAII,GAEtFhe,KAAK8oB,YAAY5U,GACjBlU,KAAK+oB,gBAAgBvJ,GACrBxf,KAAKgpB,eAAexO,EACxB,CAEA,iBAAAkP,CAAkB1L,EAAU,CAAC,GACzB,MAAM9J,EAAW,IAAI,EAAAyK,UAAUjE,aAAa1a,KAAKkU,SAAS0J,KAAM,IAAO,GAAI,GAAII,GACzEwB,EAAe,IAAI,EAAAb,UAAUjE,aAAa1a,KAAKwf,aAAa5B,KAAM,IAAO,GAAI,GAAII,GAEvFhe,KAAK8oB,YAAY5U,GACjBlU,KAAK+oB,gBAAgBvJ,EACzB,CAEA,cAAAmK,CAAe3L,EAAU,CAAC,GACtB,MAAMxD,EAAc,IAAI,EAAAmE,UAAUjE,aAAa1a,KAAKwa,YAAaoD,KAAM,IAAO,GAAI,GAAII,GACtFhe,KAAKgpB,eAAexO,EACxB,CAEA,gBAAAiQ,GACI,MAAO,CACHvW,SAAUlU,KAAKkU,SACfsL,aAAcxf,KAAKwf,aACnBhF,YAAaxa,KAAKwa,YAE1B,CAEA,eAAAkQ,GACI,OAAO1qB,KAAKyqB,kBAChB,CAEA,cAAAE,IAAkBrhB,GACd,OAAOtJ,KAAKsoB,MAAMxN,8BAA8BxR,EACpD,CAEA,uBAAAshB,IACOthB,GAEH,OAAOtJ,KAAKsoB,MAAMhM,4BAA4BhT,EAClD,CAEA,QAAAX,CAAS7C,EAA4B,GAAI5C,GACrC,OAAO,IAAI,EAAA2nB,SAAS7qB,KAAM8F,EAAK5C,EACnC,CAEAA,QACA,kBAAWA,GACP,MAAO,CACHiZ,QAAQjZ,IACG,IAAAiZ,SAAQjZ,GAEnB/B,MAAM+B,IACK,IAAA/B,OAAM+B,GAEjB4nB,kBAAkB5nB,IACP,IAAA4nB,mBAAkB5nB,GAE7B6nB,kBAAkB7nB,IACP,IAAA6nB,mBAAkB7nB,GAE7BmU,eAAc,CAACF,EAAoB6T,GAAS,KACjC,IAAA3T,gBAAeF,EAAY6T,GAG9C,CAEAnS,KACA,WAAOA,CAAKoS,EAAgBC,GAAS,GACjC,OAAQA,EAAS,KAAO,KAAM,IAAApgB,WAAUC,OAAO1K,KAAK4qB,EAAQ,UAAUjgB,WAAWC,UAAU,EAC/F,CAEA9J,MACA,YAAOA,CAAMgqB,GACT,GAAI,UAAMlD,UAAUkD,GAAM,OAAOrrB,EAAQspB,aAAa+B,GAEtD,GAAI,UAAMC,YAAYD,GAAM,OAAOrrB,EAAQspB,YAAY+B,GAEvD,GAAmB,iBAARA,EAAkB,OAAOrrB,EAAQgC,SAASqE,KAAKsC,UAAU0iB,IAEpE,GAAI,UAAMjlB,SAASilB,GAAM,CACrB,GAAI,UAAUnjB,KAAKmjB,GAAM,OAAOA,EAIhC,IAAKE,SAASF,IAAQ,QAAQnjB,KAAKmjB,GAAM,OAAOrrB,EAAQgC,SAASqpB,EACrE,CAEA,MAAM9gB,EAASvK,EAAQspB,YAAY+B,GACnC,GAAe,UAAX9gB,EACA,MAAM,IAAItK,MAAM,uDAEhB,OAAOsK,CAEf,CAEAE,OACA,aAAOA,CAAOhK,GACV,GAAI,UAAMqf,MAAMrf,GAEZ,OADAA,EAAMA,EAAIyG,QAAQ,MAAO,IAClB+D,OAAO1K,KAAKE,EAAK,OAAOyK,SAAS,QAExC,MAAM,IAAIjL,MAAM,6CAExB,CAEA+B,SACA,eAAOA,CAASmpB,GACZ,IAAK,UAAM/kB,SAAS+kB,GAChB,MAAM,IAAIlrB,MAAM,gDAEpB,MAAO,KAAOgL,OAAO1K,KAAK4qB,EAAQ,QAAQjgB,SAAS,MACvD,CAEAie,QACA,cAAOA,CAAQ1oB,GACX,GAAI,UAAMqf,MAAMrf,GAAM,CAClB,IAAI+qB,EAAM,GACN3jB,EAAI,EACR,MAAM4jB,EAAIhrB,EAAImH,OAId,IAH4B,OAAxBnH,EAAI0K,UAAU,EAAG,KACjBtD,EAAI,GAEDA,EAAI4jB,EAAG5jB,GAAK,EAAG,CAClB,MAAM+P,EAAOjX,SAASF,EAAI2jB,OAAOvc,EAAG,GAAI,IACxC2jB,GAAOzoB,OAAO2oB,aAAa9T,EAC/B,CACA,OAAO4T,CACX,CACI,MAAM,IAAIvrB,MAAM,6CAExB,CAEA2R,UACA,gBAAOA,CAAUuZ,EAAgBQ,GAC7B,IAAK,UAAMvlB,SAAS+kB,GAChB,MAAM,IAAIlrB,MAAM,gDAEpB,MAAO,KAAOgL,OAAO1K,KAAK4qB,EAAQ,SAASjgB,SAAS,OAAO0gB,OAAOD,EAAU,IAChF,CAEAtC,UACA,gBAAOA,CAAUtoB,GACb,OAAOf,EAAQopB,YAAYroB,GAAO8qB,UACtC,CAEAvC,YACA,kBAAOA,CAAYvoB,GACf,MAAM+U,EAAS9V,EAAQopB,YAAYroB,GAC7BwJ,EAASuL,EAAO5K,SAAS,IAE/B,OAAO4K,EAAOgW,WAAW,GAAK,MAAQvhB,EAAO6Z,OAAO,GAAK,KAAO7Z,CACpE,CAEAif,QACA,cAAOA,CAAQuC,GACX,MAAMvgB,EAAMxL,EAAQopB,YAAY2C,GAAKC,IAAI,KACzC,OAAO,UAAMV,YAAYS,GAAOvgB,EAAMA,EAAIN,SAAS,GACvD,CAEAqe,MACA,YAAOA,CAAM/d,GACT,MAAMugB,EAAM/rB,EAAQopB,YAAY5d,GAAKygB,MAAM,KAC3C,OAAO,UAAMX,YAAY9f,GAAOugB,EAAMA,EAAI7gB,SAAS,GACvD,CAEAke,YACA,kBAAOA,CAAY9oB,EAAuC,GACtD,OAAI,UAAMgrB,YAAYhrB,GAAgBA,EAElC,UAAM8F,SAAS9F,IAAW,UAAU4H,KAAK5H,GAAgB,IAAI,EAAAioB,UAAUjoB,EAAO4G,QAAQ,KAAM,IAAK,IAE9F,IAAI,EAAAqhB,UAAUjoB,EAAO4K,SAAS,IAAK,GAC9C,CAEAK,UACA,gBAAOA,CAAUnI,EAAmB,IAChC,OAAO,IAAAmI,WAAUnI,EACrB,CAEA4K,cACA,0BAAaA,GAGT,OAFgB,UAAMke,SAASC,iBAGnC,CAEA1C,aACA,mBAAOA,IACAjgB,GAIH,OAFgB,UAAM0iB,SAASE,kBAAkB5iB,EAGrD,CAEAkgB,aACA,mBAAOA,IACAlgB,GAIH,OAFgB,UAAM0iB,SAASG,+BAA+B7iB,EAGlE,CAEA,iBAAMsR,GACF,MAAO,CACH1G,eAAgBlU,KAAKkU,SAAS0G,cAC9B4E,mBAAoBxf,KAAKwf,aAAa5E,cACtCJ,YAAaxa,KAAKwa,mBAAsBxa,KAAKwa,YAAYI,cAEjE,EAhZJ,YAkZA,UAAe9a,C,mLClbf,IAAY0B,EA4CA4qB,EAYAC,E,iHAxDZ,SAAY7qB,GACR,gDACA,sCACA,gDACA,wCACA,4CACA,gDACA,0CACA,gDACA,gEACA,gDACA,gDACA,oDACA,4DACA,oDACA,gDACA,4CACA,kDACA,oDACA,kDACA,8CACA,kCACA,4CACA,8CACA,4BACA,gDACA,kDACA,kDACA,sDACA,4DACA,wDACA,oEACA,sCACA,oDACA,sDACA,oDACA,wDACA,oDACA,wDACA,kEACA,sDACA,0DACA,6BACH,CA3CD,CAAYA,IAAY,eAAZA,EAAY,KA4CxB,SAAY4qB,GACR,qBACA,yBACA,uBACA,mCACH,CALD,CAAYA,IAAyB,4BAAzBA,EAAyB,KAYrC,SAAYC,GACR,uBACA,+BACA,2BACA,mCACH,CALD,CAAYA,IAAW,cAAXA,EAAW,I,0UCAvB,IAAYC,EAqFPC,EAsBAC,EAoCAC,E,uEA/IL,SAAYH,GACR,6BACA,uBACA,8BACH,CAJD,CAAYA,IAAY,eAAZA,EAAY,KAqFxB,SAAKC,GACD,wCACA,gDACA,kDACA,gDACA,sCACA,2BACH,CAPD,CAAKA,IAAAA,EAAmC,KAsBxC,SAAKC,GACD,yBACA,2BACA,yDACA,+CACA,uCACA,qDACA,iCACA,6DACA,mEACA,iCACA,sCACA,0EACA,iCACH,CAdD,CAAKA,IAAAA,EAA6B,KAoClC,SAAKC,GACD,yBACA,iCACA,2BACA,0BACH,CALD,CAAKA,IAAAA,EAAa,I,0KCzMlB,0BACA,0BACA,yBACA,0BACA,0BACA,yBACA,yBACA,0BACA,yB,+ECGA,wBAA6B3rB,EAAiByG,EAAiB0Q,EAAgByU,GAAmB,GAG9F,GAFIA,GAAoBzU,EAAOjR,QAAQ,MAAO,IAAIU,OAAS,IAAO,IAAGuQ,EAAS,KAAOA,EAAOjR,QAAQ,MAAO,IAAIiE,UAAU,IAErHgN,EAAOjR,QAAQ,MAAO,IAAIU,OAAS,GACnC,MAAM,IAAI3H,MAAM,yEAWpB,OAPAwH,EAAQA,EAAMpC,KAAKvE,IACX,WAAWoH,KAAKpH,KAChBA,EAAOA,EAAKoG,QAAQ,WAAY,YAE7BpG,KAGJyG,EAASslB,OAAOplB,EAAO0Q,GAAQ+J,QAClC,CAACxJ,EAAKoU,EAAKzT,KACa,WAAhB5R,EAAM4R,KACNyT,EAAM,EAAA3I,eAAiB2I,EAAI1I,OAAO,GAAGtd,eAGrC9F,EAAM4G,OACN8Q,EAAI1X,EAAMqY,IAAUyT,EAEpBpU,EAAIvQ,KAAK2kB,GAGNpU,IAEX1X,EAAM4G,OAAS,CAAC,EAAI,GAE5B,EAEA,wBAA6BH,EAAiBC,GAC1C,IAAK,IAAIG,EAAI,EAAGA,EAAIJ,EAAMG,OAAQC,IACb,YAAbJ,EAAMI,KACNH,EAAOG,GAAK,EAAA7H,QAAQoD,QAAQ/B,MAAMqG,EAAOG,IAAIX,QAAQ,EAAAc,qBAAsB,OAInF,OAAOT,EAASa,OAAOX,EAAOC,EAClC,EAYA,+BAAoCqlB,EAA0BzkB,GAC1D,MAAMb,EAAkB,GAElBulB,EAA2BC,GACzBA,GAA6C,IAAlCA,EAAQnsB,KAAK4kB,QAAQ,UAAkBuH,EAAQ/P,WAInD,SAHY+P,EAAQ/P,WAAW7X,KAAK6nB,GAChCF,EAAwBE,KAERjI,KAAK,QAAQkI,EAAYF,EAAQnsB,QAG5D,WAAWoH,KAAK+kB,EAAQnsB,MAAcmsB,EAAQnsB,KAAKoG,QAAQ,WAAY,WAEpE+lB,EAAQnsB,KAUbssB,EAAoBC,GAClBva,MAAMrM,QAAQ4mB,IACdA,EAAQ5f,SAAQ,CAAC6f,EAAOzlB,KACpBwlB,EAAQxlB,GAAKulB,EAAiBE,EAAgB,IAE3CD,GAEAE,EAAcF,GAIvBG,EAAW,CAACtQ,EAA6C5U,EAAamlB,KACpEA,EAAY,EACRnlB,EAAKV,QACLU,EAAKmF,SAASqf,IACVU,EAAStQ,EAAY4P,EAAKW,EAAY,EAAE,IAI5CnlB,EAAKV,QAAU6lB,GACfnlB,EAAKmF,SAASqf,IACVY,EAAWxQ,EAAY4P,EAAI,GAGvC,EAGEY,EAAa,CAAC/lB,EAAyC,GAAIW,KACzDX,EAAOC,QACPD,EAAO8F,SAAQ,CAACtD,EAAwBtC,KACpC,MAAM/G,EAAOqJ,EAAMrJ,KAEnB,GAAIwH,EAAKT,GACL,GAAa,YAAT/G,EAAoBwH,EAAKT,GAAK0lB,EAAcjlB,EAAKT,SAChD,GAA8C,aAA1C/G,EAAKmH,MAAM,uBAAwB,GAAmBmlB,EAAiB9kB,EAAKT,SAChF,GAA8B,IAA1B/G,EAAK4kB,QAAQ,SAClB,GAAIyH,EAAYrsB,GAAO,CACnB,MAAM2sB,EAAYE,EAAgB7sB,GAClC0sB,EAASrjB,EAAM+S,WAAa5U,EAAKT,GAAI4lB,EACzC,MAAOC,EAAWvjB,EAAM+S,WAAa5U,EAAKT,GAAG,GACvD,EAGV,GAAIklB,EAAOplB,QAAUolB,EAAOplB,OAAOC,OAC/B,IAAK,IAAIC,EAAI,EAAGA,EAAIklB,EAAOplB,OAAOC,OAAQC,IAAK,CAC3C,MAAM/G,EAAOisB,EAAOplB,OAAOE,GAAG/G,KAGjB,SAATA,GAA+B,UAAZwH,EAAKT,KACxBS,EAAKT,IAAK,GAEdJ,EAAMU,KAA+B,IAA1BrH,EAAK4kB,QAAQ,SAAiBsH,EAAwBD,EAAOplB,OAAOE,IAAM/G,GACjFwH,EAAKV,OAASH,EAAMG,QACpBU,EAAKH,KAAK,GAElB,CAMJ,OAHAulB,EAAWX,EAAOplB,OAAQW,GAjEL,CAACb,IAClB,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAMG,OAAQC,IAAK,CACnC,MAAM/G,EAAO2G,EAAMI,GACf,WAAWK,KAAKpH,KAAO2G,EAAMI,GAAK/G,EAAKoG,QAAQ,WAAY,WACnE,GA8DJ0mB,CAAanmB,GAENF,EAASa,OAAOX,EAAOa,EAClC,EAEA,+BAAoCykB,EAA0C5rB,GAC1E,MAOMisB,EAAoBC,GAClBva,MAAMrM,QAAQ4mB,IACdA,EAAQ5f,SAAQ,CAAC6f,EAAOzlB,KACpBwlB,EAAQxlB,GAAKulB,EAAiBE,EAAgB,IAE3CD,GAEA,EAAArtB,QAAQoD,QAAQ/B,MAAMgsB,GAI/BG,EAAW,CAACtQ,EAA4C5U,EAA6BmlB,KACnFA,EAAY,EACRnlB,EAAKV,QACLU,EAAKmF,SAASqf,IACVU,EAAStQ,EAAY4P,EAAiBW,EAAY,EAAE,IAIxDnlB,EAAKV,QAAU6lB,GACfnlB,EAAKmF,SAASqf,IACVe,EAAa3Q,EAAY4P,EAAgB,GAGrD,EAGEgB,EAA+Bb,IACjC,MAAMpsB,EAAOosB,EAAQpsB,KAAO,IAAIosB,EAAQpsB,OAAS,GACjD,OAAIosB,GAA6C,IAAlCA,EAAQnsB,KAAK4kB,QAAQ,UAAkBuH,EAAQ/P,WAInD,SAHY+P,EAAQ/P,WAAW7X,KAAK6nB,GAChCY,EAA4BZ,KAEZjI,KAAK,QAAQkI,EAAYF,EAAQnsB,QAAQD,IAEpE,WAAWqH,KAAK+kB,EAAQnsB,MAAcmsB,EAAQnsB,KAAKoG,QAAQ,WAAY,WAAarG,EAEjFosB,EAAQnsB,KAAOD,CAAI,EAGxBgtB,EAAe,CAACxV,EAAyC9N,KACvD8N,EAAQzQ,QACRyQ,EAAQ5K,SAAQ,CAAC0K,EAAQtQ,KACrB,MAAM,KAAE/G,EAAI,KAAED,GAASsX,EAEvB,GAAI5N,EAAO1C,GACP,GAAa,YAAT/G,EACAyJ,EAAO1C,GAAK,EAAA7H,QAAQoD,QAAQ/B,MAAMkJ,EAAO1C,IAGrChH,IAAM0J,EAAO1J,GAAQ,EAAAb,QAAQoD,QAAQ/B,MAAMkJ,EAAO1C,UACnD,GAA8C,aAA1C/G,EAAKmH,MAAM,uBAAwB,GAC1CmlB,EAAiB7iB,EAAO1C,IAGpBhH,IAAM0J,EAAO1J,GAAQusB,EAAiB7iB,EAAO1C,UAC9C,GAA8B,IAA1B/G,EAAK4kB,QAAQ,SAAgB,CACpC,GAAIyH,EAAYrsB,GAAO,CACnB,MAAM2sB,EAAYE,EAAgB7sB,GAClC0sB,EAASrV,EAAO+E,WAAa3S,EAAO1C,GAAI4lB,EAC5C,MAAOI,EAAa1V,EAAO+E,WAAa3S,EAAO1C,IAI3ChH,IAAM0J,EAAO1J,GAAQ0J,EAAO1C,GACpC,MAGQhH,IAAM0J,EAAO1J,GAAQ0J,EAAO1C,SAKhChH,IAAM0J,EAAO1J,GAAQ0J,EAAO1C,GACpC,GACF,EAIV,GAAI,YAAaklB,GAAUA,EAAO1U,SAAW0U,EAAO1U,QAAQzQ,OAAS,EAAG,CACpE,MAAMmmB,EAAqB,GAC3B,IAAK,IAAIlmB,EAAI,EAAGA,EAAIklB,EAAO1U,QAAQzQ,OAAQC,IAAK,CAC5C,MAAM/G,EAAOisB,EAAO1U,QAAQxQ,GAAG/G,KACzBD,EAAOksB,EAAO1U,QAAQxQ,GAAGhH,KAAO,IAAIksB,EAAO1U,QAAQxQ,GAAGhH,OAAS,GACrEktB,EAAY5lB,KAA+B,IAA1BrH,EAAK4kB,QAAQ,SAAiBoI,EAA4Bf,EAAO1U,QAAQxQ,IAAM/G,EAAOD,EAC3G,CA5FqB,CAAC4G,IACtB,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAMG,OAAQC,IAAK,CACnC,MAAM/G,EAAO2G,EAAMI,GACf,YAAYK,KAAKpH,KAAO2G,EAAMI,GAAK/G,EAAKoG,QAAQ,YAAa,WACrE,GAyFA8mB,CAAiBD,GAEZ5sB,GAASA,EAAKyG,SAAQzG,EAAO,IAAI4iB,WAAW,GAAKgJ,EAAO1U,QAAQzQ,SAErE,MACMqmB,EADY1mB,EAASslB,OAAOkB,EAAa5sB,GACf+sB,SAAQ,GAGxC,OAFAL,EAAad,EAAO1U,QAAS4V,GAEtBA,CACX,CACA,MAAO,EACX,EAhQA,gBACA,UACA,UAGM1mB,EAAW,IAAI,EAAAC,SAErB,SAAS+lB,EAAcxsB,GACnB,OAAO,EAAAf,QAAQoD,QAAQ/B,MAAMN,GAAOmG,QAAQ,EAAAc,qBAAsB,KACtE,CA6CA,SAASmlB,EAAYrsB,GACjB,MAAMqtB,EAAOrtB,EAAKmH,MAAM,yBACxB,OAAOkmB,EAAOA,EAAK,GAAK,EAC5B,CAEA,SAASR,EAAgB7sB,GAErB,OADaqsB,EAAYrsB,GACZmH,MAAM,UAAY,IAAIL,OAAS,CAChD,C,+ECvDA,6BACI,MAAMwmB,GAAc,IAAAC,aACdC,GAAc,IAAAC,qBAAoBH,GAClCI,GAAe,IAAAC,sBAAqBL,GAK1C,MAAO,CACH/W,YAJe,IAAAqX,kBAAiBN,GAKhCO,WAJc,IAAAD,kBAAiBJ,GAK/BlrB,QAAS,CACLuW,QAAQ,IAAAiV,uBAAsBJ,GAC9B/tB,KAAK,IAAAiuB,kBAAiBF,IAGlC,EAEA,0BAA+BvQ,EAAW,GAAI4Q,EAAO,EAAAC,wBAAyBC,GAC1E,MAAM7N,EAAU,EAAA8N,mBAAmBvF,aAAaxL,EAAU4Q,EAAME,GAUhE,MARe,CACXE,SAAU/N,EAAQ+N,SAClB5X,WAAY6J,EAAQ7J,WACpBsX,UAAWzN,EAAQ2D,WAAW8J,UAC9BvrB,SAAS,IAAA8rB,aAAYhO,EAAQ7J,WAAWnQ,QAAQ,MAAO,KACvD2nB,KAAM3N,EAAQ2N,KAItB,EAEA,uCACII,EACAJ,EAAe,EAAAC,wBACf7Q,EAAsC,GACtC8Q,EAA4B,MAG5B,IAAKhsB,OAAO8rB,GAAM5mB,MAAM,mBACpB,MAAM,IAAIhI,MAAMkvB,GAEpB,MAAMjO,EAAU,EAAA8N,mBAAmBtF,aAAa,EAAA0F,SAASC,WAAWJ,EAAUhR,EAAU8Q,GAAWF,GASnG,MAPe,CACXI,SAAU/N,EAAQ+N,SAClB5X,WAAY6J,EAAQ7J,WACpBsX,UAAWzN,EAAQ2D,WAAW8J,UAC9BvrB,SAAS,IAAA8rB,aAAYhO,EAAQ7J,WAAWnQ,QAAQ,MAAO,KAI/D,EA3DA,gBACA,UACA,UACA,UAEMioB,EAA8B,4B,sNCQpC,mBAAwB/rB,GACpB,OAAK,IAAA0c,OAAM1c,IAEJ,IAAAwrB,wBAAsB,IAAA/K,kBAAiBzgB,EAAQ8D,QAAQ,MAAO,EAAAid,kBAFzC/gB,CAGhC,EAEA,UA8BA,sBAKA,6BAAkCA,GAC9B,KAAK,IAAA0c,OAAM1c,IAA+B,KAAnBA,EAAQwE,OAAe,OAAO,EACrD,IACI,OAAOojB,EAAkB5nB,KAAaA,CAC1C,CAAE,MACE,OAAO,CACX,CACJ,EAEA,0BAA+BiU,EAAoB6T,GAAS,GACxD,IACI,OAAO,IAAAgE,aAAY7X,EAAY6T,EACnC,CAAE,MACE,OAAO,CACX,CACJ,EAEA,cAvEA,gBACA,UACA,UACA,UAgBA,SAAgB7pB,EAAM+B,GAClB,OAAI,IAAA0c,OAAM1c,GAAiBA,EAAQ0D,cAAcI,QAAQ,MAAO,EAAAid,iBAEzD,IAAAuK,mBAAiB,IAAAY,qBAAoBlsB,IAAsB0D,aACtE,CA0BA,SAAgBkkB,EAAkB5nB,GAC9B,IAAKmI,EAAUnI,GAAU,MAAM,IAAInD,MAAM,IAAImD,oCAC7C,OA1BJ,SAA4BA,GAGxB,MAAMmsB,GAFNnsB,EAAUA,EAAQ0D,eAEIqE,UAAU,GAAG+e,MAAM,IAEnCsF,EAAW,IAAIzL,WAAW,IAChC,IAAK,IAAIlc,EAAI,EAAGA,EAAI,GAAIA,IACpB2nB,EAAS3nB,GAAK0nB,EAAM1nB,GAAG4nB,WAAW,GAGtC,MAAMC,GAAS,IAAA7L,mBAAiB,IAAA7Y,WAAUwkB,GAAU7gB,MAAM,IAE1D,IAAK,IAAI9G,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACpB6nB,EAAO7nB,GAAK,IAAM,GAAM,IACzB0nB,EAAM1nB,GAAK0nB,EAAM1nB,GAAG8nB,gBAEF,GAAjBD,EAAO7nB,GAAK,KAAc,IAC3B0nB,EAAM1nB,EAAI,GAAK0nB,EAAM1nB,EAAI,GAAG8nB,eAIpC,OAAO,EAAAxL,eAAiBoL,EAAMtK,KAAK,GACvC,CAIW2K,CAAmBvuB,EAAM+B,GACpC,CAmBA,SAAgBmI,EAAUnI,GACtB,IAAKA,KAAY,IAAAgD,UAAShD,GAAU,OAAO,EAG3C,GAAuB,KAAnBA,EAAQwE,OACR,IAEI,OAAO2D,GAAU,IAAAqjB,wBAAsB,IAAA/K,kBAAiBzgB,IAC5D,CAAE,MAAOyW,GACL,OAAO,CACX,CAEJ,IACI,OAAO,IAAAgW,gBAAezsB,EAC1B,CAAE,MAAOyW,GACL,OAAO,CACX,CACJ,CAnFa,EAAAiW,aAAe,GACf,EAAA3L,eAAiB,KACjB,EAAA4L,oBAAsB,GACtB,EAAA/nB,qBAAuB,QAEvB,EAAAgoB,uBAAyB,aACzB,EAAAlB,wBAA0B,EAAAkB,uBAAyB,S,4ECHhE,oBAAyBC,GACrB,GAAsB,IAAlBA,EAAOroB,OAAc,MAAO,GAEhC,IAAIC,EACAqoB,EAEJ,MAAMC,EAAS,CAAC,GAEhB,IAAKtoB,EAAI,EAAGA,EAAIooB,EAAOroB,OAAQC,IAAK,CAChC,IAAKqoB,EAAI,EAAGA,EAAIC,EAAOvoB,OAAQsoB,IAAKC,EAAOD,KAAO,EAIlDC,EAAO,IAAMF,EAAOpoB,GACpB,IAAIuoB,EAAQ,EAEZ,IAAKF,EAAI,EAAGA,EAAIC,EAAOvoB,SAAUsoB,EAC7BC,EAAOD,IAAME,EACbA,EAASD,EAAOD,GAAKG,EAAQ,EAC7BF,EAAOD,IAAMG,EAGjB,KAAOD,GACHD,EAAOhoB,KAAKioB,EAAQC,GACpBD,EAASA,EAAQC,EAAQ,CAEjC,CAEA,IAAKxoB,EAAI,EAAiB,IAAdooB,EAAOpoB,IAAYA,EAAIooB,EAAOroB,OAAS,EAAGC,IAAKsoB,EAAOhoB,KAAK,GAEvE,OAAOgoB,EACFG,UACAjrB,KAAKkrB,GAAUC,EAASD,KACxBtL,KAAK,GACd,EAEA,oBAAyBkG,GACrB,GAAsB,IAAlBA,EAAOvjB,OAAc,MAAO,GAEhC,IAAIC,EACAqoB,EAEJ,MAAMO,EAAQ,CAAC,GAEf,IAAK5oB,EAAI,EAAGA,EAAIsjB,EAAOvjB,OAAQC,IAAK,CAChC,MAAM6oB,EAAYvF,EAAOtjB,GAEzB,KAAM6oB,KAAKC,GAAe,MAAM,IAAI1wB,MAAM,wBAE1C,IAAKiwB,EAAI,EAAGA,EAAIO,EAAM7oB,OAAQsoB,IAAKO,EAAMP,IAAMG,EAE/CI,EAAM,IAAME,EAAaD,GACzB,IAAIN,EAAQ,EAEZ,IAAKF,EAAI,EAAGA,EAAIO,EAAM7oB,SAAUsoB,EAC5BO,EAAMP,IAAME,EACZA,EAAQK,EAAMP,IAAM,EACpBO,EAAMP,IAAM,IAGhB,KAAOE,GACHK,EAAMtoB,KAAa,IAARioB,GACXA,IAAU,CAElB,CAEA,IAAKvoB,EAAI,EAAiB,MAAdsjB,EAAOtjB,IAAcA,EAAIsjB,EAAOvjB,OAAS,EAAGC,IAAK4oB,EAAMtoB,KAAK,GAExE,OAAOsoB,EAAMH,SACjB,EA5EA,MAAME,EAAW,6DACXG,EAAe,CAAC,EAEtB,IAAK,IAAI9oB,EAAI,EAAGA,EAAI2oB,EAAS5oB,OAAQC,IAAK8oB,EAAaH,EAASI,OAAO/oB,IAAMA,EAE7E,MAAMwoB,EAAO,E,6FCJb,MAAMQ,EAAU,oEAEhB,eACI,MAAAzoB,CAAO+B,GACH,IACI2mB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAPAjZ,EAAS,GAQTtQ,EAAI,EAER,KAAOA,EAAIsC,EAAMvC,QACbkpB,EAAO3mB,EAAMslB,WAAW5nB,KACxBkpB,EAAO5mB,EAAMslB,WAAW5nB,KACxBmpB,EAAO7mB,EAAMslB,WAAW5nB,KAExBopB,EAAOH,GAAQ,EACfI,GAAgB,EAAPJ,IAAa,EAAMC,GAAQ,EACpCI,GAAgB,GAAPJ,IAAc,EAAMC,GAAQ,EACrCI,EAAc,GAAPJ,EAEHrjB,MAAMojB,GAAOI,EAAOC,EAAO,GACtBzjB,MAAMqjB,KAAOI,EAAO,IAE7BjZ,EAASA,EAAS0Y,EAAQD,OAAOK,GAAQJ,EAAQD,OAAOM,GAAQL,EAAQD,OAAOO,GAAQN,EAAQD,OAAOQ,GAG1G,OAAOjZ,CACX,CAEA,gBAAAkZ,CAAiBC,GACb,IACIR,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAPAjZ,EAAS,GAQTtQ,EAAI,EAER,KAAOA,EAAIypB,EAAW1pB,QAClBkpB,EAAOQ,EAAWzpB,KAClBkpB,EAAOO,EAAWzpB,KAClBmpB,EAAOM,EAAWzpB,KAElBopB,EAAOH,GAAQ,EACfI,GAAgB,EAAPJ,IAAa,EAAMC,GAAQ,EACpCI,GAAgB,GAAPJ,IAAc,EAAMC,GAAQ,EACrCI,EAAc,GAAPJ,EAEHrjB,MAAMojB,GAAOI,EAAOC,EAAO,GACtBzjB,MAAMqjB,KAAOI,EAAO,IAE7BjZ,EAASA,EAAS0Y,EAAQD,OAAOK,GAAQJ,EAAQD,OAAOM,GAAQL,EAAQD,OAAOO,GAAQN,EAAQD,OAAOQ,GAG1G,OAAOjZ,CACX,CAEA,MAAA0U,CAAO1iB,GACH,IACI2mB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAPAjZ,EAAS,GAQTtQ,EAAI,EAKR,IAFAsC,EAAQA,EAAMjD,QAAQ,sBAAuB,IAEtCW,EAAIsC,EAAMvC,QACbqpB,EAAOJ,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCqpB,EAAOL,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCspB,EAAON,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCupB,EAAOP,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MAEpCipB,EAAQG,GAAQ,EAAMC,GAAQ,EAC9BH,GAAgB,GAAPG,IAAc,EAAMC,GAAQ,EACrCH,GAAgB,EAAPG,IAAa,EAAKC,EAE3BjZ,GAAkBpV,OAAO2oB,aAAaoF,GAE1B,IAARK,IAAYhZ,GAAkBpV,OAAO2oB,aAAaqF,IAE1C,IAARK,IAAYjZ,GAAkBpV,OAAO2oB,aAAasF,IAG1D,OAAO9wB,KAAKqxB,aAAapZ,EAC7B,CAEA,iBAAAqZ,CAAkBrnB,GACd,IACI2mB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAPAjZ,EAAS,GAQTtQ,EAAI,EAKR,IAFAsC,EAAQA,EAAMjD,QAAQ,sBAAuB,IAEtCW,EAAIsC,EAAMvC,QACbqpB,EAAOJ,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCqpB,EAAOL,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCspB,EAAON,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MACpCupB,EAAOP,EAAQnL,QAAQvb,EAAMymB,OAAO/oB,MAEpCipB,EAAQG,GAAQ,EAAMC,GAAQ,EAC9BH,GAAgB,GAAPG,IAAc,EAAMC,GAAQ,EACrCH,GAAgB,EAAPG,IAAa,EAAKC,EAE3BjZ,GAAkBpV,OAAO2oB,aAAaoF,GAE1B,IAARK,IAAYhZ,GAAkBpV,OAAO2oB,aAAaqF,IAE1C,IAARK,IAAYjZ,GAAkBpV,OAAO2oB,aAAasF,IAG1D,OAAO9wB,KAAKuxB,eAAetZ,EAC/B,CAEA,cAAAsZ,CAAeC,GACX,MAAMC,EAAuB,IAAI7e,MAAM4e,EAAQ9pB,QAE/C,IAAIC,EAAI,EACJ6oB,EAAI,EAER,KAAO7oB,EAAI6pB,EAAQ9pB,QACf8oB,EAAIgB,EAAQjC,WAAW5nB,GACvB8pB,EAAU9pB,GAAK6oB,EACf7oB,IAGJ,OAAO8pB,CACX,CAEA,YAAAC,CAAazG,GACTA,EAASA,EAAOjkB,QAAQ,QAAS,MACjC,IAAIwqB,EAAU,GAEd,IAAK,IAAIG,EAAI,EAAGA,EAAI1G,EAAOvjB,OAAQiqB,IAAK,CACpC,MAAMnB,EAAIvF,EAAOsE,WAAWoC,GAExBnB,EAAI,IACJgB,GAAW3uB,OAAO2oB,aAAagF,GACxBA,EAAI,KAAOA,EAAI,MACtBgB,GAAW3uB,OAAO2oB,aAAcgF,GAAK,EAAK,KAC1CgB,GAAW3uB,OAAO2oB,aAAkB,GAAJgF,EAAU,OAE1CgB,GAAW3uB,OAAO2oB,aAAcgF,GAAK,GAAM,KAC3CgB,GAAW3uB,OAAO2oB,aAAegF,GAAK,EAAK,GAAM,KACjDgB,GAAW3uB,OAAO2oB,aAAkB,GAAJgF,EAAU,KAElD,CAEA,OAAOgB,CACX,CAEA,YAAAH,CAAaG,GACT,IAAIvG,EAAS,GACTtjB,EAAI,EACJ6oB,EAAI,EACJoB,EAAK,EACLC,EAAK,EAET,KAAOlqB,EAAI6pB,EAAQ9pB,QACf8oB,EAAIgB,EAAQjC,WAAW5nB,GAEnB6oB,EAAI,KACJvF,GAAUpoB,OAAO2oB,aAAagF,GAC9B7oB,KACO6oB,EAAI,KAAOA,EAAI,KACtBoB,EAAKJ,EAAQjC,WAAW5nB,EAAI,GAC5BsjB,GAAUpoB,OAAO2oB,cAAmB,GAAJgF,IAAW,EAAW,GAALoB,GACjDjqB,GAAK,IAELiqB,EAAKJ,EAAQjC,WAAW5nB,EAAI,GAC5BkqB,EAAKL,EAAQjC,WAAW5nB,EAAI,GAE5BsjB,GAAUpoB,OAAO2oB,cAAmB,GAAJgF,IAAW,IAAa,GAALoB,IAAY,EAAW,GAALC,GAErElqB,GAAK,GAIb,OAAOsjB,CACX,E,+ECnMJ,gBAYA,yBAA8B6G,GAC1B,IAAIxG,EAAM,GAEV,IAAK,IAAI3jB,EAAI,EAAGA,EAAImqB,EAAIpqB,OAAQC,IAAK,CACjC,MAAMoqB,EAAMD,EAAInqB,GAAGqD,SAAS,GACtBnD,EAAIkqB,EAAIhqB,MAAM,aAEpB,GAAIF,GAAoB,IAAfkqB,EAAIrqB,OAAc,CACvB,MAAMsqB,EAAcnqB,EAAE,GAAGH,OACzB,IAAIuqB,EAAQH,EAAInqB,GAAGqD,SAAS,GAAGyD,MAAM,EAAIujB,GAEzC,IAAK,IAAIE,EAAK,EAAGA,EAAKF,EAAaE,IAAMD,GAASH,EAAII,EAAKvqB,GAAGqD,SAAS,GAAGyD,MAAM,GAEhF6c,GAAOzoB,OAAO2oB,aAAa/qB,SAASwxB,EAAO,IAC3CtqB,GAAKqqB,EAAc,CACvB,MACI1G,GAAOzoB,OAAO2oB,aAAasG,EAAInqB,GAEvC,CAEA,OAAO2jB,CACX,EAEA,uBAA4B/qB,GACxB,MAAMuxB,EAAMvxB,EAAIyG,QAAQ,MAAO,IAAIgjB,MAAM,IACzC,IAAImI,EAAM,GAEV,IAAK,IAAIxqB,EAAI,EAAGA,EAAImqB,EAAIpqB,OAAS,EAAGC,IAAK,CACrC,MAAMyqB,EAAM,KAAKN,EAAQ,EAAJnqB,KAASmqB,EAAQ,EAAJnqB,EAAQ,KAC1CwqB,GAAOtvB,OAAO2oB,aAAa/qB,SAAS2xB,GACxC,CAEA,OAAOD,CACX,EAEA,4BAAiCV,GAC7B,IAAInG,EAAM,GAEV,IAAK,IAAI3jB,EAAI,EAAGA,EAAI8pB,EAAU/pB,OAAQC,IAAK2jB,GAAO+G,EAAYZ,EAAU9pB,IAExE,OAAO2jB,CACX,EAEA,kCAAuCgH,GACnC,OAAO,IAAI,EAAAC,QAASjB,kBAAkBgB,EAC1C,EAEA,gCAAqC/B,GAIjC,OAHU,IAAI,EAAAgC,QACKpB,iBAAiBZ,EAGxC,EAnEA,gBAGA,SAAgB8B,EAAYG,GACxB,GAAIA,EAAO,GAAKA,EAAO,IAAK,MAAM,IAAIzyB,MAAM,wBAE5C,MAAM0yB,EAAa,mBAEnB,IAAInH,EAAM,GAIV,OAHAA,GAAOmH,EAAW/B,OAAO8B,GAAQ,GACjClH,GAAOmH,EAAW/B,OAAc,GAAP8B,GAElBlH,CACX,C,qMCFA,sBAA2BoH,GACvB,OAAO,IAAAC,eAAcD,EACzB,EAEA,uBAA4BE,EAAeC,EAAe7H,GAAS,GAC/D,GAAI4H,EAAOlrB,QAAUmrB,EAAOnrB,OAAQ,OAAO,EAE3C,IAAK,IAAIC,EAAI,EAAGA,EAAIirB,EAAOlrB,OAAQC,IAC/B,GAAIqjB,GACA,GAAI4H,EAAOjrB,IAAMkrB,EAAOlrB,GAAI,OAAO,OAChC,GAAIxB,KAAKsC,UAAUmqB,EAAOjrB,KAAOxB,KAAKsC,UAAUoqB,EAAOlrB,IAAK,OAAO,EAG9E,OAAO,CACX,EAEA,yBAA8B2jB,GAC1B,MAAMiF,EAAQ,GACRlX,EAAciS,EAAI5jB,OACxB,IAAI8oB,EAEJ,IAAK,IAAI7oB,EAAI,EAAGA,EAAI0R,EAAK1R,IACrB6oB,EAAIlF,EAAIiE,WAAW5nB,GAEf6oB,GAAK,OAAYA,GAAK,SACtBD,EAAMtoB,KAAOuoB,GAAK,GAAM,EAAQ,KAChCD,EAAMtoB,KAAOuoB,GAAK,GAAM,GAAQ,KAChCD,EAAMtoB,KAAOuoB,GAAK,EAAK,GAAQ,KAC/BD,EAAMtoB,KAAU,GAAJuoB,EAAY,MACjBA,GAAK,MAAYA,GAAK,OAC7BD,EAAMtoB,KAAOuoB,GAAK,GAAM,GAAQ,KAChCD,EAAMtoB,KAAOuoB,GAAK,EAAK,GAAQ,KAC/BD,EAAMtoB,KAAU,GAAJuoB,EAAY,MACjBA,GAAK,KAAYA,GAAK,MAC7BD,EAAMtoB,KAAOuoB,GAAK,EAAK,GAAQ,KAC/BD,EAAMtoB,KAAU,GAAJuoB,EAAY,MACrBD,EAAMtoB,KAAS,IAAJuoB,GAGtB,OAAOD,CACX,EAIA,iBAWA,cASA,4BAAiCjF,EAAaN,GAAS,GACnD,IAAI3R,EAAMiS,EAAI5jB,OAEVsjB,GACI3R,EAAM,IACNiS,EAAM,IAAIA,IACVjS,KAGR,MAAMoY,EAAsB,GAC5B,IAAIqB,EAAI,EACJ9C,EAAI,EACJ+C,EAAI,EAER,IAAK,IAAIprB,EAAI,EAAGA,EAAI0R,EAAK1R,IAAK,CAC1B,MAAM6oB,EAAIlF,EAAIoF,OAAO/oB,GAErB,IAAIqrB,EAAUxC,GASP,MAAM,IAAIzwB,MAAM,iDARnB+yB,IAAM,EACNA,GAAKG,EAAazC,GAClBR,IAEI,GAAMA,EAAI,IACVyB,EAAUsB,KAAOD,EACjBA,EAAI,EAGhB,CAEA,OAAOrB,CACX,EAGA,qBAA0BnG,GACtB,IAAK,0CAA0CtjB,KAAKsjB,GAAM,MAAM,IAAIvrB,MAAM,uCAE1E,MAAMmzB,EAAW5H,EAAItB,MAAM,KACrBmJ,EAAWD,EAAS,GAAGlJ,MAAM,KAC7BoJ,EAAO3yB,SAAS0yB,EAAS,GAAI,IAC7BE,EAAQ5yB,SAAS0yB,EAAS,GAAI,IAAM,EACpCG,EAAM7yB,SAAS0yB,EAAS,GAAI,IAElC,GAAID,EAASxrB,OAAS,EAAG,CACrB,MAAM6rB,EAAWL,EAAS,GAAGlJ,MAAM,KAC7BwJ,EAAO/yB,SAAS8yB,EAAS,GAAI,IAC7BE,EAAShzB,SAAS8yB,EAAS,GAAI,IAC/BG,EAASjzB,SAAS8yB,EAAS,GAAI,IAErC,OAAO,IAAIlnB,KAAK+mB,EAAMC,EAAOC,EAAKE,EAAMC,EAAQC,EACpD,CAEA,OAAO,IAAIrnB,KAAK+mB,EAAMC,EAAOC,EACjC,EAEA,aAUA,yBAA8BhI,GAC1B,GAAI,MAAQA,EAAK,OAAQ,EAEzB,GAAkB,GAAdA,EAAI5jB,QAAsB,IAAP4jB,EAAW,OAAQ,EAE1C,IAAI3jB,EAAI,EAER,GAAkB,IAAd2jB,EAAI5jB,OACJ,KAAOC,EAAI,IAGFqrB,EAFK1H,EAAIoF,OAAO/oB,IADVA,KAOnB,GAAS,IAALA,EAAS,OAAO,EAEpB,IAAKA,EAAI,EAAGA,EAAI2jB,EAAI5jB,QAGXisB,EAFKrI,EAAIoF,OAAO/oB,IADGA,KAM5B,GAAIA,GAAK2jB,EAAI5jB,OAAQ,OAAO,EAE5B,IAAKC,EAAI,EAAGA,EAAI2jB,EAAI5jB,OAAQC,IAGxB,GAFU2jB,EAAIoF,OAAO/oB,GAEb,IAAK,OAAO,EAGxB,OAAQ,CACZ,EA3KA,gBAuDA,SAAgBsrB,EAAazC,GACzB,IAAIsC,EAMJ,GAJItC,GAAK,KAAOA,GAAK,IAAKsC,EAAItC,EAAEjB,WAAW,GAAK,IAAIA,WAAW,GAAK,GAC3DiB,GAAK,KAAOA,GAAK,IAAKsC,EAAItC,EAAEjB,WAAW,GAAK,IAAIA,WAAW,GAAK,GAChEiB,GAAK,KAAOA,GAAK,MAAKsC,EAAItC,EAAEjB,WAAW,GAAK,IAAIA,WAAW,IAEnD,iBAANuD,EAAgB,OAAOA,EAC7B,MAAM,IAAI/yB,MAAM,8CACzB,CAEA,SAAgBizB,EAAUxC,GACtB,OAAKA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,KAASA,GAAK,KAAOA,GAAK,IAC/D,EAGJ,CACX,CAyDA,SAAgBmD,EAASnD,GACrB,OAAIA,GAAK,KAAOA,GAAK,IAAY,EAE1B,CACX,CAhFS,2EApDL,EAAA6B,WAAW,IAoDO,6EAnDlB,EAAAM,aAAa,IAmDoB,2EAlDjC,EAAAiB,WAAW,IAkDmC,gFAjD9C,EAAApF,gBAAgB,IAiDgD,sFAhDhE,EAAAqF,sBAAsB,IAgDkE,oFA/CxF,EAAAC,oBAAoB,G,+ECUxB,0BAUA,+BAAoCC,GAChC,GAA0B,iBAAfA,EAAyB,OAAO,EAE3C,GAAIA,EAAYrsB,QAAU,EAAG,OAAO,EAEpC,IAAIxE,GAAU,IAAA8wB,UAASD,GAEvB,GAAIA,EAAYrsB,QAAU,EAAG,OAAO,EAEpC,MACM8Y,EADMtd,EAAQwE,OACC,EACfusB,EAAW/wB,EAAQuL,MAAM+R,GAE/Btd,EAAUA,EAAQuL,MAAM,EAAG+R,GAE3B,MAAM0T,EAAQC,EAAOjxB,GAEfkxB,EADQD,EAAOD,GACGzlB,MAAM,EAAG,GAEjC,GACIwlB,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,GAEzB,OAAOlxB,EAGX,MAAM,IAAInD,MAAM,2BACpB,EAGA,2BAAgCmuB,EAAiC/jB,GAClC,iBAAhB+jB,IAA0BA,GAAc,IAAAvK,kBAAiBuK,IAEpE,MAAMhlB,EAAOiB,EAAYjB,KACnB4K,EAAYugB,GAAU,IAAA1Q,kBAAiBza,GAAOglB,GAKpD,OAHItb,MAAMrM,QAAQ4D,EAAY2J,WACrB3J,EAAY2J,UAAUiE,SAASjE,IAAY3J,EAAY2J,UAAU7L,KAAK6L,GACxE3J,EAAY2J,UAAY,CAACA,GACzB3J,CACX,EAEA,qBAA0BmqB,EAAoBxgB,GAC1CwgB,EAAa,KAAOA,EAAWttB,QAAQ,MAAO,IAC9C8M,EAAY,KAAOA,EAAU9M,QAAQ,MAAO,IAE5C,MAAM8c,GAAY,IAAAC,iBAAe,IAAAwQ,UAASD,GAAa,EAAAtQ,UAAU3jB,KAAKyT,IAEtE,OADoB,EAAAmQ,eAAiBH,EAAU7Y,UAAU,EAE7D,EAEA,+BAAoC6V,GAChC,OAAO0T,KAAK3xB,OAAO2oB,gBAAgB1K,GACvC,EAEA,qBAA0B3J,EAAgCsd,GAC5B,iBAAftd,IAAyBA,GAAa,IAAAwM,kBAAiBxM,IAKlE,OAFkBkd,EADAF,EAAOM,GACctd,EAG3C,EAEA,0BACIkN,EACA9c,EACA1G,EACAsW,GAEA,MAAM3J,EAAM,KAAK2J,EAAWnQ,QAAQ,MAAO,MACrC2d,EAAa,IAAI,EAAAC,WAAWpX,GAE5BoW,EAAgB,EAAA8Q,iBAAiBnQ,KAAKF,EAAQ9c,EAAO1G,GACrDiT,EAAY6Q,EAAWnN,KAAKoM,GAElC,MADqB,CAAC,KAAM9P,EAAUkG,EAAE/O,UAAU,GAAI6I,EAAU+Q,EAAE5Z,UAAU,GAAI6Z,OAAOhR,EAAUjM,GAAGmD,SAAS,KAAK+Z,KAAK,GAE3H,EAEA,4CAAiD4P,GAC7C,MAAMC,GAAc,IAAAf,wBAAuBc,GAM3C,OAHoBE,WAAWC,MAAMC,SAASC,YAAYC,kBAAkBL,GACpDM,aAEbC,iBACf,EAEA,uBACI,MAAMC,EAAS,YAAK5M,MAAM6M,mBAC1B,IAAIC,GAAY,IAAA9G,kBAAiB4G,GAIjC,OAFAE,EAAYA,EAAUzf,SAAS,GAAI,MAE5B,IAAA8N,kBAAiB2R,EAC5B,EAEA,mBASA,yBAKA,yBAA8BC,GAC1B,MAAMC,GAAc,IAAAxB,UAASuB,GAE7B,GAAIC,EAAY9tB,QAAU,EAAG,OAAO,EAEpC,MAAM+tB,EAAaD,EAAY/mB,MAAM,EAAG+mB,EAAY9tB,OAAS,GACvDwsB,EAAQC,EAAOsB,GACfC,EAAQvB,EAAOD,GAErB,OACIwB,EAAM,KAAOF,EAAYC,EAAW/tB,SACpCguB,EAAM,KAAOF,EAAYC,EAAW/tB,OAAS,IAC7CguB,EAAM,KAAOF,EAAYC,EAAW/tB,OAAS,IAC7CguB,EAAM,KAAOF,EAAYC,EAAW/tB,OAAS,IAEtC+tB,CAIf,EAEA,0BAA+BE,GAC3B,GAAyB,iBAAdA,EAAwB,OAAO,EAE1C,GAAIA,EAAUjuB,SAAW,EAAAkoB,aAAc,OAAO,EAE9C,IAAI1sB,GAAU,IAAA8wB,UAAS2B,GAEvB,GAAuB,KAAnBzyB,EAAQwE,OAAe,OAAO,EAElC,GAAIxE,EAAQ,KAAO,EAAA2sB,oBAAqB,OAAO,EAE/C,MAAMoE,EAAW/wB,EAAQuL,MAAM,IAC/BvL,EAAUA,EAAQuL,MAAM,EAAG,IAE3B,MAAMylB,EAAQC,EAAOjxB,GAEfkxB,EADQD,EAAOD,GACGzlB,MAAM,EAAG,GAEjC,OACIwlB,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,IACzBH,EAAS,IAAMG,EAAU,EAMjC,EAEA,uDAA4DwB,GAKxD,OAAOlH,EAFcmH,EADJxH,GADG,IAAAwF,wBAAuB+B,KAK/C,EAEA,kDAAuDA,GACnD,MAEMtH,EAAeuH,EADJxH,GADG,IAAAwF,wBAAuB+B,KAK3C,OAFmB,IAAApH,kBAAiBF,EAGxC,EAEA,4CAAiDsH,GAC7C,MAEMtH,EAAeuH,EADJxH,GADG,IAAAwF,wBAAuB+B,KAK3C,OAFsB,IAAA9B,sBAAqBxF,EAG/C,EAEA,wBAcA,cAUA,WAMA,6BAAkCvQ,GAI9B,OAAO2Q,EAFkBH,GADD,IAAAsF,wBAAuB9V,IAInD,EAEA,uBAA4B5G,EAAoB6T,GAAS,GAIrD,OAAO0D,EAFkBH,GADD,IAAA5K,kBAAiBxM,EAAY6T,IAIzD,EAEA,gBAAqBC,EAAgBC,GAAS,GAC1C,OAAQA,EAAS,KAAO,KAAM,IAAApgB,WAAUC,OAAO1K,KAAK4qB,EAAQ,UAAUjgB,WAAWC,UAAU,EAC/F,EAvQA,gBACA,UACA,SACA,UACA,UACA,UACA,UAUA,SAAgByjB,EAAsBJ,GAClC,MAAM4F,EAAQC,EAAO7F,GAGrB,IAAI2F,EAFUE,EAAOD,GAEAzlB,MAAM,EAAG,GAG9B,OAFAwlB,EAAW3F,EAAawH,OAAO7B,IAExB,IAAA8B,UAAS9B,EACpB,CAsGA,SAAgB4B,EAAeG,GACH,KAApBA,EAAStuB,SAAesuB,EAAWA,EAASvnB,MAAM,IAEtD,MAAM8V,GAAO,IAAAzZ,WAAU,IAAI+Y,WAAWmS,IAAWhrB,WAAWC,UAAU,GAChEgrB,EAAa,EAAAhS,eAAiBM,EAAKtZ,UAAU,IAEnD,OAAO,IAAA0Y,kBAAiBsS,EAC5B,CAEA,SAAgB1H,EAAqBL,GAEjC,OAAO2H,EADUxH,EAAoBH,GAEzC,CA+EA,SAAgBG,EAAoBH,GAChC,MAAMgI,EAAS,YAAKC,gBAAgB9e,eAAe,IAAIwM,WA9M3D,SAAkCqK,GAC9B,OAAO,IAAAvK,mBAAiB,IAAA6K,kBAAiBN,GAAarY,SAAS,GAAI,KACvE,CA4MsEugB,CAAyBlI,KACrFmI,EAAIH,EAAOG,EACXC,EAAIJ,EAAOI,EAKXC,EAAY,KAHLF,EAAErrB,SAAS,IAAI6K,SAAS,GAAI,OAC5BygB,EAAEtrB,SAAS,IAAI6K,SAAS,GAAI,OAKzC,OAFoB,IAAA8N,kBAAiB4S,EAGzC,CAEA,SAAgBlC,EAAUmC,EAAsBtI,GAC5C,MAAMpa,EAAY,YAAK0D,MAAK,IAAAgX,kBAAiBgI,IAAY,IAAAhI,kBAAiBN,IAEpElU,EAAIlG,EAAUkG,EAAEhP,SAAS,IACzB6Z,EAAI/Q,EAAU+Q,EAAE7Z,SAAS,IACzBnD,EAAIiM,EAAU2iB,SAAY,GAEhC,OAAOzc,EAAEnE,SAAS,GAAI,KAAOgP,EAAEhP,SAAS,GAAI,MAAO,IAAAwc,aAAYxqB,EACnE,CAEA,SAAgBssB,EAAOuC,GACnB,MAAMC,GAAS,IAAAnI,kBAAiBkI,GAC1BE,GAAU,IAAAC,QAAO,KAAOF,GAAQ3vB,QAAQ,MAAO,IACrD,OAAO,IAAA2c,kBAAiBiT,EAC5B,C,0VCrPA,gBAuCI,yEAtCA,EAAA9rB,SAAS,IAuCT,sEAtCA,EAAA+rB,MAAM,IAuCN,2EAtCA,EAAAnT,WAAW,IAuCX,4EAtCA,EAAAoT,YAAY,IAuCZ,8EAtCA,EAAA/S,cAAc,IAwCd,0EAvCA,EAAAa,UAAU,IAwCV,wEAvCA,EAAAtd,QAAQ,IAqCR,yEApCA,EAAA0c,SAAS,IA6CT,sEA5CA,EAAA8R,MAAM,IA6CN,kEA5CA,EAAA3U,EAAE,IA6CF,wEA5CA,EAAA+N,QAAQ,IA6CR,wEA5CA,EAAA6H,QAAQ,IA6CR,yEA5CA,EAAAC,SAAS,IAuCT,kFAtCgB,cAAkB,IAOtC,gBA0BI,yEA1BK,EAAAze,SAAS,IA4Bd,EAAA0e,eA1BoBC,GAA4B,EAAAlT,UAAU3jB,KAAK62B,GA2B/D,EAAAC,cA1BmBC,GAA4B,EAAApT,UAAU3jB,KAAK+2B,GAAUC,WA2BxE,EAAA9C,SA1Bc1zB,IAAqB,IAAAy2B,UAASz2B,GAuB5C,EAAA02B,YAtBgB,CAChBC,QAAS,UACTC,QAAS,UACTC,KAAM,OACN/iB,KAAM,QAEV,MAAMgjB,EAAkB,EAAAzI,SAASyI,gBA0B7B,EAAAA,gBAAAA,EAxBJ,EAAAC,YAAYhb,UAAS,CAACib,EAAWrqB,EAAKvM,IAC3B,EAAA22B,YAAYE,EAAED,EAAW9sB,OAAO1K,KAAKmN,GAAMzC,OAAO1K,KAAKY,K,gPCvBlE,gBACA,UAqGA,SAAS82B,EAAOC,GACZ,MAAM3tB,EAAsB,IAAI4tB,IAEhC,OADAD,EAAMzqB,SAASwlB,GAAM1oB,EAAO6tB,IAAInF,KACzBhuB,OAAOozB,OAAO9tB,EACzB,CAGA,MAAM+tB,EAAW,8DACXC,EAAUN,EAAOK,EAASpO,MAAM,MAEhCsO,EAAW,2DACXC,EAAUR,EAAOO,EAAStO,MAAM,MAEhCwO,EAAe,0CACfC,EAAcV,EAAOS,EAAaxO,MAAM,MAMxC0O,EAAWX,EADC,CAACO,EAAUE,EAHZ,gBAGoCJ,GAAUrT,KAAK,KAClCiF,MAAM,MAGlC2O,EAAuC,CACzC,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,gBACL,IAAK,QACL,IAAK,MAIHC,EAAwB,IAAIC,OAAO,WACnCC,EAAoB,IAAID,OAAO,aAC/BE,EAAgB,IAAIF,OAAO,+BAG3BG,EAAU,IAAIH,OAAO,gCACrBI,EAAY,IAAIJ,OAAO,gEA8B7B,MAAMK,EACF,GACA,GAEA,UAAI1Y,GACA,OAAOxgB,MAAK,CAChB,CACA,UAAI0H,GACA,OAAO1H,MAAK,EAAQ0H,OAAS1H,MAAK,CACtC,CAEA,WAAAH,CAAYoiB,GACRjiB,MAAK,EAAU,EACfA,MAAK,EAAUiiB,EAAOxT,OAC1B,CAEA,KAAA0qB,GACI,OAAO,IAAI,EAAYn5B,MAAK,EAChC,CACA,KAAAo5B,GACIp5B,MAAK,EAAU,CACnB,CAEA,GAAgBK,EAAO,EAAGF,EAAK,GAC3B,OAAO,IAAI,EACPH,MAAK,EAAQyO,MAAMpO,EAAMF,GAAIgF,KAAK4hB,GACvBhiB,OAAOozB,OACVpzB,OAAO8F,OAAO,CAAC,EAAGkc,EAAG,CACjBhf,MAAOgf,EAAEhf,MAAQ1H,EACjBg5B,SAAUtS,EAAEsS,SAAWh5B,EACvBi5B,SAAUvS,EAAEuS,SAAWj5B,OAK3C,CAGA,UAAAk5B,CAAWC,GACP,MAAMC,EAAMz5B,KAAK05B,OACjB,GAAiB,YAAbD,EAAI74B,OAAuB44B,EAAQllB,IAAImlB,EAAIE,MAC3C,MAAM,IAAI55B,MAAM,oBAAoB05B,EAAIE,QAE5C,OAAO35B,KAAK45B,MAAMD,IACtB,CAGA,OAAAE,CAAQj5B,GACJ,GAAIZ,KAAK05B,OAAO94B,OAASA,EACrB,MAAM,IAAIb,MAAM,YAAYa,UAAauF,KAAKsC,UAAUzI,KAAK05B,WAEjE,OAAO15B,KAAK45B,MAAMD,IACtB,CAGA,QAAAG,GACI,MAAML,EAAMz5B,KAAK05B,OACjB,GAAiB,eAAbD,EAAI74B,KACJ,MAAM,IAAIb,MAAM,aAEpB,MAAMsK,EAASrK,MAAK,EAAgBA,MAAK,EAAU,EAAGy5B,EAAI1xB,MAAQ,GAElE,OADA/H,MAAK,EAAUy5B,EAAI1xB,MAAQ,EACpBsC,CACX,CAGA,SAAA0vB,GACI,MAAMN,EAAMz5B,KAAK05B,OAEjB,GAAiB,eAAbD,EAAI74B,KACJ,MAAM,IAAIb,MAAM,aAGpB,MAAMsK,EAA6B,GAEnC,KAAOrK,MAAK,EAAUy5B,EAAI1xB,MAAQ,GAAG,CACjC,MAAMiyB,EAAOh6B,KAAK05B,OAAOJ,SACzBjvB,EAAOpC,KAAKjI,MAAK,EAAgBA,MAAK,EAAU,EAAGg6B,IACnDh6B,MAAK,EAAUg6B,CACnB,CAIA,OAFAh6B,MAAK,EAAUy5B,EAAI1xB,MAAQ,EAEpBsC,CACX,CAGA,IAAAqvB,GACI,GAAI15B,MAAK,GAAWA,MAAK,EAAQ0H,OAC7B,MAAM,IAAI3H,MAAM,iBAEpB,OAAOC,MAAK,EAAQA,MAAK,EAC7B,CAGA,WAAAi6B,CAAYT,GACR,MAAMC,EAAMz5B,KAAKk6B,SAAS,WAC1B,OAAc,MAAPT,GAAeD,EAAQllB,IAAImlB,GAAOA,EAAM,IACnD,CAGA,QAAAS,CAASt5B,GACL,GAAoB,IAAhBZ,KAAK0H,OACL,OAAO,KAEX,MAAM+xB,EAAMz5B,KAAK05B,OACjB,OAAOD,EAAI74B,OAASA,EAAO64B,EAAIE,KAAO,IAC1C,CAGA,GAAAC,GACI,MAAMvvB,EAASrK,KAAK05B,OAEpB,OADA15B,MAAK,IACEqK,CACX,CAEA,QAAAW,GACI,MAAMiX,EAAwB,GAC9B,IAAK,IAAIta,EAAI3H,MAAK,EAAS2H,EAAI3H,MAAK,EAAQ0H,OAAQC,IAAK,CACrD,MAAM0X,EAAQrf,MAAK,EAAQ2H,GAC3Bsa,EAAOha,KAAK,GAAGoX,EAAMze,QAAQye,EAAMsa,OACvC,CACA,MAAO,gBAAgB1X,EAAO8C,KAAK,OACvC,EAKJ,SAASoV,EAAIR,GACT,MAAM1X,EAAuB,GAEvBmY,EAAc9vB,IAChB,MAAM+U,EAAQmB,EAASmZ,EAAKjyB,OAASvB,KAAKsC,UAAUkxB,EAAKnZ,IAAW,OACpE,MAAM,IAAIzgB,MAAM,iBAAiBsf,QAAYmB,MAAWlW,IAAU,EAGhE+vB,EAA0B,GAC1BC,EAAwB,GAE9B,IAAI9Z,EAAS,EACb,KAAOA,EAASmZ,EAAKjyB,QAAQ,CAEzB,IAAI6yB,EAAMZ,EAAK1uB,UAAUuV,GACrBzY,EAAQwyB,EAAIxyB,MAAM6wB,GAClB7wB,IACAyY,GAAUzY,EAAM,GAAGL,OACnB6yB,EAAMZ,EAAK1uB,UAAUuV,IAGzB,MAAMnB,EAAQ,CACVmb,MAAOH,EAAS3yB,OAChB2xB,UAAW,EACXC,UAAW,EACXvxB,OAAQ,EACRnH,KAAM,GACN+4B,KAAM,GACNnZ,SACA3f,OAAQ,GAEZohB,EAAOha,KAAKoX,GAEZ,MAAMze,EAAO+3B,EAAa4B,EAAI,KAAO,GACrC,GAAI35B,GAKA,GAJAye,EAAMze,KAAOA,EACbye,EAAMsa,KAAOY,EAAI,GACjB/Z,IAEa,eAAT5f,EACAy5B,EAASpyB,KAAKga,EAAOva,OAAS,GAC9B4yB,EAAOryB,KAAKga,EAAOva,OAAS,QACzB,GAAY,eAAR9G,EACiB,IAApBy5B,EAAS3yB,QACT0yB,EAAW,4BAGf/a,EAAMtX,MAAQsyB,EAAST,MACJ3X,EAAO5C,EAAMtX,OAAQA,MAAQka,EAAOva,OAAS,EAChE2X,EAAMmb,QAENnb,EAAMga,SAAWiB,EAAOV,MACL3X,EAAO5C,EAAMga,UAAWC,SAAWrX,EAAOva,OAAS,OACnE,GAAa,UAAT9G,EACPye,EAAMga,SAAWiB,EAAOV,MACL3X,EAAO5C,EAAMga,UAAWC,SAAWrX,EAAOva,OAAS,EACtE4yB,EAAOryB,KAAKga,EAAOva,OAAS,QACzB,GAAa,iBAAT9G,EACPye,EAAMze,KAAO,eACV,GAAa,kBAATA,EAA0B,CAEjC,IAAI65B,EAAUxY,EAAO2X,MAAgBD,KACrC,GAAI1X,EAAOva,OAAS,GAAwC,WAAnCua,EAAOA,EAAOva,OAAS,GAAG9G,KAAmB,CAClE,MAAMC,EAASohB,EAAO2X,MAAgBD,KACtCc,EAAS55B,EAAQ45B,EACExY,EAAOA,EAAOva,OAAS,GAAI7G,OAAQ,IAAA65B,WAAU75B,EACpE,CACA,GAAsB,IAAlBohB,EAAOva,QAAmD,YAAnCua,EAAOA,EAAOva,OAAS,GAAG9G,KACjD,MAAM,IAAIb,MAAM,2BAEDkiB,EAAOA,EAAOva,OAAS,GAAIiyB,MAAQc,CAC1D,OAMJ,GADA1yB,EAAQwyB,EAAIxyB,MAAMgxB,GACdhxB,EAAJ,CAII,GAHAsX,EAAMsa,KAAO5xB,EAAM,GACnByY,GAAUnB,EAAMsa,KAAKjyB,OAEjBgxB,EAASpkB,IAAI+K,EAAMsa,MAAO,CAC1Bta,EAAMze,KAAO,UACb,QACJ,CAEA,GAAIye,EAAMsa,KAAK5xB,MAAMkxB,GAAY,CAC7B5Z,EAAMze,KAAO,OACb,QACJ,CAEAye,EAAMze,KAAO,IAEjB,KAhBA,CAmBA,GADAmH,EAAQwyB,EAAIxyB,MAAM+wB,IACd/wB,EAOJ,MAAM,IAAIhI,MAAM,oBAAoBoG,KAAKsC,UAAU8xB,EAAI,mBAAmB/Z,KANtEnB,EAAMsa,KAAO5xB,EAAM,GACnBsX,EAAMze,KAAO,SACb4f,GAAUnB,EAAMsa,KAAKjyB,MANzB,CAWJ,CAEA,OAAO,IAAIwxB,EAAYjX,EAAO9c,KAAK4hB,GAAMhiB,OAAOozB,OAAOpR,KAC3D,CAGA,SAAS4T,EAAYC,EAA0BpB,GAC3C,MAAMqB,EAA0B,GAChC,IAAK,MAAMrtB,KAAOgsB,EAAQnnB,OAClBuoB,EAAItmB,IAAI9G,IACRqtB,EAAS5yB,KAAKuF,GAGtB,GAAIqtB,EAASnzB,OAAS,EAClB,MAAM,IAAI3H,MAAM,sBAAsB86B,EAAS9V,KAAK,QAE5D,CAKA,SAAS+V,EAAYl6B,EAAcqhB,GAC/B,GAAIA,EAAOgY,YAAY1B,GAAU,CAC7B,MAAMwC,EAAU9Y,EAAO2X,MAAMD,KAC7B,GAAIoB,IAAYn6B,EACZ,MAAM,IAAIb,MAAM,YAAYa,UAAam6B,IAEjD,CAEA,OAAO9Y,EAAO4X,QAAQ,KAC1B,CAGA,SAASmB,EAAgB/Y,EAAqBuX,GAC1C,MAAMyB,EAAwB,IAAIhD,IAElC,OAAa,CACT,MAAM8C,EAAU9Y,EAAOiY,SAAS,WAEhC,GAAe,MAAXa,GAAoBvB,IAAYA,EAAQllB,IAAIymB,GAC5C,MAIJ,GAFA9Y,EAAO2X,MAEHqB,EAAS3mB,IAAIymB,GACb,MAAM,IAAIh7B,MAAM,uBAAuBoG,KAAKsC,UAAUsyB,MAE1DE,EAAS/C,IAAI6C,EACjB,CAEA,OAAOh2B,OAAOozB,OAAO8C,EACzB,CAGA,SAASC,EAAkBjZ,GACvB,MAAMkZ,EAAYH,EAAgB/Y,EAAQoW,GAO1C,OAJAsC,EAAYQ,EAAWpD,EAAO,8BAA8B/N,MAAM,OAClE2Q,EAAYQ,EAAWpD,EAAO,+BAA+B/N,MAAM,OAG/DmR,EAAU7mB,IAAI,QACP,OAEP6mB,EAAU7mB,IAAI,QACP,OAEP6mB,EAAU7mB,IAAI,WACP,UAEP6mB,EAAU7mB,IAAI,cACP,aAIP6mB,EAAU7mB,IAAI,YACP,OAGJ,YACX,CAGA,SAAS8mB,EAAcnZ,EAAqBoZ,GACxC,OAAOpZ,EAAO8X,YAAY50B,KAAK4hB,GAAMuU,EAAUj7B,KAAK0mB,EAAGsU,IAC3D,CAGA,SAASE,EAAWtZ,GAChB,GAAIA,EAAOiY,SAAS,MAAO,CAEvB,GADAjY,EAAO2X,MACH3X,EAAOiY,SAAS,UAChB,OAAO,IAAAsB,WAAUvZ,EAAO2X,MAAMD,MAElC,MAAM,IAAI55B,MAAM,cACpB,CACA,OAAO,IACX,CAEA,SAAS07B,EAAWxZ,GAChB,GAAIA,EAAOva,OACP,MAAM,IAAI3H,MAAM,sBAAsBkiB,EAAOjX,aAErD,C,IAEA,MAAM0wB,EAAiB,IAAI7C,OAAO,sBAElC,SAAS8C,EAAgB/6B,GACrB,MAAMmH,EAAQnH,EAAKmH,MAAMkxB,GAEzB,IADA,IAAA2C,gBAAe7zB,EAAO,eAAgB,OAAQnH,GACjC,SAATA,EACA,MAAO,UAEX,GAAa,QAATA,EACA,MAAO,SAGX,GAAImH,EAAM,GAAI,CAEV,MAAML,EAASjH,SAASsH,EAAM,KAC9B,IAAA6zB,gBAA0B,IAAXl0B,GAAgBA,GAAU,GAAI,uBAAwB,OAAQ9G,EACjF,MAAO,GAAImH,EAAM,GAAI,CAEjB,MAAMkmB,EAAOxtB,SAASsH,EAAM,KAC5B,IAAA6zB,gBAAwB,IAAT3N,GAAcA,GAAQ,KAAOA,EAAO,GAAM,EAAG,wBAAyB,OAAQrtB,EACjG,CAEA,OAAOA,CACX,CAGA,MAAMi7B,EAAS,CAAC,EAcVC,EAAWC,OAAOC,IAAI,oBAEtBC,EAAoB,qBACpBC,EAAwB,iBACxBC,EAAwB,iBACxBC,EAA8B,uBAC9BC,EAA2B,oBAC3BC,EAA2B,oBAC3BC,EAAyB,kBAK/B,MAAajB,EAIA36B,KAMAC,KAKA47B,SAOAC,QAOAzf,WAOA0f,YAOAC,cAKT,WAAA98B,CACI+8B,EACAj8B,EACAC,EACA47B,EACAC,EACAzf,EACA0f,EACAC,GASA,IAPA,IAAAE,eAAcD,EAAOf,EAAQ,aAC7B92B,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAOo7B,IAE3Cjf,IACAA,EAAajY,OAAOozB,OAAOnb,EAAWvO,UAGzB,UAAb+tB,GACA,GAAmB,MAAfE,GAAwC,MAAjBC,EACvB,MAAM,IAAI58B,MAAM,SAEjB,GAAmB,MAAf28B,GAAwC,MAAjBC,EAC9B,MAAM,IAAI58B,MAAM,IAGpB,GAAiB,UAAby8B,GACA,GAAkB,MAAdxf,EACA,MAAM,IAAIjd,MAAM,SAEjB,GAAkB,MAAdid,EACP,MAAM,IAAIjd,MAAM,KAGpB,IAAAg9B,kBAA4B/8B,KAAM,CAC9BW,OACAC,OACA47B,WACAC,UACAzf,aACA0f,cACAC,iBAER,CAaA,MAAAhkB,CAAOA,GAIH,GAHc,MAAVA,IACAA,EAAS,WAEE,SAAXA,EAAmB,CACnB,MAAMtO,EAAc,CAChBzJ,KAAwB,UAAlBZ,KAAKw8B,SAAuB,QAAUx8B,KAAKY,KACjDD,KAAMX,KAAKW,WAAQyY,GAQvB,MAN4B,kBAAjBpZ,KAAKy8B,UACZpyB,EAAOoyB,QAAUz8B,KAAKy8B,SAEtBz8B,KAAKg9B,YACL3yB,EAAO2S,WAAahd,KAAKgd,WAAW7X,KAAKqrB,GAAMrqB,KAAKC,MAAMoqB,EAAE7X,OAAOA,OAEhExS,KAAKsC,UAAU4B,EAC1B,CAEA,IAAIA,EAAS,GA0Bb,OAvBIrK,KAAKuG,WACL8D,GAAUrK,KAAK28B,cAAchkB,OAAOA,GACpCtO,GAAU,IAAIrK,KAAK08B,YAAc,EAAI,GAAK75B,OAAO7C,KAAK08B,iBAElD18B,KAAKg9B,WACU,YAAXrkB,IACAtO,GAAUrK,KAAKY,MAEnByJ,GAAU,IAAMrK,KAAKgd,WAAW7X,KAAK83B,GAASA,EAAKtkB,OAAOA,KAASoM,KAAgB,SAAXpM,EAAoB,KAAO,KAAO,KAE1GtO,GAAUrK,KAAKY,KAIR,YAAX+X,KACqB,IAAjB3Y,KAAKy8B,UACLpyB,GAAU,YAEC,SAAXsO,GAAqB3Y,KAAKW,OAC1B0J,GAAU,IAAMrK,KAAKW,OAItB0J,CACX,CAQA,OAAA9D,GAII,MAAyB,UAAlBvG,KAAKw8B,QAChB,CAQA,OAAAQ,GACI,MAAyB,UAAlBh9B,KAAKw8B,QAChB,CAQA,WAAAU,GACI,OAAuB,MAAhBl9B,KAAKy8B,OAChB,CAMA,IAAAU,CAAKt8B,EAAYu8B,GACb,GAAIp9B,KAAKuG,UAAW,CAChB,IAAKqM,MAAMrM,QAAQ1F,GACf,MAAM,IAAId,MAAM,uBAEpB,IAA0B,IAAtBC,KAAK08B,aAAsB77B,EAAM6G,SAAW1H,KAAK08B,YACjD,MAAM,IAAI38B,MAAM,yBAEpB,OAAOc,EAAMsE,KAAK0C,GAAM7H,KAAK28B,eAAeQ,KAAKt1B,EAAGu1B,IACxD,CAEA,GAAIp9B,KAAKg9B,UAAW,CAChB,IAAKpqB,MAAMrM,QAAQ1F,GACf,MAAM,IAAId,MAAM,uBAEpB,GAAIc,EAAM6G,SAAW1H,KAAKgd,WAAWtV,OACjC,MAAM,IAAI3H,MAAM,yBAEpB,OAAOc,EAAMsE,KAAI,CAAC0C,EAAGF,IAAM3H,KAAKgd,aAAarV,GAAGw1B,KAAKt1B,EAAGu1B,IAC5D,CAEA,OAAOA,EAAQp9B,KAAKY,KAAMC,EAC9B,CAEA,GACIw8B,EACAx8B,EACAu8B,EACAE,GAEA,GAAIt9B,KAAKuG,UAAW,CAChB,IAAKqM,MAAMrM,QAAQ1F,GACf,MAAM,IAAId,MAAM,uBAEpB,IAA0B,IAAtBC,KAAK08B,aAAsB77B,EAAM6G,SAAW1H,KAAK08B,YACjD,MAAM,IAAI38B,MAAM,yBAEpB,MAAMw9B,EAAYv9B,KAAK28B,cAEjBtyB,EAASxJ,EAAM4N,QAOrB,OANApE,EAAOkD,SAAQ,CAAC1M,EAAOsY,KACnBokB,GAAU,EAAWF,EAAUx8B,EAAOu8B,GAAUv8B,IAC5CwJ,EAAO8O,GAAStY,CAAK,GACvB,SAENy8B,EAASjzB,EAEb,CAEA,GAAIrK,KAAKg9B,UAAW,CAChB,MAAMhgB,EAAahd,KAAKgd,WAGxB,IAAI3S,EACJ,GAAIuI,MAAMrM,QAAQ1F,GACdwJ,EAASxJ,EAAM4N,YACZ,CACH,GAAa,MAAT5N,GAAkC,iBAAVA,EACxB,MAAM,IAAId,MAAM,uBAGpBsK,EAAS2S,EAAW7X,KAAKwiB,IACrB,IAAKA,EAAMhnB,KACP,MAAM,IAAIZ,MAAM,mDAEpB,KAAM4nB,EAAMhnB,QAAQE,GAChB,MAAM,IAAId,MAAM,+BAA+B4nB,EAAMhnB,QAEzD,OAAOE,EAAM8mB,EAAMhnB,KAAK,GAEhC,CAEA,GAAI0J,EAAO3C,SAAW1H,KAAKgd,WAAWtV,OAClC,MAAM,IAAI3H,MAAM,yBASpB,OANAsK,EAAOkD,SAAQ,CAAC1M,EAAOsY,KACnB6D,EAAW7D,IAAO,EAAWkkB,EAAUx8B,EAAOu8B,GAAUv8B,IACpDwJ,EAAO8O,GAAStY,CAAK,GACvB,SAENy8B,EAASjzB,EAEb,CAEA,MAAMA,EAAS+yB,EAAQp9B,KAAKY,KAAMC,GAC9BwJ,EAAOqL,KACP2nB,EAASp1B,KACL,iBACIq1B,QAAejzB,EAClB,CAFD,IAKJizB,EAASjzB,EAEjB,CASA,eAAMmzB,CAAU38B,EAAYu8B,GACxB,MAAMC,EAAiC,GACjChzB,EAAgB,CAACxJ,GAOvB,OANAb,MAAK,EAAWq9B,EAAUx8B,EAAOu8B,GAAUv8B,IACvCwJ,EAAO,GAAKxJ,CAAK,IAEjBw8B,EAAS31B,cACHqS,QAAQ6G,IAAIyc,GAEfhzB,EAAO,EAClB,CAQA,WAAOhK,CAAKmY,EAAU6iB,GAClB,GAAIC,EAAUmC,YAAYjlB,GACtB,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAO8iB,EAAUj7B,KAAK85B,EAAI3hB,GAAM6iB,GAC7B,GAAI7iB,aAAe0gB,EAAa,CACnC,IAAIt4B,EAAO,GACP47B,EAAW,GACXkB,EAAiC,KAEjC1C,EAAgBxiB,EAAKuf,EAAO,CAAC,WAAWzjB,IAAI,UAAYkE,EAAI0hB,SAAS,eAErEsC,EAAW,QACXkB,EAAQllB,EAAIuhB,YAAY50B,KAAK4hB,GAAMuU,EAAUj7B,KAAK0mB,KAClDnmB,EAAO,SAAS88B,EAAMv4B,KAAKqrB,GAAMA,EAAE7X,WAAUoM,KAAK,UAGlDnkB,EAAO+6B,EAAgBnjB,EAAIqhB,QAAQ,SACnC2C,EAAW57B,GAIf,IAAI+7B,EAAkC,KAClCD,EAA6B,KAEjC,KAAOlkB,EAAI9Q,QAAU8Q,EAAI0hB,SAAS,YAAY,CAC1C,MAAMyD,EAAUnlB,EAAIohB,MACpB+C,EAAgB,IAAIrB,EAAUO,EAAQ,GAAIj7B,EAAM47B,EAAU,KAAMkB,EAAOhB,EAAaC,GACpFD,EAAciB,EAAQ98B,MACtBD,GAAQ+8B,EAAQhE,KAChB6C,EAAW,QACXkB,EAAQ,IACZ,CAEA,IAAIjB,EAA0B,KAE9B,GADiBzB,EAAgBxiB,EAAKigB,GACzBnkB,IAAI,WAAY,CACzB,IAAK+mB,EACD,MAAM,IAAIt7B,MAAM,IAEpB08B,GAAU,CACd,CAEA,MAAM97B,EAAO6X,EAAI0hB,SAAS,MAAQ1hB,EAAIohB,MAAMD,KAAO,GAEnD,GAAInhB,EAAI9Q,OACJ,MAAM,IAAI3H,MAAM,mBAGpB,OAAO,IAAIu7B,EAAUO,EAAQl7B,EAAMC,EAAM47B,EAAUC,EAASiB,EAAOhB,EAAaC,EACpF,CAEA,MAAMh8B,EAAO6X,EAAI7X,MACjB,IAAAi7B,iBAAgBj7B,GAAyB,iBAATA,GAAqBA,EAAKoH,MAAMixB,GAAW,eAAgB,WAAYr4B,GAEvG,IAAI87B,EAAUjkB,EAAIikB,QACH,MAAXA,KACA,IAAAb,gBAAeP,EAAc,8BAA+B,cAAe7iB,EAAIikB,SAC/EA,IAAYA,GAGhB,IAAI77B,EAAO4X,EAAI5X,KAEf,MAAMg9B,EAAah9B,EAAKmH,MAAM2zB,GAC9B,GAAIkC,EAAY,CACZ,MAAMlB,EAAcj8B,SAASm9B,EAAW,IAAM,MACxCjB,EAAgBrB,EAAUj7B,KAAK,CACjCO,KAAMg9B,EAAW,GACjB5gB,WAAYxE,EAAIwE,aAGpB,OAAO,IAAIse,EAAUO,EAAQl7B,GAAQ,GAAIC,EAAM,QAAS67B,EAAS,KAAMC,EAAaC,EACxF,CAEA,GAAa,UAAT/7B,GAAoBA,EAAK4N,WAAW,WAA0B5N,EAAK4N,WAAW,KAAmB,CACjG,MAAMkvB,EAA0B,MAAlBllB,EAAIwE,WAAqBxE,EAAIwE,WAAW7X,KAAKqrB,GAAW8K,EAAUj7B,KAAKmwB,KAAM,KAG3F,OAFc,IAAI8K,EAAUO,EAAQl7B,GAAQ,GAAIC,EAAM,QAAS67B,EAASiB,EAAO,KAAM,KAGzF,CAIA,OAFA98B,EAAO+6B,EAAgBnjB,EAAI5X,MAEpB,IAAI06B,EAAUO,EAAQl7B,GAAQ,GAAIC,EAAMA,EAAM67B,EAAS,KAAM,KAAM,KAC9E,CAKA,kBAAOgB,CAAY58B,GACf,OAAOA,GAASA,EAAMi7B,KAAcG,CACxC,EAlZJ,cA6ZA,MAAsB4B,EAITj9B,KAKA6G,OAKT,WAAA5H,CAAY+8B,EAAYh8B,EAAoB6G,IACxC,IAAAo1B,eAAcD,EAAOf,EAAQ,YAC7Bp0B,EAAS1C,OAAOozB,OAAO1wB,EAAOgH,UAC9B,IAAAsuB,kBAA2B/8B,KAAM,CAAEY,OAAM6G,UAC7C,CAWA,WAAOpH,CAAKmY,GACR,GAAmB,iBAARA,EAAkB,CAEzB,IACIqlB,EAASx9B,KAAK8F,KAAKC,MAAMoS,GAC7B,CAAE,MAAOxE,GAET,CAGA,OAAO6pB,EAASx9B,KAAK85B,EAAI3hB,GAC7B,CAEA,GAAIA,aAAe0gB,EAKf,OAFa1gB,EAAIyhB,YAAY1B,IAGzB,IAAK,cACD,OAAOuF,EAAoBz9B,KAAKmY,GACpC,IAAK,QACD,OAAOulB,EAAc19B,KAAKmY,GAC9B,IAAK,QACD,OAAOwlB,EAAc39B,KAAKmY,GAC9B,IAAK,WACL,IAAK,UACD,OAAOylB,EAAiB59B,KAAKmY,GACjC,IAAK,WACD,OAAO0lB,EAAiB79B,KAAKmY,GACjC,IAAK,SACD,OAAO2lB,EAAe99B,KAAKmY,QAEhC,GAAmB,iBAARA,EAAkB,CAGhC,OAAQA,EAAI5X,MACR,IAAK,cACD,OAAOk9B,EAAoBz9B,KAAKmY,GACpC,IAAK,QACD,OAAOulB,EAAc19B,KAAKmY,GAC9B,IAAK,QACD,OAAOwlB,EAAc39B,KAAKmY,GAC9B,IAAK,WACL,IAAK,UACD,OAAOylB,EAAiB59B,KAAKmY,GACjC,IAAK,WACD,OAAO0lB,EAAiB79B,KAAKmY,GACjC,IAAK,SACD,OAAO2lB,EAAe99B,KAAKmY,IAGnC,IAAA4lB,SAAO,EAAO,qBAAqB5lB,EAAI5X,OAAQ,wBAAyB,CACpEy9B,UAAW,iBAEnB,EAEA,IAAAzC,iBAAe,EAAO,8BAA+B,MAAOpjB,EAChE,CAKA,oBAAO8lB,CAAcz9B,GACjB,OAAOi9B,EAAoBS,WAAW19B,EAC1C,CAKA,cAAO29B,CAAQ39B,GACX,OAAOk9B,EAAcQ,WAAW19B,EACpC,CAKA,cAAO49B,CAAQ59B,GACX,OAAOm9B,EAAcO,WAAW19B,EACpC,CAKA,iBAAOwc,CAAWxc,GACd,OAAOq9B,EAAiBK,WAAW19B,EACvC,CAKA,eAAO69B,CAAS79B,GACZ,OAAOs9B,EAAeI,WAAW19B,EACrC,EA1HJ,aAiIA,MAAsB89B,UAAsBd,EAI/Bl9B,KAKT,WAAAd,CAAY+8B,EAAYh8B,EAAoBD,EAAc8G,GACtDihB,MAAMkU,EAAOh8B,EAAM6G,IACnB,IAAAm0B,gBAA+B,iBAATj7B,GAAqBA,EAAKoH,MAAMixB,GAAU,qBAAsB,OAAQr4B,GAC9F8G,EAAS1C,OAAOozB,OAAO1wB,EAAOgH,UAC9B,IAAAsuB,kBAAgC/8B,KAAM,CAAEW,QAC5C,EAGJ,SAASi+B,EAAWjmB,EAAoBrP,GACpC,MAAO,IAAMA,EAAOnE,KAAK05B,GAAMA,EAAElmB,OAAOA,KAASoM,KAAgB,SAAXpM,EAAoB,KAAO,KAAO,GAC5F,CAnBA,kBAwBA,MAAaolB,UAAsBY,EAI/B,WAAA9+B,CAAY+8B,EAAYj8B,EAAc8G,GAClCihB,MAAMkU,EAAO,QAASj8B,EAAM8G,GAC5B1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAOq7B,GACnD,CAKA,YAAI4C,GACA,OAAO,IAAA3d,IAAGnhB,KAAK2Y,OAAO,YAAY1N,UAAU,EAAG,GACnD,CAKA,MAAA0N,CAAOA,GAIH,GAHc,MAAVA,IACAA,EAAS,WAEE,SAAXA,EACA,OAAOxS,KAAKsC,UAAU,CAClB7H,KAAM,QACND,KAAMX,KAAKW,KACX8G,OAAQzH,KAAKyH,OAAOtC,KAAK8E,GAAU9D,KAAKC,MAAM6D,EAAM0O,OAAOA,QAInE,MAAMtO,EAAmB,GAKzB,MAJe,YAAXsO,GACAtO,EAAOpC,KAAK,SAEhBoC,EAAOpC,KAAKjI,KAAKW,KAAOi+B,EAAWjmB,EAAQ3Y,KAAKyH,SACzC4C,EAAO0a,KAAK,IACvB,CAKA,WAAO1kB,CAAKmY,GACR,GAAIulB,EAAcQ,WAAW/lB,GACzB,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAOulB,EAAc19B,KAAK85B,EAAI3hB,IAC3B,GAAIA,aAAe0gB,EAAa,CACnC,MAAMv4B,EAAOm6B,EAAY,QAAStiB,GAC5B/Q,EAAS2zB,EAAc5iB,GAG7B,OAFAijB,EAAWjjB,GAEJ,IAAIulB,EAAclC,EAAQl7B,EAAM8G,EAC3C,CAEA,OAAO,IAAIs2B,EAAclC,EAAQrjB,EAAI7X,KAAM6X,EAAI/Q,OAAS+Q,EAAI/Q,OAAOtC,IAAIm2B,EAAUj7B,MAAQ,GAC7F,CAMA,iBAAOk+B,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcI,CACxC,EAlEJ,kBAwEA,MAAa8B,UAAsBW,EAItBI,UAKT,WAAAl/B,CAAY+8B,EAAYj8B,EAAc8G,EAAkCs3B,GACpErW,MAAMkU,EAAO,QAASj8B,EAAM8G,GAC5B1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAOs7B,KAC/C,IAAAY,kBAAgC/8B,KAAM,CAAE++B,aAC5C,CAKA,aAAIC,GACA,OAAO,IAAA7d,IAAGnhB,KAAK2Y,OAAO,WAC1B,CAKA,MAAAA,CAAOA,GAIH,GAHc,MAAVA,IACAA,EAAS,WAEE,SAAXA,EACA,OAAOxS,KAAKsC,UAAU,CAClB7H,KAAM,QACNm+B,UAAW/+B,KAAK++B,UAChBp+B,KAAMX,KAAKW,KACX8G,OAAQzH,KAAKyH,OAAOtC,KAAKwC,GAAMxB,KAAKC,MAAMuB,EAAEgR,OAAOA,QAI3D,MAAMtO,EAAmB,GAQzB,MAPe,YAAXsO,GACAtO,EAAOpC,KAAK,SAEhBoC,EAAOpC,KAAKjI,KAAKW,KAAOi+B,EAAWjmB,EAAQ3Y,KAAKyH,SACjC,YAAXkR,GAAwB3Y,KAAK++B,WAC7B10B,EAAOpC,KAAK,aAEToC,EAAO0a,KAAK,IACvB,CAKA,mBAAOka,CAAat+B,EAAc2I,GAG9B,OAFAA,GAAUA,GAAU,IAAInE,KAAK05B,GAAMvD,EAAUj7B,KAAKw+B,KACjC,IAAIb,EAAcnC,EAAQl7B,EAAM2I,GAAQ,GACzC01B,SACpB,CAKA,WAAO3+B,CAAKmY,GACR,GAAIwlB,EAAcO,WAAW/lB,GACzB,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAOwlB,EAAc39B,KAAK85B,EAAI3hB,IAC3B,GAAIA,aAAe0gB,EAAa,CACnC,MAAMv4B,EAAOm6B,EAAY,QAAStiB,GAC5B/Q,EAAS2zB,EAAc5iB,GAAK,GAC5BumB,IAAc/D,EAAgBxiB,EAAKuf,EAAO,CAAC,eAAezjB,IAAI,aAGpE,OAFAmnB,EAAWjjB,GAEJ,IAAIwlB,EAAcnC,EAAQl7B,EAAM8G,EAAQs3B,EACnD,CAEA,OAAO,IAAIf,EACPnC,EACArjB,EAAI7X,KACJ6X,EAAI/Q,OAAS+Q,EAAI/Q,OAAOtC,KAAK05B,GAAWvD,EAAUj7B,KAAKw+B,GAAG,KAAS,KACjErmB,EAAIumB,UAEd,CAMA,iBAAOR,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcK,CACxC,EA3FJ,kBAiGA,MAAa2B,UAA4BD,EAI5Br3B,QAKA04B,IAKT,WAAAr/B,CAAY+8B,EAAYh8B,EAAoB6G,EAAkCjB,EAAkB04B,GAC5FxW,MAAMkU,EAAOh8B,EAAM6G,GACnB1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAClCj7B,MAAOu7B,KAEX,IAAAW,kBAAsC/8B,KAAM,CAAEwG,UAAS04B,OAC3D,CAKA,MAAAvmB,CAAOA,GAKH,IAJA,IAAAylB,QAAiB,MAAVzlB,GAA6B,YAAXA,EAAsB,0CAA2C,wBAAyB,CAC/G0lB,UAAW,oBAGA,SAAX1lB,EACA,OAAOxS,KAAKsC,UAAU,CAClB7H,KAAM,cACN+F,gBAAiB3G,KAAKwG,QAAU,UAAY,YAC5CA,QAASxG,KAAKwG,QACd04B,IAAiB,MAAZl/B,KAAKk/B,IAAcl/B,KAAKk/B,SAAM9lB,EACnC3R,OAAQzH,KAAKyH,OAAOtC,KAAKwC,GAAMxB,KAAKC,MAAMuB,EAAEgR,OAAOA,QAI3D,MAAMtO,EAAS,CAAC,cAAcu0B,EAAWjmB,EAAQ3Y,KAAKyH,WAKtD,OAJA4C,EAAOpC,KAAKjI,KAAKwG,QAAU,UAAY,cACvB,MAAZxG,KAAKk/B,KACL70B,EAAOpC,KAAK,IAAIjI,KAAKk/B,IAAIl0B,cAEtBX,EAAO0a,KAAK,IACvB,CAKA,WAAO1kB,CAAKmY,GACR,GAAIslB,EAAoBS,WAAW/lB,GAC/B,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAOslB,EAAoBz9B,KAAK85B,EAAI3hB,IACjC,GAAIA,aAAe0gB,EAAa,CACnC8B,EAAgBxiB,EAAKuf,EAAO,CAAC,iBAC7B,MAAMtwB,EAAS2zB,EAAc5iB,GACvBhS,IAAYw0B,EAAgBxiB,EAAKuf,EAAO,CAAC,aAAazjB,IAAI,WAC1D4qB,EAAM3D,EAAW/iB,GAGvB,OAFAijB,EAAWjjB,GAEJ,IAAIslB,EAAoBjC,EAAQ,cAAep0B,EAAQjB,EAAS04B,EAC3E,CAEA,OAAO,IAAIpB,EACPjC,EACA,cACArjB,EAAI/Q,OAAS+Q,EAAI/Q,OAAOtC,IAAIm2B,EAAUj7B,MAAQ,KAC5CmY,EAAIhS,QACK,MAAXgS,EAAI0mB,IAAc1mB,EAAI0mB,IAAM,KAEpC,CAMA,iBAAOX,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcM,CACxC,EAnFJ,wBAyFA,MAAa6B,UAAyBJ,EAIzBr3B,QAET,WAAA3G,CAAY+8B,EAAYn1B,EAAkCjB,GACtDkiB,MAAMkU,EAAO,WAAYn1B,GACzB1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAOw7B,KAC/C,IAAAU,kBAAmC/8B,KAAM,CAAEwG,WAC/C,CAKA,MAAAmS,CAAOA,GACH,MAAM/X,EAA8B,IAAvBZ,KAAKyH,OAAOC,OAAe,UAAY,WAEpD,GAAe,SAAXiR,EAAmB,CACnB,MAAMhS,EAAkB3G,KAAKwG,QAAU,UAAY,aACnD,OAAOL,KAAKsC,UAAU,CAAE7H,OAAM+F,mBAClC,CAEA,MAAO,GAAG/F,MAASZ,KAAKwG,QAAU,WAAa,IACnD,CAKA,WAAOnG,CAAKmY,GACR,GAAIylB,EAAiBM,WAAW/lB,GAC5B,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAOylB,EAAiB59B,KAAK85B,EAAI3hB,IAC9B,GAAIA,aAAe0gB,EAAa,CACnC,MAAMiG,EAAW3mB,EAAIxN,WAEfo0B,EAAa5mB,EAAIyhB,YAAYlC,EAAO,CAAC,WAAY,aAMvD,IALA,IAAA6D,gBAAewD,EAAY,mCAAoC,MAAOD,GAKzD,YAHA3mB,EAAI+gB,WAAWxB,EAAO,CAAC,WAAY,aAGxB,CACpB,MAAMtwB,EAAS2zB,EAAc5iB,GAI7B,OAHA,IAAAojB,gBAAiC,IAAlBn0B,EAAOC,OAAc,gCAAiC,aAAcD,GACnFuzB,EAAgBxiB,EAAKuf,EAAO,CAAC,aAC7B0D,EAAWjjB,GACJ,IAAIylB,EAAiBpC,EAAQ,IAAI,EAC5C,CAIA,IAAIp0B,EAAS2zB,EAAc5iB,GACvB/Q,EAAOC,QACP,IAAAk0B,gBACsB,IAAlBn0B,EAAOC,QAAmC,UAAnBD,EAAO,GAAG7G,KACjC,0BACA,aACA6G,EAAOtC,KAAKwC,GAAMA,EAAEgR,OAAO,aAAYoM,KAAK,OAGhDtd,EAAS,CAAC6zB,EAAUj7B,KAAK,UAG7B,MAAMg/B,EAAanE,EAAkB1iB,GAQrC,IAPA,IAAAojB,gBACmB,eAAfyD,GAA8C,YAAfA,EAC/B,+BACA,sBACAA,GAGArE,EAAgBxiB,EAAKuf,EAAO,CAAC,aAAazjB,IAAI,WAAY,CAC1D,MAAM6D,EAAUijB,EAAc5iB,IAC9B,IAAAojB,gBACuB,IAAnBzjB,EAAQzQ,QAAoC,UAApByQ,EAAQ,GAAGvX,KACnC,2BACA,cACAuX,EAAQhT,KAAKwC,GAAMA,EAAEgR,OAAO,aAAYoM,KAAK,MAErD,CAIA,OAFA0W,EAAWjjB,GAEJ,IAAIylB,EAAiBpC,EAAQp0B,EAAuB,YAAf43B,EAChD,CAEA,GAAiB,YAAb7mB,EAAI5X,KACJ,OAAO,IAAIq9B,EAAiBpC,EAAQ,IAAI,GAG5C,GAAiB,aAAbrjB,EAAI5X,KAAqB,CACzB,MAAM6G,EAAS,CAAC6zB,EAAUj7B,KAAK,UACzBmG,EAAkC,YAAxBgS,EAAI7R,gBACpB,OAAO,IAAIs3B,EAAiBpC,EAAQp0B,EAAQjB,EAChD,EAEA,IAAAo1B,iBAAe,EAAO,+BAAgC,MAAOpjB,EACjE,CAMA,iBAAO+lB,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcO,CACxC,EA7GJ,qBAmHA,MAAa6B,UAAyBS,EAIzBW,SAKAnnB,QAMAxR,gBAKAH,QAKA04B,IAKT,WAAAr/B,CACI+8B,EACAj8B,EACAgG,EACAc,EACA0Q,EACA+mB,GAEAxW,MAAMkU,EAAO,WAAYj8B,EAAM8G,GAC/B1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAOy7B,IAC/CnkB,EAAUpT,OAAOozB,OAAOhgB,EAAQ1J,SAChC,MAAM6wB,EAA+B,SAApB34B,GAAkD,SAApBA,EACzCH,EAA8B,YAApBG,GAChB,IAAAo2B,kBAAmC/8B,KAAM,CACrCs/B,WACAJ,MACA/mB,UACA3R,UACAG,mBAER,CAKA,YAAIm4B,GACA,OAAO,IAAA3d,IAAGnhB,KAAK2Y,OAAO,YAAY1N,UAAU,EAAG,GACnD,CAKA,MAAA0N,CAAOA,GAIH,GAHc,MAAVA,IACAA,EAAS,WAEE,SAAXA,EACA,OAAOxS,KAAKsC,UAAU,CAClB7H,KAAM,WACND,KAAMX,KAAKW,KACX2+B,SAAUt/B,KAAKs/B,SACf34B,gBAA0C,eAAzB3G,KAAK2G,gBAAmC3G,KAAK2G,qBAAkByS,EAChF5S,QAASxG,KAAKwG,QACd04B,IAAiB,MAAZl/B,KAAKk/B,IAAcl/B,KAAKk/B,SAAM9lB,EACnC3R,OAAQzH,KAAKyH,OAAOtC,KAAKwC,GAAMxB,KAAKC,MAAMuB,EAAEgR,OAAOA,MACnDR,QAASnY,KAAKmY,QAAQhT,KAAKo6B,GAAMp5B,KAAKC,MAAMm5B,EAAE5mB,OAAOA,QAI7D,MAAMtO,EAAmB,GAsBzB,MApBe,YAAXsO,GACAtO,EAAOpC,KAAK,YAGhBoC,EAAOpC,KAAKjI,KAAKW,KAAOi+B,EAAWjmB,EAAQ3Y,KAAKyH,SAEjC,YAAXkR,IAC6B,eAAzB3Y,KAAK2G,iBACL0D,EAAOpC,KAAKjI,KAAK2G,iBAGjB3G,KAAKmY,SAAWnY,KAAKmY,QAAQzQ,SAC7B2C,EAAOpC,KAAK,WACZoC,EAAOpC,KAAK22B,EAAWjmB,EAAQ3Y,KAAKmY,WAGxB,MAAZnY,KAAKk/B,KACL70B,EAAOpC,KAAK,IAAIjI,KAAKk/B,IAAIl0B,eAG1BX,EAAO0a,KAAK,IACvB,CAKA,kBAAOya,CAAY7+B,EAAc2I,GAG7B,OAFAA,GAAUA,GAAU,IAAInE,KAAK05B,GAAMvD,EAAUj7B,KAAKw+B,KACjC,IAAIX,EAAiBrC,EAAQl7B,EAAM,OAAQ2I,EAAQ,GAAI,MACxDw1B,QACpB,CAKA,WAAOz+B,CAAKmY,GACR,GAAI0lB,EAAiBK,WAAW/lB,GAC5B,OAAOA,EAGX,GAAmB,iBAARA,EACP,OAAO0lB,EAAiB79B,KAAK85B,EAAI3hB,IAC9B,GAAIA,aAAe0gB,EAAa,CACnC,MAAMv4B,EAAOm6B,EAAY,WAAYtiB,GAC/B/Q,EAAS2zB,EAAc5iB,GACvB6mB,EAAanE,EAAkB1iB,GAErC,IAAIL,EAA4B,GAC5B6iB,EAAgBxiB,EAAKuf,EAAO,CAAC,aAAazjB,IAAI,aAC9C6D,EAAUijB,EAAc5iB,IAG5B,MAAM0mB,EAAM3D,EAAW/iB,GAIvB,OAFAijB,EAAWjjB,GAEJ,IAAI0lB,EAAiBrC,EAAQl7B,EAAM0+B,EAAY53B,EAAQ0Q,EAAS+mB,EAC3E,CAEA,IAAIv4B,EAAkB6R,EAAI7R,gBAsB1B,OAnBuB,MAAnBA,IACAA,EAAkB,UAEU,kBAAjB6R,EAAI8mB,UACX34B,EAAkB,OACb6R,EAAI8mB,WACL34B,EAAkB,UACS,kBAAhB6R,EAAIhS,SAA0BgS,EAAIhS,UACzCG,EAAkB,gBAGI,kBAAhB6R,EAAIhS,SAA0BgS,EAAIhS,UAChDG,EAAkB,eAOnB,IAAIu3B,EACPrC,EACArjB,EAAI7X,KACJgG,EACA6R,EAAI/Q,OAAS+Q,EAAI/Q,OAAOtC,IAAIm2B,EAAUj7B,MAAQ,GAC9CmY,EAAIL,QAAUK,EAAIL,QAAQhT,IAAIm2B,EAAUj7B,MAAQ,GACrC,MAAXmY,EAAI0mB,IAAc1mB,EAAI0mB,IAAM,KAEpC,CAMA,iBAAOX,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcQ,CACxC,EAlLJ,qBAwLA,MAAa6B,UAAuBQ,EAIhC,WAAA9+B,CAAY+8B,EAAYj8B,EAAc8G,GAClCihB,MAAMkU,EAAO,SAAUj8B,EAAM8G,GAC7B1C,OAAO+3B,eAAe98B,KAAM87B,EAAU,CAAEj7B,MAAO07B,GACnD,CAKA,MAAA5jB,GACI,MAAM,IAAI5Y,MAAM,QACpB,CAKA,WAAOM,CAAKmY,GACR,GAAmB,iBAARA,EACP,OAAO2lB,EAAe99B,KAAK85B,EAAI3hB,IAC5B,GAAIA,aAAe0gB,EAAa,CACnC,MAAMv4B,EAAOm6B,EAAY,SAAUtiB,GAC7B/Q,EAAS2zB,EAAc5iB,GAE7B,OADAijB,EAAWjjB,GACJ,IAAI2lB,EAAetC,EAAQl7B,EAAM8G,EAC5C,CAEA,OAAO,IAAI02B,EAAetC,EAAQrjB,EAAI7X,KAAM6X,EAAI/Q,OAAS+Q,EAAI/Q,OAAOtC,IAAIm2B,EAAUj7B,MAAQ,GAC9F,CAOA,iBAAOk+B,CAAW19B,GACd,OAAOA,GAASA,EAAMi7B,KAAcS,CACxC,EAvCJ,kB,+FCjqDA,0BACA,0BACA,yBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,UACA,0BAIM/T,EAAQ,IAFd,wBAIItlB,UACAwU,OACAsU,WACAvS,SACA8W,QACA7L,SACA5e,MACAwE,UACAga,kBAAA,mBACAna,cACAmO,eAEJ,UAAekQ,EACf,0BACA,0BACA,yBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BAEA,yB,sMC7BA,gBACA,UACA,UAeA,UACA,UAgBS,iFAhBA,EAAAiX,iBAAiB,IAgBE,sEAhBA,EAAAC,MAAM,IAClC,gBASA,UAYA,MAAaC,EAIAC,SAKAj/B,KAKAmT,UAKA+rB,MAKAz3B,KAKT,WAAAvI,CAAY+/B,EAAyBC,EAAez3B,GAChD,MAAMzH,EAAOi/B,EAASj/B,KAClBmT,EAAY8rB,EAASjnB,UACzB,IAAAokB,kBAAiC/8B,KAAM,CACnC4/B,WACAj/B,OACAmT,YACA+rB,QACAz3B,QAER,EAvCJ,mBA+CA,MAAa03B,EAIAF,SAKAj/B,KAKAyH,KAKA0L,UAKAgrB,SAKAj+B,MAKT,WAAAhB,CAAY+/B,EAA4Bd,EAAkB12B,EAAcvH,GACpE,MAAMF,EAAOi/B,EAASj/B,KAClBmT,EAAY8rB,EAASjnB,UACzB,IAAAokB,kBAAyC/8B,KAAM,CAC3C4/B,WACAj/B,OACAyH,OACA0L,YACAgrB,WACAj+B,SAER,EA7CJ,2BAoDA,MAAak/B,EAIAH,SAKAj/B,KAKAyH,KAKA0L,UAKAgrB,SAKT,WAAAj/B,CAAY+/B,EAAyBd,EAAkB12B,GACnD,MAAMzH,EAAOi/B,EAASj/B,KAClBmT,EAAY8rB,EAASjnB,UACzB,IAAAokB,kBAAmC/8B,KAAM,CACrC4/B,WACAj/B,OACAyH,OACA0L,YACAgrB,YAER,EAvCJ,qBAgDA,MAAakB,EAIAzb,KAKA0b,WAOT,gBAAOC,CAAUr/B,GACb,SAAUA,IAASA,EAAMo/B,WAC7B,CAKA,WAAApgC,CAAY0kB,IACR,IAAAwY,kBAA0B/8B,KAAM,CAAEukB,OAAM0b,YAAY,GACxD,EAzBJ,YAoCA,MAAME,EAAuC,CACzC,EAAK,gBACL,EAAK,gBACL,GAAM,sBACN,GAAM,6BACN,GAAM,gBACN,GAAM,8CACN,GAAM,wDACN,GAAM,6CACN,GAAM,gBACN,GAAM,0BAGJC,EAA2C,CAC7C,aAAc,CACVtsB,UAAW,gBACXnT,KAAM,QACN8G,OAAQ,CAAC,UACT44B,OAAS/1B,GACE,+BAA+BnE,KAAKsC,UAAU6B,MAG7D,aAAc,CACVwJ,UAAW,iBACXnT,KAAM,QACN8G,OAAQ,CAAC,WACT44B,OAAS3oB,IACL,IAAI2oB,EAAS,qBAIb,OAHI3oB,GAAQ,GAAKA,GAAQ,KAAQyoB,EAAazoB,EAAK1M,cAC/Cq1B,EAASF,EAAazoB,EAAK1M,aAExB,8BAA8B0M,EAAK1M,SAAS,QAAQq1B,IAAS,IAyDhF,MAAa9nB,EAIA+nB,UAKAC,OAKAC,SAKAC,QAET,GACA,GACA,GAGA,GAKA,WAAA5gC,CAAYygC,GACR,IAAIx6B,EAAuD,GAEvDA,EADqB,iBAAdw6B,EACDn6B,KAAKC,MAAMk6B,GAEXA,EAGVtgC,MAAK,EAAa,IAAI0gC,IACtB1gC,MAAK,EAAU,IAAI0gC,IACnB1gC,MAAK,EAAU,IAAI0gC,IAGnB,MAAMC,EAAyB,GAC/B,IAAK,MAAM7f,KAAKhb,EACZ,IACI66B,EAAM14B,KAAK,EAAA41B,SAASx9B,KAAKygB,GAC7B,CAAE,MAAOnJ,GACL8D,QAAQmlB,IAAI,KAAMjpB,EACtB,EAGJ,IAAAolB,kBAA4B/8B,KAAM,CAC9BsgC,UAAWv7B,OAAOozB,OAAOwI,KAG7B,IAAIH,EAAoC,KACpCC,GAAU,EAEdzgC,MAAK,EAAYA,KAAK6gC,cAGtB7gC,KAAKsgC,UAAU/yB,SAAQ,CAACqyB,EAAUzmB,KAC9B,IAAI2nB,EACJ,OAAQlB,EAASh/B,MACb,IAAK,cACD,OAAIZ,KAAKugC,YACL9kB,QAAQmlB,IAAI,2CAIhB,IAAA7D,kBAA4B/8B,KAAM,CAC9BugC,OAA6BX,IAIrC,IAAK,WAaD,YAZ+B,IAA3BA,EAASn4B,OAAOC,OAChB+4B,GAAU,IAEV,IAAA7E,iBACK4E,GAA+BZ,EAAUp5B,UAAYg6B,EAASh6B,QAC/D,iCACA,aAAa2S,KACbymB,GAEJY,EAA6BZ,EAC7Ba,EAAUD,EAASh6B,UAI3B,IAAK,WAGDs6B,EAAS9gC,MAAK,EACd,MAEJ,IAAK,QAED8gC,EAAS9gC,MAAK,EACd,MAEJ,IAAK,QACD8gC,EAAS9gC,MAAK,EACd,MAEJ,QACI,OAIR,MAAM8T,EAAY8rB,EAASjnB,SACvBmoB,EAAOxsB,IAAIR,IAIfgtB,EAAOlG,IAAI9mB,EAAW8rB,EAAS,IAI9B5/B,KAAKugC,SACN,IAAAxD,kBAA4B/8B,KAAM,CAC9BugC,OAAQ,EAAAzC,oBAAoBz9B,KAAK,oBAIzC,IAAA08B,kBAA4B/8B,KAAM,CAAEwgC,WAAUC,WAClD,CAOA,MAAA9nB,CAAO8e,GACH,MAAM9e,EAAS8e,EAAU,UAAY,OAErC,OADYz3B,KAAKsgC,UAAUn7B,KAAK47B,GAAMA,EAAEpoB,OAAOA,IAEnD,CAMA,UAAAqoB,GACI,MAAMl7B,EAAM9F,KAAKsgC,UAAUn7B,KAAK47B,GAAMA,EAAEpoB,OAAO,UAG/C,OAAOxS,KAAKsC,UAAU3C,EAAIX,KAAK6qB,GAAM7pB,KAAKC,MAAM4pB,KACpD,CAMA,WAAA6Q,GACI,OAAO,EAAAv5B,SAAS25B,iBACpB,CAGA,GAAazzB,EAAahG,EAAmC05B,GAEzD,IAAI,IAAAC,aAAY3zB,GAAM,CAClB,MAAMsxB,EAAWtxB,EAAI5G,cACrB,IAAK,MAAMg5B,KAAY5/B,MAAK,EAAWwH,SACnC,GAAIs3B,IAAac,EAASd,SACtB,OAAOc,EAGf,OAAO,IACX,CAGA,IAA0B,IAAtBpyB,EAAIgY,QAAQ,KAAa,CACzB,MAAM4b,EAAoC,GAC1C,IAAK,MAAOzgC,EAAMi/B,KAAa5/B,MAAK,EAC5BW,EAAKqpB,MAAM,KAAiB,KAAOxc,GACnC4zB,EAASn5B,KAAK23B,GAItB,GAAIp4B,EAAQ,CACR,MAAM65B,EAAY75B,EAAOE,OAAS,EAAIF,EAAOA,EAAOE,OAAS,GAAK,KAElE,IAAI45B,EAAc95B,EAAOE,OACrB65B,GAAe,EACf,EAAAC,MAAMC,QAAQJ,IAAiC,cAAnBA,EAAUzgC,OACtC2gC,GAAe,EACfD,KAKJ,IAAK,IAAI35B,EAAIy5B,EAAS15B,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAC3C,MAAMF,EAAS25B,EAASz5B,GAAGF,OAAOC,OAC9BD,IAAW65B,GAAiBC,GAAgB95B,IAAW65B,EAAc,GACrEF,EAAS73B,OAAO5B,EAAG,EAE3B,CAGA,IAAK,IAAIA,EAAIy5B,EAAS15B,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAC3C,MAAMF,EAAS25B,EAASz5B,GAAGF,OAC3B,IAAK,IAAIuoB,EAAI,EAAGA,EAAIxoB,EAAOE,OAAQsoB,IAE/B,GAAK,EAAAwR,MAAMC,QAAQj6B,EAAOwoB,IAA1B,CAKA,GAAIA,GAAKvoB,EAAOC,OAAQ,CACpB,GAAuB,cAAnBF,EAAOwoB,GAAGpvB,KACV,SAEJwgC,EAAS73B,OAAO5B,EAAG,GACnB,KACJ,CAGA,GAAIH,EAAOwoB,GAAGpvB,OAAS6G,EAAOuoB,GAAGwM,SAAU,CACvC4E,EAAS73B,OAAO5B,EAAG,GACnB,KACJ,CAfA,CAiBR,CACJ,CAIA,GAAwB,IAApBy5B,EAAS15B,QAAgBF,GAAUA,EAAOE,SAAW05B,EAAS,GAAG35B,OAAOC,OAAQ,CAChF,MAAMg6B,EAAUl6B,EAAOA,EAAOE,OAAS,IACxB,MAAXg6B,GAAmB9uB,MAAMrM,QAAQm7B,IAA+B,iBAAZA,IACpDN,EAAS73B,OAAO,EAAG,EAE3B,CAEA,GAAwB,IAApB63B,EAAS15B,OACT,OAAO,KAGX,GAAI05B,EAAS15B,OAAS,GAAKw5B,EAAa,CACpC,MAAMS,EAAWP,EAASj8B,KAAKy8B,GAAMz7B,KAAKsC,UAAUm5B,EAAEjpB,YAAWoM,KAAK,OACtE,IAAA6W,iBAAe,EAAO,gDAAgD+F,KAAa,MAAOn0B,EAC9F,CAEA,OAAO4zB,EAAS,EACpB,CAIA,OADephC,MAAK,EAAW6hC,IAAI,EAAA3D,iBAAiB79B,KAAKmN,GAAKmL,WAKvD,IACX,CAMA,eAAAmpB,CAAgBt0B,GACZ,MAAMoyB,EAAW5/B,MAAK,EAAawN,EAAK,MAAM,GAE9C,OADA,IAAAouB,gBAAegE,EAAU,uBAAwB,MAAOpyB,GACjDoyB,EAASj/B,IACpB,CASA,WAAAohC,CAAYv0B,GACR,QAASxN,MAAK,EAAawN,EAAK,MAAM,EAC1C,CAYA,WAAAkL,CAAYlL,EAAahG,GACrB,OAAOxH,MAAK,EAAawN,EAAKhG,GAAU,MAAM,EAClD,CAKA,eAAAw6B,CAAgBC,GACZ,MAAMnhC,EAAQ8R,MAAMvS,KAAKL,MAAK,EAAWqS,QACzCvR,EAAM+f,MAAK,CAACC,EAAGC,IAAMD,EAAEohB,cAAcnhB,KACrC,IAAK,IAAIpZ,EAAI,EAAGA,EAAI7G,EAAM4G,OAAQC,IAAK,CACnC,MAAMhH,EAAOG,EAAM6G,GACnBs6B,EAA2BjiC,MAAK,EAAW6hC,IAAIlhC,GAAOgH,EAC1D,CACJ,CAGA,GAAU6F,EAAahG,EAA0C05B,GAE7D,IAAI,IAAAC,aAAY3zB,GAAM,CAClB,MAAM20B,EAAa30B,EAAI5G,cACvB,IAAK,MAAMg5B,KAAY5/B,MAAK,EAAQwH,SAChC,GAAI26B,IAAevC,EAASZ,UACxB,OAAOY,EAGf,OAAO,IACX,CAGA,IAA0B,IAAtBpyB,EAAIgY,QAAQ,KAAa,CACzB,MAAM4b,EAA4B,GAClC,IAAK,MAAOzgC,EAAMi/B,KAAa5/B,MAAK,EAC5BW,EAAKqpB,MAAM,KAAiB,KAAOxc,GACnC4zB,EAASn5B,KAAK23B,GAItB,GAAIp4B,EAAQ,CAER,IAAK,IAAIG,EAAIy5B,EAAS15B,OAAS,EAAGC,GAAK,EAAGA,IAClCy5B,EAASz5B,GAAGF,OAAOC,OAASF,EAAOE,QACnC05B,EAAS73B,OAAO5B,EAAG,GAK3B,IAAK,IAAIA,EAAIy5B,EAAS15B,OAAS,EAAGC,GAAK,EAAGA,IAAK,CAC3C,MAAMF,EAAS25B,EAASz5B,GAAGF,OAC3B,IAAK,IAAIuoB,EAAI,EAAGA,EAAIxoB,EAAOE,OAAQsoB,IAE/B,GAAK,EAAAwR,MAAMC,QAAQj6B,EAAOwoB,KAKtBxoB,EAAOwoB,GAAGpvB,OAAS6G,EAAOuoB,GAAGwM,SAAU,CACvC4E,EAAS73B,OAAO5B,EAAG,GACnB,KACJ,CAER,CACJ,CAEA,GAAwB,IAApBy5B,EAAS15B,OACT,OAAO,KAGX,GAAI05B,EAAS15B,OAAS,GAAKw5B,EAAa,CACpC,MAAMS,EAAWP,EAASj8B,KAAKy8B,GAAMz7B,KAAKsC,UAAUm5B,EAAEjpB,YAAWoM,KAAK,OACtE,IAAA6W,iBAAe,EAAO,6CAA6C+F,KAAa,MAAOn0B,EAC3F,CAEA,OAAO4zB,EAAS,EACpB,CAIA,OADephC,MAAK,EAAQ6hC,IAAI,EAAA7D,cAAc39B,KAAKmN,GAAKmL,WAKjD,IACX,CAMA,YAAAypB,CAAa50B,GACT,MAAMoyB,EAAW5/B,MAAK,EAAUwN,EAAK,MAAM,GAG3C,OAFA,IAAAouB,gBAAegE,EAAU,oBAAqB,MAAOpyB,GAE9CoyB,EAASj/B,IACpB,CASA,QAAA0hC,CAAS70B,GACL,QAASxN,MAAK,EAAUwN,EAAK,MAAM,EACvC,CAYA,QAAAiL,CAASjL,EAAahG,GAClB,OAAOxH,MAAK,EAAUwN,EAAKhG,GAAU,MAAM,EAC/C,CAKA,YAAA86B,CAAaL,GACT,MAAMnhC,EAAQ8R,MAAMvS,KAAKL,MAAK,EAAQqS,QACtCvR,EAAM+f,MAAK,CAACC,EAAGC,IAAMD,EAAEohB,cAAcnhB,KACrC,IAAK,IAAIpZ,EAAI,EAAGA,EAAI7G,EAAM4G,OAAQC,IAAK,CACnC,MAAMhH,EAAOG,EAAM6G,GACnBs6B,EAAwBjiC,MAAK,EAAQ6hC,IAAIlhC,GAAOgH,EACpD,CACJ,CAYA,QAAA46B,CAAS/0B,EAAahG,GAClB,IAAI,IAAA25B,aAAY3zB,GAAM,CAClB,MAAMsxB,EAAWtxB,EAAI5G,cAErB,GAAIw5B,EAActB,GACd,OAAO,EAAAf,cAAc19B,KAAK+/B,EAActB,GAAUhrB,WAGtD,IAAK,MAAM8rB,KAAY5/B,MAAK,EAAQwH,SAChC,GAAIs3B,IAAac,EAASd,SACtB,OAAOc,EAIf,OAAO,IACX,CAGA,IAA0B,IAAtBpyB,EAAIgY,QAAQ,KAAa,CACzB,MAAM4b,EAA4B,GAClC,IAAK,MAAOzgC,EAAMi/B,KAAa5/B,MAAK,EAC5BW,EAAKqpB,MAAM,KAAiB,KAAOxc,GACnC4zB,EAASn5B,KAAK23B,GAItB,GAAwB,IAApBwB,EAAS15B,OACT,MAAY,UAAR8F,EACO,EAAAuwB,cAAc19B,KAAK,uBAElB,UAARmN,EACO,EAAAuwB,cAAc19B,KAAK,wBAEvB,KACJ,GAAI+gC,EAAS15B,OAAS,EAAG,CAC5B,MAAMi6B,EAAWP,EAASj8B,KAAKy8B,GAAMz7B,KAAKsC,UAAUm5B,EAAEjpB,YAAWoM,KAAK,OACtE,IAAA6W,iBAAe,EAAO,qCAAqC+F,KAAa,OAAQn0B,EACpF,CAEA,OAAO4zB,EAAS,EACpB,CAIA,GAAY,mBADZ5zB,EAAM,EAAAuwB,cAAc19B,KAAKmN,GAAKmL,UAE1B,OAAO,EAAAolB,cAAc19B,KAAK,uBAE9B,GAAY,mBAARmN,EACA,OAAO,EAAAuwB,cAAc19B,KAAK,wBAI9B,OADeL,MAAK,EAAQ6hC,IAAIr0B,IAKzB,IACX,CAKA,YAAAg1B,CAAaP,GACT,MAAMnhC,EAAQ8R,MAAMvS,KAAKL,MAAK,EAAQqS,QACtCvR,EAAM+f,MAAK,CAACC,EAAGC,IAAMD,EAAEohB,cAAcnhB,KACrC,IAAK,IAAIpZ,EAAI,EAAGA,EAAI7G,EAAM4G,OAAQC,IAAK,CACnC,MAAMhH,EAAOG,EAAM6G,GACnBs6B,EAAwBjiC,MAAK,EAAQ6hC,IAAIlhC,GAAOgH,EACpD,CACJ,CAgCA,aAAA86B,CAAcn5B,EAA2CrI,GACrD,OAAOjB,MAAK,EAAU2sB,OAAOrjB,EAAerI,EAChD,CAEA,aAAAyhC,CAAcp5B,EAAkC9B,GAC5C,OAAOxH,MAAK,EAAUkI,OAAOoB,EAAe9B,EAChD,CAMA,YAAAm7B,CAAan7B,GACT,OAAOxH,KAAK0iC,cAAc1iC,KAAKugC,OAAO94B,OAAQD,GAAU,GAC5D,CAWA,iBAAAo7B,CAAkBhD,EAAkC3+B,GAChD,GAAwB,iBAAb2+B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAKuiC,SAAS3C,IACxB,IAAAhE,gBAAemF,EAAG,gBAAiB,WAAYnB,GAC/CA,EAAWmB,CACf,CASA,OAPA,IAAAnF,iBACI,IAAAiH,WAAU5hC,EAAM,EAAG,KAAO2+B,EAASd,SACnC,uCAAuCc,EAASj/B,QAChD,OACAM,GAGGjB,KAAKyiC,cAAc7C,EAASn4B,QAAQ,IAAAo7B,WAAU5hC,EAAM,GAC/D,CAUA,iBAAA6hC,CAAkBlD,EAAkCp4B,GAChD,GAAwB,iBAAbo4B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAKuiC,SAAS3C,IACxB,IAAAhE,gBAAemF,EAAG,gBAAiB,WAAYnB,GAC/CA,EAAWmB,CACf,CAEA,OAAO,IAAAjL,QAAO,CAAC8J,EAASd,SAAU9+B,KAAK0iC,cAAc9C,EAASn4B,OAAQD,GAAU,KACpF,CAUA,kBAAAu7B,CAAmBnD,EAAqC3+B,GACpD,GAAwB,iBAAb2+B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAK0Y,YAAYknB,IAC3B,IAAAhE,gBAAemF,EAAG,mBAAoB,WAAYnB,GAClDA,EAAWmB,CACf,CASA,OAPA,IAAAnF,iBACI,IAAAiH,WAAU5hC,EAAM,EAAG,KAAO2+B,EAASd,SACnC,0CAA0Cc,EAASj/B,QACnD,OACAM,GAGGjB,KAAKyiC,cAAc7C,EAASn4B,QAAQ,IAAAo7B,WAAU5hC,EAAM,GAC/D,CAOA,kBAAA+hC,CAAmBpD,EAAqCp4B,GACpD,GAAwB,iBAAbo4B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAK0Y,YAAYknB,IAC3B,IAAAhE,gBAAemF,EAAG,mBAAoB,WAAYnB,GAClDA,EAAWmB,CACf,CAEA,OAAO,IAAAjL,QAAO,CAAC8J,EAASd,SAAU9+B,KAAK0iC,cAAc9C,EAASn4B,OAAQD,GAAU,KACpF,CAWA,oBAAAy7B,CAAqBrD,EAAqC3+B,GACtD,GAAwB,iBAAb2+B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAK0Y,YAAYknB,IAC3B,IAAAhE,gBAAemF,EAAG,mBAAoB,WAAYnB,GAClDA,EAAWmB,CACf,CAEA,IAAIz2B,EAAU,iCAEd,MAAMimB,GAAQ,IAAA2S,cAAajiC,GAC3B,GAAIsvB,EAAM7oB,OAAS,IAAO,EACtB,IACI,OAAO1H,MAAK,EAAU2sB,OAAOiT,EAASznB,QAAgBoY,EAC1D,CAAE,MAAO5Y,GACLrN,EAAU,8BACd,EAIJ,IAAA8zB,SAAO,EAAO9zB,EAAS,WAAY,CAC/BzJ,OAAO,IAAAsiC,SAAQ5S,GACf6S,KAAM,CAAEzsB,OAAQipB,EAASj/B,KAAMmT,UAAW8rB,EAASjnB,WAE3D,CAEA,SAAA0qB,CAAUC,EAAkBx6B,GACxB,MAAM7H,GAAO,IAAAq2B,UAASgM,EAAO,QAEvB3rB,EAAQ,EAAArQ,SAASi8B,wBAAwB,OAAQz6B,EAAI7H,GAI3D,GAAI0W,EAAMrN,QAAQkE,WADG,6CACuB,CACxC,MAAMswB,GAAW,IAAAqE,SAAQliC,EAAKwN,MAAM,EAAG,IAEjC+0B,EAAKxjC,KAAKuiC,SAASzD,GACzB,GAAI0E,EACA,IACI,MAAMp7B,EAAOpI,MAAK,EAAU2sB,OAAO6W,EAAG/7B,OAAexG,EAAKwN,MAAM,IAChEkJ,EAAM8rB,OAAS,CACX9iC,KAAM6iC,EAAG7iC,KACTmT,UAAW0vB,EAAG7qB,SACdvQ,QAEJuP,EAAM0oB,OAAS1oB,EAAM8rB,OAAO3vB,UAC5B6D,EAAMrN,QAAU,uBAAuBqN,EAAM0oB,QACjD,CAAE,MAAOrsB,GACL2D,EAAMrN,QAAU,oDACpB,CAER,CAGA,MAAMo5B,EAAS1jC,KAAK2jC,iBAAiB76B,GASrC,OARI46B,IACA/rB,EAAMisB,WAAa,CACfjtB,OAAQ+sB,EAAO/iC,KACfmT,UAAW4vB,EAAO5vB,UAClB1L,KAAMs7B,EAAOt7B,OAIduP,CACX,CAUA,oBAAAksB,CAAqBjE,EAAqCp4B,GACtD,GAAwB,iBAAbo4B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAK0Y,YAAYknB,IAC3B,IAAAhE,gBAAemF,EAAG,mBAAoB,WAAYnB,GAClDA,EAAWmB,CACf,CACA,OAAO,IAAAoC,SAAQnjC,MAAK,EAAUkI,OAAO03B,EAASznB,QAAgB3Q,GAAU,IAC5E,CAgCA,kBAAAs8B,CAAmBlE,EAAkCp4B,GACjD,GAAwB,iBAAbo4B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAKyY,SAASmnB,IACxB,IAAAhE,gBAAemF,EAAG,gBAAiB,gBAAiBnB,GACpDA,EAAWmB,CACf,EAEA,IAAA3C,QAAO52B,EAAOE,QAAUk4B,EAASn4B,OAAOC,OAAQ,0BAA0Bk4B,EAASjnB,WAAY,sBAAuB,CAClHorB,MAAOv8B,EAAOE,OACds8B,cAAepE,EAASn4B,OAAOC,SAGnC,MAAMu8B,EAA+C,GAChDrE,EAASb,WACVkF,EAAOh8B,KAAK23B,EAASZ,WAIzB,MAAMkF,EAAc,CAACvc,EAAkB9mB,IAChB,WAAf8mB,EAAM/mB,MACC,IAAAugB,IAAGtgB,GACY,UAAf8mB,EAAM/mB,MACN,IAAAkK,YAAU,IAAAq4B,SAAQtiC,KAGV,SAAf8mB,EAAM/mB,MAAoC,kBAAVC,IAChCA,EAAQA,EAAQ,OAAS,QAGzB8mB,EAAM/mB,KAAKmH,MAAM,YACjBlH,GAAQ,IAAAsjC,SAAQtjC,IAID,YAAf8mB,EAAM/mB,MACNZ,MAAK,EAAUkI,OAAO,CAAC,WAAY,CAACrH,KAEjC,IAAAujC,eAAa,IAAAjB,SAAQtiC,GAAQ,KA6BxC,IAzBA2G,EAAO+F,SAAQ,CAAC1M,EAAOsY,KACnB,MAAMwO,EAAwBiY,EAAUn4B,OAAO0R,GAE1CwO,EAAM8U,QAUE,MAAT57B,EACAojC,EAAOh8B,KAAK,MACc,UAAnB0f,EAAM6U,UAA2C,UAAnB7U,EAAM6U,UAC3C,IAAAZ,iBAAe,EAAO,gDAAiD,YAAcjU,EAAMhnB,KAAME,GAC1F+R,MAAMrM,QAAQ1F,GACrBojC,EAAOh8B,KAAKpH,EAAMsE,KAAKtE,GAAUqjC,EAAYvc,EAAO9mB,MAEpDojC,EAAOh8B,KAAKi8B,EAAYvc,EAAO9mB,KAhB/B,IAAA+6B,gBACa,MAAT/6B,EACA,qDACA,YAAc8mB,EAAMhnB,KACpBE,EAaR,IAIGojC,EAAOv8B,QAAwC,OAA9Bu8B,EAAOA,EAAOv8B,OAAS,IAC3Cu8B,EAAOrK,MAGX,OAAOqK,CACX,CAEA,cAAAI,CAAezE,EAAkCp4B,GAC7C,GAAwB,iBAAbo4B,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAKyY,SAASmnB,IACxB,IAAAhE,gBAAemF,EAAG,gBAAiB,gBAAiBnB,GACpDA,EAAWmB,CACf,CAEA,MAAMkD,EAAwB,GAExBK,EAA8B,GAC9BC,EAA4B,GA2BlC,OAzBK3E,EAASb,WACVkF,EAAOh8B,KAAK23B,EAASZ,YAGzB,IAAApD,gBAAep0B,EAAOE,SAAWk4B,EAASn4B,OAAOC,OAAQ,kCAAmC,SAAUF,GAEtGo4B,EAASn4B,OAAO8F,SAAQ,CAACoa,EAAOxO,KAC5B,MAAMtY,EAAQ2G,EAAO2R,GACrB,GAAIwO,EAAM8U,QACN,GAAmB,WAAf9U,EAAM/mB,KACNqjC,EAAOh8B,MAAK,IAAAkZ,IAAGtgB,SACZ,GAAmB,UAAf8mB,EAAM/mB,KACbqjC,EAAOh8B,MAAK,IAAA6C,WAAUjK,QACnB,IAAuB,UAAnB8mB,EAAM6U,UAA2C,UAAnB7U,EAAM6U,SAE3C,MAAM,IAAIz8B,MAAM,mBAEhBkkC,EAAOh8B,KAAKjI,MAAK,EAAUkI,OAAO,CAACyf,EAAM/mB,MAAO,CAACC,IACrD,MAEAyjC,EAAUr8B,KAAK0f,GACf4c,EAAWt8B,KAAKpH,EACpB,IAGG,CACHI,KAAMjB,MAAK,EAAUkI,OAAOo8B,EAAkBC,GAC9CN,OAAQA,EAEhB,CAGA,cAAAO,CAAe5E,EAAkC3+B,EAAiBgjC,GAC9D,GAAwB,iBAAbrE,EAAuB,CAC9B,MAAMmB,EAAI/gC,KAAKyY,SAASmnB,IACxB,IAAAhE,gBAAemF,EAAG,gBAAiB,gBAAiBnB,GACpDA,EAAWmB,CACf,CAEA,GAAc,MAAVkD,IAAmBrE,EAASb,UAAW,CACvC,MAAMoD,EAAavC,EAASZ,WAC5B,IAAApD,iBACI,IAAAuF,aAAY8C,EAAO,GAAI,KAAOA,EAAO,GAAGr9B,gBAAkBu7B,EAC1D,0BACA,YACA8B,EAAO,IAEXA,EAASA,EAAOx1B,MAAM,EAC1B,CAEA,MAAMguB,EAA4B,GAC5BgI,EAA+B,GAC/BC,EAA0B,GAEhC9E,EAASn4B,OAAO8F,SAAQ,CAACoa,EAAOxO,KACxBwO,EAAM8U,QAEa,WAAf9U,EAAM/mB,MACS,UAAf+mB,EAAM/mB,MACa,UAAnB+mB,EAAM6U,UACa,UAAnB7U,EAAM6U,UAENC,EAAQx0B,KAAK,EAAAqzB,UAAUj7B,KAAK,CAAEO,KAAM,UAAWD,KAAMgnB,EAAMhnB,QAC3D+jC,EAAQz8B,MAAK,KAEbw0B,EAAQx0B,KAAK0f,GACb+c,EAAQz8B,MAAK,KAGjBw8B,EAAWx8B,KAAK0f,GAChB+c,EAAQz8B,MAAK,GACjB,IAGJ,MAAM08B,EAA0B,MAAVV,EAAiBjkC,MAAK,EAAU2sB,OAAO8P,GAAgB,IAAA3G,QAAOmO,IAAW,KACzFW,EAAmB5kC,MAAK,EAAU2sB,OAAO8X,EAAmBxjC,GAAM,GAGlEuG,EAAqB,GACrB6K,EAA6B,GACnC,IAAIwyB,EAAkB,EAClBC,EAAe,EA2BnB,OA1BAlF,EAASn4B,OAAO8F,SAAQ,CAACoa,EAAOxO,KAC5B,IAAItY,EAAkC,KACtC,GAAI8mB,EAAM8U,QACN,GAAqB,MAAjBkI,EACA9jC,EAAQ,IAAIm/B,EAAQ,WACjB,GAAI0E,EAAQvrB,GACftY,EAAQ,IAAIm/B,EAAQ2E,EAAcG,WAElC,IACIjkC,EAAQ8jC,EAAcG,IAC1B,CAAE,MAAOntB,GACL9W,EAAQ8W,CACZ,MAGJ,IACI9W,EAAQ+jC,EAAiBC,IAC7B,CAAE,MAAOltB,GACL9W,EAAQ8W,CACZ,CAGJnQ,EAAOS,KAAKpH,GACZwR,EAAKpK,KAAK0f,EAAMhnB,MAAQ,KAAK,IAG1B,EAAA++B,OAAOqF,UAAUv9B,EAAQ6K,EACpC,CAQA,gBAAAsxB,CAAiB76B,GACb,MAAM7H,GAAO,IAAAq2B,UAASxuB,EAAG7H,KAAM,WACzBJ,GAAQ,IAAA26B,WAAsB,MAAZ1yB,EAAGjI,MAAgBiI,EAAGjI,MAAQ,EAAG,YAEnD++B,EAAW5/B,KAAK0Y,aAAY,IAAAyqB,SAAQliC,EAAKwN,MAAM,EAAG,KAExD,IAAKmxB,EACD,OAAO,KAGX,MAAMx3B,EAAOpI,MAAK,EAAU2sB,OAAOiT,EAASn4B,OAAexG,EAAKwN,MAAM,IACtE,OAAO,IAAIqxB,EAAuBF,EAAUA,EAASd,SAAU12B,EAAMvH,EACzE,CAEA,eAAAmkC,CAAgB/jC,GACZ,MAAM,IAAIlB,MAAM,QACpB,CAQA,QAAAklC,CAASrE,GACL,MAAMhB,EAAW5/B,KAAKyY,SAASmoB,EAAIqD,OAAO,IAE1C,OAAKrE,GAAYA,EAASb,UACf,KAOJ,IAAIY,EAAeC,EAAUA,EAASZ,UAAWh/B,KAAKwkC,eAAe5E,EAAUgB,EAAI3/B,KAAM2/B,EAAIqD,QACxG,CAQA,UAAAiB,CAAWjkC,GACP,MAAMkkC,GAAU,IAAAhC,SAAQliC,GAElB2+B,EAAW5/B,KAAKuiC,UAAS,IAAAM,WAAUsC,EAAS,EAAG,IAErD,IAAKvF,EACD,OAAO,KAGX,MAAMx3B,EAAOpI,MAAK,EAAU2sB,OAAOiT,EAASn4B,QAAe,IAAAo7B,WAAUsC,EAAS,IAC9E,OAAO,IAAIpF,EAAiBH,EAAUA,EAASd,SAAU12B,EAC7D,CAQA,WAAO/H,CAAKQ,GAER,OAAIA,aAAiB0X,EACV1X,EAIU,iBAAVA,EACA,IAAI0X,EAAUpS,KAAKC,MAAMvF,IAID,mBAAlBA,EAAO8X,OACb,IAAIJ,EAAgB1X,EAAO8X,OAAO,SAItC,IAAIJ,EAAU1X,EACzB,EA7gCJ,a,4GC5TA,gBAUA,uBAA4ByJ,EAA8C6M,GACjEA,EAAWpP,MAAM,SAClBoP,EAAa,KAAOA,GAGxB,MAAMwN,EAAa,IAAI,EAAAC,WAAWzN,GAC5ByM,EAAgBwhB,EAAY96B,GAC5BwJ,EAAY6Q,EAAWnN,KAAKoM,GAElC,OAAO,IAAAuT,eAAcrjB,EACzB,EAEA,yBAA8BxJ,EAA8CwJ,GACnEA,EAAU/L,MAAM,SACjB+L,EAAY,KAAOA,GAEvB,MAAMgQ,GAAY,IAAAC,gBAAeqhB,EAAY96B,GAAUwJ,GAGvD,OAFsB,IAAA4a,wBAAsB,IAAA/K,kBAAiBG,EAAU9c,QAAQ,MAAO,EAAAid,iBAG1F,EArCA,gBACA,UACA,UACA,UAIA,SAAgBmhB,EAAY96B,GAOxB,MANuB,iBAAZA,EACPA,GAAU,IAAAoZ,aAAYpZ,GACfsI,MAAMrM,QAAQ+D,KACrBA,EAAU,IAAIuZ,WAAWvZ,KAGtB,IAAAQ,YAAU,IAAAgrB,QAAO,EAAC,IAAApS,aAAY,EAAA2hB,sBAAsB,IAAA3hB,aAAY7gB,OAAOyH,EAAQ5C,SAAU4C,IACpG,CAVa,EAAA+6B,oBAAsB,yB,oMCHnC,6BAEA,QACA,MAAM,YAAErQ,EAAW,WAAEsQ,EAAU,IAAEC,GAAQ1Q,WAAW2Q,aAEpD,QACA,MAAM,iBACF/jC,EAAgB,sBAChBuB,EAAqB,wBACrBG,EAAuB,wBACvBmB,EAAuB,wBACvBjB,EAAuB,0BACvBG,EAAyB,+BACzBY,EAA8B,yBAC9BJ,EAAwB,2BACxBE,GACA2wB,WAAW2Q,aAEf,QACA,MAAM,sBAAEzjC,EAAqB,8BAAEI,EAA6B,mBAAE0L,EAAkB,oBAAEkB,GAAwB8lB,WAAW2Q,aAErH,OACA,MAAM,qBACFt6B,EAAoB,iBACpBO,EAAgB,0BAChBuG,EAAyB,sBACzBF,EAAqB,oBACrB/I,EAAmB,cACnB08B,GACA5Q,WAAW2Q,aAEf,OACA,MAAM,aAAElZ,GAAiBuI,WAAW2Q,aAEpC,QACA,MAAM,sBAAE9gC,EAAqB,oBAAEY,GAAwBuvB,WAAW2Q,aAElE,QACA,MAAM,wBAAE35B,GAA4BgpB,WAAW2Q,aAE/C,OACA,MAAM,sBAAEv3B,EAAqB,sBAAEI,EAAqB,qBAAEM,EAAoB,gCAAE4E,GACxEshB,WAAW2Q,aAEf,QACA,MAAM,uBAAEh2B,EAAsB,uBAAEI,EAAsB,wBAAEI,GAA4B6kB,WAAW2Q,aAE/F,QACA,MAAM,uBAAE/0B,EAAsB,uBAAEW,EAAsB,yBAAEE,EAAwB,4BAAEM,GAC9EijB,WAAW2Q,aAEf,UACA,UACA,6BACA,UAEME,EAAiBC,GACdA,GAAkC,IAArBA,EAAUj+B,OACrB,IAAImc,WACP,UAAQ3gB,QACH/B,MAAMwkC,GACN59B,MAAM,WACN5C,KAAKqtB,GAAiB/xB,SAAS+xB,EAAM,OALG,IAAI3O,WAAW,IAS9D+hB,EAAsBD,GACnBA,GAAkC,IAArBA,EAAUj+B,OACrB,IAAImc,aACN,IAAAjE,OAAM+lB,GAAaA,EAAY,UAAQxkC,MAAMwkC,IACzC3+B,QAAQ,MAAO,IACfe,MAAM,WACN5C,KAAKqtB,GAAiB/xB,SAAS+xB,EAAM,OALG,IAAI3O,WAAW,IAS9DgiB,EAAmB,CAACva,EAAavX,IAE5B6xB,EADF7xB,EACqB,UAAQjS,SAASwpB,GAAKtkB,QAAQ,MAAO,IADvBskB,EAAItkB,QAAQ,MAAO,KAQzD8+B,EAAyB,CAACx7B,EAASy7B,EAAcC,EAAUtkC,KAC7D,MAAMukC,EAAW,IAAI,UAAuBC,IAC5CD,EAASE,KAAK77B,EAAQ6qB,kBAAmB,YAAc6Q,GACvD,MAAMr9B,EAAW,IAAIqsB,EAAYnK,SACjCliB,EAASy9B,QAAQL,GACjBp9B,EAAS09B,aAAaJ,GAClBvkC,GACAiH,EAAS29B,gBAAgB5kC,GAE7B,MAAM6kC,EAAM,IAAIvR,EAAYuR,IAC5BA,EAAIC,YAAY79B,GAChB,MAAMwB,EAAc,IAAI6qB,EAExB,OADA7qB,EAAYs8B,WAAWF,GAChBp8B,CAAW,EAqtBhBu8B,EAAyB,CAAC/9B,EAAU9H,EAAOL,KAC7C,OAAQmI,EAAS/H,MACb,IAAK,mBACD,MAptBkB,EAACC,EAAOL,KAClC,MAAM,WAAEU,EAAU,cAAEE,EAAa,OAAEhB,GAAWS,EACxC8lC,EAAmB,IAAIllC,EAI7B,OAHAklC,EAAiBC,aAAalB,EAAcxkC,IAC5CylC,EAAiBE,gBAAgBnB,EAActkC,IAC/CulC,EAAiBG,UAAU1mC,GACpB0lC,EACHa,EACA3R,EAAYnK,SAASrpB,aAAaulC,iBAClC,mBACAvmC,EAAQoK,cACX,EAysBco8B,CAAsBnmC,EAAOL,GACxC,IAAK,wBACD,MAvsBuB,EAACK,EAAOL,KACvC,MAAM,WAAEU,EAAU,cAAEE,EAAa,OAAEhB,EAAM,WAAEyB,GAAehB,EACpD8lC,EAAmB,IAAI5kC,EAK7B,OAJA4kC,EAAiBC,aAAalB,EAAcxkC,IAC5CylC,EAAiBE,gBAAgBnB,EAActkC,IAC/CulC,EAAiBM,aAAapB,EAAiBhkC,EAAYrB,EAAQuT,UACnE4yB,EAAiBG,UAAU1mC,GACpB0lC,EACHa,EACA3R,EAAYnK,SAASrpB,aAAa0lC,sBAClC,wBACA1mC,EAAQoK,cACX,EA2rBcu8B,CAA2BtmC,EAAOL,GAC7C,IAAK,gCACD,MAzrB+B,EAACK,EAAOL,KAC/C,MAAM4mC,EAAQ,IAAIjlC,EAMlB,OALAilC,EAAMR,aAAalB,EAAc7kC,EAAMK,aACvCkmC,EAAMP,gBAAgBnB,EAAc7kC,EAAMO,gBAC1CgmC,EAAMH,aAAapB,EAAiBhlC,EAAMgB,WAAYrB,EAAQuT,UAC9DqzB,EAAMN,UAAUjmC,EAAMT,QAEf0lC,EACHsB,EACApS,EAAYnK,SAASrpB,aAAa6lC,8BAClC,gCACA7mC,EAAQoK,cACX,EA6qBc08B,CAAmCzmC,EAAOL,GACrD,IAAK,uBACD,MA5qBsB,EAACK,EAAOL,KACtC,MAAM2I,EAAuB,IAAI+B,GAC3B,cACF9J,EAAa,iBACb4H,EAAgB,UAChBhD,EAAY,GAAE,kBACd2E,EAAiB,WACjBrC,EAAU,iBACVI,EAAgB,SAChB7C,EAAQ,KACR5E,GACAJ,EAIJ,GAHAsI,EAAqB09B,gBAAgBnB,EAActkC,IACnD+H,EAAqBo+B,mBAAmB7B,EAAc18B,IACtDG,EAAqBq+B,aAAal/B,GAC9BrH,EACAkI,EAAqBs+B,QAAQ7B,EAAmB3kC,SAC7C,GAAI0J,EAAmB,CAC1B,MAAM+8B,EArFD,EAACzc,EAAgBC,GAAS,KAC3BA,EAAS,KAAO,KAAM,IAAApgB,WAAUC,OAAO1K,KAAK4qB,EAAQ,UAAUjgB,WAAWC,UAAU,GAoFlE4N,CAAKlO,GAAmBM,UAAU,EAAG,IAAMjF,EAChEmD,EAAqBs+B,QAAQ7B,EAAmB8B,GACpD,CASA,OAPI7hC,GACAsD,EAAqBw+B,WAAW9hC,GAEhC6C,GACAS,EAAqBy+B,kBAAkBl/B,GAGpCo9B,EACH38B,EACA6rB,EAAYnK,SAASrpB,aAAaqmC,qBAClC,uBACArnC,EAAQoK,cACX,EA0oBck9B,CAA0BjnC,EAAOL,GAC5C,IAAK,wBACD,MAzoBuB,EAACK,EAAOL,KACvC,MAAMunC,EAAwB,IAAI/kC,GAC5B,cAAE5B,EAAa,eAAEuB,EAAc,gBAAEC,EAAe,SAAEN,EAAQ,iBAAES,GAAqBlC,EAWvF,OAVAknC,EAAsBlB,gBAAgBnB,EAActkC,IACpD2mC,EAAsBC,iBAAiBrlC,GACvColC,EAAsBE,kBAAkBrlC,GACpCN,GACAylC,EAAsBG,YAAY5b,EAAahqB,IAE/CS,GACAglC,EAAsBI,mBAAmBzC,EAAc3iC,IAGpD+iC,EACHiC,EACA/S,EAAYnK,SAASrpB,aAAa4mC,sBAClC,wBACA5nC,EAAQoK,cACX,EAunBcy9B,CAA2BxnC,EAAOL,GAC7C,IAAK,0BACD,MAtnByB,EAACK,EAAOL,KACzC,MAAM8nC,EAA0B,IAAInlC,GAC9B,cAAE/B,EAAa,SAAEkB,EAAQ,iBAAES,GAAqBlC,EAStD,OARAynC,EAAwBzB,gBAAgBnB,EAActkC,IAClDkB,GACAgmC,EAAwBJ,YAAY5b,EAAahqB,IAEjDS,GACAulC,EAAwBH,mBAAmBzC,EAAc3iC,IAGtD+iC,EACHwC,EACAtT,EAAYnK,SAASrpB,aAAa+mC,wBAClC,0BACA/nC,EAAQoK,cACX,EAsmBc49B,CAA6B3nC,EAAOL,GAC/C,IAAK,0BACD,MArmByB,EAACK,EAAOL,KACzC,MAAMioC,EAA0B,IAAInkC,GAC9B,cAAElD,GAAkBP,EAG1B,OAFA4nC,EAAwB5B,gBAAgBnB,EAActkC,IAE/C0kC,EACH2C,EACAzT,EAAYnK,SAASrpB,aAAaknC,wBAClC,0BACAloC,EAAQoK,cACX,EA2lBc+9B,CAA6B9nC,EAAOL,GAC/C,IAAK,0BACD,MA1lByB,EAACK,EAAOL,KACzC,MAAMooC,EAA0B,IAAIvlC,GAC9B,cAAEjC,EAAa,eAAEuB,EAAc,SAAEL,GAAazB,EAKpD,OAJA+nC,EAAwB/B,gBAAgBnB,EAActkC,IACtDwnC,EAAwBZ,iBAAiBrlC,GACzCimC,EAAwBV,YAAY5b,EAAahqB,IAE1CwjC,EACH8C,EACA5T,EAAYnK,SAASrpB,aAAaqnC,wBAClC,0BACAroC,EAAQoK,cACX,EA8kBck+B,CAA6BjoC,EAAOL,GAC/C,IAAK,8BACD,MA7kB+B,EAACK,EAAOL,KAC/C,MAAM2D,EAAyB,IAAIC,GAC7B,cAAEhD,GAAkBP,EAG1B,OAFAsD,EAAuB0iC,gBAAgBnB,EAActkC,IAE9C0kC,EACH3hC,EACA6wB,EAAYnK,SAASrpB,aAAaunC,4BAClC,8BACAvoC,EAAQoK,cACX,EAmkBco+B,CAAmCnoC,EAAOL,GACrD,IAAK,4BACD,MAlkB2B,EAACK,EAAOL,KAC3C,MAAMyoC,EAA4B,IAAIzlC,GAChC,cAAEpC,EAAa,iBAAEmC,EAAgB,SAAEjB,GAAazB,EAKtD,OAJAooC,EAA0BpC,gBAAgBnB,EAActkC,IACxD6nC,EAA0BC,mBAAmB3lC,GAC7C0lC,EAA0Bf,YAAY5b,EAAahqB,IAE5CwjC,EACHmD,EACAjU,EAAYnK,SAASrpB,aAAa2nC,0BAClC,4BACA3oC,EAAQoK,cACX,EAsjBcw+B,CAA+BvoC,EAAOL,GACjD,IAAK,2BACD,MArjB0B,EAACK,EAAOL,KAC1C,MAAM6oC,EAA2B,IAAIrlC,GAC/B,cAAE5C,EAAa,iBAAE2B,EAAgB,QAAEe,EAAO,SAAExB,EAAQ,KAAEsB,GAAO,EAAK,YAAEG,GAAgBlD,EAQ1F,OAPAwoC,EAAyBxC,gBAAgBnB,EAActkC,IACvDioC,EAAyBC,WAAWxlC,GACpCulC,EAAyBnB,YAAY5b,EAAahqB,IAClD+mC,EAAyBE,QAAQ3lC,GACjCylC,EAAyBG,cAAczlC,GACvCslC,EAAyBlB,mBAAmBzC,EAAc3iC,IAEnD+iC,EACHuD,EACArU,EAAYnK,SAASrpB,aAAaioC,yBAClC,2BACAjpC,EAAQoK,cACX,EAsiBc8+B,CAA8B7oC,EAAOL,GAChD,IAAK,6BACD,MAriB4B,EAACK,EAAOL,KAC5C,MAAMmpC,EAA6B,IAAIzlC,GACjC,cAAE9C,EAAa,iBAAE2B,EAAgB,QAAEe,EAAO,SAAExB,GAAazB,EAM/D,OALA8oC,EAA2B9C,gBAAgBnB,EAActkC,IACzDuoC,EAA2BL,WAAWxlC,GACtC6lC,EAA2BzB,YAAY5b,EAAahqB,IACpDqnC,EAA2BxB,mBAAmBzC,EAAc3iC,IAErD+iC,EACH6D,EACA3U,EAAYnK,SAASrpB,aAAaooC,2BAClC,6BACAppC,EAAQoK,cACX,EAwhBci/B,CAAgChpC,EAAOL,GAClD,IAAK,iCACD,MAvhBgC,EAACK,EAAOL,KAChD,MAAM2D,EAAyB,IAAIC,GAC7B,cAAEhD,GAAkBP,EAG1B,OAFAsD,EAAuB0iC,gBAAgBnB,EAActkC,IAE9C0kC,EACH3hC,EACA6wB,EAAYnK,SAASrpB,aAAasoC,+BAClC,iCACAtpC,EAAQoK,cACX,EA6gBcm/B,CAAoClpC,EAAOL,GACtD,IAAK,wBACD,MA3gBe,EAACK,EAAOL,KAC/B,MAAMwpC,EAAwB,IAAItlC,GAC5B,cAAEtD,EAAa,IAAEoD,GAAQ3D,EAG/B,OAFAmpC,EAAsBnD,gBAAgBnB,EAActkC,IACpD4oC,EAAsBC,OAAOrE,EAAmBphC,EAAIwC,QAAQ,MAAO,MAC5D8+B,EACHkE,EACAhV,EAAYnK,SAASrpB,aAAa0oC,sBAClC,wBACA1pC,EAAQoK,cACX,EAigBcu/B,CAAmBtpC,EAAOL,GACrC,IAAK,sBACD,MA/foB,EAACK,EAAOL,KACpC,MAAM4pC,EAAsB,IAAI9kC,GAC1B,cAAElE,EAAa,MAAEwD,GAAU/D,EAYjC,OAXAupC,EAAoBvD,gBAAgBnB,EAActkC,IAElDwD,EAAM2I,SAAS88B,IACX,MAAM1lC,EAAO,IAAIW,EAAoBglC,MAC/B,aAAEllC,EAAY,WAAEC,GAAeglC,EACrC1lC,EAAK4lC,eAAe7E,EAActgC,IAClC,MAAMolC,EAAgB/pC,SAAS4E,GAC/BV,EAAK8lC,aAAaD,GAClBJ,EAAoBM,SAAS/lC,EAAK,IAG/BmhC,EACHsE,EACApV,EAAYnK,SAASrpB,aAAampC,oBAClC,sBACAnqC,EAAQoK,cACX,EA4ecggC,CAAwB/pC,EAAOL,GAC1C,IAAK,sBACD,MA3eqB,EAACK,EAAOL,KACrC,MAAM8I,EAASzI,GAAO+H,aAChB,CAEQxH,cAAeP,EAAMO,cACrBsH,iBAAkB7H,EAAM6H,iBACxB7C,SAAUhF,EAAMgF,YAEjBhF,EAAM+H,cAEb/H,GACA,cACFO,EAAa,8BACbmH,EAA6B,oBAC7BC,EAAmB,IACnB1C,EAAG,SACHG,EAAW,GAAE,UACbD,EAAY,GAAE,WACdsC,EAAU,iBACVI,EAAgB,SAChB7C,EACAlF,KAAMkqC,GACNvhC,EACJ,IAAI,eAAET,GAAmBS,EAEzB,MAAM/D,EAAsB,IAAIwD,EAChCxD,EAAoBshC,gBAAgBnB,EAActkC,IAC9CyE,GACAN,EAAoBoiC,WAAW9hC,GAE/B6C,GACAnD,EAAoBqiC,kBAAkBl/B,GAE1C,MAAMoiC,EAAuB,IAAIrF,EAEjC,GAAI3/B,EAAK,CACL,IAAIilC,EAEAA,EADe,iBAARjlC,EACGK,KAAKC,MAAMN,GAEXA,GAAKQ,QAAU,GAE7B,MAAM0kC,EAAa,IAAIvF,EAAcwF,IAE/BC,EAAmBjqC,IACrB,MAAM0mB,EAAQ,IAAI8d,EAAcwF,IAAIE,MAAMC,OACpC,QAAE3O,EAAO,KAAE97B,EAAI,KAAEC,GAASK,EAMhC,OALgB,IAAZw7B,GACA9U,EAAM0jB,YAAW,GAErB1jB,EAAM2jB,QAAQ3qC,GACdgnB,EAAMye,QAAQxlC,GACP+mB,CAAK,EAEV4jB,EAAgBR,EAAQ5lC,KAAKqmC,IAC/B,MAAM,UAAEzM,EAAS,SAAEO,EAAQ,KAAE3+B,EAAI,OAAE8G,EAAM,QAAE0Q,EAAO,KAAEvX,EAAI,QAAE4F,EAAO,gBAAEG,GAAoB6kC,EACjFC,EAAe,IAAIhG,EAAcwF,IAAIE,MAmB3C,OAlBAM,EAAaC,aAAa3M,GAC1B0M,EAAaE,YAAYrM,GACzBmM,EAAaH,QAAQ3qC,GACjB8G,GACAgkC,EAAaG,cAAcnkC,EAAOtC,KAAK8E,GAAUihC,EAAgBjhC,MAEjEkO,GACAszB,EAAaI,eAAe1zB,EAAQhT,KAAK8S,GAAWizB,EAAgBjzB,MAEpErX,GACA6qC,EAAarF,QAAQX,EAAcwF,IAAIE,MAAMW,UAAUlrC,EAAK6uB,gBAGhEgc,EAAaM,WAAWvlC,GACpBG,GACA8kC,EAAaO,mBAAmBvG,EAAcwF,IAAIE,MAAMc,oBAAoBtlC,EAAgB8oB,gBAGzFgc,CAAY,IAEvBT,EAAWkB,cAAcX,GACzBT,EAAqBqB,OAAOnB,EAChC,CAcA,GAZI1iC,GACAwiC,EAAqBtD,aAAal/B,GAGtCwiC,EAAqBsB,8BAA8B7jC,GACnDuiC,EAAqBuB,qBAAqB7jC,GAErCK,IACDA,EAAiBzH,GAErB0pC,EAAqBwB,iBAAiB5G,EAAc78B,IAEhD5C,EAAU,CACV,MAAMsmC,EAAoBtmC,EAASe,QAAQ,MAAO,IAAMhB,EAAUgB,QAAQ,MAAO,IACjF8jC,EAAqB0B,YAAY5G,EAAmB2G,GACxD,CAMA,OAJAzB,EAAqBQ,QAAQT,GAE7BtlC,EAAoBknC,eAAe3B,GAE5BhF,EACHvgC,EACAyvB,EAAYnK,SAASrpB,aAAakrC,oBAClC,sBACAlsC,EAAQoK,cACX,EAgYc+hC,CAAyB9rC,EAAOL,GAC3C,IAAK,mBACD,MA/XkB,EAACK,EAAOL,KAClC,MAAM,iBAAEwI,EAAgB,cAAE5H,GAAkBP,EACtC+rC,EAAmB,IAAInhC,EAI7B,OAHAmhC,EAAiB/F,gBAAgBnB,EAActkC,IAC/CwrC,EAAiBrF,mBAAmB7B,EAAc18B,IAE3C88B,EACH8G,EACA5X,EAAYnK,SAASrpB,aAAaqrC,iBAClC,mBACArsC,EAAQoK,cACX,EAoXckiC,CAAsBjsC,EAAOL,GACxC,IAAK,0BACD,MAlXyB,EAACK,EAAOL,KACzC,MAAM,UAAEmL,EAAS,cAAEvK,GAAkBP,EAC/BksC,EAA0B,IAAIlhC,EAIpC,OAHAkhC,EAAwBlG,gBAAgBnB,EAActkC,IACtD2rC,EAAwBC,aAAarhC,GAE9Bm6B,EACHiH,EACA/X,EAAYnK,SAASrpB,aAAayrC,wBAClC,0BACAzsC,EAAQoK,cACX,EAuWcsiC,CAA6BrsC,EAAOL,GAC/C,IAAK,qBACD,MArWoB,EAACK,EAAOL,KACpC,MAAM,cACFY,EAAa,KACbT,EAAI,KACJmM,EAAI,YACJd,EAAW,IACXxH,EAAG,aACHuI,EAAY,QACZC,EAAO,IACPC,EAAG,WACHC,EAAU,SACVC,EAAQ,UACRN,EAAS,qBACTa,EAAoB,4BACpBC,EAA2B,4BAC3Bw/B,EAA8B,EAAC,4BAC/BC,EAA8B,EAAC,WAC/Bx/B,EAAa,EAAC,cACdR,GACAvM,EACEwsC,EAAqB,IAAIx/B,EA8B/B,GA7BAw/B,EAAmBxG,gBAAgBnB,EAActkC,IAC7CT,GACA0sC,EAAmB/B,QAAQ1F,EAAmBjlC,EAAKqG,QAAQ,MAAO,MAElE8F,GACAugC,EAAmBC,QAAQ1H,EAAmB94B,EAAK9F,QAAQ,MAAO,MAEtEqmC,EAAmBE,eAAexgC,GAClCsgC,EAAmBG,OAAOvgC,GAC1BogC,EAAmBI,WAAWtgC,GAC9BkgC,EAAmBK,aAAaxgC,GAChCmgC,EAAmBM,UAAU3gC,GAC7BqgC,EAAmBO,aAAahgC,GAC5Bf,GACAwgC,EAAmBQ,aAAahhC,GAEhCugC,GACAC,EAAmBS,2BAA2BV,GAE9CphC,GACAqhC,EAAmBU,eAAenI,EAAmB55B,EAAYhF,QAAQ,MAAO,MAEhFxC,GACA6oC,EAAmBpD,OAAOrE,EAAmBphC,EAAIwC,QAAQ,MAAO,MAGpEqmC,EAAmBW,2BAA2Bb,GAC9CE,EAAmBY,qBAAqBvgC,GACxC2/B,EAAmBa,2BAA2BvgC,GAC1CP,EAAe,CACf,MAAM+gC,EAAuB,IAAItgC,EAAmBugC,aACpDD,EAAqBE,gBAAgBjhC,EAAc1F,OAAS0F,EAAc,GAAGC,cAAgBD,EAAcC,eAC3G8gC,EAAqBG,cAAclhC,EAAc1F,OAAS0F,EAAc,GAAGE,YAAcF,EAAcE,aACvG+/B,EAAmBkB,gBAAgBJ,EACvC,CACA,OAAOrI,EACHuH,EACArY,EAAYnK,SAASrpB,aAAagtC,mBAClC,qBACAhuC,EAAQoK,cACX,EAwSc6jC,CAAwB5tC,EAAOL,GAC1C,IAAK,wBACD,MAtSuB,EAACK,EAAOL,KACvC,MAAMkuC,EAAwB,IAAIzgC,GAC5B,gBAAED,EAAe,cAAE5M,GAAkBP,EAG3C,OAFA6tC,EAAsB7H,gBAAgBnB,EAActkC,IACpDstC,EAAsBC,kBAAkBjJ,EAAc13B,EAAgBhH,QAAQ,MAAO,MAC9E8+B,EACH4I,EACA1Z,EAAYnK,SAASrpB,aAAaotC,sBAClC,wBACApuC,EAAQoK,cACX,EA4RcikC,CAA2BhuC,EAAOL,GAC7C,IAAK,wBACD,MA1RuB,EAACK,EAAOL,KACvC,MAAMsuC,EAAwB,IAAIzgC,GAC5B,aAAED,EAAY,cAAEhN,GAAkBP,EAGxC,OAFAiuC,EAAsBjI,gBAAgBnB,EAActkC,IACpD0tC,EAAsBC,eAAenJ,EAAmBx3B,EAAapH,QAAQ,MAAO,MAC7E8+B,EACHgJ,EACA9Z,EAAYnK,SAASrpB,aAAawtC,sBAClC,wBACAxuC,EAAQoK,cACX,EAgRcqkC,CAA2BpuC,EAAOL,GAC7C,IAAK,uBACD,MA9QsB,EAACK,EAAOL,KACtC,MAAM0uC,EAAuB,IAAIvgC,GAC3B,WAAED,EAAU,cAAEtN,GAAkBP,EAGtC,OAFAquC,EAAqBrI,gBAAgBnB,EAActkC,IACnD8tC,EAAqB5gC,aAAas3B,EAAmBl3B,EAAW1H,QAAQ,MAAO,MACxE8+B,EACHoJ,EACAla,EAAYnK,SAASrpB,aAAa2tC,qBAClC,uBACA3uC,EAAQoK,cACX,EAoQcwkC,CAA0BvuC,EAAOL,GAC5C,IAAK,yBACD,MAnQwB,EAACK,EAAOL,KACxC,MAAM6uC,EAAyB,IAAI7/B,GAC7B,cAAEpO,EAAa,WAAE2E,GAAelF,EAKtC,OAJAwuC,EAAuBxI,gBAAgBnB,EAActkC,IACrD2E,EAAWwH,SAASvH,IAChBqpC,EAAuBC,mBAAmB1U,IAAI50B,EAAUwH,IAAKxH,EAAUnF,MAAM,IAE1EilC,EACHuJ,EACAra,EAAYnK,SAASrpB,aAAa+tC,uBAClC,yBACA/uC,EAAQoK,cACX,EAuPc4kC,CAA4B3uC,EAAOL,GAC9C,IAAK,yBACD,MAtPwB,EAACK,EAAOL,KACxC,MAAMivC,EAAyB,IAAI7/B,GAC7B,cAAExO,EAAa,YAAEuO,GAAgB9O,EAGvC,OAFA4uC,EAAuB5I,gBAAgBnB,EAActkC,IACrDquC,EAAuBC,cAAc//B,GAC9Bm2B,EACH2J,EACAza,EAAYnK,SAASrpB,aAAamuC,uBAClC,yBACAnvC,EAAQoK,cACX,EA4OcglC,CAA4B/uC,EAAOL,GAC9C,IAAK,0BACD,MA3OsB,EAACK,EAAOL,KACtC,MAAMqvC,EAAuB,IAAI7/B,GAC3B,cAAE5O,EAAa,YAAEuO,EAAW,gBAAEI,GAAoBlP,EAIxD,OAHAgvC,EAAqBhJ,gBAAgBnB,EAActkC,IACnDyuC,EAAqBH,cAAc//B,GACnCkgC,EAAqBC,iBAAiB//B,GAC/B+1B,EACH+J,EACA7a,EAAYnK,SAASrpB,aAAauuC,wBAClC,0BACAvvC,EAAQoK,cACX,EAgOcolC,CAA0BnvC,EAAOL,GAC5C,IAAK,yBACD,MA/NwB,EAACK,EAAOL,KACxC,MAAMyvC,EAAyB,IAAIx/B,GAC7B,cAAErP,EAAa,eAAEiP,EAAc,oBAAEC,EAAmB,gBAAEC,EAAe,qBAAEC,GAAyB3P,EAMtG,OALAovC,EAAuBpJ,gBAAgBnB,EAActkC,IACrD6uC,EAAuBC,gBAAgBrK,EAAiBx1B,EAAgB7P,EAAQuT,UAChFk8B,EAAuBE,qBAAqB7/B,GAC5C2/B,EAAuBG,iBAAiBvK,EAAiBt1B,EAAiB/P,EAAQuT,UAClFk8B,EAAuBI,sBAAsB7/B,GACtCs1B,EACHmK,EACAjb,EAAYnK,SAASrpB,aAAa8uC,uBAClC,yBACA9vC,EAAQoK,cACX,EAkNc2lC,CAA4B1vC,EAAOL,GAC9C,IAAK,yBACD,MAjNwB,EAACK,EAAOL,KACxC,MAAMgwC,EAAyB,IAAIp/B,GAC7B,cAAEhQ,EAAa,YAAE8P,EAAW,SAAErL,EAAQ,MAAEsL,GAAUtQ,EAKxD,OAJA2vC,EAAuB3J,gBAAgBnB,EAActkC,IACrDovC,EAAuBC,cAAcv/B,GACrCs/B,EAAuB7I,WAAW9B,EAAiBhgC,EAAUrF,EAAQuT,UACrEy8B,EAAuBE,SAASv/B,GACzB20B,EACH0K,EACAxb,EAAYnK,SAASrpB,aAAamvC,uBAClC,yBACAnwC,EAAQoK,cACX,EAqMcgmC,CAA4B/vC,EAAOL,GAC9C,IAAK,2BACD,MApM0B,EAACK,EAAOL,KAC1C,MAAMqwC,EAA2B,IAAIv/B,GAC/B,cAAElQ,EAAa,YAAE8P,EAAW,SAAErL,EAAQ,MAAEsL,GAAUtQ,EAKxD,OAJAgwC,EAAyBhK,gBAAgBnB,EAActkC,IACvDyvC,EAAyBJ,cAAcv/B,GACvC2/B,EAAyBlJ,WAAW9B,EAAiBhgC,EAAUrF,EAAQuT,UACvE88B,EAAyBH,SAASv/B,GAC3B20B,EACH+K,EACA7b,EAAYnK,SAASrpB,aAAasvC,yBAClC,2BACAtwC,EAAQoK,cACX,EAwLcmmC,CAA8BlwC,EAAOL,GAChD,IAAK,8BACD,MAvL6B,EAACK,EAAOL,KAC7C,MAAMwwC,EAA8B,IAAIp/B,GAClC,cAAExQ,EAAa,YAAE8P,EAAW,SAAErL,EAAQ,MAAEsL,EAAK,SAAEQ,GAAa9Q,EAMlE,OALAmwC,EAA4BnK,gBAAgBnB,EAActkC,IAC1D4vC,EAA4BP,cAAcv/B,GAC1C8/B,EAA4BrJ,WAAW9B,EAAiBhgC,EAAUrF,EAAQuT,UAC1Ei9B,EAA4BN,SAASv/B,GACrC6/B,EAA4BC,YAAYt/B,GACjCm0B,EACHkL,EACAhc,EAAYnK,SAASrpB,aAAa0vC,4BAClC,8BACA1wC,EAAQoK,cACX,EA0KcumC,CAAiCtwC,EAAOL,GACnD,IAAK,wBACD,MAzKuB,EAACK,EAAOL,KACvC,MAAM4wC,EAAwB,IAAIt/B,GAC5B,cAAE1Q,EAAa,iBAAE4H,EAAgB,8BAAET,GAAkC1H,EAI3E,OAHAuwC,EAAsBvK,gBAAgBnB,EAActkC,IACpDgwC,EAAsB7J,mBAAmB7B,EAAc18B,IACvDooC,EAAsBhF,8BAA8B7jC,GAC7Cu9B,EACHsL,EACApc,EAAYnK,SAASrpB,aAAa6vC,sBAClC,wBACA7wC,EAAQoK,cACX,EA8Jc0mC,CAA2BzwC,EAAOL,GAC7C,IAAK,4BACD,MA7J2B,EAACK,EAAOL,KAC3C,MAAM+wC,EAA4B,IAAIv/B,GAChC,cAAE5Q,EAAa,iBAAE4H,EAAgB,oBAAER,GAAwB3H,EAIjE,OAHA0wC,EAA0B1K,gBAAgBnB,EAActkC,IACxDmwC,EAA0BhK,mBAAmB7B,EAAc18B,IAC3DuoC,EAA0BlF,qBAAqB7jC,GACxCs9B,EACHyL,EACAvc,EAAYnK,SAASrpB,aAAagwC,0BAClC,4BACAhxC,EAAQoK,cACX,EAkJc6mC,CAA+B5wC,EAAOL,GACjD,IAAK,kCACD,MAjJiC,EAACK,EAAOL,KACjD,MAAMkxC,EAAkC,IAAIn+B,GACtC,cAAEnS,EAAa,MAAE4R,EAAK,QAAEE,EAAO,QAAEI,GAAYzS,EACnD6wC,EAAgC7K,gBAAgBnB,EAActkC,IAC9D,MAKMuwC,EAAmB1wC,IAErB,MAAMqkB,EAAa,IAAIggB,GACjB,KAAE1kC,EAAI,GAAEugB,EAAE,gBAAEhP,EAAe,UAAEC,EAAS,SAAEw/B,EAAQ,WAAEr/B,EAAU,KAAEF,GAASpR,EAqB7E,OApBAqkB,EAAW8gB,QATC,CAACxlC,GAET6M,MAAM7M,GAAuB,WAATA,EAAoB,EAAa,YAATA,EAAqB,EAAI,EAClEA,EAMYixC,CAAQjxC,IAC3B0kB,EAAWwsB,MAAM3wB,GACjBmE,EAAWysB,kBAAkB5/B,GAC7BmT,EAAW0sB,aAAa5/B,GACpBw/B,GACAtsB,EAAW2sB,YAAYL,GAEvBr/B,GACA+S,EAAW4sB,cAActM,EAAmBrzB,IAE5CF,GACAiT,EAAW6sB,YACP9/B,EAAKlN,KAAKqI,IACN,MAAM4kC,EAAa,IAAI7M,EAGvB,OAFA6M,EAAWjoB,WAAWub,EAAcl4B,EAAItK,UACxCkvC,EAAWC,UAAU7kC,EAAI8E,QAClB8/B,CAAU,KAItB9sB,CAAU,EAerB,OAbItS,GACA0+B,EAAgCY,SAASX,EAAgB3+B,IAEzDE,GACAw+B,EAAgCa,WAAWZ,EAAgBz+B,IAE3DI,IACIV,MAAMrM,QAAQ+M,GACdo+B,EAAgCc,eAAel/B,EAAQnO,KAAKstC,GAAWd,EAAgBc,MAEvFf,EAAgCc,eAAe,CAACb,EAAgBr+B,MAGjEwyB,EACH4L,EACA1c,EAAYnK,SAASrpB,aAAakxC,gCAClC,kCACAlyC,EAAQoK,cACX,EA4Fc+nC,CAAqC9xC,EAAOL,GACvD,IAAK,sBACD,MA3FqB,EAACK,EAAOL,KACrC,MAAMoyC,EAAsB,IAAI7jC,GAC1B,cAAE3N,EAAa,YAAE4K,EAAW,IAAExH,EAAG,UAAEqK,EAAS,iBAAEC,GAAqBjO,EAczE,OAbA+xC,EAAoB/L,gBAAgBnB,EAActkC,IAC9C4K,GACA4mC,EAAoB7E,eAAenI,EAAmB55B,EAAYhF,QAAQ,MAAO,MAEjFxC,GACAouC,EAAoB3I,OAAOrE,EAAmBphC,EAAIwC,QAAQ,MAAO,MAEjE6H,GACA+jC,EAAoBC,YAAYhkC,GAEhCC,GACA8jC,EAAoBE,kBAAkBhkC,GAEnCg3B,EACH8M,EACA5d,EAAYnK,SAASrpB,aAAauxC,oBAClC,sBACAvyC,EAAQoK,cACX,EAsEcooC,CAAyBnyC,EAAOL,GAC/C,EAGE2U,EAAchL,IAChB,MAAM8oC,EAAU9oC,EAAsB,SAChC+oC,EAAeD,EAAQtqC,SAAS,GAChC1H,EAAOiyC,EAAaltC,UAAUnF,MAC9BL,EAAU,CAAEoK,cAAesoC,EAAatoC,cAAemJ,QAAS5J,EAAY4J,SAC5Eo/B,EAAiBzM,EAAuBwM,EAAcjyC,EAAMT,GAE5D4yC,EAAaD,EAAeje,aAqBlC,OApBAke,EAAWC,iBAAiBzN,EAAmBqN,EAAQv/B,kBACvD0/B,EAAWE,gBAAgB1N,EAAmBqN,EAAQt/B,iBAClDs/B,EAAQhyC,MACRmyC,EAAW3L,QAAQ7B,EAAmBqN,EAAQhyC,OAG9CgyC,EAAQ5qC,WACR+qC,EAAWG,YAAYN,EAAQ5qC,WAG/B4qC,EAAQr/B,YACRw/B,EAAWI,cAAcP,EAAQr/B,YAGjCq/B,EAAQp/B,WACRu/B,EAAWK,aAAaR,EAAQp/B,WAGpCs/B,EAAe1M,WAAW2M,GAEnBD,CAAc,EAkEhB,EAAAh+B,WAAAA,EA/DT,MAAMu+B,EAAqB,CAACvpC,EAAa/B,EAAY,CAAC,EAAG5H,EAAe,CAAC,KACrE,MAAMyyC,EAAU9oC,EAAsB,SAChC+oC,EAAeD,EAAQtqC,SAAS,GAEhCwqC,EAAiBzM,EAAuBwM,EAAc9qC,EAAM,CAC9DwC,cAAexC,GAAMwC,gBAGnBwoC,EAAaD,EAAeje,aAsBlC,OArBAke,EAAWC,iBAAiBzN,EAAmBqN,EAAQv/B,kBACvD0/B,EAAWE,gBAAgB1N,EAAmBqN,EAAQt/B,iBAElDnT,EAAQS,MACRmyC,EAAW3L,QAAQ7B,EAAmBplC,EAAQS,KAAK+F,QAAQ,MAAO,OAGlExG,EAAQ6H,WAAaD,EAAKC,YAC1B+qC,EAAWG,YAAY/yC,EAAQ6H,WAAaD,EAAKC,WAGjD4qC,EAAQr/B,YACRw/B,EAAWI,cAAcP,EAAQr/B,YAGjCq/B,EAAQp/B,WACRu/B,EAAWK,aAAaR,EAAQp/B,WAGpCs/B,EAAe1M,WAAW2M,GAEnBD,CAAc,EAiC0B,EAAAO,mBAAAA,EA9BnD,MAAMC,EAAqB,CAACxpC,EAAaypC,KACrC,MAAMC,EAAeD,EAAc1e,aAAaC,kBAC1C2e,GAAa,IAAAtlB,kBAAiBqlB,GAC9B3qC,GAAO,IAAA2tB,QAAOgd,GACpB,OACIC,EAAWltC,gBAAkBuD,EAAY2K,aAAalO,eACtDsC,EAAKlC,QAAQ,MAAO,IAAIJ,gBAAkBuD,EAAYjB,KAAKlC,QAAQ,MAAO,IAAIJ,aACjF,EAuB4B,EAAAyO,iBApBPH,IACf,IAAAsZ,kBAAiBtZ,EAAGggB,aAAaC,mBAmB4C,EAAAhS,QAhBvEhZ,IACb,MAAMypC,EAAgBz+B,EAAWhL,GACjC,OAAOwpC,EAAmBxpC,EAAaypC,EAAc,EAcc,EAAAh/B,gBAX/C,CAACzK,EAAa/B,EAAM5H,KACxC,MAAMozC,EAAgBF,EAAmBvpC,EAAa/B,EAAM5H,GAC5D,OAAOmzC,EAAmBxpC,EAAaypC,EAAc,EASpC,EAAAx+B,WANDw+B,IAChB,MAAMC,EAAeD,EAAc1e,aAAaC,kBAEhD,OADa,IAAA0B,QAAOgd,EACT,C,yGCnTf,2BACIxvB,EACA9c,EACA1G,EACAiT,GAEA,OAAO,IAAAiQ,gBAAe2Q,EAAiBnQ,KAAKF,EAAQ9c,EAAO1G,GAAQiT,EACvE,EA/qBA,gBACA,UAmBA,UASM2X,EAAU,IAAI5H,WAAW,IAC/B4H,EAAQsoB,KAAK,GAEb,MAAMC,EAAQC,QAAQ,GAChBC,EAAOD,OAAO,GACdE,EAAOF,OAAO,GACdG,EAAiBH,OAAO,sEA0DxBI,GAAU,IAAAlQ,SAAQgQ,EAAM,IACxBG,GAAW,IAAAnQ,SAAQ+P,EAAM,IAEzBK,EAA2C,CAC7C5zC,KAAM,SACN4c,QAAS,SACTi3B,QAAS,UACTC,kBAAmB,UACnBC,KAAM,WAGJC,EAAkC,CAAC,OAAQ,UAAW,UAAW,oBAAqB,QAE5F,SAASC,EAAYpnC,GACjB,OAAO,SAAU3M,GAEb,OADA,IAAA+6B,gBAAgC,iBAAV/6B,EAAoB,4BAA4BsF,KAAKsC,UAAU+E,KAAQ,UAAUA,IAAO3M,GACvGA,CACX,CACJ,CAEA,MAAMg0C,EAAoD,CACtDl0C,KAAMi0C,EAAY,QAClBr3B,QAASq3B,EAAY,WACrBJ,QAAS,SAAUM,GACf,MAAMj0C,GAAQ,IAAA26B,WAAUsZ,EAAQ,kBAEhC,OADA,IAAAlZ,gBAAe/6B,GAAS,EAAG,mBAAoB,iBAAkBi0C,GAC7DhwB,OAAOiwB,cAAcl0C,GACdikB,OAAOjkB,IAEX,IAAAm0C,YAAWn0C,EACtB,EACA4zC,kBAAmB,SAAU5zC,GACzB,IACI,OArGYqC,EAqGUrC,EApGvB,EAAAf,QAAQoD,QAAQ/B,MAAM+B,IAoGQ0D,aACjC,CAAE,MAAO+Q,GAET,CAxGR,IAAwBzU,GAyGhB,IAAA04B,iBAAe,EAAO,2CAA4C,2BAA4B/6B,EAClG,EACA6zC,KAAM,SAAU7zC,GACZ,MAAM0vB,GAAQ,IAAA+G,UAASz2B,EAAO,eAE9B,OADA,IAAA+6B,gBAAgC,KAAjBrL,EAAM7oB,OAAe,8BAA+B,cAAe7G,IAC3E,IAAAsiC,SAAQ5S,EACnB,GAGJ,SAAS0kB,EAAer0C,GAEpB,CACI,MAAMmH,EAAQnH,EAAKmH,MAAM,kBACzB,GAAIA,EAAO,CACP,MAAMmtC,EAAsB,KAAbntC,EAAM,GAEfotC,EAAQ10C,SAASsH,EAAM,IAAM,QACnC,IAAA6zB,gBACIuZ,EAAQ,GAAM,GAAe,IAAVA,GAAeA,GAAS,MAAoB,MAAZptC,EAAM,IAAcA,EAAM,KAAOlF,OAAOsyC,IAC3F,wBACA,OACAv0C,GAGJ,MAAMw0C,GAAc,IAAAC,MAAKjB,EAAgBc,EAASC,EAAQ,EAAIA,GACxDG,EAAcJ,GAAUE,EAAcjB,GAAQH,EAAQE,EAE5D,OAAO,SAAUY,GACb,MAAMj0C,GAAQ,IAAA26B,WAAUsZ,EAAQ,SAIhC,OAFA,IAAAlZ,gBAAe/6B,GAASy0C,GAAez0C,GAASu0C,EAAa,2BAA2Bx0C,IAAQ,QAASC,IAElG,IAAAsjC,SAAQ+Q,GAAS,IAAAK,QAAO10C,EAAO,KAAOA,EAAO,GACxD,CACJ,CACJ,CAGA,CACI,MAAMkH,EAAQnH,EAAKmH,MAAM,gBACzB,GAAIA,EAAO,CACP,MAAMotC,EAAQ10C,SAASsH,EAAM,IAG7B,OAFA,IAAA6zB,gBAAyB,IAAVuZ,GAAeA,GAAS,IAAMptC,EAAM,KAAOlF,OAAOsyC,GAAQ,sBAAuB,OAAQv0C,GAEjG,SAAUC,GACb,MAAM0vB,GAAQ,IAAA+G,UAASz2B,GAEvB,OADA,IAAA+6B,gBAAerL,EAAM7oB,SAAWytC,EAAO,sBAAsBv0C,IAAQ,QAASC,GA5F9F,SAAqBA,GACjB,MAAM0vB,GAAQ,IAAA+G,UAASz2B,GACjB20C,EAAYjlB,EAAM7oB,OAAS,GACjC,OAAI8tC,GACO,IAAA1f,QAAO,CAACvF,EAAO9E,EAAQhd,MAAM+mC,MAEjC,IAAArS,SAAQ5S,EACnB,CAsFuBklB,CAAY50C,EACvB,CACJ,CACJ,CAEA,OAAQD,GACJ,IAAK,WACD,OAAOq0C,EAAe,WAC1B,IAAK,UACD,OAAO,SAAUp0C,GACb,OAAO,IAAAujC,eArKHlhC,EAqK2BrC,EApKpC,EAAAf,QAAQoD,QAAQ/B,MAAM+B,GAAS8D,QAAQ,EAAAc,qBAAsB,OAoKjB,IArKvD,IAAoB5E,CAsKR,EACJ,IAAK,OACD,OAAO,SAAUrC,GACb,OAAQA,EAAmBwzC,EAAXC,CACpB,EACJ,IAAK,QACD,OAAO,SAAUzzC,GACb,OAAO,IAAAiK,WAAUjK,EACrB,EACJ,IAAK,SACD,OAAO,SAAUA,GACb,OAAO,IAAAsgB,IAAGtgB,EACd,EAGR,OAAO,IACX,CAEA,SAAS60C,EAAW/0C,EAAcg1C,GAC9B,MAAO,GAAGh1C,KAAQg1C,EAAOxwC,KAAI,EAAGxE,OAAMC,UAAWA,EAAO,IAAMD,IAAMokB,KAAK,OAC7E,CAUA,MAAa2P,EASAkhB,YAEA,GAKT,SAAIruC,GACA,OAAOpB,KAAKC,MAAMpG,MAAK,EAC3B,CAES,GAEA,GAST,WAAAH,CAAY0H,GACRvH,MAAK,EAASmG,KAAKsC,UAAUlB,GAC7BvH,MAAK,EAAa,IAAI0gC,IACtB1gC,MAAK,EAAgB,IAAI0gC,IAGzB,MAAMmV,EAAkC,IAAInV,IAGtCoV,EAAsC,IAAIpV,IAG1CqV,EAAqC,IAAIrV,IAE/C37B,OAAOsN,KAAK9K,GAAOgG,SAAS3M,IACxBi1C,EAAMjb,IAAIh6B,EAAM,IAAIq3B,KACpB6d,EAAQlb,IAAIh6B,EAAM,IAClBm1C,EAASnb,IAAIh6B,EAAM,IAAIq3B,IAAM,IAGjC,IAAK,MAAMt3B,KAAQ4G,EAAO,CACtB,MAAMyuC,EAA2B,IAAI/d,IAErC,IAAK,MAAMge,KAAS1uC,EAAM5G,GAAO,EAE7B,IAAAi7B,iBACKoa,EAAY1hC,IAAI2hC,EAAMt1C,MACvB,2BAA2BwF,KAAKsC,UAAUwtC,EAAMt1C,YAAYwF,KAAKsC,UAAU9H,KAC3E,QACA4G,GAEJyuC,EAAY9d,IAAI+d,EAAMt1C,MAGtB,MAAM67B,EAAiByZ,EAAMr1C,KAAKmH,MAAM,uBAAwB,IAAM,MACtE,IAAA6zB,gBAAeY,IAAa77B,EAAM,8BAA8BwF,KAAKsC,UAAU+zB,KAAa,QAASj1B,GAGrF0tC,EAAezY,MAK/B,IAAAZ,gBAAeka,EAAQxhC,IAAIkoB,GAAW,gBAAgBr2B,KAAKsC,UAAU+zB,KAAa,QAASj1B,GAG1FuuC,EAAQjU,IAAIrF,GAA4Bv0B,KAAKtH,GAC7Ck1C,EAAMhU,IAAIlhC,GAAsBu3B,IAAIsE,GACzC,CACJ,CAGA,MAAM0Z,EAAetjC,MAAMvS,KAAKy1C,EAAQzjC,QAAQ8jC,QAAQxkB,GAAmD,IAA5CmkB,EAAQjU,IAAIlQ,GAAqBjqB,UAChG,IAAAk0B,gBAAuC,IAAxBsa,EAAaxuC,OAAc,uBAAwB,QAASH,IAC3E,IAAAq0B,gBAC4B,IAAxBsa,EAAaxuC,OACb,4CAA4CwuC,EAAa/wC,KAAK4hB,GAAM5gB,KAAKsC,UAAUse,KAAIhC,KAAK,QAC5F,QACAxd,IAGJ,IAAAw1B,kBAAmC/8B,KAAM,CAAE41C,YAAaM,EAAa,KAGrE,SAASE,EAAcx1C,EAAcy1C,IACjC,IAAAza,iBAAgBya,EAAM/hC,IAAI1T,GAAO,8BAA8BuF,KAAKsC,UAAU7H,KAAS,QAAS2G,GAEhG8uC,EAAMne,IAAIt3B,GAEV,IAAK,MAAM01C,KAAST,EAAMhU,IAAIjhC,GAC1B,GAAKk1C,EAAQxhC,IAAIgiC,GAAjB,CAKAF,EAAcE,EAAOD,GAGrB,IAAK,MAAME,KAAWF,EACjBN,EAASlU,IAAI0U,GAAyBre,IAAIoe,EAP/C,CAWJD,EAAMG,OAAO51C,EACjB,CACAw1C,CAAcp2C,KAAK41C,YAAa,IAAI3d,KAGpC,IAAK,MAAOt3B,EAAMi6B,KAAQmb,EAAU,CAChC,MAAM7jB,EAAKtf,MAAMvS,KAAKu6B,GACtB1I,EAAGrR,OACH7gB,MAAK,EAAW46B,IAAIj6B,EAAM+0C,EAAW/0C,EAAM4G,EAAM5G,IAASuxB,EAAG/sB,KAAK4hB,GAAM2uB,EAAW3uB,EAAGxf,EAAMwf,MAAKhC,KAAK,IAC1G,CACJ,CAKA,UAAA0xB,CAAW71C,GACP,IAAI81C,EAAU12C,MAAK,EAAc6hC,IAAIjhC,GAKrC,OAJK81C,IACDA,EAAU12C,MAAK,EAAYY,GAC3BZ,MAAK,EAAc46B,IAAIh6B,EAAM81C,IAE1BA,CACX,CAEA,GAAY91C,GAER,CACI,MAAM81C,EAAUzB,EAAer0C,GAC/B,GAAI81C,EACA,OAAOA,CAEf,CAGA,MAAM3uC,EAAQnH,EAAKmH,MAAM,yBACzB,GAAIA,EAAO,CACP,MAAMwuC,EAAUxuC,EAAM,GAChB4uC,EAAa32C,KAAKy2C,WAAWF,GACnC,OAAQ11C,KACJ,IAAA+6B,iBACK7zB,EAAM,IAAMtH,SAASsH,EAAM,MAAQlH,EAAM6G,OAC1C,0CAA0CjH,SAASsH,EAAM,MACzD,QACAlH,GAGJ,IAAIwJ,EAASxJ,EAAMsE,IAAIwxC,GAKvB,OAJI32C,MAAK,EAAWsU,IAAIiiC,KACpBlsC,EAASA,EAAOlF,IAAI,EAAA2F,aAGjB,IAAAA,YAAU,IAAAgrB,QAAOzrB,GAAQ,CAExC,CAGA,MAAMsrC,EAAS31C,KAAKuH,MAAM3G,GAC1B,GAAI+0C,EAAQ,CACR,MAAMiB,GAAc,IAAAz1B,IAAGnhB,MAAK,EAAW6hC,IAAIjhC,IAC3C,OAAQC,IACJ,MAAM2G,EAASmuC,EAAOxwC,KAAI,EAAGxE,OAAMC,WAC/B,MAAMyJ,EAASrK,KAAKy2C,WAAW71C,EAAhBZ,CAAsBa,EAAMF,IAC3C,OAAIX,MAAK,EAAWsU,IAAI1T,IACb,IAAAkK,WAAUT,GAEdA,CAAM,IAGjB,OADA7C,EAAOqvC,QAAQD,IACR,IAAA9gB,QAAOtuB,EAAO,CAE7B,EAEA,IAAAo0B,iBAAe,EAAO,iBAAiBh7B,IAAQ,OAAQA,EAC3D,CAKA,UAAA80C,CAAW/0C,GACP,MAAM0J,EAASrK,MAAK,EAAW6hC,IAAIlhC,GAEnC,OADA,IAAAi7B,gBAAevxB,EAAQ,iBAAiBlE,KAAKsC,UAAU9H,KAAS,OAAQA,GACjE0J,CACX,CAKA,UAAAysC,CAAWl2C,EAAcC,GACrB,OAAOb,KAAKy2C,WAAW71C,EAAhBZ,CAAsBa,EACjC,CAKA,UAAAk2C,CAAWp2C,EAAcE,GACrB,OAAO,IAAAiK,WAAU9K,KAAK82C,WAAWn2C,EAAME,GAC3C,CAKA,MAAAqH,CAAOrH,GACH,OAAOb,KAAK82C,WAAW92C,KAAK41C,YAAa/0C,EAC7C,CAKA,IAAA0jB,CAAK1jB,GACD,OAAOb,KAAK+2C,WAAW/2C,KAAK41C,YAAa/0C,EAC7C,CAKA,MAAAm2C,CAAOp2C,EAAcC,EAAYohC,GAIzB,GADgBgT,EAAer0C,GAE3B,OAAOqhC,EAASrhC,EAAMC,GAK9B,MAAMkH,EAAQnH,EAAKmH,MAAM,yBACzB,GAAIA,EAOA,OANA,IAAA6zB,iBACK7zB,EAAM,IAAMtH,SAASsH,EAAM,MAAQlH,EAAM6G,OAC1C,0CAA0CjH,SAASsH,EAAM,MACzD,QACAlH,GAEGA,EAAMsE,KAAK0C,GAAW7H,KAAKg3C,OAAOjvC,EAAM,GAAIF,EAAGo6B,KAI1D,MAAM0T,EAAS31C,KAAKuH,MAAM3G,GAC1B,GAAI+0C,EACA,OAAOA,EAAO3zB,QAAO,CAACi1B,GAASt2C,OAAMC,WACjCq2C,EAAMt2C,GAAQX,KAAKg3C,OAAOp2C,EAAMC,EAAMF,GAAOshC,GACtCgV,IACa,CAAC,IAG7B,IAAArb,iBAAe,EAAO,iBAAiBh7B,IAAQ,OAAQA,EAC3D,CASA,KAAAs2C,CAAMr2C,EAA4BohC,GAC9B,OAAOjiC,KAAKg3C,OAAOh3C,KAAK41C,YAAa/0C,EAAOohC,EAChD,CAKA,WAAO5hC,CAAKkH,GACR,OAAO,IAAImtB,EAAiBntB,EAChC,CAKA,qBAAO4vC,CAAe5vC,GAClB,OAAOmtB,EAAiBr0B,KAAKkH,GAAOquC,WACxC,CAKA,iBAAOmB,CAAWp2C,EAAc4G,EAA8C1G,GAC1E,OAAO6zB,EAAiBr0B,KAAKkH,GAAOwvC,WAAWp2C,EAAME,EACzD,CAKA,iBAAOu2C,CAAW/yB,GACd,MAAMgzB,EAAsC,GAC5C,IAAK,MAAM12C,KAAQ0jB,EAAQ,CACvB,GAA2C,MAAjBA,EAAQ1jB,GAC9B,SAEJ,MAAMC,EAAO2zC,EAAiB5zC,IAC9B,IAAAi7B,gBAAeh7B,EAAM,kCAAkCuF,KAAKsC,UAAU9H,KAAS,SAAU0jB,GACzFgzB,EAAapvC,KAAK,CAAEtH,OAAMC,QAC9B,CAMA,OAJAy2C,EAAax2B,MAAK,CAACC,EAAGC,IACX4zB,EAAiBnvB,QAAQ1E,EAAEngB,MAAQg0C,EAAiBnvB,QAAQzE,EAAEpgB,QAGlE+zB,EAAiBqiB,WAAW,eAAgB,CAAEO,aAAcD,GAAgBhzB,EACvF,CAKA,aAAOnc,CAAOmc,EAAyB9c,EAA8C1G,GACjF,OAAO,IAAAi1B,QAAO,CAAC,SAAUpB,EAAiB0iB,WAAW/yB,GAASqQ,EAAiBr0B,KAAKkH,GAAOgd,KAAK1jB,IACpG,CAKA,WAAO0jB,CAAKF,EAAyB9c,EAA8C1G,GAC/E,OAAO,IAAAiK,WAAU4pB,EAAiBxsB,OAAOmc,EAAQ9c,EAAO1G,GAC5D,CAOA,yBAAa02C,CACTlzB,EACA9c,EACA1G,EACA22C,GAGAnzB,EAAStf,OAAO8F,OAAO,CAAC,EAAGwZ,GAG3B,IAAK,MAAM7W,KAAO6W,EAC4B,MAAhBA,EAAQ7W,WACD6W,EAAQ7W,GAK7C,MAAMiqC,EAAmC,CAAC,EAGtCpzB,EAAOowB,qBAAsB,IAAAtT,aAAY9c,EAAOowB,kBAAmB,MACnEgD,EAASpzB,EAAOowB,mBAAqB,MAIzC,MAAMiC,EAAUhiB,EAAiBr0B,KAAKkH,GAGtCmvC,EAAQQ,MAAMr2C,GAAO,CAACD,EAAcC,KACnB,YAATD,IAAuB,IAAAugC,aAAYtgC,EAAO,MAC1C42C,EAAS52C,GAAS,MAEfA,KAIX,IAAK,MAAMF,KAAQ82C,EACfA,EAAS92C,SAAc62C,EAAY72C,GAgBvC,OAZI0jB,EAAOowB,mBAAqBgD,EAASpzB,EAAOowB,qBAC5CpwB,EAAOowB,kBAAoBgD,EAASpzB,EAAOowB,oBAWxC,CAAEpwB,SAAQxjB,MAPjBA,EAAQ61C,EAAQQ,MAAMr2C,GAAO,CAACD,EAAcC,IAC3B,YAATD,GAAsB62C,EAAS52C,GACxB42C,EAAS52C,GAEbA,IAIf,CAMA,iBAAO62C,CAAWrzB,EAAyB9c,EAA8C1G,GAErF6zB,EAAiB0iB,WAAW/yB,GAG5B,MAAMszB,EAAoC,CAAC,EACrCC,EAAqD,GAE3DjD,EAAiBpnC,SAAS5M,IACtB,MAAME,EAAcwjB,EAAQ1jB,GACf,MAATE,IAGJ82C,EAAah3C,GAAQk0C,EAAal0C,GAAME,GACxC+2C,EAAY3vC,KAAK,CAAEtH,OAAMC,KAAM2zC,EAAiB5zC,KAAQ,IAG5D,MAAM+1C,EAAUhiB,EAAiBr0B,KAAKkH,GAEhCswC,EAAkB9yC,OAAO8F,OAAO,CAAC,EAAGtD,GAa1C,OAZA,IAAAq0B,gBACoC,MAAhCic,EAAgBP,aAChB,2CACA,qBACA/vC,GAGJswC,EAAgBP,aAAeM,EAG/BlB,EAAQxuC,OAAOrH,GAER,CACH0G,MAAOswC,EACPxzB,OAAQszB,EACR/B,YAAac,EAAQd,YACrBtrC,QAASosC,EAAQQ,MAAMr2C,GAAO,CAACD,EAAcC,KAEzC,GAAID,EAAKmH,MAAM,eACX,OAAO,IAAAo7B,UAAQ,IAAA7L,UAASz2B,IAI5B,GAAID,EAAKmH,MAAM,UACX,OAAO,IAAAyzB,WAAU36B,GAAOmK,WAG5B,OAAQpK,GACJ,IAAK,WACD,OAAO,IAAA46B,WAAU36B,GAAOmK,WAC5B,IAAK,UACD,OAAOnK,EAAM+F,cACjB,IAAK,OACD,QAAS/F,EACb,IAAK,SAED,OADA,IAAA+6B,gBAAgC,iBAAV/6B,EAAoB,iBAAkB,QAASA,GAC9DA,GAGf,IAAA+6B,iBAAe,EAAO,mBAAoB,OAAQh7B,EAAK,IAGnE,EAxcJ,oB,+EClNA,sBAA2B4D,GACvB,MAAmB,iBAARA,GACJ,UAAUszC,MAAMtzC,EAAIwG,WAAY,CACnC+sC,UAAW,CAAC,OAAQ,SACpBC,aAAa,GAErB,EAEA,aAIA,YAIA,kBAAuB/sB,GACnB,IACI,QAAS9kB,KAAKC,MAAM6kB,EACxB,CAAE,MAAO9iB,GACL,OAAO,CACX,CACJ,EAEA,qBAA0B8vC,GACtB,MAAuB,kBAATA,CAClB,EAEA,uBAA4BriC,GACxB,QAASA,IAAWA,aAAkB,EAAAyS,WAAczS,EAAO/V,aAA2C,cAA5B+V,EAAO/V,YAAYc,KACjG,EAEA,oBAAyBsqB,GACrB,MAAyB,iBAAXA,KAA0BA,GAAUA,EAAOprB,aAA2C,WAA5BorB,EAAOprB,YAAYc,IAC/F,EAEA,sBAA2B6X,GACvB,MAAsB,mBAARA,CAClB,EAEA,iBAAsByS,GAClB,MAAyB,iBAAXA,IAAwBxd,MAAMhN,SAASwqB,EAAQ,MAAQ,sBAAsBjjB,KAAKijB,EACpG,EAEA,qBAA0BrV,GACtB,OAAe,OAAXA,GACGkP,OAAOlZ,UAAUkZ,OAAOlP,GACnC,EAEA,gBAIA,yBAA8B4C,KAAgB0/B,GAC1C,OACIA,EAAWxwC,SACVwwC,EACI/yC,KAAKoR,GACKD,EAAYkC,EAAKjC,KAE3BwB,UAAS,EAEtB,EAEA,oBAAyBuQ,GACrB,MAAMrnB,EAA8B,CAChCye,MAAO4I,EAAMzM,aACbhI,UAAWyU,EAAM6vB,gBACjBxvC,SAAU2f,EAAMtf,iBAChBrI,KAAM2nB,EAAM1M,WACZzR,YAAame,EAAM8vB,eACnB/tC,OAAQie,EAAMje,OACdguC,aAAc/vB,EAAMgwB,gBAAkBhwB,EAAMiwB,aAAe,WAAa,iBAQ5E,OANIjwB,EAAMiwB,eACNt3C,EAAKu3C,YAAclwB,EAAMiwB,cAEzBjwB,EAAMmwB,eACNx3C,EAAKua,YAAc8M,EAAMmwB,cAEtBx3C,CACX,EAEA,sBAA2BqnB,GAA6B7gB,OAAQ3B,IAC5D,IAAKwiB,EAAMje,OAAQ,OAAOie,EAE1B,GAAI/Y,EAAS+Y,EAAMje,QACf,IAAK,IAAI1C,EAAI,EAAGA,EAAI7B,EAAI4B,OAAQC,IAAK,CACjC,MAAM6Q,EAAM1S,EAAI6B,GACA,WAAZ6Q,EAAI5X,MAAqB4X,EAAI7X,QAAQ2nB,EAAMje,SAC3Cie,EAAMje,OAAOmO,EAAI7X,MAAQ,EAAAsjB,eAAkBqE,EAAMje,OAAOmO,EAAI7X,MAAiBujB,OAAO,GAAGtd,cAC/F,MACOL,EAAQ+hB,EAAMje,UACrBie,EAAMje,OAAUie,EAAMje,OAAoB2X,QAA+B,CAACxJ,EAAKnO,EAAQ8O,KACnF,MAAM,KAAExY,EAAI,KAAEC,GAASkF,EAAIqT,GAM3B,MAJY,WAARvY,IAAmByJ,EAAS,EAAA4Z,eAAiB5Z,EAAO6Z,OAAO,GAAGtd,eAElE4R,EAAI7X,GAAQ0J,EAELmO,CAAG,GACX,CAAC,IAGR,OAAO8P,CACX,EAEA,mBAAwBre,EAAwBwhB,EAAiBrrB,GAC7D,IAAI6T,EAAMhK,EAAMe,WAEhB,KAAOiJ,EAAIvM,OAAStH,GAAQ6T,EAAMwX,EAAUxX,EAE5C,OAAOA,CACX,EAEA,gCAAqCkX,GACjC,OAAOA,OACX,EAEA,QAAOtW,eAAqB6jC,EAAS,KACjC,OAAO,IAAI3+B,SAAS4+B,GAAY1+B,WAAW0+B,EAASD,IACxD,E,gBAjIA,UACA,6BACA,UAcA,SAAgBnpC,EAASiJ,GACrB,OAAOA,IAAQzT,OAAOyT,IAAgD,mBAAxCzT,OAAO6zC,UAAU5tC,SAAS+N,KAAKP,EACjE,CAEA,SAAgBjS,EAAQmsB,GACpB,OAAO9f,MAAMrM,QAAQmsB,EACzB,CAmCA,SAAgBpc,EAAYkC,EAAajC,GACrC,OAAOxR,OAAO6zC,UAAUpiC,eAAeuC,KAAKP,EAAKjC,EACrD,C,wBC3DAsiC,EAAOC,QAAUC,QAAQ,4B,wBCAzBF,EAAOC,QAAUC,QAAQ,sD,wBCAzBF,EAAOC,QAAUC,QAAQ,Q,wBCAzBF,EAAOC,QAAUC,QAAQ,e,wBCAzBF,EAAOC,QAAUC,QAAQ,kC,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,gB,wBCAzBF,EAAOC,QAAUC,QAAQ,S,wBCAzBF,EAAOC,QAAUC,QAAQ,Q,wBCAzBF,EAAOC,QAAUC,QAAQ,Y,iBCazB,IAAIC,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEEC,EAAyB,EAAQ,MACrCL,EAAKM,OAAOC,OAAO1kB,MAAOwkB,GAC1BL,EAAKQ,aAAa,uBAAwB,KAAMP,GAChDD,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,8BAA+B,KAAMP,GACvDD,EAAKQ,aAAa,yBAA0B,KAAMP,GAClDD,EAAKQ,aAAa,2BAA4B,KAAMP,GACpDD,EAAKQ,aAAa,iCAAkC,KAAMP,GAC1DD,EAAKQ,aAAa,wBAAyB,KAAMP,GACjDD,EAAKQ,aAAa,mBAAoB,KAAMP,GAC5CD,EAAKQ,aAAa,iCAAkC,KAAMP,GAC1DD,EAAKQ,aAAa,0BAA2B,KAAMP,GACnDD,EAAKQ,aAAa,yCAA0C,KAAMP,GAClED,EAAKQ,aAAa,wBAAyB,KAAMP,GACjDD,EAAKQ,aAAa,8BAA+B,KAAMP,GACvDD,EAAKQ,aAAa,2BAA4B,KAAMP,GACpDD,EAAKQ,aAAa,oCAAqC,KAAMP,GAC7DD,EAAKQ,aAAa,iDAAkD,KAAMP,GAC1ED,EAAKQ,aAAa,kCAAmC,KAAMP,GAC3DD,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,iDAAkD,KAAMP,GAC1ED,EAAKQ,aAAa,+BAAgC,KAAMP,GACxDD,EAAKQ,aAAa,oBAAqB,KAAMP,GAC7CD,EAAKQ,aAAa,qBAAsB,KAAMP,GAC9CD,EAAKQ,aAAa,uBAAwB,KAAMP,GAChDD,EAAKQ,aAAa,yBAA0B,KAAMP,GAWlD1T,aAAakU,UAAY,SAASC,GAChCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAakU,UAAWV,EAAKY,SACvCX,EAAKc,QAAUC,WAKjBxU,aAAakU,UAAUO,YAAc,0BAYvCzU,aAAa8E,KAAO,SAASqP,GAC3BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa8E,KAAM0O,EAAKY,SAClCX,EAAKc,QAAUC,WAKjBxU,aAAa8E,KAAK2P,YAAc,qBAYlCzU,aAAa0U,SAAW,SAASP,GAC/BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAa0U,SAASC,gBAAiB,KACxF,EACAlB,EAAKa,SAAStU,aAAa0U,SAAUlB,EAAKY,SACtCX,EAAKc,QAAUC,WAKjBxU,aAAa0U,SAASD,YAAc,yBAYtCzU,aAAa4U,SAAW,SAAST,GAC/BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa4U,SAAUpB,EAAKY,SACtCX,EAAKc,QAAUC,WAKjBxU,aAAa4U,SAASH,YAAc,yBAYtCzU,aAAa6U,QAAU,SAASV,GAC9BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAa6U,QAAQF,gBAAiB,KACvF,EACAlB,EAAKa,SAAStU,aAAa6U,QAASrB,EAAKY,SACrCX,EAAKc,QAAUC,WAKjBxU,aAAa6U,QAAQJ,YAAc,wBAYrCzU,aAAa6U,QAAQC,OAAS,SAASX,GACrCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa6U,QAAQC,OAAQtB,EAAKY,SAC5CX,EAAKc,QAAUC,WAKjBxU,aAAa6U,QAAQC,OAAOL,YAAc,+BAY5CzU,aAAa6U,QAAQE,gBAAkB,SAASZ,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa6U,QAAQE,gBAAiBvB,EAAKY,SACrDX,EAAKc,QAAUC,WAKjBxU,aAAa6U,QAAQE,gBAAgBN,YAAc,wCAYrDzU,aAAaD,IAAM,SAASoU,GAC1BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaD,IAAKyT,EAAKY,SACjCX,EAAKc,QAAUC,WAKjBxU,aAAaD,IAAI0U,YAAc,oBAYjCzU,aAAagV,kBAAoB,SAASb,GACxCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAagV,kBAAmBxB,EAAKY,SAC/CX,EAAKc,QAAUC,WAKjBxU,aAAagV,kBAAkBP,YAAc,kCAY/CzU,aAAaiV,UAAY,SAASd,GAChCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaiV,UAAWzB,EAAKY,SACvCX,EAAKc,QAAUC,WAKjBxU,aAAaiV,UAAUR,YAAc,0BAYvCzU,aAAaF,WAAa,SAASqU,GACjCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaF,WAAW6U,gBAAiB,KAC1F,EACAlB,EAAKa,SAAStU,aAAaF,WAAY0T,EAAKY,SACxCX,EAAKc,QAAUC,WAKjBxU,aAAaF,WAAW2U,YAAc,2BAYxCzU,aAAakV,QAAU,SAASf,GAC9BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAakV,QAAS1B,EAAKY,SACrCX,EAAKc,QAAUC,WAKjBxU,aAAakV,QAAQT,YAAc,wBAYrCzU,aAAamV,MAAQ,SAAShB,GAC5BX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAamV,MAAMR,gBAAiB,KACrF,EACAlB,EAAKa,SAAStU,aAAamV,MAAO3B,EAAKY,SACnCX,EAAKc,QAAUC,WAKjBxU,aAAamV,MAAMV,YAAc,sBAYnCzU,aAAaoV,kBAAoB,SAASjB,GACxCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaoV,kBAAmB5B,EAAKY,SAC/CX,EAAKc,QAAUC,WAKjBxU,aAAaoV,kBAAkBX,YAAc,kCAY/CzU,aAAaxQ,YAAc,SAAS2kB,GAClCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaxQ,YAAYmlB,gBAAiB,KAC3F,EACAlB,EAAKa,SAAStU,aAAaxQ,YAAagkB,EAAKY,SACzCX,EAAKc,QAAUC,WAKjBxU,aAAaxQ,YAAYilB,YAAc,4BAYzCzU,aAAaxQ,YAAYnK,SAAW,SAAS8uB,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaxQ,YAAYnK,SAAUmuB,EAAKY,SAClDX,EAAKc,QAAUC,WAKjBxU,aAAaxQ,YAAYnK,SAASovB,YAAc,qCAYlDzU,aAAaxQ,YAAY0K,OAAS,SAASia,GACzCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaxQ,YAAY0K,OAAOya,gBAAiB,KAClG,EACAlB,EAAKa,SAAStU,aAAaxQ,YAAY0K,OAAQsZ,EAAKY,SAChDX,EAAKc,QAAUC,WAKjBxU,aAAaxQ,YAAY0K,OAAOua,YAAc,mCAYhDzU,aAAaxQ,YAAYuR,IAAM,SAASoT,GACtCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaxQ,YAAYuR,IAAI4T,gBAAiB,KAC/F,EACAlB,EAAKa,SAAStU,aAAaxQ,YAAYuR,IAAKyS,EAAKY,SAC7CX,EAAKc,QAAUC,WAKjBxU,aAAaxQ,YAAYuR,IAAI0T,YAAc,gCAKzCjB,EAAKY,QAAQiB,qBAajBrV,aAAakU,UAAUd,UAAUkC,SAAW,SAASC,GACnD,OAAOvV,aAAakU,UAAUoB,SAASC,EAAqB/6C,KAC9D,EAYAwlC,aAAakU,UAAUoB,SAAW,SAASE,EAAiBj6C,GAC1D,IAAOyX,EAAM,CACX7X,KAAMI,EAAIk6C,gBACV/3C,QAASnC,EAAIm6C,oBAMf,OAHIF,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAakU,UAAUzkB,kBAAoB,SAAS1E,GAClD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAakU,UAC3B,OAAOlU,aAAakU,UAAU4B,4BAA4Bv6C,EAAKq6C,EACjE,EAUA5V,aAAakU,UAAU4B,4BAA8B,SAASv6C,EAAKq6C,GACjE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIuqC,QAAQzqC,GACZ,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAakU,UAAUd,UAAUzjB,gBAAkB,WACjD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAakU,UAAUoC,wBAAwB97C,KAAM47C,GAC9CA,EAAOG,iBAChB,EAUAvW,aAAakU,UAAUoC,wBAA0B,SAASxxC,EAASsxC,GACjE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0xC,gBACNt0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,EAGN,EAOAyE,aAAakU,UAAUd,UAAUuD,QAAU,WACzC,OAA4CnD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAakU,UAAUd,UAAUqC,cAAgB,WAC/C,OAA8BjC,EAAKY,QAAQyC,WACvCr8C,KAAKm8C,UACX,EAUA3W,aAAakU,UAAUd,UAAUoD,aAAe,WAC9C,OAAmChD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKm8C,UACX,EAOA3W,aAAakU,UAAUd,UAAUtN,QAAU,SAASzqC,GAClD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAakU,UAAUd,UAAU4D,WAAa,WAC5C,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAakU,UAAUd,UAAUsC,iBAAmB,WAClD,OAA8BlC,EAAKY,QAAQyC,WACvCr8C,KAAKw8C,aACX,EAUAhX,aAAakU,UAAUd,UAAUsD,gBAAkB,WACjD,OAAmClD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKw8C,aACX,EAOAhX,aAAakU,UAAUd,UAAUzuB,WAAa,SAAStpB,GACrD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa8E,KAAKsO,UAAUkC,SAAW,SAASC,GAC9C,OAAOvV,aAAa8E,KAAKwQ,SAASC,EAAqB/6C,KACzD,EAYAwlC,aAAa8E,KAAKwQ,SAAW,SAASE,EAAiBj6C,GACrD,IAAOyX,EAAM,CACXikC,YAAa17C,EAAI27C,uBACjBz3C,UAAW+zC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMtD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa8E,KAAKrV,kBAAoB,SAAS1E,GAC7C,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa8E,KAC3B,OAAO9E,aAAa8E,KAAKgR,4BAA4Bv6C,EAAKq6C,EAC5D,EAUA5V,aAAa8E,KAAKgR,4BAA8B,SAASv6C,EAAKq6C,GAC5D,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIwpC,eAAe1pC,GACnB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0pC,aAAa5pC,GACjB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa8E,KAAKsO,UAAUzjB,gBAAkB,WAC5C,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa8E,KAAKwR,wBAAwB97C,KAAM47C,GACzCA,EAAOG,iBAChB,EAUAvW,aAAa8E,KAAKwR,wBAA0B,SAASxxC,EAASsxC,GAC5D,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQsyC,uBACNl1C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQuyC,iBAEVjB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa8E,KAAKsO,UAAUmE,eAAiB,WAC3C,OAA4C/D,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa8E,KAAKsO,UAAU8D,qBAAuB,WACjD,OAA8B1D,EAAKY,QAAQyC,WACvCr8C,KAAK+8C,iBACX,EAUAvX,aAAa8E,KAAKsO,UAAUgE,oBAAsB,WAChD,OAAmC5D,EAAKY,QAAQ0C,UAC5Ct8C,KAAK+8C,iBACX,EAOAvX,aAAa8E,KAAKsO,UAAUrO,eAAiB,SAAS1pC,GACpD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa8E,KAAKsO,UAAUiE,aAAe,WACzC,OAA8B7D,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa8E,KAAKsO,UAAUnO,aAAe,SAAS5pC,GAClD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EASA2kC,aAAa0U,SAASC,gBAAkB,CAAC,GAIrCnB,EAAKY,QAAQiB,qBAajBrV,aAAa0U,SAAStB,UAAUkC,SAAW,SAASC,GAClD,OAAOvV,aAAa0U,SAASY,SAASC,EAAqB/6C,KAC7D,EAYAwlC,aAAa0U,SAASY,SAAW,SAASE,EAAiBj6C,GACzD,IAAIggC,EAAGvoB,EAAM,CACXykC,WAAYjE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDm8C,gBAAiBn8C,EAAIo8C,2BACrBC,eAAgBrc,EAAIhgC,EAAIuuC,oBAAsBvO,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACvFikC,eAAgBrE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACzDu8C,WAAYtE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDw8C,cAAex8C,EAAIy8C,yBACnBC,MAAOzE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa0U,SAASjlB,kBAAoB,SAAS1E,GACjD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa0U,SAC3B,OAAO1U,aAAa0U,SAASoB,4BAA4Bv6C,EAAKq6C,EAChE,EAUA5V,aAAa0U,SAASoB,4BAA8B,SAASv6C,EAAKq6C,GAChE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2uC,cAAc7uC,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI28C,mBAAmB78C,GACvB,MACF,KAAK,EACCA,EAAQE,EAAIuuC,mBAChB8L,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAU+D,UAAW3D,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,EAAG,EAClI,IACH,MACF,KAAK,EACC97C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI68C,kBAAkB/8C,GACtB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI88C,cAAch9C,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI+8C,aAAaj9C,GACjB,MACF,KAAK,EACCA,EAAqDu6C,EAAO2C,WAChEh9C,EAAIi9C,SAASn9C,GACb,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa0U,SAAStB,UAAUzjB,gBAAkB,WAChD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa0U,SAAS4B,wBAAwB97C,KAAM47C,GAC7CA,EAAOG,iBAChB,EAUAvW,aAAa0U,SAAS4B,wBAA0B,SAASxxC,EAASsxC,GAChE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ2zC,kBAEVrC,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQ4zC,2BACNx2C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQglC,kBAAiB,KACpBvO,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,EAAGymB,EAAQ5C,EAAK6C,aAAajD,UAAUkE,WAAY9D,EAAK6C,aAAajD,UAAUkE,YAGzF,KADV/b,EAAIz2B,EAAQ8zC,sBAEVxC,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ+zC,kBAEVzC,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQg0C,yBACN52C,OAAS,GACbk0C,EAAO2C,mBACL,EACAxd,GAIM,KADVA,EAAIz2B,EAAQk0C,aAEV5C,EAAO6C,UACL,EACA1d,EAGN,EAMAyE,aAAa0U,SAASwE,MAAQ,CAC5BC,QAAS,EACTC,YAAa,EACbC,SAAU,EACVC,SAAU,GAOZtZ,aAAa0U,SAAStB,UAAUqF,cAAgB,WAC9C,OAA8BjF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa0U,SAAStB,UAAUlJ,cAAgB,SAAS7uC,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa0U,SAAStB,UAAUmG,mBAAqB,WACnD,OAA4C/F,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa0U,SAAStB,UAAUuE,yBAA2B,WACzD,OAA8BnE,EAAKY,QAAQyC,WACvCr8C,KAAK++C,qBACX,EAUAvZ,aAAa0U,SAAStB,UAAUsF,wBAA0B,WACxD,OAAmClF,EAAKY,QAAQ0C,UAC5Ct8C,KAAK++C,qBACX,EAOAvZ,aAAa0U,SAAStB,UAAU8E,mBAAqB,SAAS78C,GAC5D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EASA2kC,aAAa0U,SAAStB,UAAUtJ,iBAAmB,SAAS0P,GAC1D,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,EAAGg/C,EAClC,KACN,EAOAxZ,aAAa0U,SAAStB,UAAUsG,mBAAqB,WAEnD,OADAl/C,KAAKsvC,mBAAmB6P,QACjBn/C,IAAK,EAOdwlC,aAAa0U,SAAStB,UAAUwF,kBAAoB,WAClD,OAA8BpF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa0U,SAAStB,UAAUgF,kBAAoB,SAAS/8C,GAC3D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa0U,SAAStB,UAAUyF,cAAgB,WAC9C,OAA8BrF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa0U,SAAStB,UAAUiF,cAAgB,SAASh9C,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa0U,SAAStB,UAAUwG,iBAAmB,WACjD,OAA2DpG,EAAKY,QAAQyF,iBAAiBr/C,KAAM,EACjG,EAQAwlC,aAAa0U,SAAStB,UAAU4E,uBAAyB,WACvD,OAAsCxE,EAAKY,QAAQ0F,eAC/Ct/C,KAAKo/C,mBACX,EAUA5Z,aAAa0U,SAAStB,UAAU0F,sBAAwB,WACtD,OAA2CtF,EAAKY,QAAQ2F,cACpDv/C,KAAKo/C,mBACX,EAOA5Z,aAAa0U,SAAStB,UAAU4G,iBAAmB,SAAS3+C,GAC1D,OAAOm4C,EAAKY,QAAQ6F,SAASz/C,KAAM,EAAGa,GAAS,GACjD,EAQA2kC,aAAa0U,SAAStB,UAAUkF,aAAe,SAASj9C,EAAO6+C,GAC7D,OAAO1G,EAAKY,QAAQ+F,mBAAmB3/C,KAAM,EAAGa,EAAO6+C,EACzD,EAOAla,aAAa0U,SAAStB,UAAUgH,mBAAqB,WACnD,OAAO5/C,KAAKw/C,iBAAiB,GAC/B,EAOAha,aAAa0U,SAAStB,UAAU4F,SAAW,WACzC,OAAoDxF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAChG,EAOAwlC,aAAa0U,SAAStB,UAAUoF,SAAW,SAASn9C,GAClD,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa4U,SAASxB,UAAUkC,SAAW,SAASC,GAClD,OAAOvV,aAAa4U,SAASU,SAASC,EAAqB/6C,KAC7D,EAYAwlC,aAAa4U,SAASU,SAAW,SAASE,EAAiBj6C,GACzD,IAAOyX,EAAM,CACXsnC,WAAY9G,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDg/C,eAAgBh/C,EAAIi/C,0BACpB1C,WAAYtE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDk/C,aAAcl/C,EAAIm/C,wBAClBtvC,kBAAmBooC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC5Do/C,cAAep/C,EAAIq/C,yBACnBtvC,mBAAoBkoC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM/D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa4U,SAASnlB,kBAAoB,SAAS1E,GACjD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa4U,SAC3B,OAAO5U,aAAa4U,SAASkB,4BAA4Bv6C,EAAKq6C,EAChE,EAUA5V,aAAa4U,SAASkB,4BAA8B,SAASv6C,EAAKq6C,GAChE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0vC,cAAc5vC,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIs/C,kBAAkBx/C,GACtB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI88C,cAAch9C,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAImvC,gBAAgBrvC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIovC,qBAAqBtvC,GACzB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIqvC,iBAAiBvvC,GACrB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsvC,sBAAsBxvC,GAC1B,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa4U,SAASxB,UAAUzjB,gBAAkB,WAChD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa4U,SAAS0B,wBAAwB97C,KAAM47C,GAC7CA,EAAOG,iBAChB,EAUAvW,aAAa4U,SAAS0B,wBAA0B,SAASxxC,EAASsxC,GAChE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQg2C,kBAEV1E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQi2C,0BACN74C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ+zC,kBAEVzC,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQk2C,wBACN94C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQm2C,yBAEV7E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQo2C,yBACNh5C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQq2C,0BAEV/E,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa4U,SAASxB,UAAU0H,cAAgB,WAC9C,OAA8BtH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa4U,SAASxB,UAAUnI,cAAgB,SAAS5vC,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa4U,SAASxB,UAAUgI,kBAAoB,WAClD,OAA4C5H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa4U,SAASxB,UAAUoH,wBAA0B,WACxD,OAA8BhH,EAAKY,QAAQyC,WACvCr8C,KAAK4gD,oBACX,EAUApb,aAAa4U,SAASxB,UAAU2H,uBAAyB,WACvD,OAAmCvH,EAAKY,QAAQ0C,UAC5Ct8C,KAAK4gD,oBACX,EAOApb,aAAa4U,SAASxB,UAAUyH,kBAAoB,SAASx/C,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa4U,SAASxB,UAAUyF,cAAgB,WAC9C,OAA8BrF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa4U,SAASxB,UAAUiF,cAAgB,SAASh9C,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa4U,SAASxB,UAAUiI,gBAAkB,WAChD,OAA4C7H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa4U,SAASxB,UAAUsH,sBAAwB,WACtD,OAA8BlH,EAAKY,QAAQyC,WACvCr8C,KAAK6gD,kBACX,EAUArb,aAAa4U,SAASxB,UAAU4H,qBAAuB,WACrD,OAAmCxH,EAAKY,QAAQ0C,UAC5Ct8C,KAAK6gD,kBACX,EAOArb,aAAa4U,SAASxB,UAAU1I,gBAAkB,SAASrvC,GACzD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa4U,SAASxB,UAAU6H,qBAAuB,WACrD,OAA8BzH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa4U,SAASxB,UAAUzI,qBAAuB,SAAStvC,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa4U,SAASxB,UAAUkI,iBAAmB,WACjD,OAA4C9H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa4U,SAASxB,UAAUwH,uBAAyB,WACvD,OAA8BpH,EAAKY,QAAQyC,WACvCr8C,KAAK8gD,mBACX,EAUAtb,aAAa4U,SAASxB,UAAU8H,sBAAwB,WACtD,OAAmC1H,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8gD,mBACX,EAOAtb,aAAa4U,SAASxB,UAAUxI,iBAAmB,SAASvvC,GAC1D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa4U,SAASxB,UAAU+H,sBAAwB,WACtD,OAA8B3H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa4U,SAASxB,UAAUvI,sBAAwB,SAASxvC,GAC/D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EASA2kC,aAAa6U,QAAQF,gBAAkB,CAAC,EAAE,EAAE,GAAG,IAI3CnB,EAAKY,QAAQiB,qBAajBrV,aAAa6U,QAAQzB,UAAUkC,SAAW,SAASC,GACjD,OAAOvV,aAAa6U,QAAQS,SAASC,EAAqB/6C,KAC5D,EAYAwlC,aAAa6U,QAAQS,SAAW,SAASE,EAAiBj6C,GACxD,IAAIggC,EAAGvoB,EAAM,CACXrK,YAAapN,EAAIggD,uBACjBngD,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC/CmC,QAASnC,EAAIm6C,mBACbp3C,QAASk1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClDigD,UAAWhI,EAAKY,QAAQqH,aAAalgD,EAAImgD,eACzC1b,aAAa8E,KAAKwQ,SAAUE,GAC5BmG,UAAWpgB,EAAIhgC,EAAIqgD,eAAiBrgB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GAC7EioC,YAAatgB,EAAIhgC,EAAIugD,iBAAmBvgB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACjFmoC,WAAYvI,EAAKY,QAAQqH,aAAalgD,EAAIygD,gBAC1Chc,aAAa6U,QAAQC,OAAOQ,SAAUE,GACtCyG,SAAUzI,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACnD2gD,2CAA4C1I,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACtF4gD,mCAAoC3I,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC9E6gD,aAAc5I,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACxD8gD,WAAY9gB,EAAIhgC,EAAI+gD,iBAAmBtc,aAAa6U,QAAQC,OAAOQ,SAASE,EAAiBja,GAC7FghB,eAAgB/I,EAAKY,QAAQoI,2BAA2BjhD,EAAK,IAAI,GACjEu8C,WAAYtE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDkhD,mBAAoBjJ,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC9DmhD,UAAWlJ,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACrDohD,mBAAoBnJ,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC9D2W,KAAM3W,EAAIqhD,gBACVC,UAAWrJ,EAAKY,QAAQoI,2BAA2BjhD,EAAK,IAAI,GAC5DuhD,YAAatJ,EAAKY,QAAQoI,2BAA2BjhD,EAAK,IAAI,GAC9DwhD,iBAAkBvJ,EAAKY,QAAQqH,aAAalgD,EAAIyhD,sBAChDhd,aAAa6U,QAAQC,OAAOQ,SAAUE,GACtCyH,gBAAiB1hD,EAAI2hD,2BACrBC,cAAe5hD,EAAI6hD,yBACnBC,6BAA8B9hB,EAAIhgC,EAAI+hD,kCAAoC/hB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACnH2pC,+BAAgChiB,EAAIhgC,EAAIiiD,oCAAsCjiB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACvH6pC,aAAcjK,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACxDmiD,sBAAuBniB,EAAIhgC,EAAIoiD,2BAA6BpiB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACrGgqC,wBAAyBriB,EAAIhgC,EAAIsiD,6BAA+BtiB,EAAE+Z,SAASE,OAAiB5hC,GAAa,GACzGkqC,kBAAmBtK,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC7DwiD,sBAAuBvK,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACjEwN,UAAWxN,EAAIyiD,qBACfC,iBAAkB1iB,EAAIhgC,EAAI2iD,uBAAyBle,aAAa6U,QAAQE,gBAAgBO,SAASE,EAAiBja,GAClH4iB,SAAU5iD,EAAI6iD,oBACdnxC,iBAAkBsuB,EAAIhgC,EAAI8iD,uBAAyBre,aAAaF,WAAWwV,SAASE,EAAiBja,GACrGruB,mBAAoBquB,EAAIhgC,EAAI+iD,yBAA2Bte,aAAaF,WAAWwV,SAASE,EAAiBja,GACzGgjB,qBAAsB/K,EAAKY,QAAQqH,aAAalgD,EAAIijD,0BACpDxe,aAAaF,WAAWwV,SAAUE,IAMpC,OAHIA,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa6U,QAAQplB,kBAAoB,SAAS1E,GAChD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa6U,QAC3B,OAAO7U,aAAa6U,QAAQiB,4BAA4Bv6C,EAAKq6C,EAC/D,EAUA5V,aAAa6U,QAAQiB,4BAA8B,SAASv6C,EAAKq6C,GAC/D,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIguC,eAAeluC,GACnB,MACF,KAAK,EACCA,EAAkDu6C,EAAO2C,WAC7Dh9C,EAAIqlC,QAAQvlC,GACZ,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIuoC,WAAWzoC,GACf,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAa8E,KAC7B8Q,EAAOuC,YAAY98C,EAAM2kC,aAAa8E,KAAKgR,6BAC3Cv6C,EAAI2pC,SAAS7pC,GACb,MACF,KAAK,EACCA,EAAQE,EAAIqgD,cAChBhG,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,GACC97C,EAAQE,EAAIugD,gBAChBlG,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,EACC97C,EAAQ,IAAI2kC,aAAa6U,QAAQC,OACrCc,EAAOuC,YAAY98C,EAAM2kC,aAAa6U,QAAQC,OAAOgB,6BACrDv6C,EAAImjD,UAAUrjD,GACd,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIojD,YAAYtjD,GAChB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIqjD,8CAA8CvjD,GAClD,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsjD,sCAAsCxjD,GAC1C,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIujD,gBAAgBzjD,GACpB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAa6U,QAAQC,OACrCc,EAAOuC,YAAY98C,EAAM2kC,aAAa6U,QAAQC,OAAOgB,6BACrDv6C,EAAIwjD,aAAa1jD,GACjB,MACF,KAAK,GACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI0jD,kBAAkB5jD,GACtB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI88C,cAAch9C,GAClB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2jD,sBAAsB7jD,GAC1B,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI4jD,aAAa9jD,GACjB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6jD,sBAAsB/jD,GAC1B,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8jD,QAAQhkD,GACZ,MACF,KAAK,GACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI+jD,aAAajkD,GACjB,MACF,KAAK,GACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAIgkD,eAAelkD,GACnB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAa6U,QAAQC,OACrCc,EAAOuC,YAAY98C,EAAM2kC,aAAa6U,QAAQC,OAAOgB,6BACrDv6C,EAAIwtC,gBAAgB1tC,GACpB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIikD,mBAAmBnkD,GACvB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIkkD,iBAAiBpkD,GACrB,MACF,KAAK,GACCA,EAAQE,EAAI+hD,iCAChB1H,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,GACC97C,EAAQE,EAAIiiD,mCAChB5H,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,GACC97C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAImkD,gBAAgBrkD,GACpB,MACF,KAAK,GACCA,EAAQE,EAAIoiD,0BAChB/H,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,GACC97C,EAAQE,EAAIsiD,4BAChBjI,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAUqL,WAAYjL,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,GAAI,EACpI,IACH,MACF,KAAK,GACC97C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIokD,qBAAqBtkD,GACzB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIqkD,yBAAyBvkD,GAC7B,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIuN,aAAazN,GACjB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAa6U,QAAQE,gBACrCa,EAAOuC,YAAY98C,EAAM2kC,aAAa6U,QAAQE,gBAAgBe,6BAC9Dv6C,EAAIskD,mBAAmBxkD,GACvB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIukD,YAAYzkD,GAChB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAaF,WAC7B8V,EAAOuC,YAAY98C,EAAM2kC,aAAaF,WAAWgW,6BACjDv6C,EAAIwkD,mBAAmB1kD,GACvB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAaF,WAC7B8V,EAAOuC,YAAY98C,EAAM2kC,aAAaF,WAAWgW,6BACjDv6C,EAAIykD,qBAAqB3kD,GACzB,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAaF,WAC7B8V,EAAOuC,YAAY98C,EAAM2kC,aAAaF,WAAWgW,6BACjDv6C,EAAI0kD,oBAAoB5kD,GACxB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa6U,QAAQzB,UAAUzjB,gBAAkB,WAC/C,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa6U,QAAQyB,wBAAwB97C,KAAM47C,GAC5CA,EAAOG,iBAChB,EAUAvW,aAAa6U,QAAQyB,wBAA0B,SAASxxC,EAASsxC,GAC/D,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQo7C,uBACNh+C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQunC,YAEV+J,EAAO6C,UACL,EACA1d,IAGJA,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ+W,eAEVu6B,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQ42C,gBACNx5C,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAa8E,KAAKwR,0BAGtB/a,EAAIz2B,EAAQ82C,aAAY,KACfrgB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,EAAGymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,aAEpG/b,EAAIz2B,EAAQg3C,eAAc,KACjBvgB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,GAAIymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,aAErG/b,EAAIz2B,EAAQk3C,iBACN95C,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAa6U,QAAQC,OAAOwB,yBAItB,KADV/a,EAAIz2B,EAAQu7C,gBAEVjK,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQw7C,kDAEVlK,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQy7C,0CAEVnK,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQ07C,oBAEVpK,EAAOkB,WACL,GACA/b,GAIK,OADTA,EAAIz2B,EAAQw3C,iBAEVlG,EAAOqK,aACL,GACAllB,EACAyE,aAAa6U,QAAQC,OAAOwB,0BAGhC/a,EAAIz2B,EAAQ47C,sBAEVtK,EAAOuK,UACL,GACAplB,GAIM,KADVA,EAAIz2B,EAAQ+zC,kBAEVzC,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ87C,0BAEVxK,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQ+7C,iBAEVzK,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQg8C,0BAEV1K,EAAOkB,WACL,GACA/b,IAGJA,EAAIz2B,EAAQi8C,gBACN7+C,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQk8C,iBAEV5K,EAAOuK,UACL,GACAplB,IAGJA,EAAIz2B,EAAQm8C,mBAEV7K,EAAOuK,UACL,GACAplB,IAGJA,EAAIz2B,EAAQk4C,uBACN96C,OAAS,GACbk0C,EAAO+J,qBACL,GACA5kB,EACAyE,aAAa6U,QAAQC,OAAOwB,0BAGhC/a,EAAIz2B,EAAQo8C,2BACNh/C,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQq8C,yBACNj/C,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQw4C,gCAA+B,KAClC/hB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,GAAIymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,aAErG/b,EAAIz2B,EAAQ04C,kCAAiC,KACpCjiB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,GAAIymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,YAG3F,KADV/b,EAAIz2B,EAAQs8C,oBAEVhL,EAAOkB,WACL,GACA/b,IAGJA,EAAIz2B,EAAQ64C,yBAAwB,KAC3BpiB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,GAAIymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,aAErG/b,EAAIz2B,EAAQ+4C,2BAA0B,KAC7BtiB,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,GAAIymB,EAAQ5C,EAAK6C,aAAajD,UAAUgN,YAAa5M,EAAK6C,aAAajD,UAAUkE,YAG3F,KADV/b,EAAIz2B,EAAQu8C,yBAEVjL,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQw8C,6BAEVlL,EAAOkB,WACL,GACA/b,IAGJA,EAAIz2B,EAAQy8C,qBACNr/C,OAAS,GACbk0C,EAAOK,WACL,GACAlb,GAIK,OADTA,EAAIz2B,EAAQo5C,uBAEV9H,EAAOqK,aACL,GACAllB,EACAyE,aAAa6U,QAAQE,gBAAgBuB,0BAGzC/a,EAAIz2B,EAAQ08C,oBACNt/C,OAAS,GACbk0C,EAAOK,WACL,GACAlb,GAIK,OADTA,EAAIz2B,EAAQu5C,uBAEVjI,EAAOqK,aACL,GACAllB,EACAyE,aAAaF,WAAWwW,yBAInB,OADT/a,EAAIz2B,EAAQw5C,yBAEVlI,EAAOqK,aACL,GACAllB,EACAyE,aAAaF,WAAWwW,0BAG5B/a,EAAIz2B,EAAQ05C,2BACNt8C,OAAS,GACbk0C,EAAO+J,qBACL,GACA5kB,EACAyE,aAAaF,WAAWwW,wBAG9B,EAMI9C,EAAKY,QAAQiB,qBAajBrV,aAAa6U,QAAQC,OAAO1B,UAAUkC,SAAW,SAASC,GACxD,OAAOvV,aAAa6U,QAAQC,OAAOQ,SAASC,EAAqB/6C,KACnE,EAYAwlC,aAAa6U,QAAQC,OAAOQ,SAAW,SAASE,EAAiBj6C,GAC/D,IAAOyX,EAAM,CACXyuC,cAAejO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACxDmmD,WAAYlO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMvD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa6U,QAAQC,OAAOrlB,kBAAoB,SAAS1E,GACvD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa6U,QAAQC,OACnC,OAAO9U,aAAa6U,QAAQC,OAAOgB,4BAA4Bv6C,EAAKq6C,EACtE,EAUA5V,aAAa6U,QAAQC,OAAOgB,4BAA8B,SAASv6C,EAAKq6C,GACtE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIinC,iBAAiBnnC,GACrB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIomD,cAActmD,GAClB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa6U,QAAQC,OAAO1B,UAAUzjB,gBAAkB,WACtD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa6U,QAAQC,OAAOwB,wBAAwB97C,KAAM47C,GACnDA,EAAOG,iBAChB,EAUAvW,aAAa6U,QAAQC,OAAOwB,wBAA0B,SAASxxC,EAASsxC,GACtE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ88C,qBAEVxL,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ+8C,kBAEVzL,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa6U,QAAQC,OAAO1B,UAAUwO,iBAAmB,WACvD,OAA8BpO,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQC,OAAO1B,UAAU5Q,iBAAmB,SAASnnC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQC,OAAO1B,UAAUyO,cAAgB,WACpD,OAA8BrO,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQC,OAAO1B,UAAUuO,cAAgB,SAAStmD,GAC7D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa6U,QAAQE,gBAAgB3B,UAAUkC,SAAW,SAASC,GACjE,OAAOvV,aAAa6U,QAAQE,gBAAgBO,SAASC,EAAqB/6C,KAC5E,EAYAwlC,aAAa6U,QAAQE,gBAAgBO,SAAW,SAASE,EAAiBj6C,GACxE,IAAIggC,EAAGvoB,EAAM,CACX8uC,YAAatO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtDwmD,wBAAyBxmB,EAAIhgC,EAAIymD,8BAAgChiB,aAAa6U,QAAQC,OAAOQ,SAASE,EAAiBja,GACvH0mB,2BAA4BzO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrE2mD,wCAAyC1O,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClF4mD,gCAAiC3O,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC1E6mD,aAAc5O,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACvD8mD,aAAc7O,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACvD+mD,0BAA2B9O,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMtE,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa6U,QAAQE,gBAAgBtlB,kBAAoB,SAAS1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa6U,QAAQE,gBACnC,OAAO/U,aAAa6U,QAAQE,gBAAgBe,4BAA4Bv6C,EAAKq6C,EAC/E,EAUA5V,aAAa6U,QAAQE,gBAAgBe,4BAA8B,SAASv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIgnD,eAAelnD,GACnB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAa6U,QAAQC,OACrCc,EAAOuC,YAAY98C,EAAM2kC,aAAa6U,QAAQC,OAAOgB,6BACrDv6C,EAAIinD,0BAA0BnnD,GAC9B,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIknD,8BAA8BpnD,GAClC,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAImnD,2CAA2CrnD,GAC/C,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIonD,mCAAmCtnD,GACvC,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIqnD,gBAAgBvnD,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsnD,gBAAgBxnD,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIunD,6BAA6BznD,GACjC,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa6U,QAAQE,gBAAgB3B,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa6U,QAAQE,gBAAgBuB,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAChB,EAUAvW,aAAa6U,QAAQE,gBAAgBuB,wBAA0B,SAASxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQi+C,mBAEV3M,EAAOkB,WACL,EACA/b,GAIK,OADTA,EAAIz2B,EAAQk9C,8BAEV5L,EAAOqK,aACL,EACAllB,EACAyE,aAAa6U,QAAQC,OAAOwB,yBAItB,KADV/a,EAAIz2B,EAAQk+C,kCAEV5M,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQm+C,+CAEV7M,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQo+C,uCAEV9M,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQq+C,oBAEV/M,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQs+C,oBAEVhN,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQu+C,iCAEVjN,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa6U,QAAQE,gBAAgB3B,UAAU2P,eAAiB,WAC9D,OAA8BvP,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUmP,eAAiB,SAASlnD,GACvE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAU4O,0BAA4B,WACzE,OACExO,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAa6U,QAAQC,OAAQ,EACpE,EAOA9U,aAAa6U,QAAQE,gBAAgB3B,UAAUoP,0BAA4B,SAASnnD,GAClF,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EAC/C,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAUoQ,4BAA8B,WAC3E,OAAOhpD,KAAKgoD,+BAA0B5uC,EACxC,EAOAosB,aAAa6U,QAAQE,gBAAgB3B,UAAUqQ,0BAA4B,WACzE,OAAyC,MAAlCjQ,EAAKY,QAAQsP,SAASlpD,KAAM,EACrC,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAU4P,8BAAgC,WAC7E,OAA8BxP,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUqP,8BAAgC,SAASpnD,GACtF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAU6P,2CAA6C,WAC1F,OAA8BzP,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUsP,2CAA6C,SAASrnD,GACnG,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAU8P,mCAAqC,WAClF,OAA8B1P,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUuP,mCAAqC,SAAStnD,GAC3F,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAU+P,gBAAkB,WAC/D,OAA8B3P,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUwP,gBAAkB,SAASvnD,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAUgQ,gBAAkB,WAC/D,OAA8B5P,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAUyP,gBAAkB,SAASxnD,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQE,gBAAgB3B,UAAUiQ,6BAA+B,WAC5E,OAA8B7P,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQE,gBAAgB3B,UAAU0P,6BAA+B,SAASznD,GACrF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQzB,UAAUuQ,eAAiB,WAC9C,OAA4CnQ,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa6U,QAAQzB,UAAUmI,qBAAuB,WACpD,OAA8B/H,EAAKY,QAAQyC,WACvCr8C,KAAKmpD,iBACX,EAUA3jB,aAAa6U,QAAQzB,UAAU8M,oBAAsB,WACnD,OAAmC1M,EAAKY,QAAQ0C,UAC5Ct8C,KAAKmpD,iBACX,EAOA3jB,aAAa6U,QAAQzB,UAAU7J,eAAiB,SAASluC,GACvD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa6U,QAAQzB,UAAU/G,QAAU,WACvC,OAAiDmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC7F,EAOAwlC,aAAa6U,QAAQzB,UAAUxS,QAAU,SAASvlC,GAChD,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAU4D,WAAa,WAC1C,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa6U,QAAQzB,UAAUsC,iBAAmB,WAChD,OAA8BlC,EAAKY,QAAQyC,WACvCr8C,KAAKw8C,aACX,EAUAhX,aAAa6U,QAAQzB,UAAUsD,gBAAkB,WAC/C,OAAmClD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKw8C,aACX,EAOAhX,aAAa6U,QAAQzB,UAAUzuB,WAAa,SAAStpB,GACnD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa6U,QAAQzB,UAAUv3B,WAAa,WAC1C,OAA8B23B,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQzB,UAAUtP,WAAa,SAASzoC,GACnD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQzB,UAAUsI,aAAe,WAC5C,OACElI,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa8E,KAAM,EAClE,EAOA9E,aAAa6U,QAAQzB,UAAUyQ,aAAe,SAASxoD,GACrD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAa6U,QAAQzB,UAAUlO,SAAW,SAAS6e,EAAW7J,GAC5D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAa8E,KAAMoV,EACvF,EAOAla,aAAa6U,QAAQzB,UAAU6Q,eAAiB,WAC9C,OAAOzpD,KAAKqpD,aAAa,GAC3B,EASA7jB,aAAa6U,QAAQzB,UAAUwI,YAAc,SAASpC,GACpD,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,EAAGg/C,EAClC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU8Q,cAAgB,WAE7C,OADA1pD,KAAKohD,cAAcjC,QACZn/C,IAAK,EASdwlC,aAAa6U,QAAQzB,UAAU0I,cAAgB,SAAStC,GACtD,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,GAAIg/C,EACnC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU+Q,gBAAkB,WAE/C,OADA3pD,KAAKshD,gBAAgBnC,QACdn/C,IAAK,EAOdwlC,aAAa6U,QAAQzB,UAAU4I,cAAgB,WAC7C,OACExI,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa6U,QAAQC,OAAQ,EAC5E,EAOA9U,aAAa6U,QAAQzB,UAAUgR,cAAgB,SAAS/oD,GACtD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAa6U,QAAQzB,UAAUsL,UAAY,SAASqF,EAAW7J,GAC7D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAa6U,QAAQC,OAAQoF,EACjG,EAOAla,aAAa6U,QAAQzB,UAAUiR,gBAAkB,WAC/C,OAAO7pD,KAAK4pD,cAAc,GAC5B,EAOApkB,aAAa6U,QAAQzB,UAAUiN,YAAc,WAC3C,OAA8B7M,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQzB,UAAUuL,YAAc,SAAStjD,GACpD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQzB,UAAUkN,8CAAgD,WAC7E,OAA8B9M,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUwL,8CAAgD,SAASvjD,GACtF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUmN,sCAAwC,WACrE,OAA8B/M,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUyL,sCAAwC,SAASxjD,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUoN,gBAAkB,WAC/C,OAA8BhN,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAU0L,gBAAkB,SAASzjD,GACxD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUkJ,aAAe,WAC5C,OACE9I,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAa6U,QAAQC,OAAQ,GACpE,EAOA9U,aAAa6U,QAAQzB,UAAU2L,aAAe,SAAS1jD,GACrD,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,GAAIa,EAChD,EAOA2kC,aAAa6U,QAAQzB,UAAUkR,eAAiB,WAC9C,OAAO9pD,KAAKukD,kBAAanrC,EAC3B,EAOAosB,aAAa6U,QAAQzB,UAAUmR,aAAe,WAC5C,OAA0C,MAAnC/Q,EAAKY,QAAQsP,SAASlpD,KAAM,GACrC,EAOAwlC,aAAa6U,QAAQzB,UAAUsN,kBAAoB,WACjD,OAA+BlN,EAAKY,QAAQoI,2BAA2BhiD,KAAM,IAAI,EACnF,EAOAwlC,aAAa6U,QAAQzB,UAAU6L,kBAAoB,SAAS5jD,GAC1D,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,GAAIa,EACtD,EAOA2kC,aAAa6U,QAAQzB,UAAUyF,cAAgB,WAC7C,OAA8BrF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6U,QAAQzB,UAAUiF,cAAgB,SAASh9C,GACtD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa6U,QAAQzB,UAAUwN,sBAAwB,WACrD,OAA8BpN,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAU8L,sBAAwB,SAAS7jD,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUyN,aAAe,WAC5C,OAA8BrN,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAU+L,aAAe,SAAS9jD,GACrD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAU0N,sBAAwB,WACrD,OAA8BtN,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUgM,sBAAwB,SAAS/jD,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUqR,QAAU,WACvC,OAA4CjR,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa6U,QAAQzB,UAAUwJ,cAAgB,WAC7C,OAA8BpJ,EAAKY,QAAQyC,WACvCr8C,KAAKiqD,UACX,EAUAzkB,aAAa6U,QAAQzB,UAAU2N,aAAe,WAC5C,OAAmCvN,EAAKY,QAAQ0C,UAC5Ct8C,KAAKiqD,UACX,EAOAzkB,aAAa6U,QAAQzB,UAAUiM,QAAU,SAAShkD,GAChD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa6U,QAAQzB,UAAU4N,aAAe,WAC5C,OAA+BxN,EAAKY,QAAQoI,2BAA2BhiD,KAAM,IAAI,EACnF,EAOAwlC,aAAa6U,QAAQzB,UAAUkM,aAAe,SAASjkD,GACrD,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,GAAIa,EACtD,EAOA2kC,aAAa6U,QAAQzB,UAAU6N,eAAiB,WAC9C,OAA+BzN,EAAKY,QAAQoI,2BAA2BhiD,KAAM,IAAI,EACnF,EAOAwlC,aAAa6U,QAAQzB,UAAUmM,eAAiB,SAASlkD,GACvD,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,GAAIa,EACtD,EAOA2kC,aAAa6U,QAAQzB,UAAU4J,oBAAsB,WACnD,OACExJ,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa6U,QAAQC,OAAQ,GAC5E,EAOA9U,aAAa6U,QAAQzB,UAAUsR,oBAAsB,SAASrpD,GAC5D,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,GAAIa,EACxD,EAQA2kC,aAAa6U,QAAQzB,UAAUrK,gBAAkB,SAASgb,EAAW7J,GACnE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,GAAIupD,EAAW/jB,aAAa6U,QAAQC,OAAQoF,EAClG,EAOAla,aAAa6U,QAAQzB,UAAUuR,sBAAwB,WACrD,OAAOnqD,KAAKkqD,oBAAoB,GAClC,EAOA1kB,aAAa6U,QAAQzB,UAAUwR,mBAAqB,WAClD,OAA4CpR,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa6U,QAAQzB,UAAU8J,yBAA2B,WACxD,OAA8B1J,EAAKY,QAAQyC,WACvCr8C,KAAKoqD,qBACX,EAUA5kB,aAAa6U,QAAQzB,UAAU8N,wBAA0B,WACvD,OAAmC1N,EAAKY,QAAQ0C,UAC5Ct8C,KAAKoqD,qBACX,EAOA5kB,aAAa6U,QAAQzB,UAAUoM,mBAAqB,SAASnkD,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa6U,QAAQzB,UAAUyR,iBAAmB,WAChD,OAA4CrR,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa6U,QAAQzB,UAAUgK,uBAAyB,WACtD,OAA8B5J,EAAKY,QAAQyC,WACvCr8C,KAAKqqD,mBACX,EAUA7kB,aAAa6U,QAAQzB,UAAU+N,sBAAwB,WACrD,OAAmC3N,EAAKY,QAAQ0C,UAC5Ct8C,KAAKqqD,mBACX,EAOA7kB,aAAa6U,QAAQzB,UAAUqM,iBAAmB,SAASpkD,GACzD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EASA2kC,aAAa6U,QAAQzB,UAAUkK,+BAAiC,SAAS9D,GACvE,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,GAAIg/C,EACnC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU0R,iCAAmC,WAEhE,OADAtqD,KAAK8iD,iCAAiC3D,QAC/Bn/C,IAAK,EASdwlC,aAAa6U,QAAQzB,UAAUoK,iCAAmC,SAAShE,GACzE,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,GAAIg/C,EACnC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU2R,mCAAqC,WAElE,OADAvqD,KAAKgjD,mCAAmC7D,QACjCn/C,IAAK,EAOdwlC,aAAa6U,QAAQzB,UAAUgO,gBAAkB,WAC/C,OAA8B5N,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUsM,gBAAkB,SAASrkD,GACxD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EASA2kC,aAAa6U,QAAQzB,UAAUuK,wBAA0B,SAASnE,GAChE,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,GAAIg/C,EACnC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU4R,0BAA4B,WAEzD,OADAxqD,KAAKmjD,0BAA0BhE,QACxBn/C,IAAK,EASdwlC,aAAa6U,QAAQzB,UAAUyK,0BAA4B,SAASrE,GAClE,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,GAAIg/C,EACnC,KACN,EAOAxZ,aAAa6U,QAAQzB,UAAU6R,4BAA8B,WAE3D,OADAzqD,KAAKqjD,4BAA4BlE,QAC1Bn/C,IAAK,EAOdwlC,aAAa6U,QAAQzB,UAAUiO,qBAAuB,WACpD,OAA8B7N,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUuM,qBAAuB,SAAStkD,GAC7D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAUkO,yBAA2B,WACxD,OAA8B9N,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa6U,QAAQzB,UAAUwM,yBAA2B,SAASvkD,GACjE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa6U,QAAQzB,UAAU8R,aAAe,WAC5C,OAA4C1R,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa6U,QAAQzB,UAAU4K,mBAAqB,WAClD,OAA8BxK,EAAKY,QAAQyC,WACvCr8C,KAAK0qD,eACX,EAUAllB,aAAa6U,QAAQzB,UAAUmO,kBAAoB,WACjD,OAAmC/N,EAAKY,QAAQ0C,UAC5Ct8C,KAAK0qD,eACX,EAOAllB,aAAa6U,QAAQzB,UAAUtqC,aAAe,SAASzN,GACrD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa6U,QAAQzB,UAAU8K,mBAAqB,WAClD,OACE1K,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAa6U,QAAQE,gBAAiB,GAC7E,EAOA/U,aAAa6U,QAAQzB,UAAUyM,mBAAqB,SAASxkD,GAC3D,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,GAAIa,EAChD,EAOA2kC,aAAa6U,QAAQzB,UAAU+R,qBAAuB,WACpD,OAAO3qD,KAAKqlD,wBAAmBjsC,EACjC,EAOAosB,aAAa6U,QAAQzB,UAAUgS,mBAAqB,WAClD,OAA0C,MAAnC5R,EAAKY,QAAQsP,SAASlpD,KAAM,GACrC,EAOAwlC,aAAa6U,QAAQzB,UAAUiS,YAAc,WAC3C,OAA4C7R,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa6U,QAAQzB,UAAUgL,kBAAoB,WACjD,OAA8B5K,EAAKY,QAAQyC,WACvCr8C,KAAK6qD,cACX,EAUArlB,aAAa6U,QAAQzB,UAAUoO,iBAAmB,WAChD,OAAmChO,EAAKY,QAAQ0C,UAC5Ct8C,KAAK6qD,cACX,EAOArlB,aAAa6U,QAAQzB,UAAU0M,YAAc,SAASzkD,GACpD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa6U,QAAQzB,UAAUiL,mBAAqB,WAClD,OACE7K,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaF,WAAY,GAChE,EAOAE,aAAa6U,QAAQzB,UAAU2M,mBAAqB,SAAS1kD,GAC3D,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,GAAIa,EAChD,EAOA2kC,aAAa6U,QAAQzB,UAAUkS,qBAAuB,WACpD,OAAO9qD,KAAKulD,wBAAmBnsC,EACjC,EAOAosB,aAAa6U,QAAQzB,UAAUmS,mBAAqB,WAClD,OAA0C,MAAnC/R,EAAKY,QAAQsP,SAASlpD,KAAM,GACrC,EAOAwlC,aAAa6U,QAAQzB,UAAUkL,qBAAuB,WACpD,OACE9K,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaF,WAAY,GAChE,EAOAE,aAAa6U,QAAQzB,UAAU4M,qBAAuB,SAAS3kD,GAC7D,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,GAAIa,EAChD,EAOA2kC,aAAa6U,QAAQzB,UAAUoS,uBAAyB,WACtD,OAAOhrD,KAAKwlD,0BAAqBpsC,EACnC,EAOAosB,aAAa6U,QAAQzB,UAAUqS,qBAAuB,WACpD,OAA0C,MAAnCjS,EAAKY,QAAQsP,SAASlpD,KAAM,GACrC,EAOAwlC,aAAa6U,QAAQzB,UAAUoL,wBAA0B,WACvD,OACEhL,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaF,WAAY,GACxE,EAOAE,aAAa6U,QAAQzB,UAAUsS,wBAA0B,SAASrqD,GAChE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,GAAIa,EACxD,EAQA2kC,aAAa6U,QAAQzB,UAAU6M,oBAAsB,SAAS8D,EAAW7J,GACvE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,GAAIupD,EAAW/jB,aAAaF,WAAYoa,EAC9F,EAOAla,aAAa6U,QAAQzB,UAAUuS,0BAA4B,WACzD,OAAOnrD,KAAKkrD,wBAAwB,GACtC,EAMIlS,EAAKY,QAAQiB,qBAajBrV,aAAaD,IAAIqT,UAAUkC,SAAW,SAASC,GAC7C,OAAOvV,aAAaD,IAAIuV,SAASC,EAAqB/6C,KACxD,EAYAwlC,aAAaD,IAAIuV,SAAW,SAASE,EAAiBj6C,GACpD,IAAOyX,EAAM,CACXtV,QAASnC,EAAIm6C,mBACb5oC,OAAQ0mC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMnD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaD,IAAItQ,kBAAoB,SAAS1E,GAC5C,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaD,IAC3B,OAAOC,aAAaD,IAAI+V,4BAA4Bv6C,EAAKq6C,EAC3D,EAUA5V,aAAaD,IAAI+V,4BAA8B,SAASv6C,EAAKq6C,GAC3D,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsxC,UAAUxxC,GACd,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaD,IAAIqT,UAAUzjB,gBAAkB,WAC3C,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaD,IAAIuW,wBAAwB97C,KAAM47C,GACxCA,EAAOG,iBAChB,EAUAvW,aAAaD,IAAIuW,wBAA0B,SAASxxC,EAASsxC,GAC3D,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ8gD,cAEVxP,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAaD,IAAIqT,UAAU4D,WAAa,WACtC,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaD,IAAIqT,UAAUsC,iBAAmB,WAC5C,OAA8BlC,EAAKY,QAAQyC,WACvCr8C,KAAKw8C,aACX,EAUAhX,aAAaD,IAAIqT,UAAUsD,gBAAkB,WAC3C,OAAmClD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKw8C,aACX,EAOAhX,aAAaD,IAAIqT,UAAUzuB,WAAa,SAAStpB,GAC/C,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaD,IAAIqT,UAAUwS,UAAY,WACrC,OAA8BpS,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaD,IAAIqT,UAAUvG,UAAY,SAASxxC,GAC9C,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAagV,kBAAkB5B,UAAUkC,SAAW,SAASC,GAC3D,OAAOvV,aAAagV,kBAAkBM,SAASC,EAAqB/6C,KACtE,EAYAwlC,aAAagV,kBAAkBM,SAAW,SAASE,EAAiBj6C,GAClE,IAAOyX,EAAM,CACXnY,KAAMU,EAAIsqD,gBACVlrD,GAAIY,EAAIuqD,cACRC,0BAA2BvS,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpEwmD,uBAAwBvO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACjEyqD,uBAAwBxS,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACjE0qD,oBAAqBzS,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMhE,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAagV,kBAAkBvlB,kBAAoB,SAAS1E,GAC1D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAagV,kBAC3B,OAAOhV,aAAagV,kBAAkBc,4BAA4Bv6C,EAAKq6C,EACzE,EAUA5V,aAAagV,kBAAkBc,4BAA8B,SAASv6C,EAAKq6C,GACzE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI2qD,QAAQ7qD,GACZ,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4qD,MAAM9qD,GACV,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6qD,6BAA6B/qD,GACjC,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIinD,0BAA0BnnD,GAC9B,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI8qD,0BAA0BhrD,GAC9B,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+qD,uBAAuBjrD,GAC3B,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAagV,kBAAkB5B,UAAUzjB,gBAAkB,WACzD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAagV,kBAAkBsB,wBAAwB97C,KAAM47C,GACtDA,EAAOG,iBAChB,EAUAvW,aAAagV,kBAAkBsB,wBAA0B,SAASxxC,EAASsxC,GACzE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQyhD,gBACNrkD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ0hD,cACNtkD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ2hD,iCAEVrQ,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQk9C,8BAEV5L,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ4hD,8BAEVtQ,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ6hD,2BAEVvQ,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAagV,kBAAkB5B,UAAUwT,QAAU,WACjD,OAA4CpT,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAagV,kBAAkB5B,UAAUyS,cAAgB,WACvD,OAA8BrS,EAAKY,QAAQyC,WACvCr8C,KAAKosD,UACX,EAUA5mB,aAAagV,kBAAkB5B,UAAUmT,aAAe,WACtD,OAAmC/S,EAAKY,QAAQ0C,UAC5Ct8C,KAAKosD,UACX,EAOA5mB,aAAagV,kBAAkB5B,UAAU8S,QAAU,SAAS7qD,GAC1D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAagV,kBAAkB5B,UAAUyT,MAAQ,WAC/C,OAA4CrT,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAagV,kBAAkB5B,UAAU0S,YAAc,WACrD,OAA8BtS,EAAKY,QAAQyC,WACvCr8C,KAAKqsD,QACX,EAUA7mB,aAAagV,kBAAkB5B,UAAUoT,WAAa,WACpD,OAAmChT,EAAKY,QAAQ0C,UAC5Ct8C,KAAKqsD,QACX,EAOA7mB,aAAagV,kBAAkB5B,UAAU+S,MAAQ,SAAS9qD,GACxD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAagV,kBAAkB5B,UAAUqT,6BAA+B,WACtE,OAA8BjT,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAagV,kBAAkB5B,UAAUgT,6BAA+B,SAAS/qD,GAC/E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAagV,kBAAkB5B,UAAU4O,0BAA4B,WACnE,OAA8BxO,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAagV,kBAAkB5B,UAAUoP,0BAA4B,SAASnnD,GAC5E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAagV,kBAAkB5B,UAAUsT,0BAA4B,WACnE,OAA8BlT,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAagV,kBAAkB5B,UAAUiT,0BAA4B,SAAShrD,GAC5E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAagV,kBAAkB5B,UAAUuT,uBAAyB,WAChE,OAA8BnT,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAagV,kBAAkB5B,UAAUkT,uBAAyB,SAASjrD,GACzE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAaiV,UAAU7B,UAAUkC,SAAW,SAASC,GACnD,OAAOvV,aAAaiV,UAAUK,SAASC,EAAqB/6C,KAC9D,EAYAwlC,aAAaiV,UAAUK,SAAW,SAASE,EAAiBj6C,GAC1D,IAAIggC,EAAGvoB,EAAM,CACXwI,SAAU+f,EAAIhgC,EAAIkgB,eAAiBukB,aAAakU,UAAUoB,SAASE,EAAiBja,GACpFurB,eAAgBvrD,EAAIwrD,2BAMtB,OAHIvR,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaiV,UAAUxlB,kBAAoB,SAAS1E,GAClD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaiV,UAC3B,OAAOjV,aAAaiV,UAAUa,4BAA4Bv6C,EAAKq6C,EACjE,EAUA5V,aAAaiV,UAAUa,4BAA8B,SAASv6C,EAAKq6C,GACjE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAQ,IAAI2kC,aAAakU,UAC7B0B,EAAOuC,YAAY98C,EAAM2kC,aAAakU,UAAU4B,6BAChDv6C,EAAIyrD,WAAW3rD,GACf,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIgxC,kBAAkBlxC,GACtB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaiV,UAAU7B,UAAUzjB,gBAAkB,WACjD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaiV,UAAUqB,wBAAwB97C,KAAM47C,GAC9CA,EAAOG,iBAChB,EAUAvW,aAAaiV,UAAUqB,wBAA0B,SAASxxC,EAASsxC,GACjE,IAAI7a,OAAI3nB,EAEC,OADT2nB,EAAIz2B,EAAQ2W,eAEV26B,EAAOqK,aACL,EACAllB,EACAyE,aAAakU,UAAUoC,0BAG3B/a,EAAIz2B,EAAQmiD,0BACN/kD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,EAGN,EAOAyE,aAAaiV,UAAU7B,UAAU33B,WAAa,WAC5C,OACE+3B,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAakU,UAAW,EAC/D,EAOAlU,aAAaiV,UAAU7B,UAAU4T,WAAa,SAAS3rD,GACrD,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EAC/C,EAOA2kC,aAAaiV,UAAU7B,UAAU8T,aAAe,WAC9C,OAAO1sD,KAAKwsD,gBAAWpzC,EACzB,EAOAosB,aAAaiV,UAAU7B,UAAU+T,WAAa,WAC5C,OAAyC,MAAlC3T,EAAKY,QAAQsP,SAASlpD,KAAM,EACrC,EAOAwlC,aAAaiV,UAAU7B,UAAUgU,kBAAoB,WACnD,OAA4C5T,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaiV,UAAU7B,UAAU2T,wBAA0B,WACzD,OAA8BvT,EAAKY,QAAQyC,WACvCr8C,KAAK4sD,oBACX,EAUApnB,aAAaiV,UAAU7B,UAAU6T,uBAAyB,WACxD,OAAmCzT,EAAKY,QAAQ0C,UAC5Ct8C,KAAK4sD,oBACX,EAOApnB,aAAaiV,UAAU7B,UAAU7G,kBAAoB,SAASlxC,GAC5D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EASA2kC,aAAaF,WAAW6U,gBAAkB,CAAC,GAIvCnB,EAAKY,QAAQiB,qBAajBrV,aAAaF,WAAWsT,UAAUkC,SAAW,SAASC,GACpD,OAAOvV,aAAaF,WAAWwV,SAASC,EAAqB/6C,KAC/D,EAYAwlC,aAAaF,WAAWwV,SAAW,SAASE,EAAiBj6C,GAC3D,IAAOyX,EAAM,CACX5X,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC/CogB,GAAI63B,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC7CurD,eAAgBtT,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IACzDqR,UAAW4mC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpD6wC,SAAUoH,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACnDwR,WAAYxR,EAAI8rD,sBAChBC,SAAU9T,EAAKY,QAAQqH,aAAalgD,EAAIgsD,cACxCvnB,aAAaD,IAAIuV,SAAUE,IAM7B,OAHIA,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaF,WAAWrQ,kBAAoB,SAAS1E,GACnD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaF,WAC3B,OAAOE,aAAaF,WAAWgW,4BAA4Bv6C,EAAKq6C,EAClE,EAUA5V,aAAaF,WAAWgW,4BAA8B,SAASv6C,EAAKq6C,GAClE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAgEu6C,EAAO2C,WAC3Eh9C,EAAIqlC,QAAQvlC,GACZ,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAI+wC,MAAMjxC,GACV,MACF,KAAK,EACCA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIgxC,kBAAkBlxC,GACtB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIixC,aAAanxC,GACjB,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAIkxC,YAAYpxC,GAChB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAImxC,cAAcrxC,GAClB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAaD,IAC7B6V,EAAOuC,YAAY98C,EAAM2kC,aAAaD,IAAI+V,6BAC1Cv6C,EAAIksD,QAAQpsD,GACZ,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaF,WAAWsT,UAAUzjB,gBAAkB,WAClD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaF,WAAWwW,wBAAwB97C,KAAM47C,GAC/CA,EAAOG,iBAChB,EAUAvW,aAAaF,WAAWwW,wBAA0B,SAASxxC,EAASsxC,GAClE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQunC,YAEV+J,EAAO6C,UACL,EACA1d,GAIM,KADVA,EAAIz2B,EAAQ4iD,UAEVtR,EAAOuR,WACL,EACApsB,IAGJA,EAAIz2B,EAAQsiD,qBACNllD,OAAS,GACbk0C,EAAOgK,YACL,EACA7kB,GAIM,KADVA,EAAIz2B,EAAQ8iD,iBAEVxR,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ+iD,gBAEVzR,EAAOuR,WACL,EACApsB,IAGJA,EAAIz2B,EAAQgjD,sBACN5lD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQyiD,eACNrlD,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAaD,IAAIuW,wBAGvB,EAMAtW,aAAaF,WAAWioB,eAAiB,CACvCC,MAAO,EACPC,QAAS,EACTC,OAAQ,GAOVloB,aAAaF,WAAWsT,UAAU/G,QAAU,WAC1C,OAA+DmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC3G,EAOAwlC,aAAaF,WAAWsT,UAAUxS,QAAU,SAASvlC,GACnD,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAOA2kC,aAAaF,WAAWsT,UAAUsU,MAAQ,WACxC,OAA8BlU,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaF,WAAWsT,UAAU9G,MAAQ,SAASjxC,GACjD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaF,WAAWsT,UAAUgU,kBAAoB,WACpD,OAA8B5T,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1E,EAOAwlC,aAAaF,WAAWsT,UAAU7G,kBAAoB,SAASlxC,GAC7D,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACpD,EAOA2kC,aAAaF,WAAWsT,UAAUwU,aAAe,WAC/C,OAA8BpU,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaF,WAAWsT,UAAU5G,aAAe,SAASnxC,GACxD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaF,WAAWsT,UAAUyU,YAAc,WAC9C,OAA8BrU,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaF,WAAWsT,UAAU3G,YAAc,SAASpxC,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaF,WAAWsT,UAAUgV,cAAgB,WAChD,OAA4C5U,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaF,WAAWsT,UAAUiU,oBAAsB,WACtD,OAA8B7T,EAAKY,QAAQyC,WACvCr8C,KAAK4tD,gBACX,EAUApoB,aAAaF,WAAWsT,UAAU0U,mBAAqB,WACrD,OAAmCtU,EAAKY,QAAQ0C,UAC5Ct8C,KAAK4tD,gBACX,EAOApoB,aAAaF,WAAWsT,UAAU1G,cAAgB,SAASrxC,GACzD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaF,WAAWsT,UAAUmU,YAAc,WAC9C,OACE/T,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaD,IAAK,EACjE,EAOAC,aAAaF,WAAWsT,UAAUzG,YAAc,SAAStxC,GACvD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAaF,WAAWsT,UAAUqU,QAAU,SAAS1D,EAAW7J,GAC9D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaD,IAAKma,EACtF,EAOAla,aAAaF,WAAWsT,UAAUiV,cAAgB,WAChD,OAAO7tD,KAAKmyC,YAAY,GAC1B,EAMI6G,EAAKY,QAAQiB,qBAajBrV,aAAakV,QAAQ9B,UAAUkC,SAAW,SAASC,GACjD,OAAOvV,aAAakV,QAAQI,SAASC,EAAqB/6C,KAC5D,EAYAwlC,aAAakV,QAAQI,SAAW,SAASE,EAAiBj6C,GACxD,IAAOyX,EAAM,CACXtV,QAASnC,EAAIm6C,mBACb4S,UAAW9U,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpDm1B,OAAQn1B,EAAIgtD,kBACZvpD,IAAKw0C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAC9CitD,cAAehV,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACxDktD,YAAajV,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtDmtD,eAAgBlV,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACzDotD,cAAenV,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACxDqtD,OAAQpV,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,IAM1D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAakV,QAAQzlB,kBAAoB,SAAS1E,GAChD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAakV,QAC3B,OAAOlV,aAAakV,QAAQY,4BAA4Bv6C,EAAKq6C,EAC/D,EAUA5V,aAAakV,QAAQY,4BAA8B,SAASv6C,EAAKq6C,GAC/D,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIstD,aAAaxtD,GACjB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIutD,UAAUztD,GACd,MACF,KAAK,EACCA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIkpC,OAAOppC,GACX,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIwtD,iBAAiB1tD,GACrB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIytD,eAAe3tD,GACnB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0tD,kBAAkB5tD,GACtB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2tD,iBAAiB7tD,GACrB,MACF,KAAK,EACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI4tD,UAAU9tD,GACd,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAakV,QAAQ9B,UAAUzjB,gBAAkB,WAC/C,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAakV,QAAQoB,wBAAwB97C,KAAM47C,GAC5CA,EAAOG,iBAChB,EAUAvW,aAAakV,QAAQoB,wBAA0B,SAASxxC,EAASsxC,GAC/D,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQskD,iBAEVhT,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQukD,kBACNnnD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQwkD,UACNpnD,OAAS,GACbk0C,EAAOgK,YACL,EACA7kB,GAIM,KADVA,EAAIz2B,EAAQykD,qBAEVnT,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ0kD,mBAEVpT,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ2kD,sBAEVrT,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ4kD,qBAEVtT,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQ6kD,cAEVvT,EAAOuK,UACL,EACAplB,EAGN,EAOAyE,aAAakV,QAAQ9B,UAAU4D,WAAa,WAC1C,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAakV,QAAQ9B,UAAUsC,iBAAmB,WAChD,OAA8BlC,EAAKY,QAAQyC,WACvCr8C,KAAKw8C,aACX,EAUAhX,aAAakV,QAAQ9B,UAAUsD,gBAAkB,WAC/C,OAAmClD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKw8C,aACX,EAOAhX,aAAakV,QAAQ9B,UAAUzuB,WAAa,SAAStpB,GACnD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAakV,QAAQ9B,UAAUgW,aAAe,WAC5C,OAA8B5V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAUyV,aAAe,SAASxtD,GACrD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAakV,QAAQ9B,UAAUwW,UAAY,WACzC,OAA4CpW,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAakV,QAAQ9B,UAAUmV,gBAAkB,WAC/C,OAA8B/U,EAAKY,QAAQyC,WACvCr8C,KAAKovD,YACX,EAUA5pB,aAAakV,QAAQ9B,UAAUiW,eAAiB,WAC9C,OAAmC7V,EAAKY,QAAQ0C,UAC5Ct8C,KAAKovD,YACX,EAOA5pB,aAAakV,QAAQ9B,UAAU0V,UAAY,SAASztD,GAClD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAakV,QAAQ9B,UAAUkW,OAAS,WACtC,OAA8B9V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAU3O,OAAS,SAASppC,GAC/C,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACpD,EAOA2kC,aAAakV,QAAQ9B,UAAUmW,iBAAmB,WAChD,OAA8B/V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAU2V,iBAAmB,SAAS1tD,GACzD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAakV,QAAQ9B,UAAUoW,eAAiB,WAC9C,OAA8BhW,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAU4V,eAAiB,SAAS3tD,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAakV,QAAQ9B,UAAUqW,kBAAoB,WACjD,OAA8BjW,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAU6V,kBAAoB,SAAS5tD,GAC1D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAakV,QAAQ9B,UAAUsW,iBAAmB,WAChD,OAA8BlW,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAakV,QAAQ9B,UAAU8V,iBAAmB,SAAS7tD,GACzD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAakV,QAAQ9B,UAAUuW,UAAY,WACzC,OAA+BnW,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EAClF,EAOAwlC,aAAakV,QAAQ9B,UAAU+V,UAAY,SAAS9tD,GAClD,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACrD,EASA2kC,aAAamV,MAAMR,gBAAkB,CAAC,EAAE,GAIpCnB,EAAKY,QAAQiB,qBAajBrV,aAAamV,MAAM/B,UAAUkC,SAAW,SAASC,GAC/C,OAAOvV,aAAamV,MAAMG,SAASC,EAAqB/6C,KAC1D,EAYAwlC,aAAamV,MAAMG,SAAW,SAASE,EAAiBj6C,GACtD,IAAOyX,EAAM,CACXtV,QAASnC,EAAIm6C,mBACbmU,aAAcrW,EAAKY,QAAQqH,aAAalgD,EAAIuuD,kBAC5C9pB,aAAa8E,KAAKwQ,SAAUE,GAC5BuU,aAAcvW,EAAKY,QAAQqH,aAAalgD,EAAIyuD,kBAC5ChqB,aAAa8E,KAAKwQ,SAAUE,IAM9B,OAHIA,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAamV,MAAM1lB,kBAAoB,SAAS1E,GAC9C,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAamV,MAC3B,OAAOnV,aAAamV,MAAMW,4BAA4Bv6C,EAAKq6C,EAC7D,EAUA5V,aAAamV,MAAMW,4BAA8B,SAASv6C,EAAKq6C,GAC7D,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAa8E,KAC7B8Q,EAAOuC,YAAY98C,EAAM2kC,aAAa8E,KAAKgR,6BAC3Cv6C,EAAI0uD,YAAY5uD,GAChB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAa8E,KAC7B8Q,EAAOuC,YAAY98C,EAAM2kC,aAAa8E,KAAKgR,6BAC3Cv6C,EAAI2uD,YAAY7uD,GAChB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAamV,MAAM/B,UAAUzjB,gBAAkB,WAC7C,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAamV,MAAMmB,wBAAwB97C,KAAM47C,GAC1CA,EAAOG,iBAChB,EAUAvW,aAAamV,MAAMmB,wBAA0B,SAASxxC,EAASsxC,GAC7D,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQglD,mBACN5nD,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAa8E,KAAKwR,0BAGtB/a,EAAIz2B,EAAQklD,mBACN9nD,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAa8E,KAAKwR,wBAGxB,EAOAtW,aAAamV,MAAM/B,UAAU4D,WAAa,WACxC,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAamV,MAAM/B,UAAUsC,iBAAmB,WAC9C,OAA8BlC,EAAKY,QAAQyC,WACvCr8C,KAAKw8C,aACX,EAUAhX,aAAamV,MAAM/B,UAAUsD,gBAAkB,WAC7C,OAAmClD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKw8C,aACX,EAOAhX,aAAamV,MAAM/B,UAAUzuB,WAAa,SAAStpB,GACjD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAamV,MAAM/B,UAAU0W,gBAAkB,WAC7C,OACEtW,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa8E,KAAM,EAClE,EAOA9E,aAAamV,MAAM/B,UAAU+W,gBAAkB,SAAS9uD,GACtD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAamV,MAAM/B,UAAU6W,YAAc,SAASlG,EAAW7J,GAC7D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAa8E,KAAMoV,EACvF,EAOAla,aAAamV,MAAM/B,UAAUgX,kBAAoB,WAC/C,OAAO5vD,KAAK2vD,gBAAgB,GAC9B,EAOAnqB,aAAamV,MAAM/B,UAAU4W,gBAAkB,WAC7C,OACExW,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa8E,KAAM,EAClE,EAOA9E,aAAamV,MAAM/B,UAAUiX,gBAAkB,SAAShvD,GACtD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAamV,MAAM/B,UAAU8W,YAAc,SAASnG,EAAW7J,GAC7D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAa8E,KAAMoV,EACvF,EAOAla,aAAamV,MAAM/B,UAAUkX,kBAAoB,WAC/C,OAAO9vD,KAAK6vD,gBAAgB,GAC9B,EAMI7W,EAAKY,QAAQiB,qBAajBrV,aAAaoV,kBAAkBhC,UAAUkC,SAAW,SAASC,GAC3D,OAAOvV,aAAaoV,kBAAkBE,SAASC,EAAqB/6C,KACtE,EAYAwlC,aAAaoV,kBAAkBE,SAAW,SAASE,EAAiBj6C,GAClE,IAAOyX,EAAM,CACXu3C,aAAchvD,EAAIivD,wBAClBC,aAAclvD,EAAImvD,wBAClBC,iBAAkBnX,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC3DqvD,gBAAiBpX,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM5D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaoV,kBAAkB3lB,kBAAoB,SAAS1E,GAC1D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaoV,kBAC3B,OAAOpV,aAAaoV,kBAAkBU,4BAA4Bv6C,EAAKq6C,EACzE,EAUA5V,aAAaoV,kBAAkBU,4BAA8B,SAASv6C,EAAKq6C,GACzE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIsvD,gBAAgBxvD,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIuvD,gBAAgBzvD,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIwvD,oBAAoB1vD,GACxB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIyvD,mBAAmB3vD,GACvB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaoV,kBAAkBhC,UAAUzjB,gBAAkB,WACzD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaoV,kBAAkBkB,wBAAwB97C,KAAM47C,GACtDA,EAAOG,iBAChB,EAUAvW,aAAaoV,kBAAkBkB,wBAA0B,SAASxxC,EAASsxC,GACzE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQmmD,wBACN/oD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQomD,wBACNhpD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQqmD,wBAEV/U,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQsmD,uBAEVhV,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAaoV,kBAAkBhC,UAAUiY,gBAAkB,WACzD,OAA4C7X,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaoV,kBAAkBhC,UAAUoX,sBAAwB,WAC/D,OAA8BhX,EAAKY,QAAQyC,WACvCr8C,KAAK6wD,kBACX,EAUArrB,aAAaoV,kBAAkBhC,UAAU6X,qBAAuB,WAC9D,OAAmCzX,EAAKY,QAAQ0C,UAC5Ct8C,KAAK6wD,kBACX,EAOArrB,aAAaoV,kBAAkBhC,UAAUyX,gBAAkB,SAASxvD,GAClE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaoV,kBAAkBhC,UAAUkY,gBAAkB,WACzD,OAA4C9X,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaoV,kBAAkBhC,UAAUsX,sBAAwB,WAC/D,OAA8BlX,EAAKY,QAAQyC,WACvCr8C,KAAK8wD,kBACX,EAUAtrB,aAAaoV,kBAAkBhC,UAAU8X,qBAAuB,WAC9D,OAAmC1X,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8wD,kBACX,EAOAtrB,aAAaoV,kBAAkBhC,UAAU0X,gBAAkB,SAASzvD,GAClE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaoV,kBAAkBhC,UAAU+X,oBAAsB,WAC7D,OAA8B3X,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaoV,kBAAkBhC,UAAU2X,oBAAsB,SAAS1vD,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaoV,kBAAkBhC,UAAUgY,mBAAqB,WAC5D,OAA8B5X,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaoV,kBAAkBhC,UAAU4X,mBAAqB,SAAS3vD,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EASA2kC,aAAaxQ,YAAYmlB,gBAAkB,CAAC,EAAE,GAI1CnB,EAAKY,QAAQiB,qBAajBrV,aAAaxQ,YAAY4jB,UAAUkC,SAAW,SAASC,GACrD,OAAOvV,aAAaxQ,YAAY8lB,SAASC,EAAqB/6C,KAChE,EAYAwlC,aAAaxQ,YAAY8lB,SAAW,SAASE,EAAiBj6C,GAC5D,IAAIggC,EAAGvoB,EAAM,CACXy6B,SAAUlS,EAAIhgC,EAAIm0B,eAAiBsQ,aAAaxQ,YAAYuR,IAAIuU,SAASE,EAAiBja,GAC1FgwB,cAAehwD,EAAIiwD,yBACnBC,QAASjY,EAAKY,QAAQqH,aAAalgD,EAAImwD,aACvC1rB,aAAaxQ,YAAY0K,OAAOob,SAAUE,IAM5C,OAHIA,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaxQ,YAAYC,kBAAoB,SAAS1E,GACpD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxQ,YAC3B,OAAOwQ,aAAaxQ,YAAYsmB,4BAA4Bv6C,EAAKq6C,EACnE,EAUA5V,aAAaxQ,YAAYsmB,4BAA8B,SAASv6C,EAAKq6C,GACnE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAQ,IAAI2kC,aAAaxQ,YAAYuR,IACzC6U,EAAOuC,YAAY98C,EAAM2kC,aAAaxQ,YAAYuR,IAAI+U,6BACtDv6C,EAAI0lC,WAAW5lC,GACf,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIowD,aAAatwD,GACjB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAaxQ,YAAY0K,OACzC0b,EAAOuC,YAAY98C,EAAM2kC,aAAaxQ,YAAY0K,OAAO4b,6BACzDv6C,EAAIqwD,OAAOvwD,GACX,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaxQ,YAAY4jB,UAAUzjB,gBAAkB,WACnD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxQ,YAAY8mB,wBAAwB97C,KAAM47C,GAChDA,EAAOG,iBAChB,EAUAvW,aAAaxQ,YAAY8mB,wBAA0B,SAASxxC,EAASsxC,GACnE,IAAI7a,OAAI3nB,EAEC,OADT2nB,EAAIz2B,EAAQ4qB,eAEV0mB,EAAOqK,aACL,EACAllB,EACAyE,aAAaxQ,YAAYuR,IAAIuV,0BAGjC/a,EAAIz2B,EAAQ+mD,yBACN3pD,OAAS,GACbk0C,EAAO2C,mBACL,EACAxd,IAGJA,EAAIz2B,EAAQ4mD,cACNxpD,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAaxQ,YAAY0K,OAAOoc,wBAGtC,EAMI9C,EAAKY,QAAQiB,qBAajBrV,aAAaxQ,YAAYnK,SAAS+tB,UAAUkC,SAAW,SAASC,GAC9D,OAAOvV,aAAaxQ,YAAYnK,SAASiwB,SAASC,EAAqB/6C,KACzE,EAYAwlC,aAAaxQ,YAAYnK,SAASiwB,SAAW,SAASE,EAAiBj6C,GACrE,IAAIggC,EAAGvoB,EAAM,CACX5X,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC/CiF,WAAY+6B,EAAIhgC,EAAIuwD,iBAAmBhY,EAAuBpT,IAAI4U,SAASE,EAAiBja,GAC5FzW,SAAUvpB,EAAIwwD,oBACdC,aAAczwD,EAAI0wD,wBAClB/vD,aAAcs3C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMzD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaxQ,YAAYnK,SAASoK,kBAAoB,SAAS1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxQ,YAAYnK,SACvC,OAAO2a,aAAaxQ,YAAYnK,SAASywB,4BAA4Bv6C,EAAKq6C,EAC5E,EAUA5V,aAAaxQ,YAAYnK,SAASywB,4BAA8B,SAASv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAwEu6C,EAAO2C,WACnFh9C,EAAIqlC,QAAQvlC,GACZ,MACF,KAAK,EACCA,EAAQ,IAAIy4C,EAAuBpT,IACvCkV,EAAOuC,YAAY98C,EAAMy4C,EAAuBpT,IAAIoV,6BACpDv6C,EAAIslC,aAAaxlC,GACjB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI2wD,YAAY7wD,GAChB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4wD,gBAAgB9wD,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAIulC,gBAAgBzlC,GACpB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaxQ,YAAYnK,SAAS+tB,UAAUzjB,gBAAkB,WAC5D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxQ,YAAYnK,SAASixB,wBAAwB97C,KAAM47C,GACzDA,EAAOG,iBAChB,EAUAvW,aAAaxQ,YAAYnK,SAASixB,wBAA0B,SAASxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQunC,YAEV+J,EAAO6C,UACL,EACA1d,GAIK,OADTA,EAAIz2B,EAAQgnD,iBAEV1V,EAAOqK,aACL,EACAllB,EACAuY,EAAuBpT,IAAI4V,0BAG/B/a,EAAIz2B,EAAQsnD,oBACNlqD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQunD,wBACNnqD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQwnD,oBAEVlW,EAAOuR,WACL,EACApsB,EAGN,EAMAyE,aAAaxQ,YAAYnK,SAASrpB,aAAe,CAC/CotC,sBAAuB,EACvB7H,iBAAkB,EAClBG,sBAAuB,EACvB6qB,kBAAmB,EACnBpnB,oBAAqB,EACrBT,sBAAuB,EACvBsE,mBAAoB,EACpBwjB,sBAAuB,EACvB3qB,8BAA+B,EAC/B2H,sBAAuB,GACvB5G,sBAAuB,GACvBG,wBAAyB,GACzBG,wBAAyB,GACzBupB,sBAAuB,GACvBlf,oBAAqB,GACrBxD,uBAAwB,GACxBQ,wBAAyB,GACzBJ,uBAAwB,GACxBR,qBAAsB,GACtB+iB,eAAgB,GAChBxlB,oBAAqB,GACrB7E,qBAAsB,GACtBsqB,YAAa,GACb9gB,sBAAuB,GACvBf,uBAAwB,GACxBK,uBAAwB,GACxBG,yBAA0B,GAC1BI,4BAA6B,GAC7BM,0BAA2B,GAC3BkB,gCAAiC,GACjC7F,iBAAkB,GAClBI,wBAAyB,GACzBmlB,yBAA0B,GAC1BC,wBAAyB,GACzBC,0BAA2B,GAC3BzpB,wBAAyB,GACzBM,0BAA2B,GAC3BW,+BAAgC,GAChCL,yBAA0B,GAC1BG,2BAA4B,GAC5Bb,4BAA6B,IAO/BvD,aAAaxQ,YAAYnK,SAAS+tB,UAAU/G,QAAU,WACpD,OAAuEmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EACnH,EAOAwlC,aAAaxQ,YAAYnK,SAAS+tB,UAAUxS,QAAU,SAASvlC,GAC7D,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAOA2kC,aAAaxQ,YAAYnK,SAAS+tB,UAAU0Y,aAAe,WACzD,OACEtY,EAAKY,QAAQkP,gBAAgB9oD,KAAMs5C,EAAuBpT,IAAK,EACnE,EAOAV,aAAaxQ,YAAYnK,SAAS+tB,UAAUvS,aAAe,SAASxlC,GAClE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EAC/C,EAOA2kC,aAAaxQ,YAAYnK,SAAS+tB,UAAU2Z,eAAiB,WAC3D,OAAOvyD,KAAKqmC,kBAAajtB,EAC3B,EAOAosB,aAAaxQ,YAAYnK,SAAS+tB,UAAU4Z,aAAe,WACzD,OAAyC,MAAlCxZ,EAAKY,QAAQsP,SAASlpD,KAAM,EACrC,EAOAwlC,aAAaxQ,YAAYnK,SAAS+tB,UAAU6Z,YAAc,WACxD,OAA4CzZ,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaxQ,YAAYnK,SAAS+tB,UAAU2Y,kBAAoB,WAC9D,OAA8BvY,EAAKY,QAAQyC,WACvCr8C,KAAKyyD,cACX,EAUAjtB,aAAaxQ,YAAYnK,SAAS+tB,UAAUgZ,iBAAmB,WAC7D,OAAmC5Y,EAAKY,QAAQ0C,UAC5Ct8C,KAAKyyD,cACX,EAOAjtB,aAAaxQ,YAAYnK,SAAS+tB,UAAU8Y,YAAc,SAAS7wD,GACjE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaxQ,YAAYnK,SAAS+tB,UAAU8Z,gBAAkB,WAC5D,OAA4C1Z,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaxQ,YAAYnK,SAAS+tB,UAAU6Y,sBAAwB,WAClE,OAA8BzY,EAAKY,QAAQyC,WACvCr8C,KAAK0yD,kBACX,EAUAltB,aAAaxQ,YAAYnK,SAAS+tB,UAAUiZ,qBAAuB,WACjE,OAAmC7Y,EAAKY,QAAQ0C,UAC5Ct8C,KAAK0yD,kBACX,EAOAltB,aAAaxQ,YAAYnK,SAAS+tB,UAAU+Y,gBAAkB,SAAS9wD,GACrE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaxQ,YAAYnK,SAAS+tB,UAAUkZ,gBAAkB,WAC5D,OAA8B9Y,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaxQ,YAAYnK,SAAS+tB,UAAUtS,gBAAkB,SAASzlC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EASA2kC,aAAaxQ,YAAY0K,OAAOya,gBAAkB,CAAC,IAI/CnB,EAAKY,QAAQiB,qBAajBrV,aAAaxQ,YAAY0K,OAAOkZ,UAAUkC,SAAW,SAASC,GAC5D,OAAOvV,aAAaxQ,YAAY0K,OAAOob,SAASC,EAAqB/6C,KACvE,EAYAwlC,aAAaxQ,YAAY0K,OAAOob,SAAW,SAASE,EAAiBj6C,GACnE,IAAOyX,EAAM,CACXm6C,IAAK3Z,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC9CuU,IAAK0jC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC9C6xD,YAAa5Z,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtD8xD,aAAc7Z,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IACxD+xD,eAAgB9Z,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC1DgyD,eAAgB/Z,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC1DiyD,uBAAwBha,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAClEkyD,4BAA6Bja,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACvEmyD,8BAA+Bla,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACzE++C,WAAY9G,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACtDoyD,uBAAwBna,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAClEqyD,QAASryD,EAAIsyD,mBACbC,iBAAkBta,EAAKY,QAAQqH,aAAalgD,EAAIwyD,sBAChD/tB,aAAaoV,kBAAkBE,SAAUE,IAM3C,OAHIA,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaxQ,YAAY0K,OAAOzK,kBAAoB,SAAS1E,GAC3D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxQ,YAAY0K,OACvC,OAAO8F,aAAaxQ,YAAY0K,OAAO4b,4BAA4Bv6C,EAAKq6C,EAC1E,EAUA5V,aAAaxQ,YAAY0K,OAAO4b,4BAA8B,SAASv6C,EAAKq6C,GAC1E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIyyD,OAAO3yD,GACX,MACF,KAAK,EACCA,EAA8Du6C,EAAO2C,WACzEh9C,EAAI0yD,OAAO5yD,GACX,MACF,KAAK,EACCA,EAAwEu6C,EAAO2C,WACnFh9C,EAAI2yD,eAAe7yD,GACnB,MACF,KAAK,GACCA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAI4yD,gBAAgB9yD,GACpB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6yD,kBAAkB/yD,GACtB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI8yD,kBAAkBhzD,GACtB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+yD,0BAA0BjzD,GAC9B,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIgzD,+BAA+BlzD,GACnC,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIizD,iCAAiCnzD,GACrC,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0vC,cAAc5vC,GAClB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIkzD,0BAA0BpzD,GAC9B,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAImzD,WAAWrzD,GACf,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAaoV,kBAC7BQ,EAAOuC,YAAY98C,EAAM2kC,aAAaoV,kBAAkBU,6BACxDv6C,EAAIozD,gBAAgBtzD,GACpB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaxQ,YAAY0K,OAAOkZ,UAAUzjB,gBAAkB,WAC1D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxQ,YAAY0K,OAAOoc,wBAAwB97C,KAAM47C,GACvDA,EAAOG,iBAChB,EAUAvW,aAAaxQ,YAAY0K,OAAOoc,wBAA0B,SAASxxC,EAASsxC,GAC1E,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ8pD,WAEVxY,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ+pD,WAEVzY,EAAO6C,UACL,EACA1d,GAIM,KADVA,EAAIz2B,EAAQgqD,mBAEV1Y,EAAO6C,UACL,EACA1d,IAGJA,EAAIz2B,EAAQiqD,mBACN7sD,OAAS,GACbk0C,EAAOgK,YACL,GACA7kB,GAIM,KADVA,EAAIz2B,EAAQkqD,sBAEV5Y,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQmqD,sBAEV7Y,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQoqD,8BAEV9Y,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQqqD,mCAEV/Y,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQsqD,qCAEVhZ,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQg2C,kBAEV1E,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQuqD,8BAEVjZ,EAAOkB,WACL,GACA/b,IAGJA,EAAIz2B,EAAQwqD,mBACNptD,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQipD,uBACN7rD,OAAS,GACbk0C,EAAO+J,qBACL,GACA5kB,EACAyE,aAAaoV,kBAAkBkB,wBAGrC,EAMAtW,aAAaxQ,YAAY0K,OAAOhoB,KAAO,CACrCq9C,OAAQ,EACRC,OAAQ,GAMVxvB,aAAaxQ,YAAY0K,OAAOrlB,eAAiB,CAC/C46C,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,qBAAsB,EACtBC,cAAe,EACfC,qBAAsB,EACtBC,gBAAiB,EACjBC,gBAAiB,EACjBC,kBAAmB,EACnBC,eAAgB,EAChBC,cAAe,GACfC,YAAa,GACbC,oBAAqB,GACrBC,QAAS,GACTC,gBAAiB,GACjBC,aAAc,IAOhBxwB,aAAaxQ,YAAY0K,OAAOkZ,UAAUwb,OAAS,WACjD,OAA8Bpb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAU4a,OAAS,SAAS3yD,GAC1D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAUyb,OAAS,WACjD,OAA6Drb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EACzG,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAU6a,OAAS,SAAS5yD,GAC1D,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU0b,eAAiB,WACzD,OAAuEtb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EACnH,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAU8a,eAAiB,SAAS7yD,GAClE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU2b,gBAAkB,WAC1D,OAA8Bvb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAU+a,gBAAkB,SAAS9yD,GACnE,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,GAAIa,EACrD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU4b,kBAAoB,WAC5D,OAA8Bxb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUgb,kBAAoB,SAAS/yD,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU6b,kBAAoB,WAC5D,OAA8Bzb,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUib,kBAAoB,SAAShzD,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU8b,0BAA4B,WACpE,OAA8B1b,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUkb,0BAA4B,SAASjzD,GAC7E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU+b,+BAAiC,WACzE,OAA8B3b,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUmb,+BAAiC,SAASlzD,GAClF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAUgc,iCAAmC,WAC3E,OAA8B5b,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUob,iCAAmC,SAASnzD,GACpF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU0H,cAAgB,WACxD,OAA8BtH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUnI,cAAgB,SAAS5vC,GACjE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAUic,0BAA4B,WACpE,OAA8B7b,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUqb,0BAA4B,SAASpzD,GAC7E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAUqd,WAAa,WACrD,OAA4Cjd,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAaxQ,YAAY0K,OAAOkZ,UAAUya,iBAAmB,WAC3D,OAA8Bra,EAAKY,QAAQyC,WACvCr8C,KAAKi2D,aACX,EAUAzwB,aAAaxQ,YAAY0K,OAAOkZ,UAAUkc,gBAAkB,WAC1D,OAAmC9b,EAAKY,QAAQ0C,UAC5Ct8C,KAAKi2D,aACX,EAOAzwB,aAAaxQ,YAAY0K,OAAOkZ,UAAUsb,WAAa,SAASrzD,GAC9D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAU2a,oBAAsB,WAC9D,OACEva,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaoV,kBAAmB,GAC/E,EAOApV,aAAaxQ,YAAY0K,OAAOkZ,UAAUsd,oBAAsB,SAASr1D,GACvE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,GAAIa,EACxD,EAQA2kC,aAAaxQ,YAAY0K,OAAOkZ,UAAUub,gBAAkB,SAAS5K,EAAW7J,GAC9E,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,GAAIupD,EAAW/jB,aAAaoV,kBAAmB8E,EACrG,EAOAla,aAAaxQ,YAAY0K,OAAOkZ,UAAUud,sBAAwB,WAChE,OAAOn2D,KAAKk2D,oBAAoB,GAClC,EASA1wB,aAAaxQ,YAAYuR,IAAI4T,gBAAkB,CAAC,EAAE,IAI9CnB,EAAKY,QAAQiB,qBAajBrV,aAAaxQ,YAAYuR,IAAIqS,UAAUkC,SAAW,SAASC,GACzD,OAAOvV,aAAaxQ,YAAYuR,IAAIuU,SAASC,EAAqB/6C,KACpE,EAYAwlC,aAAaxQ,YAAYuR,IAAIuU,SAAW,SAASE,EAAiBj6C,GAChE,IAAOyX,EAAM,CACX49C,cAAer1D,EAAIs1D,yBACnBC,YAAatd,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtDw1D,aAAcx1D,EAAIy1D,wBAClB5iD,WAAYolC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrD01D,UAAWzd,EAAKY,QAAQqH,aAAalgD,EAAI21D,eACzClxB,aAAaiV,UAAUK,SAAUE,GACjC/5C,KAAMF,EAAI41D,gBACVC,aAAc5d,EAAKY,QAAQqH,aAAalgD,EAAI81D,kBAC5CrxB,aAAaxQ,YAAYnK,SAASiwB,SAAUE,GAC5C8b,QAAS/1D,EAAIg2D,mBACbljD,UAAWmlC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACrDyE,SAAUwzC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IAMtD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaxQ,YAAYuR,IAAItR,kBAAoB,SAAS1E,GACxD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxQ,YAAYuR,IACvC,OAAOf,aAAaxQ,YAAYuR,IAAI+U,4BAA4Bv6C,EAAKq6C,EACvE,EAUA5V,aAAaxQ,YAAYuR,IAAI+U,4BAA8B,SAASv6C,EAAKq6C,GACvE,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIsyC,iBAAiBxyC,GACrB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIi2D,eAAen2D,GACnB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIuyC,gBAAgBzyC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIyyC,cAAc3yC,GAClB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAaiV,UAC7BW,EAAOuC,YAAY98C,EAAM2kC,aAAaiV,UAAUa,6BAChDv6C,EAAIk2D,SAASp2D,GACb,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI0mC,QAAQ5mC,GACZ,MACF,KAAK,GACCA,EAAQ,IAAI2kC,aAAaxQ,YAAYnK,SACzCuwB,EAAOuC,YAAY98C,EAAM2kC,aAAaxQ,YAAYnK,SAASywB,6BAC3Dv6C,EAAIylC,YAAY3lC,GAChB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIm2D,WAAWr2D,GACf,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0yC,aAAa5yC,GACjB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIwyC,YAAY1yC,GAChB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaxQ,YAAYuR,IAAIqS,UAAUzjB,gBAAkB,WACvD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxQ,YAAYuR,IAAIuV,wBAAwB97C,KAAM47C,GACpDA,EAAOG,iBAChB,EAUAvW,aAAaxQ,YAAYuR,IAAIuV,wBAA0B,SAASxxC,EAASsxC,GACvE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ6sD,yBACNzvD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ8sD,mBAEVxb,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQ+sD,wBACN3vD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQgtD,kBAEV1b,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQosD,gBACNhvD,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAaiV,UAAUqB,0BAG3B/a,EAAIz2B,EAAQitD,gBACN7vD,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQusD,mBACNnvD,OAAS,GACbk0C,EAAO+J,qBACL,GACA5kB,EACAyE,aAAaxQ,YAAYnK,SAASixB,0BAGtC/a,EAAIz2B,EAAQktD,mBACN9vD,OAAS,GACbk0C,EAAOK,WACL,GACAlb,GAIM,KADVA,EAAIz2B,EAAQmtD,iBAEV7b,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQotD,gBAEV9b,EAAOkB,WACL,GACA/b,EAGN,EAOAyE,aAAaxQ,YAAYuR,IAAIqS,UAAU+e,iBAAmB,WACxD,OAA4C3e,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUyd,uBAAyB,WAC9D,OAA8Brd,EAAKY,QAAQyC,WACvCr8C,KAAK23D,mBACX,EAUAnyB,aAAaxQ,YAAYuR,IAAIqS,UAAUue,sBAAwB,WAC7D,OAAmCne,EAAKY,QAAQ0C,UAC5Ct8C,KAAK23D,mBACX,EAOAnyB,aAAaxQ,YAAYuR,IAAIqS,UAAUvF,iBAAmB,SAASxyC,GACjE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAUwe,eAAiB,WACtD,OAA8Bpe,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUoe,eAAiB,SAASn2D,GAC/D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAUgf,gBAAkB,WACvD,OAA4C5e,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAU4d,sBAAwB,WAC7D,OAA8Bxd,EAAKY,QAAQyC,WACvCr8C,KAAK43D,kBACX,EAUApyB,aAAaxQ,YAAYuR,IAAIqS,UAAUye,qBAAuB,WAC5D,OAAmCre,EAAKY,QAAQ0C,UAC5Ct8C,KAAK43D,kBACX,EAOApyB,aAAaxQ,YAAYuR,IAAIqS,UAAUtF,gBAAkB,SAASzyC,GAChE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAU0e,cAAgB,WACrD,OAA8Bte,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUpF,cAAgB,SAAS3yC,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAU8d,aAAe,WACpD,OACE1d,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaiV,UAAW,EACvE,EAOAjV,aAAaxQ,YAAYuR,IAAIqS,UAAUif,aAAe,SAASh3D,GAC7D,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAUqe,SAAW,SAAS1N,EAAW7J,GACpE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaiV,UAAWiF,EAC5F,EAOAla,aAAaxQ,YAAYuR,IAAIqS,UAAUkf,eAAiB,WACtD,OAAO93D,KAAK63D,aAAa,GAC3B,EAOAryB,aAAaxQ,YAAYuR,IAAIqS,UAAUmf,QAAU,WAC/C,OAA4C/e,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAU+d,cAAgB,WACrD,OAA8B3d,EAAKY,QAAQyC,WACvCr8C,KAAK+3D,UACX,EAUAvyB,aAAaxQ,YAAYuR,IAAIqS,UAAU2e,aAAe,WACpD,OAAmCve,EAAKY,QAAQ0C,UAC5Ct8C,KAAK+3D,UACX,EAOAvyB,aAAaxQ,YAAYuR,IAAIqS,UAAUnR,QAAU,SAAS5mC,GACxD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAUie,gBAAkB,WACvD,OACE7d,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaxQ,YAAYnK,SAAU,GAClF,EAOA2a,aAAaxQ,YAAYuR,IAAIqS,UAAUof,gBAAkB,SAASn3D,GAChE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,GAAIa,EACxD,EAQA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAUpS,YAAc,SAAS+iB,EAAW7J,GACvE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,GAAIupD,EAAW/jB,aAAaxQ,YAAYnK,SAAU60B,EACxG,EAOAla,aAAaxQ,YAAYuR,IAAIqS,UAAUqf,kBAAoB,WACzD,OAAOj4D,KAAKg4D,gBAAgB,GAC9B,EAOAxyB,aAAaxQ,YAAYuR,IAAIqS,UAAUsf,WAAa,WAClD,OAA4Clf,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUme,iBAAmB,WACxD,OAA8B/d,EAAKY,QAAQyC,WACvCr8C,KAAKk4D,aACX,EAUA1yB,aAAaxQ,YAAYuR,IAAIqS,UAAU4e,gBAAkB,WACvD,OAAmCxe,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk4D,aACX,EAOA1yB,aAAaxQ,YAAYuR,IAAIqS,UAAUse,WAAa,SAASr2D,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAU6e,aAAe,WACpD,OAA8Bze,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUnF,aAAe,SAAS5yC,GAC7D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAYuR,IAAIqS,UAAU8e,YAAc,WACnD,OAA8B1e,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAaxQ,YAAYuR,IAAIqS,UAAUrF,YAAc,SAAS1yC,GAC5D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAaxQ,YAAY4jB,UAAU1jB,WAAa,WAC9C,OACE8jB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaxQ,YAAYuR,IAAK,EACrE,EAOAf,aAAaxQ,YAAY4jB,UAAUnS,WAAa,SAAS5lC,GACvD,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EAC/C,EAOA2kC,aAAaxQ,YAAY4jB,UAAUuf,aAAe,WAChD,OAAOn4D,KAAKymC,gBAAWrtB,EACzB,EAOAosB,aAAaxQ,YAAY4jB,UAAUwf,WAAa,WAC9C,OAAyC,MAAlCpf,EAAKY,QAAQsP,SAASlpD,KAAM,EACrC,EAOAwlC,aAAaxQ,YAAY4jB,UAAUyf,iBAAmB,WACpD,OAA2Drf,EAAKY,QAAQyF,iBAAiBr/C,KAAM,EACjG,EAQAwlC,aAAaxQ,YAAY4jB,UAAUoY,uBAAyB,WAC1D,OAAsChY,EAAKY,QAAQ0F,eAC/Ct/C,KAAKq4D,mBACX,EAUA7yB,aAAaxQ,YAAY4jB,UAAUyY,sBAAwB,WACzD,OAA2CrY,EAAKY,QAAQ2F,cACpDv/C,KAAKq4D,mBACX,EAOA7yB,aAAaxQ,YAAY4jB,UAAU0f,iBAAmB,SAASz3D,GAC7D,OAAOm4C,EAAKY,QAAQ6F,SAASz/C,KAAM,EAAGa,GAAS,GACjD,EAQA2kC,aAAaxQ,YAAY4jB,UAAUuY,aAAe,SAAStwD,EAAO6+C,GAChE,OAAO1G,EAAKY,QAAQ+F,mBAAmB3/C,KAAM,EAAGa,EAAO6+C,EACzD,EAOAla,aAAaxQ,YAAY4jB,UAAU2f,mBAAqB,WACtD,OAAOv4D,KAAKs4D,iBAAiB,GAC/B,EAOA9yB,aAAaxQ,YAAY4jB,UAAUsY,WAAa,WAC9C,OACElY,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaxQ,YAAY0K,OAAQ,EAChF,EAOA8F,aAAaxQ,YAAY4jB,UAAU4f,WAAa,SAAS33D,GACvD,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAaxQ,YAAY4jB,UAAUwY,OAAS,SAAS7H,EAAW7J,GAC9D,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaxQ,YAAY0K,OAAQggB,EACrG,EAOAla,aAAaxQ,YAAY4jB,UAAU6f,aAAe,WAChD,OAAOz4D,KAAKw4D,WAAW,GACzB,EAMAhzB,aAAanZ,YAAc,CACzBqsC,OAAQ,EACRC,WAAY,EACZC,SAAU,GAGZ3f,EAAKM,OAAOC,OAAOV,EAAStT,a,gBCt1O5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACuB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WACI,OAAOp5C,IACX,EAAE+Y,KAAK,OACPsgC,SAAS,cAATA,GAEAwf,EAAe,EAAQ,MAC3B5f,EAAKM,OAAOC,OAAO1kB,MAAO+jC,GAC1B5f,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,+CAAgD,KAAMP,GACxED,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,oCAAqC,KAAMP,GAW7D1T,aAAav3B,sBAAwB,SAAU0rC,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAav3B,sBAAuB+qC,EAAKY,SACnDX,EAAKc,QAAUC,WAKfxU,aAAav3B,sBAAsBgsC,YAAc,sCAYrDzU,aAAan3B,sBAAwB,SAAUsrC,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAan3B,sBAAuB2qC,EAAKY,SACnDX,EAAKc,QAAUC,WAKfxU,aAAan3B,sBAAsB4rC,YAAc,sCAYrDzU,aAAa72B,qBAAuB,SAAUgrC,GAC1CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa72B,qBAAsBqqC,EAAKY,SAClDX,EAAKc,QAAUC,WAKfxU,aAAa72B,qBAAqBsrC,YAAc,qCAYpDzU,aAAajyB,gCAAkC,SAAUomC,GACrDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAajyB,gCAAgC4mC,gBAAiB,KACjH,EACAlB,EAAKa,SAAStU,aAAajyB,gCAAiCylC,EAAKY,SAC7DX,EAAKc,QAAUC,WAKfxU,aAAajyB,gCAAgC0mC,YAAc,gDAG3DjB,EAAKY,QAAQiB,qBAabrV,aAAav3B,sBAAsB2qC,UAAUkC,SAAW,SAAUC,GAC9D,OAAOvV,aAAav3B,sBAAsB6sC,SAASC,EAAqB/6C,KAC5E,EAWAwlC,aAAav3B,sBAAsB6sC,SAAW,SAAUE,EAAiBj6C,GACrE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB/qD,eAAgBhN,EAAIg4D,0BACpBn4D,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMvD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAav3B,sBAAsBgnB,kBAAoB,SAAU1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAav3B,sBAC3B,OAAOu3B,aAAav3B,sBAAsBqtC,4BAA4Bv6C,EAAKq6C,EAC/E,EASA5V,aAAav3B,sBAAsBqtC,4BAA8B,SAAUv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4tC,kBAAkB9tC,GACtB,MACJ,KAAK,EACGA,EAAkDu6C,EAAO2C,WAC7Dh9C,EAAIqlC,QAAQvlC,GACZ,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAav3B,sBAAsB2qC,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAav3B,sBAAsB6tC,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAClB,EASAvW,aAAav3B,sBAAsB6tC,wBAA0B,SAAUxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ2uD,0BACNvxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQunC,YAER+J,EAAO6C,UAAU,EAAG1d,EAE5B,EAMAyE,aAAav3B,sBAAsB2qC,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAav3B,sBAAsB2qC,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAav3B,sBAAsB2qC,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAav3B,sBAAsB2qC,UAAU/R,gBAAkB,SAAUhmC,GACrE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAav3B,sBAAsB2qC,UAAUugB,kBAAoB,WAC7D,OAA4CngB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAav3B,sBAAsB2qC,UAAUmgB,wBAA0B,WACnE,OAA8B/f,EAAKY,QAAQyC,WAAWr8C,KAAKm5D,oBAC/D,EASA3zB,aAAav3B,sBAAsB2qC,UAAUqgB,uBAAyB,WAClE,OAAmCjgB,EAAKY,QAAQ0C,UAAUt8C,KAAKm5D,oBACnE,EAMA3zB,aAAav3B,sBAAsB2qC,UAAUjK,kBAAoB,SAAU9tC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAav3B,sBAAsB2qC,UAAU/G,QAAU,WACnD,OAAiDmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC/F,EAMAwlC,aAAav3B,sBAAsB2qC,UAAUxS,QAAU,SAAUvlC,GAC7D,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAan3B,sBAAsBuqC,UAAUkC,SAAW,SAAUC,GAC9D,OAAOvV,aAAan3B,sBAAsBysC,SAASC,EAAqB/6C,KAC5E,EAWAwlC,aAAan3B,sBAAsBysC,SAAW,SAAUE,EAAiBj6C,GACrE,IACIyX,EAAM,CACFrK,YAAapN,EAAIggD,uBACjBx+C,aAAcxB,EAAI+3D,yBAM1B,OAHI9d,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAan3B,sBAAsB4mB,kBAAoB,SAAU1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAan3B,sBAC3B,OAAOm3B,aAAan3B,sBAAsBitC,4BAA4Bv6C,EAAKq6C,EAC/E,EASA5V,aAAan3B,sBAAsBitC,4BAA8B,SAAUv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIguC,eAAeluC,GACnB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAan3B,sBAAsBuqC,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAan3B,sBAAsBytC,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAClB,EASAvW,aAAan3B,sBAAsBytC,wBAA0B,SAAUxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQo7C,uBACNh+C,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAan3B,sBAAsBuqC,UAAUuQ,eAAiB,WAC1D,OAA4CnQ,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAan3B,sBAAsBuqC,UAAUmI,qBAAuB,WAChE,OAA8B/H,EAAKY,QAAQyC,WAAWr8C,KAAKmpD,iBAC/D,EASA3jB,aAAan3B,sBAAsBuqC,UAAU8M,oBAAsB,WAC/D,OAAmC1M,EAAKY,QAAQ0C,UAAUt8C,KAAKmpD,iBACnE,EAMA3jB,aAAan3B,sBAAsBuqC,UAAU7J,eAAiB,SAAUluC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAan3B,sBAAsBuqC,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAan3B,sBAAsBuqC,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAan3B,sBAAsBuqC,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAan3B,sBAAsBuqC,UAAU/R,gBAAkB,SAAUhmC,GACrE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa72B,qBAAqBiqC,UAAUkC,SAAW,SAAUC,GAC7D,OAAOvV,aAAa72B,qBAAqBmsC,SAASC,EAAqB/6C,KAC3E,EAWAwlC,aAAa72B,qBAAqBmsC,SAAW,SAAUE,EAAiBj6C,GACpE,IACIyX,EAAM,CACFjK,UAAWxN,EAAIyiD,qBACfjhD,aAAcxB,EAAI+3D,yBAM1B,OAHI9d,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa72B,qBAAqBsmB,kBAAoB,SAAU1E,GAC5D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa72B,qBAC3B,OAAO62B,aAAa72B,qBAAqB2sC,4BAA4Bv6C,EAAKq6C,EAC9E,EASA5V,aAAa72B,qBAAqB2sC,4BAA8B,SAAUv6C,EAAKq6C,GAC3E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIuN,aAAazN,GACjB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa72B,qBAAqBiqC,UAAUzjB,gBAAkB,WAC1D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa72B,qBAAqBmtC,wBAAwB97C,KAAM47C,GACzDA,EAAOG,iBAClB,EASAvW,aAAa72B,qBAAqBmtC,wBAA0B,SAAUxxC,EAASsxC,GAC3E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQy8C,qBACNr/C,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAa72B,qBAAqBiqC,UAAU8R,aAAe,WACvD,OAA4C1R,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa72B,qBAAqBiqC,UAAU4K,mBAAqB,WAC7D,OAA8BxK,EAAKY,QAAQyC,WAAWr8C,KAAK0qD,eAC/D,EASAllB,aAAa72B,qBAAqBiqC,UAAUmO,kBAAoB,WAC5D,OAAmC/N,EAAKY,QAAQ0C,UAAUt8C,KAAK0qD,eACnE,EAMAllB,aAAa72B,qBAAqBiqC,UAAUtqC,aAAe,SAAUzN,GACjE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa72B,qBAAqBiqC,UAAUsgB,gBAAkB,WAC1D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa72B,qBAAqBiqC,UAAUkgB,sBAAwB,WAChE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAa72B,qBAAqBiqC,UAAUogB,qBAAuB,WAC/D,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAa72B,qBAAqBiqC,UAAU/R,gBAAkB,SAAUhmC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAOA2kC,aAAajyB,gCAAgC4mC,gBAAkB,CAAC,GAE5DnB,EAAKY,QAAQiB,qBAabrV,aAAajyB,gCAAgCqlC,UAAUkC,SAAW,SAAUC,GACxE,OAAOvV,aAAajyB,gCAAgCunC,SAASC,EAAqB/6C,KACtF,EAWAwlC,aAAajyB,gCAAgCunC,SAAW,SAAUE,EAAiBj6C,GAC/E,IAAIggC,EACAvoB,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB9lD,OAAQ+tB,EAAIhgC,EAAIq4D,aAAeP,EAAavzB,WAAWwV,SAASE,EAAiBja,GACjF7tB,SAAU6tB,EAAIhgC,EAAIs4D,eAAiBR,EAAavzB,WAAWwV,SAASE,EAAiBja,GACrFu4B,YAAatgB,EAAKY,QAAQqH,aAAalgD,EAAIw4D,iBAAkBV,EAAavzB,WAAWwV,SAAUE,IAMvG,OAHIA,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAajyB,gCAAgC0hB,kBAAoB,SAAU1E,GACvE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAajyB,gCAC3B,OAAOiyB,aAAajyB,gCAAgC+nC,4BAA4Bv6C,EAAKq6C,EACzF,EASA5V,aAAajyB,gCAAgC+nC,4BAA8B,SAAUv6C,EAAKq6C,GACtF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAQ,IAAIg4D,EAAavzB,WAC7B8V,EAAOuC,YAAY98C,EAAOg4D,EAAavzB,WAAWgW,6BAClDv6C,EAAIuxC,SAASzxC,GACb,MACJ,KAAK,EACGA,EAAQ,IAAIg4D,EAAavzB,WAC7B8V,EAAOuC,YAAY98C,EAAOg4D,EAAavzB,WAAWgW,6BAClDv6C,EAAIwxC,WAAW1xC,GACf,MACJ,KAAK,EACGA,EAAQ,IAAIg4D,EAAavzB,WAC7B8V,EAAOuC,YAAY98C,EAAOg4D,EAAavzB,WAAWgW,6BAClDv6C,EAAIy4D,WAAW34D,GACf,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAajyB,gCAAgCqlC,UAAUzjB,gBAAkB,WACrE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAajyB,gCAAgCuoC,wBAAwB97C,KAAM47C,GACpEA,EAAOG,iBAClB,EASAvW,aAAajyB,gCAAgCuoC,wBAA0B,SAAUxxC,EAASsxC,GACtF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGhB,OADTA,EAAIz2B,EAAQ8uD,aAERxd,EAAOqK,aAAa,EAAGllB,EAAG83B,EAAavzB,WAAWwW,yBAG7C,OADT/a,EAAIz2B,EAAQ+uD,eAERzd,EAAOqK,aAAa,EAAGllB,EAAG83B,EAAavzB,WAAWwW,0BAEtD/a,EAAIz2B,EAAQivD,kBACN7xD,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAG83B,EAAavzB,WAAWwW,wBAElE,EAMAtW,aAAajyB,gCAAgCqlC,UAAUsgB,gBAAkB,WACrE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAajyB,gCAAgCqlC,UAAUkgB,sBAAwB,WAC3E,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAajyB,gCAAgCqlC,UAAUogB,qBAAuB,WAC1E,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAajyB,gCAAgCqlC,UAAU/R,gBAAkB,SAAUhmC,GAC/E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAajyB,gCAAgCqlC,UAAUwgB,SAAW,WAC9D,OAA+CpgB,EAAKY,QAAQkP,gBAAgB9oD,KAAM64D,EAAavzB,WAAY,EAC/G,EAMAE,aAAajyB,gCAAgCqlC,UAAUtG,SAAW,SAAUzxC,GACxE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAajyB,gCAAgCqlC,UAAU6gB,WAAa,WAChE,OAAOz5D,KAAKsyC,cAASl5B,EACzB,EAMAosB,aAAajyB,gCAAgCqlC,UAAU8gB,SAAW,WAC9D,OAAyC,MAAlC1gB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAajyB,gCAAgCqlC,UAAUygB,WAAa,WAChE,OAA+CrgB,EAAKY,QAAQkP,gBAAgB9oD,KAAM64D,EAAavzB,WAAY,EAC/G,EAMAE,aAAajyB,gCAAgCqlC,UAAUrG,WAAa,SAAU1xC,GAC1E,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAajyB,gCAAgCqlC,UAAU+gB,aAAe,WAClE,OAAO35D,KAAKuyC,gBAAWn5B,EAC3B,EAMAosB,aAAajyB,gCAAgCqlC,UAAUghB,WAAa,WAChE,OAAyC,MAAlC5gB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAajyB,gCAAgCqlC,UAAU2gB,eAAiB,WACpE,OACIvgB,EAAKY,QAAQwP,wBAAwBppD,KAAM64D,EAAavzB,WAAY,EAE5E,EAMAE,aAAajyB,gCAAgCqlC,UAAUpG,eAAiB,SAAU3xC,GAC9E,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAajyB,gCAAgCqlC,UAAU4gB,WAAa,SAAUjQ,EAAW7J,GACrF,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaF,WAAYoa,EAC/F,EAMAla,aAAajyB,gCAAgCqlC,UAAUihB,iBAAmB,WACtE,OAAO75D,KAAKwyC,eAAe,GAC/B,EAEAyG,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCn7B5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,kCAAmC,KAAMP,GAC3DD,EAAKQ,aAAa,+CAAgD,KAAMP,GACxED,EAAKQ,aAAa,6CAA8C,KAAMP,GACtED,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,mCAAoC,KAAMP,GAW5D1T,aAAa33B,mBAAqB,SAAS8rC,GACzCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAa33B,mBAAmBssC,gBAAiB,KAClG,EACAlB,EAAKa,SAAStU,aAAa33B,mBAAoBmrC,EAAKY,SAChDX,EAAKc,QAAUC,WAKjBxU,aAAa33B,mBAAmBosC,YAAc,mCAYhDzU,aAAa33B,mBAAmBugC,aAAe,SAASuL,GACtDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa33B,mBAAmBugC,aAAc4K,EAAKY,SAC7DX,EAAKc,QAAUC,WAKjBxU,aAAa33B,mBAAmBugC,aAAa6L,YAAc,gDAY7DzU,aAAazjC,sBAAwB,SAAS43C,GAC5CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAazjC,sBAAuBi3C,EAAKY,SACnDX,EAAKc,QAAUC,WAKjBxU,aAAazjC,sBAAsBk4C,YAAc,sCAYnDzU,aAAas0B,sBAAwB,SAASngB,GAC5CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAas0B,sBAAuB9gB,EAAKY,SACnDX,EAAKc,QAAUC,WAKjBxU,aAAas0B,sBAAsB7f,YAAc,sCAYnDzU,aAAaz2B,oBAAsB,SAAS4qC,GAC1CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaz2B,oBAAqBiqC,EAAKY,SACjDX,EAAKc,QAAUC,WAKjBxU,aAAaz2B,oBAAoBkrC,YAAc,oCAYjDzU,aAAarjC,8BAAgC,SAASw3C,GACpDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAarjC,8BAA+B62C,EAAKY,SAC3DX,EAAKc,QAAUC,WAKjBxU,aAAarjC,8BAA8B83C,YAAc,8CAQ3DzU,aAAa33B,mBAAmBssC,gBAAkB,CAAC,GAI/CnB,EAAKY,QAAQiB,qBAajBrV,aAAa33B,mBAAmB+qC,UAAUkC,SAAW,SAASC,GAC5D,OAAOvV,aAAa33B,mBAAmBitC,SAASC,EAAqB/6C,KACvE,EAYAwlC,aAAa33B,mBAAmBitC,SAAW,SAASE,EAAiBj6C,GACnE,IAAOyX,EAAM,CACX2I,GAAI63B,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IAC9CwB,aAAcxB,EAAI+3D,wBAClBn4D,KAAMI,EAAIk6C,gBACVnuC,KAAM/L,EAAIg5D,gBACV9tD,YAAa+sC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtDwhD,iBAAkBvJ,EAAKY,QAAQqH,aAAalgD,EAAIyhD,sBAChDhd,aAAa33B,mBAAmBugC,aAAa0M,SAAUE,GACvDgf,OAAQhhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACjD8L,UAAWmsC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpDkM,IAAK+rC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC9Ck5D,UAAWjhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpDm5D,QAASlhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACnDo5D,MAAOnhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACjD6L,UAAWosC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACrDiL,YAAajL,EAAIq5D,uBACjB51D,IAAKzD,EAAIs5D,eACTC,kBAAmBthB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GAC7Dw5D,wBAAyBvhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACnEy5D,wBAAyBxhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACnE05D,wBAAyBzhB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IAMrE,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa33B,mBAAmBonB,kBAAoB,SAAS1E,GAC3D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa33B,mBAC3B,OAAO23B,aAAa33B,mBAAmBytC,4BAA4Bv6C,EAAKq6C,EAC1E,EAUA5V,aAAa33B,mBAAmBytC,4BAA8B,SAASv6C,EAAKq6C,GAC1E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,GACH,IAAI56C,EAA+Bu6C,EAAO6I,aAC1CljD,EAAI+wC,MAAMjxC,GACV,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIuqC,QAAQzqC,GACZ,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIusC,QAAQzsC,GACZ,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIwsC,eAAe1sC,GACnB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAa33B,mBAAmBugC,aAChDgN,EAAOuC,YAAY98C,EAAM2kC,aAAa33B,mBAAmBugC,aAAakN,6BACtEv6C,EAAIwtC,gBAAgB1tC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAI4sC,UAAU9sC,GACd,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAI8sC,aAAahtC,GACjB,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAIysC,OAAO3sC,GACX,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2sC,aAAa7sC,GACjB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0sC,WAAW5sC,GACf,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI25D,SAAS75D,GACb,MACF,KAAK,GACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAI6sC,aAAa/sC,GACjB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIgtC,eAAeltC,GACnB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIkpC,OAAOppC,GACX,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIktC,qBAAqBptC,GACzB,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAImtC,2BAA2BrtC,GAC/B,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIitC,2BAA2BntC,GAC/B,MACF,KAAK,GACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+sC,2BAA2BjtC,GAC/B,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa33B,mBAAmB+qC,UAAUzjB,gBAAkB,WAC1D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa33B,mBAAmBiuC,wBAAwB97C,KAAM47C,GACvDA,EAAOG,iBAChB,EAUAvW,aAAa33B,mBAAmBiuC,wBAA0B,SAASxxC,EAASsxC,GAC1E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ4iD,SACNxlD,OAAS,GACbk0C,EAAOgK,YACL,GACA7kB,IAGJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ0xC,gBACNt0C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQqwD,gBACNjzD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQswD,mBAEVhf,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQk4C,uBACN96C,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAa33B,mBAAmBugC,aAAa0N,yBAIvC,KADV/a,EAAIz2B,EAAQuwD,cAEVjf,EAAOuR,WACL,EACApsB,GAIM,KADVA,EAAIz2B,EAAQwwD,iBAEVlf,EAAOuR,WACL,EACApsB,GAIM,KADVA,EAAIz2B,EAAQywD,WAEVnf,EAAOuR,WACL,EACApsB,GAIM,KADVA,EAAIz2B,EAAQ0wD,iBAEVpf,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQ2wD,eAEVrf,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQ4wD,aAEVtf,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQ6wD,iBAEVvf,EAAOuR,WACL,GACApsB,IAGJA,EAAIz2B,EAAQ8wD,uBACN1zD,OAAS,GACbk0C,EAAOK,WACL,GACAlb,IAGJA,EAAIz2B,EAAQ+wD,eACN3zD,OAAS,GACbk0C,EAAOK,WACL,GACAlb,GAIM,KADVA,EAAIz2B,EAAQgxD,yBAEV1f,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQixD,+BAEV3f,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQkxD,+BAEV5f,EAAOkB,WACL,GACA/b,GAIM,KADVA,EAAIz2B,EAAQmxD,+BAEV7f,EAAOkB,WACL,GACA/b,EAGN,EAMIiY,EAAKY,QAAQiB,qBAajBrV,aAAa33B,mBAAmBugC,aAAawK,UAAUkC,SAAW,SAASC,GACzE,OAAOvV,aAAa33B,mBAAmBugC,aAAa0M,SAASC,EAAqB/6C,KACpF,EAYAwlC,aAAa33B,mBAAmBugC,aAAa0M,SAAW,SAASE,EAAiBj6C,GAChF,IAAOyX,EAAM,CACX9L,aAAcssC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACvD26D,WAAY1iB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMvD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa33B,mBAAmBugC,aAAanZ,kBAAoB,SAAS1E,GACxE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa33B,mBAAmBugC,aAC9C,OAAO5I,aAAa33B,mBAAmBugC,aAAakN,4BAA4Bv6C,EAAKq6C,EACvF,EAUA5V,aAAa33B,mBAAmBugC,aAAakN,4BAA8B,SAASv6C,EAAKq6C,GACvF,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIstC,gBAAgBxtC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIutC,cAAcztC,GAClB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa33B,mBAAmBugC,aAAawK,UAAUzjB,gBAAkB,WACvE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa33B,mBAAmBugC,aAAa0N,wBAAwB97C,KAAM47C,GACpEA,EAAOG,iBAChB,EAUAvW,aAAa33B,mBAAmBugC,aAAa0N,wBAA0B,SAASxxC,EAASsxC,GACvF,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQqxD,oBAEV/f,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQsxD,kBAEVhgB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa33B,mBAAmBugC,aAAawK,UAAU+iB,gBAAkB,WACvE,OAA8B3iB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmBugC,aAAawK,UAAUvK,gBAAkB,SAASxtC,GAChF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmBugC,aAAawK,UAAUgjB,cAAgB,WACrE,OAA8B5iB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmBugC,aAAawK,UAAUtK,cAAgB,SAASztC,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUsU,MAAQ,WAChD,OAA8BlU,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU9G,MAAQ,SAASjxC,GACzD,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,GAAIa,EACrD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUsgB,gBAAkB,WAC1D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa33B,mBAAmB+qC,UAAUkgB,sBAAwB,WAChE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa33B,mBAAmB+qC,UAAUogB,qBAAuB,WAC/D,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa33B,mBAAmB+qC,UAAU/R,gBAAkB,SAAShmC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUuD,QAAU,WAClD,OAA4CnD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa33B,mBAAmB+qC,UAAUqC,cAAgB,WACxD,OAA8BjC,EAAKY,QAAQyC,WACvCr8C,KAAKm8C,UACX,EAUA3W,aAAa33B,mBAAmB+qC,UAAUoD,aAAe,WACvD,OAAmChD,EAAKY,QAAQ0C,UAC5Ct8C,KAAKm8C,UACX,EAOA3W,aAAa33B,mBAAmB+qC,UAAUtN,QAAU,SAASzqC,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUijB,QAAU,WAClD,OAA4C7iB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa33B,mBAAmB+qC,UAAUmhB,cAAgB,WACxD,OAA8B/gB,EAAKY,QAAQyC,WACvCr8C,KAAK67D,UACX,EAUAr2B,aAAa33B,mBAAmB+qC,UAAU+hB,aAAe,WACvD,OAAmC3hB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK67D,UACX,EAOAr2B,aAAa33B,mBAAmB+qC,UAAUtL,QAAU,SAASzsC,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUgiB,eAAiB,WACzD,OAA8B5hB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUrL,eAAiB,SAAS1sC,GAClE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAU4J,oBAAsB,WAC9D,OACExJ,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAa33B,mBAAmBugC,aAAc,EAC7F,EAOA5I,aAAa33B,mBAAmB+qC,UAAUsR,oBAAsB,SAASrpD,GACvE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAa33B,mBAAmB+qC,UAAUrK,gBAAkB,SAASgb,EAAW7J,GAC9E,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAa33B,mBAAmBugC,aAAcsR,EAClH,EAOAla,aAAa33B,mBAAmB+qC,UAAUuR,sBAAwB,WAChE,OAAOnqD,KAAKkqD,oBAAoB,GAClC,EAOA1kB,aAAa33B,mBAAmB+qC,UAAUiiB,UAAY,WACpD,OAA8B7hB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUjL,UAAY,SAAS9sC,GAC7D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUkiB,aAAe,WACvD,OAA8B9hB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU/K,aAAe,SAAShtC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUmiB,OAAS,WACjD,OAA8B/hB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUpL,OAAS,SAAS3sC,GAC1D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUoiB,aAAe,WACvD,OAA8BhiB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUlL,aAAe,SAAS7sC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUqiB,WAAa,WACrD,OAA8BjiB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUnL,WAAa,SAAS5sC,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUsiB,SAAW,WACnD,OAA8BliB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU8hB,SAAW,SAAS75D,GAC5D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUuiB,aAAe,WACvD,OAA8BniB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAUhL,aAAe,SAAS/sC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUkjB,eAAiB,WACzD,OAA4C9iB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa33B,mBAAmB+qC,UAAUwhB,qBAAuB,WAC/D,OAA8BphB,EAAKY,QAAQyC,WACvCr8C,KAAK87D,iBACX,EAUAt2B,aAAa33B,mBAAmB+qC,UAAUwiB,oBAAsB,WAC9D,OAAmCpiB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK87D,iBACX,EAOAt2B,aAAa33B,mBAAmB+qC,UAAU7K,eAAiB,SAASltC,GAClE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAUkW,OAAS,WACjD,OAA4C9V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAa33B,mBAAmB+qC,UAAUyhB,aAAe,WACvD,OAA8BrhB,EAAKY,QAAQyC,WACvCr8C,KAAK8uD,SACX,EAUAtpB,aAAa33B,mBAAmB+qC,UAAUyiB,YAAc,WACtD,OAAmCriB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8uD,SACX,EAOAtpB,aAAa33B,mBAAmB+qC,UAAU3O,OAAS,SAASppC,GAC1D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAU0iB,qBAAuB,WAC/D,OAA8BtiB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU3K,qBAAuB,SAASptC,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAU2iB,2BAA6B,WACrE,OAA8BviB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU1K,2BAA6B,SAASrtC,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAU4iB,2BAA6B,WACrE,OAA8BxiB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU5K,2BAA6B,SAASntC,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAOA2kC,aAAa33B,mBAAmB+qC,UAAU6iB,2BAA6B,WACrE,OAA8BziB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC3E,EAOAwlC,aAAa33B,mBAAmB+qC,UAAU9K,2BAA6B,SAASjtC,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EAClD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAazjC,sBAAsB62C,UAAUkC,SAAW,SAASC,GAC/D,OAAOvV,aAAazjC,sBAAsB+4C,SAASC,EAAqB/6C,KAC1E,EAYAwlC,aAAazjC,sBAAsB+4C,SAAW,SAASE,EAAiBj6C,GACtE,IAAOyX,EAAM,CACXujD,UAAWh7D,EAAIi7D,qBACfz5D,aAAcxB,EAAI+3D,wBAClB1yC,UAAWrlB,EAAIk7D,qBACf77D,OAAQ44C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMnD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAazjC,sBAAsBkzB,kBAAoB,SAAS1E,GAC9D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAazjC,sBAC3B,OAAOyjC,aAAazjC,sBAAsBu5C,4BAA4Bv6C,EAAKq6C,EAC7E,EAUA5V,aAAazjC,sBAAsBu5C,4BAA8B,SAASv6C,EAAKq6C,GAC7E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIkmC,aAAapmC,GACjB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI6lC,aAAa/lC,GACjB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+lC,UAAUjmC,GACd,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAazjC,sBAAsB62C,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAazjC,sBAAsB+5C,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAChB,EAUAvW,aAAazjC,sBAAsB+5C,wBAA0B,SAASxxC,EAASsxC,GAC7E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ4xD,qBACNx0D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ6xD,qBACNz0D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ8xD,cAEVxgB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAazjC,sBAAsB62C,UAAUyjB,aAAe,WAC1D,OAA4CrjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAazjC,sBAAsB62C,UAAUojB,mBAAqB,WAChE,OAA8BhjB,EAAKY,QAAQyC,WACvCr8C,KAAKq8D,eACX,EAUA72B,aAAazjC,sBAAsB62C,UAAUsjB,kBAAoB,WAC/D,OAAmCljB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKq8D,eACX,EAOA72B,aAAazjC,sBAAsB62C,UAAU3R,aAAe,SAASpmC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAazjC,sBAAsB62C,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAazjC,sBAAsB62C,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAazjC,sBAAsB62C,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAazjC,sBAAsB62C,UAAU/R,gBAAkB,SAAShmC,GACtE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAazjC,sBAAsB62C,UAAU0jB,aAAe,WAC1D,OAA4CtjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAazjC,sBAAsB62C,UAAUqjB,mBAAqB,WAChE,OAA8BjjB,EAAKY,QAAQyC,WACvCr8C,KAAKs8D,eACX,EAUA92B,aAAazjC,sBAAsB62C,UAAUujB,kBAAoB,WAC/D,OAAmCnjB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKs8D,eACX,EAOA92B,aAAazjC,sBAAsB62C,UAAUhS,aAAe,SAAS/lC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAazjC,sBAAsB62C,UAAUwjB,UAAY,WACvD,OAA8BpjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAazjC,sBAAsB62C,UAAU9R,UAAY,SAASjmC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAas0B,sBAAsBlhB,UAAUkC,SAAW,SAASC,GAC/D,OAAOvV,aAAas0B,sBAAsBhf,SAASC,EAAqB/6C,KAC1E,EAYAwlC,aAAas0B,sBAAsBhf,SAAW,SAASE,EAAiBj6C,GACtE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,yBAMpB,OAHI9d,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAas0B,sBAAsB7kC,kBAAoB,SAAS1E,GAC9D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAas0B,sBAC3B,OAAOt0B,aAAas0B,sBAAsBxe,4BAA4Bv6C,EAAKq6C,EAC7E,EAUA5V,aAAas0B,sBAAsBxe,4BAA8B,SAASv6C,EAAKq6C,GAC7E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,GACK,IAFOJ,EAAOK,iBAEnB,CACE,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,EACf,MAELu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAas0B,sBAAsBlhB,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAas0B,sBAAsBhe,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAChB,EAUAvW,aAAas0B,sBAAsBhe,wBAA0B,SAASxxC,EAASsxC,GAC7E,IAAI7a,GACJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,EAGN,EAOAyE,aAAas0B,sBAAsBlhB,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAas0B,sBAAsBlhB,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAas0B,sBAAsBlhB,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAas0B,sBAAsBlhB,UAAU/R,gBAAkB,SAAShmC,GACtE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAaz2B,oBAAoB6pC,UAAUkC,SAAW,SAASC,GAC7D,OAAOvV,aAAaz2B,oBAAoB+rC,SAASC,EAAqB/6C,KACxE,EAYAwlC,aAAaz2B,oBAAoB+rC,SAAW,SAASE,EAAiBj6C,GACpE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB9sD,YAAajL,EAAIq5D,uBACjB51D,IAAKzD,EAAIs5D,eACTkC,SAAUvjB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACnDy7D,eAAgBxjB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM3D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaz2B,oBAAoBkmB,kBAAoB,SAAS1E,GAC5D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaz2B,oBAC3B,OAAOy2B,aAAaz2B,oBAAoBusC,4BAA4Bv6C,EAAKq6C,EAC3E,EAUA5V,aAAaz2B,oBAAoBusC,4BAA8B,SAASv6C,EAAKq6C,GAC3E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIgtC,eAAeltC,GACnB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIkpC,OAAOppC,GACX,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI8xC,YAAYhyC,GAChB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+xC,kBAAkBjyC,GACtB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaz2B,oBAAoB6pC,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaz2B,oBAAoB+sC,wBAAwB97C,KAAM47C,GACxDA,EAAOG,iBAChB,EAUAvW,aAAaz2B,oBAAoB+sC,wBAA0B,SAASxxC,EAASsxC,GAC3E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ8wD,uBACN1zD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ+wD,eACN3zD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQmyD,gBAEV7gB,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQoyD,sBAEV9gB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAaz2B,oBAAoB6pC,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaz2B,oBAAoB6pC,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAaz2B,oBAAoB6pC,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAaz2B,oBAAoB6pC,UAAU/R,gBAAkB,SAAShmC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaz2B,oBAAoB6pC,UAAUkjB,eAAiB,WAC1D,OAA4C9iB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaz2B,oBAAoB6pC,UAAUwhB,qBAAuB,WAChE,OAA8BphB,EAAKY,QAAQyC,WACvCr8C,KAAK87D,iBACX,EAUAt2B,aAAaz2B,oBAAoB6pC,UAAUwiB,oBAAsB,WAC/D,OAAmCpiB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK87D,iBACX,EAOAt2B,aAAaz2B,oBAAoB6pC,UAAU7K,eAAiB,SAASltC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaz2B,oBAAoB6pC,UAAUkW,OAAS,WAClD,OAA4C9V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaz2B,oBAAoB6pC,UAAUyhB,aAAe,WACxD,OAA8BrhB,EAAKY,QAAQyC,WACvCr8C,KAAK8uD,SACX,EAUAtpB,aAAaz2B,oBAAoB6pC,UAAUyiB,YAAc,WACvD,OAAmCriB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8uD,SACX,EAOAtpB,aAAaz2B,oBAAoB6pC,UAAU3O,OAAS,SAASppC,GAC3D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaz2B,oBAAoB6pC,UAAU6jB,YAAc,WACvD,OAA8BzjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaz2B,oBAAoB6pC,UAAU/F,YAAc,SAAShyC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAaz2B,oBAAoB6pC,UAAU8jB,kBAAoB,WAC7D,OAA8B1jB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAaz2B,oBAAoB6pC,UAAU9F,kBAAoB,SAASjyC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAarjC,8BAA8By2C,UAAUkC,SAAW,SAASC,GACvE,OAAOvV,aAAarjC,8BAA8B24C,SAASC,EAAqB/6C,KAClF,EAYAwlC,aAAarjC,8BAA8B24C,SAAW,SAASE,EAAiBj6C,GAC9E,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB1yC,UAAWrlB,EAAIk7D,qBACfF,UAAWh7D,EAAIi7D,qBACf57D,OAAQ44C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMnD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAarjC,8BAA8B8yB,kBAAoB,SAAS1E,GACtE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAarjC,8BAC3B,OAAOqjC,aAAarjC,8BAA8Bm5C,4BAA4Bv6C,EAAKq6C,EACrF,EAUA5V,aAAarjC,8BAA8Bm5C,4BAA8B,SAASv6C,EAAKq6C,GACrF,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI6lC,aAAa/lC,GACjB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIkmC,aAAapmC,GACjB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+lC,UAAUjmC,GACd,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAarjC,8BAA8By2C,UAAUzjB,gBAAkB,WACrE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAarjC,8BAA8B25C,wBAAwB97C,KAAM47C,GAClEA,EAAOG,iBAChB,EAUAvW,aAAarjC,8BAA8B25C,wBAA0B,SAASxxC,EAASsxC,GACrF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ6xD,qBACNz0D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ4xD,qBACNx0D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ8xD,cAEVxgB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAarjC,8BAA8By2C,UAAUsgB,gBAAkB,WACrE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAarjC,8BAA8By2C,UAAUkgB,sBAAwB,WAC3E,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAarjC,8BAA8By2C,UAAUogB,qBAAuB,WAC1E,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAarjC,8BAA8By2C,UAAU/R,gBAAkB,SAAShmC,GAC9E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAarjC,8BAA8By2C,UAAU0jB,aAAe,WAClE,OAA4CtjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAarjC,8BAA8By2C,UAAUqjB,mBAAqB,WACxE,OAA8BjjB,EAAKY,QAAQyC,WACvCr8C,KAAKs8D,eACX,EAUA92B,aAAarjC,8BAA8By2C,UAAUujB,kBAAoB,WACvE,OAAmCnjB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKs8D,eACX,EAOA92B,aAAarjC,8BAA8By2C,UAAUhS,aAAe,SAAS/lC,GAC3E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAarjC,8BAA8By2C,UAAUyjB,aAAe,WAClE,OAA4CrjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAarjC,8BAA8By2C,UAAUojB,mBAAqB,WACxE,OAA8BhjB,EAAKY,QAAQyC,WACvCr8C,KAAKq8D,eACX,EAUA72B,aAAarjC,8BAA8By2C,UAAUsjB,kBAAoB,WACvE,OAAmCljB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKq8D,eACX,EAOA72B,aAAarjC,8BAA8By2C,UAAU3R,aAAe,SAASpmC,GAC3E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAarjC,8BAA8By2C,UAAUwjB,UAAY,WAC/D,OAA8BpjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAarjC,8BAA8By2C,UAAU9R,UAAY,SAASjmC,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAGAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCtoE5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACuB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WACI,OAAOp5C,IACX,EAAE+Y,KAAK,OACPsgC,SAAS,cAATA,GAEAsjB,EAA0B,EAAQ,KACtC1jB,EAAKM,OAAOC,OAAO1kB,MAAO6nC,GAC1B1jB,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,sCAAuC,KAAMP,GAC/DD,EAAKQ,aAAa,iCAAkC,KAAMP,GAC1DD,EAAKQ,aAAa,4BAA6B,KAAMP,GACrDD,EAAKQ,aAAa,iCAAkC,KAAMP,GAC1DD,EAAKQ,aAAa,iDAAkD,KAAMP,GAC1ED,EAAKQ,aAAa,2CAA4C,KAAMP,GACpED,EAAKQ,aAAa,wCAAyC,KAAMP,GACjED,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,iDAAkD,KAAMP,GAC1ED,EAAKQ,aAAa,gCAAiC,KAAMP,GACzDD,EAAKQ,aAAa,0CAA2C,KAAMP,GACnED,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,yCAA0C,KAAMP,GAClED,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,8CAA+C,KAAMP,GAWvE1T,aAAaxiC,sBAAwB,SAAU22C,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaxiC,sBAAuBg2C,EAAKY,SACnDX,EAAKc,QAAUC,WAKfxU,aAAaxiC,sBAAsBi3C,YAAc,sCAYrDzU,aAAariC,wBAA0B,SAAUw2C,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAariC,wBAAyB61C,EAAKY,SACrDX,EAAKc,QAAUC,WAKfxU,aAAariC,wBAAwB82C,YAAc,wCAYvDzU,aAAalhC,wBAA0B,SAAUq1C,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAalhC,wBAAyB00C,EAAKY,SACrDX,EAAKc,QAAUC,WAKfxU,aAAalhC,wBAAwB21C,YAAc,wCAYvDzU,aAAa/jC,iBAAmB,SAAUk4C,GACtCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa/jC,iBAAkBu3C,EAAKY,SAC9CX,EAAKc,QAAUC,WAKfxU,aAAa/jC,iBAAiBw4C,YAAc,iCAYhDzU,aAAao3B,wBAA0B,SAAUjjB,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAao3B,wBAAwBziB,gBAAiB,KACzG,EACAlB,EAAKa,SAAStU,aAAao3B,wBAAyB5jB,EAAKY,SACrDX,EAAKc,QAAUC,WAKfxU,aAAao3B,wBAAwB3iB,YAAc,wCAYvDzU,aAAao3B,wBAAwBC,UAAY,SAAUljB,GACvDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAao3B,wBAAwBC,UAAW7jB,EAAKY,SAC/DX,EAAKc,QAAUC,WAKfxU,aAAao3B,wBAAwBC,UAAU5iB,YAAc,kDAYjEzU,aAAas3B,kBAAoB,SAAUnjB,GACvCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAas3B,kBAAkB3iB,gBAAiB,KACnG,EACAlB,EAAKa,SAAStU,aAAas3B,kBAAmB9jB,EAAKY,SAC/CX,EAAKc,QAAUC,WAKfxU,aAAas3B,kBAAkB7iB,YAAc,kCAYjDzU,aAAas3B,kBAAkBC,gBAAkB,SAAUpjB,GACvDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAas3B,kBAAkBC,gBAAiB/jB,EAAKY,SAC/DX,EAAKc,QAAUC,WAKfxU,aAAas3B,kBAAkBC,gBAAgB9iB,YAAc,kDAYjEzU,aAAaw3B,aAAe,SAAUrjB,GAClCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaw3B,aAAchkB,EAAKY,SAC1CX,EAAKc,QAAUC,WAKfxU,aAAaw3B,aAAa/iB,YAAc,6BAY5CzU,aAAay3B,kBAAoB,SAAUtjB,GACvCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAay3B,kBAAmBjkB,EAAKY,SAC/CX,EAAKc,QAAUC,WAKfxU,aAAay3B,kBAAkBhjB,YAAc,kCAYjDzU,aAAa03B,sBAAwB,SAAUvjB,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa03B,sBAAuBlkB,EAAKY,SACnDX,EAAKc,QAAUC,WAKfxU,aAAa03B,sBAAsBjjB,YAAc,sCAYrDzU,aAAa23B,uBAAyB,SAAUxjB,GAC5CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa23B,uBAAwBnkB,EAAKY,SACpDX,EAAKc,QAAUC,WAKfxU,aAAa23B,uBAAuBljB,YAAc,uCAYtDzU,aAAaniC,wBAA0B,SAAUs2C,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaniC,wBAAyB21C,EAAKY,SACrDX,EAAKc,QAAUC,WAKfxU,aAAaniC,wBAAwB42C,YAAc,wCAYvDzU,aAAahiC,0BAA4B,SAAUm2C,GAC/CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAahiC,0BAA2Bw1C,EAAKY,SACvDX,EAAKc,QAAUC,WAKfxU,aAAahiC,0BAA0By2C,YAAc,0CAYzDzU,aAAaphC,+BAAiC,SAAUu1C,GACpDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaphC,+BAAgC40C,EAAKY,SAC5DX,EAAKc,QAAUC,WAKfxU,aAAaphC,+BAA+B61C,YAAc,+CAY9DzU,aAAaxhC,yBAA2B,SAAU21C,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaxhC,yBAA0Bg1C,EAAKY,SACtDX,EAAKc,QAAUC,WAKfxU,aAAaxhC,yBAAyBi2C,YAAc,yCAYxDzU,aAAathC,2BAA6B,SAAUy1C,GAChDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAathC,2BAA4B80C,EAAKY,SACxDX,EAAKc,QAAUC,WAKfxU,aAAathC,2BAA2B+1C,YAAc,2CAY1DzU,aAAa9hC,4BAA8B,SAAUi2C,GACjDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa9hC,4BAA6Bs1C,EAAKY,SACzDX,EAAKc,QAAUC,WAKfxU,aAAa9hC,4BAA4Bu2C,YAAc,4CAGvDjB,EAAKY,QAAQiB,qBAabrV,aAAaxiC,sBAAsB41C,UAAUkC,SAAW,SAAUC,GAC9D,OAAOvV,aAAaxiC,sBAAsB83C,SAASC,EAAqB/6C,KAC5E,EAWAwlC,aAAaxiC,sBAAsB83C,SAAW,SAAUE,EAAiBj6C,GACrE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB7R,cAAejO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACxD4L,eAAgBqsC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACzDuB,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACpDyB,gBAAiBzB,EAAIq8D,4BAM7B,OAHIpiB,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaxiC,sBAAsBiyB,kBAAoB,SAAU1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxiC,sBAC3B,OAAOwiC,aAAaxiC,sBAAsBs4C,4BAA4Bv6C,EAAKq6C,EAC/E,EASA5V,aAAaxiC,sBAAsBs4C,4BAA8B,SAAUv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIinC,iBAAiBnnC,GACrB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIknC,kBAAkBpnC,GACtB,MACJ,KAAK,GACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,KAAK,GACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIonC,mBAAmBtnC,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaxiC,sBAAsB41C,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxiC,sBAAsB84C,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAClB,EASAvW,aAAaxiC,sBAAsB84C,wBAA0B,SAAUxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ88C,qBAERxL,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQ+yD,sBAERzhB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,GAAI1d,IAEzBA,EAAIz2B,EAAQizD,2BACN71D,OAAS,GACXk0C,EAAOK,WAAW,GAAIlb,EAE9B,EAMAyE,aAAaxiC,sBAAsB41C,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaxiC,sBAAsB41C,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaxiC,sBAAsB41C,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaxiC,sBAAsB41C,UAAU/R,gBAAkB,SAAUhmC,GACrE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaxiC,sBAAsB41C,UAAUwO,iBAAmB,WAC5D,OAA8BpO,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaxiC,sBAAsB41C,UAAU5Q,iBAAmB,SAAUnnC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaxiC,sBAAsB41C,UAAUykB,kBAAoB,WAC7D,OAA8BrkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaxiC,sBAAsB41C,UAAU3Q,kBAAoB,SAAUpnC,GACvE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaxiC,sBAAsB41C,UAAU0kB,YAAc,WACvD,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EACjG,EAMAwlC,aAAaxiC,sBAAsB41C,UAAU1Q,YAAc,SAAUrnC,GACjE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,GAAIa,EACrD,EAMA2kC,aAAaxiC,sBAAsB41C,UAAU4kB,mBAAqB,WAC9D,OAA4CxkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GAC3F,EAOAwlC,aAAaxiC,sBAAsB41C,UAAUwkB,yBAA2B,WACpE,OAA8BpkB,EAAKY,QAAQyC,WAAWr8C,KAAKw9D,qBAC/D,EASAh4B,aAAaxiC,sBAAsB41C,UAAU2kB,wBAA0B,WACnE,OAAmCvkB,EAAKY,QAAQ0C,UAAUt8C,KAAKw9D,qBACnE,EAMAh4B,aAAaxiC,sBAAsB41C,UAAUzQ,mBAAqB,SAAUtnC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACtD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAariC,wBAAwBy1C,UAAUkC,SAAW,SAAUC,GAChE,OAAOvV,aAAariC,wBAAwB23C,SAASC,EAAqB/6C,KAC9E,EAWAwlC,aAAariC,wBAAwB23C,SAAW,SAAUE,EAAiBj6C,GACvE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClBx2D,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,GACpDyB,gBAAiBzB,EAAIq8D,4BAM7B,OAHIpiB,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAariC,wBAAwB8xB,kBAAoB,SAAU1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAariC,wBAC3B,OAAOqiC,aAAariC,wBAAwBm4C,4BAA4Bv6C,EAAKq6C,EACjF,EASA5V,aAAariC,wBAAwBm4C,4BAA8B,SAAUv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,GACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,KAAK,GACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIonC,mBAAmBtnC,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAariC,wBAAwBy1C,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAariC,wBAAwB24C,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAClB,EASAvW,aAAariC,wBAAwB24C,wBAA0B,SAAUxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,GAAI1d,IAEzBA,EAAIz2B,EAAQizD,2BACN71D,OAAS,GACXk0C,EAAOK,WAAW,GAAIlb,EAE9B,EAMAyE,aAAariC,wBAAwBy1C,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAariC,wBAAwBy1C,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAariC,wBAAwBy1C,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAariC,wBAAwBy1C,UAAU/R,gBAAkB,SAAUhmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAariC,wBAAwBy1C,UAAU0kB,YAAc,WACzD,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EACjG,EAMAwlC,aAAariC,wBAAwBy1C,UAAU1Q,YAAc,SAAUrnC,GACnE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,GAAIa,EACrD,EAMA2kC,aAAariC,wBAAwBy1C,UAAU4kB,mBAAqB,WAChE,OAA4CxkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GAC3F,EAOAwlC,aAAariC,wBAAwBy1C,UAAUwkB,yBAA2B,WACtE,OAA8BpkB,EAAKY,QAAQyC,WAAWr8C,KAAKw9D,qBAC/D,EASAh4B,aAAariC,wBAAwBy1C,UAAU2kB,wBAA0B,WACrE,OAAmCvkB,EAAKY,QAAQ0C,UAAUt8C,KAAKw9D,qBACnE,EAMAh4B,aAAariC,wBAAwBy1C,UAAUzQ,mBAAqB,SAAUtnC,GAC1E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACtD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAalhC,wBAAwBs0C,UAAUkC,SAAW,SAAUC,GAChE,OAAOvV,aAAalhC,wBAAwBw2C,SAASC,EAAqB/6C,KAC9E,EAWAwlC,aAAalhC,wBAAwBw2C,SAAW,SAAUE,EAAiBj6C,GACvE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,yBAM1B,OAHI9d,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAalhC,wBAAwB2wB,kBAAoB,SAAU1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAalhC,wBAC3B,OAAOkhC,aAAalhC,wBAAwBg3C,4BAA4Bv6C,EAAKq6C,EACjF,EASA5V,aAAalhC,wBAAwBg3C,4BAA8B,SAAUv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,GACS,IAFGJ,EAAOK,iBAEf,CACI,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,EACf,MAELu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAalhC,wBAAwBs0C,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAalhC,wBAAwBw3C,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAClB,EASAvW,aAAalhC,wBAAwBw3C,wBAA0B,SAAUxxC,EAASsxC,GAC9E,IAAI7a,GACJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAalhC,wBAAwBs0C,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAalhC,wBAAwBs0C,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAalhC,wBAAwBs0C,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAalhC,wBAAwBs0C,UAAU/R,gBAAkB,SAAUhmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa/jC,iBAAiBm3C,UAAUkC,SAAW,SAAUC,GACzD,OAAOvV,aAAa/jC,iBAAiBq5C,SAASC,EAAqB/6C,KACvE,EAWAwlC,aAAa/jC,iBAAiBq5C,SAAW,SAAUE,EAAiBj6C,GAChE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB1yC,UAAWrlB,EAAIk7D,qBACf77D,OAAQ44C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMzD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa/jC,iBAAiBwzB,kBAAoB,SAAU1E,GACxD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa/jC,iBAC3B,OAAO+jC,aAAa/jC,iBAAiB65C,4BAA4Bv6C,EAAKq6C,EAC1E,EASA5V,aAAa/jC,iBAAiB65C,4BAA8B,SAAUv6C,EAAKq6C,GACvE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI6lC,aAAa/lC,GACjB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+lC,UAAUjmC,GACd,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa/jC,iBAAiBm3C,UAAUzjB,gBAAkB,WACtD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa/jC,iBAAiBq6C,wBAAwB97C,KAAM47C,GACrDA,EAAOG,iBAClB,EASAvW,aAAa/jC,iBAAiBq6C,wBAA0B,SAAUxxC,EAASsxC,GACvE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ6xD,qBACNz0D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ8xD,cAERxgB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAa/jC,iBAAiBm3C,UAAUsgB,gBAAkB,WACtD,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa/jC,iBAAiBm3C,UAAUkgB,sBAAwB,WAC5D,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAa/jC,iBAAiBm3C,UAAUogB,qBAAuB,WAC3D,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAa/jC,iBAAiBm3C,UAAU/R,gBAAkB,SAAUhmC,GAChE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa/jC,iBAAiBm3C,UAAU0jB,aAAe,WACnD,OAA4CtjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa/jC,iBAAiBm3C,UAAUqjB,mBAAqB,WACzD,OAA8BjjB,EAAKY,QAAQyC,WAAWr8C,KAAKs8D,eAC/D,EASA92B,aAAa/jC,iBAAiBm3C,UAAUujB,kBAAoB,WACxD,OAAmCnjB,EAAKY,QAAQ0C,UAAUt8C,KAAKs8D,eACnE,EAMA92B,aAAa/jC,iBAAiBm3C,UAAUhS,aAAe,SAAU/lC,GAC7D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa/jC,iBAAiBm3C,UAAUwjB,UAAY,WAChD,OAA8BpjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAa/jC,iBAAiBm3C,UAAU9R,UAAY,SAAUjmC,GAC1D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAOA2kC,aAAao3B,wBAAwBziB,gBAAkB,CAAC,GAEpDnB,EAAKY,QAAQiB,qBAabrV,aAAao3B,wBAAwBhkB,UAAUkC,SAAW,SAAUC,GAChE,OAAOvV,aAAao3B,wBAAwB9hB,SAASC,EAAqB/6C,KAC9E,EAWAwlC,aAAao3B,wBAAwB9hB,SAAW,SAAUE,EAAiBj6C,GACvE,IACIyX,EAAM,CACFilD,sBAAuB18D,EAAI28D,iCAC3BC,cAAe3kB,EAAKY,QAAQqH,aACxBlgD,EAAI68D,mBACJp4B,aAAao3B,wBAAwBC,UAAU/hB,SAC/CE,GAEJp6C,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAC/C88D,OAAQ7kB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,KAMzD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAao3B,wBAAwB3nC,kBAAoB,SAAU1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAao3B,wBAC3B,OAAOp3B,aAAao3B,wBAAwBthB,4BAA4Bv6C,EAAKq6C,EACjF,EASA5V,aAAao3B,wBAAwBthB,4BAA8B,SAAUv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI+8D,yBAAyBj9D,GAC7B,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAao3B,wBAAwBC,UACrDzhB,EAAOuC,YAAY98C,EAAO2kC,aAAao3B,wBAAwBC,UAAUvhB,6BACzEv6C,EAAIg9D,aAAal9D,GACjB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIqlC,QAAQvlC,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIi9D,UAAUn9D,GACd,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAao3B,wBAAwBhkB,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAao3B,wBAAwB9gB,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAClB,EASAvW,aAAao3B,wBAAwB9gB,wBAA0B,SAAUxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ2zD,iCACNv2D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQszD,oBACNl2D,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAGyE,aAAao3B,wBAAwBC,UAAU/gB,0BAErF/a,EAAIz2B,EAAQunC,WACNnqC,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,IAE1BA,EAAIz2B,EAAQ4zD,aACNx2D,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,EAE9B,EAEIiY,EAAKY,QAAQiB,qBAabrV,aAAao3B,wBAAwBC,UAAUjkB,UAAUkC,SAAW,SAAUC,GAC1E,OAAOvV,aAAao3B,wBAAwBC,UAAU/hB,SAASC,EAAqB/6C,KACxF,EAWAwlC,aAAao3B,wBAAwBC,UAAU/hB,SAAW,SAAUE,EAAiBj6C,GACjF,IACIyX,EAAM,CACF2lD,oBAAqBnlB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC9DmC,QAASnC,EAAIm6C,mBACb96C,OAAQ44C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMzD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAao3B,wBAAwBC,UAAU5nC,kBAAoB,SAAU1E,GACzE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAao3B,wBAAwBC,UACnD,OAAOr3B,aAAao3B,wBAAwBC,UAAUvhB,4BAA4Bv6C,EAAKq6C,EAC3F,EASA5V,aAAao3B,wBAAwBC,UAAUvhB,4BAA8B,SAAUv6C,EAAKq6C,GACxF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIq9D,uBAAuBv9D,GAC3B,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,GACf,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI+lC,UAAUjmC,GACd,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAao3B,wBAAwBC,UAAUjkB,UAAUzjB,gBAAkB,WACvE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAao3B,wBAAwBC,UAAU/gB,wBAAwB97C,KAAM47C,GACtEA,EAAOG,iBAClB,EASAvW,aAAao3B,wBAAwBC,UAAU/gB,wBAA0B,SAAUxxC,EAASsxC,GACxF,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ+zD,2BAERziB,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ8xD,cAERxgB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAao3B,wBAAwBC,UAAUjkB,UAAUylB,uBAAyB,WAC9E,OAA8BrlB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAao3B,wBAAwBC,UAAUjkB,UAAUwlB,uBAAyB,SAAUv9D,GACxF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAao3B,wBAAwBC,UAAUjkB,UAAU4D,WAAa,WAClE,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAao3B,wBAAwBC,UAAUjkB,UAAUsC,iBAAmB,WACxE,OAA8BlC,EAAKY,QAAQyC,WAAWr8C,KAAKw8C,aAC/D,EASAhX,aAAao3B,wBAAwBC,UAAUjkB,UAAUsD,gBAAkB,WACvE,OAAmClD,EAAKY,QAAQ0C,UAAUt8C,KAAKw8C,aACnE,EAMAhX,aAAao3B,wBAAwBC,UAAUjkB,UAAUzuB,WAAa,SAAUtpB,GAC5E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAao3B,wBAAwBC,UAAUjkB,UAAUwjB,UAAY,WACjE,OAA8BpjB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAao3B,wBAAwBC,UAAUjkB,UAAU9R,UAAY,SAAUjmC,GAC3E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAao3B,wBAAwBhkB,UAAU0lB,yBAA2B,WACtE,OAA4CtlB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAao3B,wBAAwBhkB,UAAU8kB,+BAAiC,WAC5E,OAA8B1kB,EAAKY,QAAQyC,WAAWr8C,KAAKs+D,2BAC/D,EASA94B,aAAao3B,wBAAwBhkB,UAAUqlB,8BAAgC,WAC3E,OAAmCjlB,EAAKY,QAAQ0C,UAAUt8C,KAAKs+D,2BACnE,EAMA94B,aAAao3B,wBAAwBhkB,UAAUklB,yBAA2B,SAAUj9D,GAChF,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAao3B,wBAAwBhkB,UAAUglB,iBAAmB,WAC9D,OACI5kB,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAao3B,wBAAwBC,UAAW,EAEnG,EAMAr3B,aAAao3B,wBAAwBhkB,UAAU2lB,iBAAmB,SAAU19D,GACxE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAao3B,wBAAwBhkB,UAAUmlB,aAAe,SAAUxU,EAAW7J,GAC/E,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAao3B,wBAAwBC,UAAWnd,EACtH,EAMAla,aAAao3B,wBAAwBhkB,UAAU4lB,mBAAqB,WAChE,OAAOx+D,KAAKu+D,iBAAiB,GACjC,EAMA/4B,aAAao3B,wBAAwBhkB,UAAU/G,QAAU,WACrD,OAA8BmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAao3B,wBAAwBhkB,UAAUxS,QAAU,SAAUvlC,GAC/D,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAMA2kC,aAAao3B,wBAAwBhkB,UAAUslB,UAAY,WACvD,OAA8BllB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAao3B,wBAAwBhkB,UAAUolB,UAAY,SAAUn9D,GACjE,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAOA2kC,aAAas3B,kBAAkB3iB,gBAAkB,CAAC,GAE9CnB,EAAKY,QAAQiB,qBAabrV,aAAas3B,kBAAkBlkB,UAAUkC,SAAW,SAAUC,GAC1D,OAAOvV,aAAas3B,kBAAkBhiB,SAASC,EAAqB/6C,KACxE,EAWAwlC,aAAas3B,kBAAkBhiB,SAAW,SAAUE,EAAiBj6C,GACjE,IAAIggC,EACAvoB,EAAM,CACFimD,iBACK19B,EAAIhgC,EAAI29D,uBAAyBl5B,aAAas3B,kBAAkBC,gBAAgBjiB,SAASE,EAAiBja,GAC/GltB,UAAWmlC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpD49D,4BAA6B3lB,EAAKY,QAAQqH,aACtClgD,EAAI69D,iCACJp5B,aAAao3B,wBAAwB9hB,SACrCE,IAOZ,OAHIA,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAas3B,kBAAkB7nC,kBAAoB,SAAU1E,GACzD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAas3B,kBAC3B,OAAOt3B,aAAas3B,kBAAkBxhB,4BAA4Bv6C,EAAKq6C,EAC3E,EASA5V,aAAas3B,kBAAkBxhB,4BAA8B,SAAUv6C,EAAKq6C,GACxE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAQ,IAAI2kC,aAAas3B,kBAAkBC,gBAC/C3hB,EAAOuC,YAAY98C,EAAO2kC,aAAas3B,kBAAkBC,gBAAgBzhB,6BACzEv6C,EAAI89D,mBAAmBh+D,GACvB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0yC,aAAa5yC,GACjB,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAao3B,wBAC7BxhB,EAAOuC,YAAY98C,EAAO2kC,aAAao3B,wBAAwBthB,6BAC/Dv6C,EAAI+9D,2BAA2Bj+D,GAC/B,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAas3B,kBAAkBlkB,UAAUzjB,gBAAkB,WACvD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAas3B,kBAAkBhhB,wBAAwB97C,KAAM47C,GACtDA,EAAOG,iBAClB,EASAvW,aAAas3B,kBAAkBhhB,wBAA0B,SAAUxxC,EAASsxC,GACxE,IAAI7a,OAAI3nB,EAEC,OADT2nB,EAAIz2B,EAAQo0D,uBAER9iB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAas3B,kBAAkBC,gBAAgBjhB,yBAGnE,KADV/a,EAAIz2B,EAAQmtD,iBAER7b,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQs0D,kCACNl3D,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAGyE,aAAao3B,wBAAwB9gB,wBAE/E,EAEI9C,EAAKY,QAAQiB,qBAabrV,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUkC,SAAW,SAAUC,GAC1E,OAAOvV,aAAas3B,kBAAkBC,gBAAgBjiB,SAASC,EAAqB/6C,KACxF,EAWAwlC,aAAas3B,kBAAkBC,gBAAgBjiB,SAAW,SAAUE,EAAiBj6C,GACjF,IACIyX,EAAM,CACF+L,KAAMxjB,EAAIg+D,gBACVnpD,OAAQojC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMzD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAas3B,kBAAkBC,gBAAgB9nC,kBAAoB,SAAU1E,GACzE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAas3B,kBAAkBC,gBAC7C,OAAOv3B,aAAas3B,kBAAkBC,gBAAgBzhB,4BAA4Bv6C,EAAKq6C,EAC3F,EASA5V,aAAas3B,kBAAkBC,gBAAgBzhB,4BAA8B,SAAUv6C,EAAKq6C,GACxF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIi+D,QAAQn+D,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIk+D,UAAUp+D,GACd,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUzjB,gBAAkB,WACvE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAas3B,kBAAkBC,gBAAgBjhB,wBAAwB97C,KAAM47C,GACtEA,EAAOG,iBAClB,EASAvW,aAAas3B,kBAAkBC,gBAAgBjhB,wBAA0B,SAAUxxC,EAASsxC,GACxF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ40D,gBACNx3D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQowB,cAERkhB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUumB,QAAU,WAC/D,OAA4CnmB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUmmB,cAAgB,WACrE,OAA8B/lB,EAAKY,QAAQyC,WAAWr8C,KAAKm/D,UAC/D,EASA35B,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUsmB,aAAe,WACpE,OAAmClmB,EAAKY,QAAQ0C,UAAUt8C,KAAKm/D,UACnE,EAMA35B,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUomB,QAAU,SAAUn+D,GACzE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUle,UAAY,WACjE,OAA8Bse,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAas3B,kBAAkBC,gBAAgBnkB,UAAUqmB,UAAY,SAAUp+D,GAC3E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAas3B,kBAAkBlkB,UAAU8lB,mBAAqB,WAC1D,OACI1lB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAas3B,kBAAkBC,gBAAiB,EAE3F,EAMAv3B,aAAas3B,kBAAkBlkB,UAAUimB,mBAAqB,SAAUh+D,GACpE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAas3B,kBAAkBlkB,UAAUwmB,qBAAuB,WAC5D,OAAOp/D,KAAK6+D,wBAAmBzlD,EACnC,EAMAosB,aAAas3B,kBAAkBlkB,UAAUymB,mBAAqB,WAC1D,OAAyC,MAAlCrmB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAas3B,kBAAkBlkB,UAAU6e,aAAe,WACpD,OAA8Bze,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAas3B,kBAAkBlkB,UAAUnF,aAAe,SAAU5yC,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAas3B,kBAAkBlkB,UAAUgmB,+BAAiC,WACtE,OACI5lB,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAao3B,wBAAyB,EAEzF,EAMAp3B,aAAas3B,kBAAkBlkB,UAAU0mB,+BAAiC,SAAUz+D,GAChF,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAas3B,kBAAkBlkB,UAAUkmB,2BAA6B,SAAUvV,EAAW7J,GACvF,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAao3B,wBAAyBld,EAC5G,EAMAla,aAAas3B,kBAAkBlkB,UAAU2mB,iCAAmC,WACxE,OAAOv/D,KAAKs/D,+BAA+B,GAC/C,EAEItmB,EAAKY,QAAQiB,qBAabrV,aAAaw3B,aAAapkB,UAAUkC,SAAW,SAAUC,GACrD,OAAOvV,aAAaw3B,aAAaliB,SAASC,EAAqB/6C,KACnE,EAWAwlC,aAAaw3B,aAAaliB,SAAW,SAAUE,EAAiBj6C,GAC5D,IACIyX,EAAM,CACF1U,QAASk1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClDy+D,YAAaxmB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IAM/D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaw3B,aAAa/nC,kBAAoB,SAAU1E,GACpD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaw3B,aAC3B,OAAOx3B,aAAaw3B,aAAa1hB,4BAA4Bv6C,EAAKq6C,EACtE,EASA5V,aAAaw3B,aAAa1hB,4BAA8B,SAAUv6C,EAAKq6C,GACnE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIuoC,WAAWzoC,GACf,MACJ,KAAK,GACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0+D,eAAe5+D,GACnB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaw3B,aAAapkB,UAAUzjB,gBAAkB,WAClD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaw3B,aAAalhB,wBAAwB97C,KAAM47C,GACjDA,EAAOG,iBAClB,EASAvW,aAAaw3B,aAAalhB,wBAA0B,SAAUxxC,EAASsxC,GACnE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ+W,eAERu6B,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQo1D,mBAER9jB,EAAOkB,WAAW,GAAI/b,EAE9B,EAMAyE,aAAaw3B,aAAapkB,UAAUv3B,WAAa,WAC7C,OAA8B23B,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaw3B,aAAapkB,UAAUtP,WAAa,SAAUzoC,GACvD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaw3B,aAAapkB,UAAU8mB,eAAiB,WACjD,OAA8B1mB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC7E,EAMAwlC,aAAaw3B,aAAapkB,UAAU6mB,eAAiB,SAAU5+D,GAC3D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EACpD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAay3B,kBAAkBrkB,UAAUkC,SAAW,SAAUC,GAC1D,OAAOvV,aAAay3B,kBAAkBniB,SAASC,EAAqB/6C,KACxE,EAWAwlC,aAAay3B,kBAAkBniB,SAAW,SAAUE,EAAiBj6C,GACjE,IACIyX,EAAM,CACFtV,QAASnC,EAAIm6C,oBAMrB,OAHIF,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAay3B,kBAAkBhoC,kBAAoB,SAAU1E,GACzD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAay3B,kBAC3B,OAAOz3B,aAAay3B,kBAAkB3hB,4BAA4Bv6C,EAAKq6C,EAC3E,EASA5V,aAAay3B,kBAAkB3hB,4BAA8B,SAAUv6C,EAAKq6C,GACxE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,GACS,IAFGJ,EAAOK,iBAEf,CACI,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIopB,WAAWtpB,EACV,MAELu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAay3B,kBAAkBrkB,UAAUzjB,gBAAkB,WACvD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAay3B,kBAAkBnhB,wBAAwB97C,KAAM47C,GACtDA,EAAOG,iBAClB,EASAvW,aAAay3B,kBAAkBnhB,wBAA0B,SAAUxxC,EAASsxC,GACxE,IAAI7a,GACJA,EAAIz2B,EAAQ4xC,mBACNx0C,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAay3B,kBAAkBrkB,UAAU4D,WAAa,WAClD,OAA4CxD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAay3B,kBAAkBrkB,UAAUsC,iBAAmB,WACxD,OAA8BlC,EAAKY,QAAQyC,WAAWr8C,KAAKw8C,aAC/D,EASAhX,aAAay3B,kBAAkBrkB,UAAUsD,gBAAkB,WACvD,OAAmClD,EAAKY,QAAQ0C,UAAUt8C,KAAKw8C,aACnE,EAMAhX,aAAay3B,kBAAkBrkB,UAAUzuB,WAAa,SAAUtpB,GAC5D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa03B,sBAAsBtkB,UAAUkC,SAAW,SAAUC,GAC9D,OAAOvV,aAAa03B,sBAAsBpiB,SAASC,EAAqB/6C,KAC5E,EAWAwlC,aAAa03B,sBAAsBpiB,SAAW,SAAUE,EAAiBj6C,GACrE,IAAIggC,EACAvoB,EAAM,CACFmnD,mBACK5+B,EAAIhgC,EAAI6+D,yBAA2Bp6B,aAAay3B,kBAAkBniB,SAASE,EAAiBja,GACjG09B,iBACK19B,EAAIhgC,EAAI29D,uBAAyBl5B,aAAas3B,kBAAkBC,gBAAgBjiB,SAASE,EAAiBja,IAMvH,OAHIia,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa03B,sBAAsBjoC,kBAAoB,SAAU1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa03B,sBAC3B,OAAO13B,aAAa03B,sBAAsB5hB,4BAA4Bv6C,EAAKq6C,EAC/E,EASA5V,aAAa03B,sBAAsB5hB,4BAA8B,SAAUv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAQ,IAAI2kC,aAAay3B,kBAC7B7hB,EAAOuC,YAAY98C,EAAO2kC,aAAay3B,kBAAkB3hB,6BACzDv6C,EAAI8+D,qBAAqBh/D,GACzB,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAas3B,kBAAkBC,gBAC/C3hB,EAAOuC,YAAY98C,EAAO2kC,aAAas3B,kBAAkBC,gBAAgBzhB,6BACzEv6C,EAAI89D,mBAAmBh+D,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa03B,sBAAsBtkB,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa03B,sBAAsBphB,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAClB,EASAvW,aAAa03B,sBAAsBphB,wBAA0B,SAAUxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,EAEC,OADT2nB,EAAIz2B,EAAQs1D,yBAERhkB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAay3B,kBAAkBnhB,yBAGpD,OADT/a,EAAIz2B,EAAQo0D,uBAER9iB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAas3B,kBAAkBC,gBAAgBjhB,wBAEjF,EAMAtW,aAAa03B,sBAAsBtkB,UAAUgnB,qBAAuB,WAChE,OAAsD5mB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAay3B,kBAAmB,EAC7H,EAMAz3B,aAAa03B,sBAAsBtkB,UAAUinB,qBAAuB,SAAUh/D,GAC1E,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAa03B,sBAAsBtkB,UAAUknB,uBAAyB,WAClE,OAAO9/D,KAAK6/D,0BAAqBzmD,EACrC,EAMAosB,aAAa03B,sBAAsBtkB,UAAUmnB,qBAAuB,WAChE,OAAyC,MAAlC/mB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAa03B,sBAAsBtkB,UAAU8lB,mBAAqB,WAC9D,OACI1lB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAas3B,kBAAkBC,gBAAiB,EAE3F,EAMAv3B,aAAa03B,sBAAsBtkB,UAAUimB,mBAAqB,SAAUh+D,GACxE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAa03B,sBAAsBtkB,UAAUwmB,qBAAuB,WAChE,OAAOp/D,KAAK6+D,wBAAmBzlD,EACnC,EAMAosB,aAAa03B,sBAAsBtkB,UAAUymB,mBAAqB,WAC9D,OAAyC,MAAlCrmB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAEIg5C,EAAKY,QAAQiB,qBAabrV,aAAa23B,uBAAuBvkB,UAAUkC,SAAW,SAAUC,GAC/D,OAAOvV,aAAa23B,uBAAuBriB,SAASC,EAAqB/6C,KAC7E,EAWAwlC,aAAa23B,uBAAuBriB,SAAW,SAAUE,EAAiBj6C,GACtE,IAAIggC,EACAvoB,EAAM,CACF1U,QAASk1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClD09D,iBACK19B,EAAIhgC,EAAI29D,uBAAyBl5B,aAAas3B,kBAAkBC,gBAAgBjiB,SAASE,EAAiBja,IAMvH,OAHIia,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa23B,uBAAuBloC,kBAAoB,SAAU1E,GAC9D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa23B,uBAC3B,OAAO33B,aAAa23B,uBAAuB7hB,4BAA4Bv6C,EAAKq6C,EAChF,EASA5V,aAAa23B,uBAAuB7hB,4BAA8B,SAAUv6C,EAAKq6C,GAC7E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIuoC,WAAWzoC,GACf,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAas3B,kBAAkBC,gBAC/C3hB,EAAOuC,YAAY98C,EAAO2kC,aAAas3B,kBAAkBC,gBAAgBzhB,6BACzEv6C,EAAI89D,mBAAmBh+D,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa23B,uBAAuBvkB,UAAUzjB,gBAAkB,WAC5D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa23B,uBAAuBrhB,wBAAwB97C,KAAM47C,GAC3DA,EAAOG,iBAClB,EASAvW,aAAa23B,uBAAuBrhB,wBAA0B,SAAUxxC,EAASsxC,GAC7E,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQ+W,eAERu6B,EAAOkB,WAAW,EAAG/b,GAGhB,OADTA,EAAIz2B,EAAQo0D,uBAER9iB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAas3B,kBAAkBC,gBAAgBjhB,wBAEjF,EAMAtW,aAAa23B,uBAAuBvkB,UAAUv3B,WAAa,WACvD,OAA8B23B,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAa23B,uBAAuBvkB,UAAUtP,WAAa,SAAUzoC,GACjE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAa23B,uBAAuBvkB,UAAU8lB,mBAAqB,WAC/D,OACI1lB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAas3B,kBAAkBC,gBAAiB,EAE3F,EAMAv3B,aAAa23B,uBAAuBvkB,UAAUimB,mBAAqB,SAAUh+D,GACzE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAa23B,uBAAuBvkB,UAAUwmB,qBAAuB,WACjE,OAAOp/D,KAAK6+D,wBAAmBzlD,EACnC,EAMAosB,aAAa23B,uBAAuBvkB,UAAUymB,mBAAqB,WAC/D,OAAyC,MAAlCrmB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAEIg5C,EAAKY,QAAQiB,qBAabrV,aAAaniC,wBAAwBu1C,UAAUkC,SAAW,SAAUC,GAChE,OAAOvV,aAAaniC,wBAAwBy3C,SAASC,EAAqB/6C,KAC9E,EAWAwlC,aAAaniC,wBAAwBy3C,SAAW,SAAUE,EAAiBj6C,GACvE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB7R,cAAejO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACxDuB,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM3D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaniC,wBAAwB4xB,kBAAoB,SAAU1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaniC,wBAC3B,OAAOmiC,aAAaniC,wBAAwBi4C,4BAA4Bv6C,EAAKq6C,EACjF,EASA5V,aAAaniC,wBAAwBi4C,4BAA8B,SAAUv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIinC,iBAAiBnnC,GACrB,MACJ,KAAK,EACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaniC,wBAAwBu1C,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaniC,wBAAwBy4C,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAClB,EASAvW,aAAaniC,wBAAwBy4C,wBAA0B,SAAUxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ88C,qBAERxL,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,EAAG1d,EAE5B,EAMAyE,aAAaniC,wBAAwBu1C,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaniC,wBAAwBu1C,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaniC,wBAAwBu1C,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaniC,wBAAwBu1C,UAAU/R,gBAAkB,SAAUhmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaniC,wBAAwBu1C,UAAUwO,iBAAmB,WAC9D,OAA8BpO,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaniC,wBAAwBu1C,UAAU5Q,iBAAmB,SAAUnnC,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaniC,wBAAwBu1C,UAAU0kB,YAAc,WACzD,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAChG,EAMAwlC,aAAaniC,wBAAwBu1C,UAAU1Q,YAAc,SAAUrnC,GACnE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAahiC,0BAA0Bo1C,UAAUkC,SAAW,SAAUC,GAClE,OAAOvV,aAAahiC,0BAA0Bs3C,SAASC,EAAqB/6C,KAChF,EAWAwlC,aAAahiC,0BAA0Bs3C,SAAW,SAAUE,EAAiBj6C,GACzE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB71D,gBAAiB+1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC1DuB,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM3D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAahiC,0BAA0ByxB,kBAAoB,SAAU1E,GACjE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAahiC,0BAC3B,OAAOgiC,aAAahiC,0BAA0B83C,4BAA4Bv6C,EAAKq6C,EACnF,EASA5V,aAAahiC,0BAA0B83C,4BAA8B,SAAUv6C,EAAKq6C,GAChF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAImoC,mBAAmBroC,GACvB,MACJ,KAAK,EACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAahiC,0BAA0Bo1C,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAahiC,0BAA0Bs4C,wBAAwB97C,KAAM47C,GAC9DA,EAAOG,iBAClB,EASAvW,aAAahiC,0BAA0Bs4C,wBAA0B,SAAUxxC,EAASsxC,GAChF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ01D,uBAERpkB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,EAAG1d,EAE5B,EAMAyE,aAAahiC,0BAA0Bo1C,UAAUsgB,gBAAkB,WAC/D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAahiC,0BAA0Bo1C,UAAUkgB,sBAAwB,WACrE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAahiC,0BAA0Bo1C,UAAUogB,qBAAuB,WACpE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAahiC,0BAA0Bo1C,UAAU/R,gBAAkB,SAAUhmC,GACzE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAahiC,0BAA0Bo1C,UAAUonB,mBAAqB,WAClE,OAA8BhnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAahiC,0BAA0Bo1C,UAAU1P,mBAAqB,SAAUroC,GAC5E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAahiC,0BAA0Bo1C,UAAU0kB,YAAc,WAC3D,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAChG,EAMAwlC,aAAahiC,0BAA0Bo1C,UAAU1Q,YAAc,SAAUrnC,GACrE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAaphC,+BAA+Bw0C,UAAUkC,SAAW,SAAUC,GACvE,OAAOvV,aAAaphC,+BAA+B02C,SAASC,EAAqB/6C,KACrF,EAWAwlC,aAAaphC,+BAA+B02C,SAAW,SAAUE,EAAiBj6C,GAC9E,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,yBAM1B,OAHI9d,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaphC,+BAA+B6wB,kBAAoB,SAAU1E,GACtE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaphC,+BAC3B,OAAOohC,aAAaphC,+BAA+Bk3C,4BAA4Bv6C,EAAKq6C,EACxF,EASA5V,aAAaphC,+BAA+Bk3C,4BAA8B,SAAUv6C,EAAKq6C,GACrF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,GACS,IAFGJ,EAAOK,iBAEf,CACI,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,EACf,MAELu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaphC,+BAA+Bw0C,UAAUzjB,gBAAkB,WACpE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaphC,+BAA+B03C,wBAAwB97C,KAAM47C,GACnEA,EAAOG,iBAClB,EASAvW,aAAaphC,+BAA+B03C,wBAA0B,SAAUxxC,EAASsxC,GACrF,IAAI7a,GACJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAaphC,+BAA+Bw0C,UAAUsgB,gBAAkB,WACpE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaphC,+BAA+Bw0C,UAAUkgB,sBAAwB,WAC1E,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaphC,+BAA+Bw0C,UAAUogB,qBAAuB,WACzE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaphC,+BAA+Bw0C,UAAU/R,gBAAkB,SAAUhmC,GAC9E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAaxhC,yBAAyB40C,UAAUkC,SAAW,SAAUC,GACjE,OAAOvV,aAAaxhC,yBAAyB82C,SAASC,EAAqB/6C,KAC/E,EAWAwlC,aAAaxhC,yBAAyB82C,SAAW,SAAUE,EAAiBj6C,GACxE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClBx2D,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACnD+C,QAASk1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClDyB,gBAAiBzB,EAAIq8D,2BACrBx5D,KAAMo1C,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,GACtD8C,WAAYm1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM7D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaxhC,yBAAyBixB,kBAAoB,SAAU1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxhC,yBAC3B,OAAOwhC,aAAaxhC,yBAAyBs3C,4BAA4Bv6C,EAAKq6C,EAClF,EASA5V,aAAaxhC,yBAAyBs3C,4BAA8B,SAAUv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIuoC,WAAWzoC,GACf,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIonC,mBAAmBtnC,GACvB,MACJ,KAAK,EACGA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAIwoC,QAAQ1oC,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIyoC,cAAc3oC,GAClB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaxhC,yBAAyB40C,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxhC,yBAAyB83C,wBAAwB97C,KAAM47C,GAC7DA,EAAOG,iBAClB,EASAvW,aAAaxhC,yBAAyB83C,wBAA0B,SAAUxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,EAAG1d,GAGd,KADVA,EAAIz2B,EAAQ+W,eAERu6B,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQizD,2BACN71D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ21D,YAERrkB,EAAOuK,UAAU,EAAGplB,GAGd,KADVA,EAAIz2B,EAAQ41D,kBAERtkB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAaxhC,yBAAyB40C,UAAUsgB,gBAAkB,WAC9D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaxhC,yBAAyB40C,UAAUkgB,sBAAwB,WACpE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaxhC,yBAAyB40C,UAAUogB,qBAAuB,WACnE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaxhC,yBAAyB40C,UAAU/R,gBAAkB,SAAUhmC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaxhC,yBAAyB40C,UAAU0kB,YAAc,WAC1D,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAChG,EAMAwlC,aAAaxhC,yBAAyB40C,UAAU1Q,YAAc,SAAUrnC,GACpE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAMA2kC,aAAaxhC,yBAAyB40C,UAAUv3B,WAAa,WACzD,OAA8B23B,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaxhC,yBAAyB40C,UAAUtP,WAAa,SAAUzoC,GACnE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaxhC,yBAAyB40C,UAAU4kB,mBAAqB,WACjE,OAA4CxkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaxhC,yBAAyB40C,UAAUwkB,yBAA2B,WACvE,OAA8BpkB,EAAKY,QAAQyC,WAAWr8C,KAAKw9D,qBAC/D,EASAh4B,aAAaxhC,yBAAyB40C,UAAU2kB,wBAA0B,WACtE,OAAmCvkB,EAAKY,QAAQ0C,UAAUt8C,KAAKw9D,qBACnE,EAMAh4B,aAAaxhC,yBAAyB40C,UAAUzQ,mBAAqB,SAAUtnC,GAC3E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaxhC,yBAAyB40C,UAAUqnB,QAAU,WACtD,OAA+BjnB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EACpF,EAMAwlC,aAAaxhC,yBAAyB40C,UAAUrP,QAAU,SAAU1oC,GAChE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACvD,EAMA2kC,aAAaxhC,yBAAyB40C,UAAUsnB,cAAgB,WAC5D,OAA8BlnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaxhC,yBAAyB40C,UAAUpP,cAAgB,SAAU3oC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAathC,2BAA2B00C,UAAUkC,SAAW,SAAUC,GACnE,OAAOvV,aAAathC,2BAA2B42C,SAASC,EAAqB/6C,KACjF,EAWAwlC,aAAathC,2BAA2B42C,SAAW,SAAUE,EAAiBj6C,GAC1E,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClBx2D,SAAU02C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACnD+C,QAASk1C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAClDyB,gBAAiBzB,EAAIq8D,4BAM7B,OAHIpiB,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAathC,2BAA2B+wB,kBAAoB,SAAU1E,GAClE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAathC,2BAC3B,OAAOshC,aAAathC,2BAA2Bo3C,4BAA4Bv6C,EAAKq6C,EACpF,EASA5V,aAAathC,2BAA2Bo3C,4BAA8B,SAAUv6C,EAAKq6C,GACjF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAmDu6C,EAAO2C,WAC9Dh9C,EAAImnC,YAAYrnC,GAChB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIuoC,WAAWzoC,GACf,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIonC,mBAAmBtnC,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAathC,2BAA2B00C,UAAUzjB,gBAAkB,WAChE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAathC,2BAA2B43C,wBAAwB97C,KAAM47C,GAC/DA,EAAOG,iBAClB,EASAvW,aAAathC,2BAA2B43C,wBAA0B,SAAUxxC,EAASsxC,GACjF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQgzD,gBAER1hB,EAAO6C,UAAU,EAAG1d,GAGd,KADVA,EAAIz2B,EAAQ+W,eAERu6B,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQizD,2BACN71D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAathC,2BAA2B00C,UAAUsgB,gBAAkB,WAChE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAathC,2BAA2B00C,UAAUkgB,sBAAwB,WACtE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAathC,2BAA2B00C,UAAUogB,qBAAuB,WACrE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAathC,2BAA2B00C,UAAU/R,gBAAkB,SAAUhmC,GAC1E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAathC,2BAA2B00C,UAAU0kB,YAAc,WAC5D,OAAkDtkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAChG,EAMAwlC,aAAathC,2BAA2B00C,UAAU1Q,YAAc,SAAUrnC,GACtE,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAMA2kC,aAAathC,2BAA2B00C,UAAUv3B,WAAa,WAC3D,OAA8B23B,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAathC,2BAA2B00C,UAAUtP,WAAa,SAAUzoC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAathC,2BAA2B00C,UAAU4kB,mBAAqB,WACnE,OAA4CxkB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAathC,2BAA2B00C,UAAUwkB,yBAA2B,WACzE,OAA8BpkB,EAAKY,QAAQyC,WAAWr8C,KAAKw9D,qBAC/D,EASAh4B,aAAathC,2BAA2B00C,UAAU2kB,wBAA0B,WACxE,OAAmCvkB,EAAKY,QAAQ0C,UAAUt8C,KAAKw9D,qBACnE,EAMAh4B,aAAathC,2BAA2B00C,UAAUzQ,mBAAqB,SAAUtnC,GAC7E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa9hC,4BAA4Bk1C,UAAUkC,SAAW,SAAUC,GACpE,OAAOvV,aAAa9hC,4BAA4Bo3C,SAASC,EAAqB/6C,KAClF,EAWAwlC,aAAa9hC,4BAA4Bo3C,SAAW,SAAUE,EAAiBj6C,GAC3E,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,yBAM1B,OAHI9d,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa9hC,4BAA4BuxB,kBAAoB,SAAU1E,GACnE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa9hC,4BAC3B,OAAO8hC,aAAa9hC,4BAA4B43C,4BAA4Bv6C,EAAKq6C,EACrF,EASA5V,aAAa9hC,4BAA4B43C,4BAA8B,SAAUv6C,EAAKq6C,GAClF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,GACS,IAFGJ,EAAOK,iBAEf,CACI,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,EACf,MAELu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa9hC,4BAA4Bk1C,UAAUzjB,gBAAkB,WACjE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa9hC,4BAA4Bo4C,wBAAwB97C,KAAM47C,GAChEA,EAAOG,iBAClB,EASAvW,aAAa9hC,4BAA4Bo4C,wBAA0B,SAAUxxC,EAASsxC,GAClF,IAAI7a,GACJA,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAa9hC,4BAA4Bk1C,UAAUsgB,gBAAkB,WACjE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa9hC,4BAA4Bk1C,UAAUkgB,sBAAwB,WACvE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAa9hC,4BAA4Bk1C,UAAUogB,qBAAuB,WACtE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAa9hC,4BAA4Bk1C,UAAU/R,gBAAkB,SAAUhmC,GAC3E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,gBCpuH5B,IACIyT,EADO,EAAQ,MAEfC,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,4BAA6B,KAAMP,GAIrD1T,aAAalZ,aAAe,CAC1B6zC,UAAW,EACXC,OAAQ,EACRC,WAAY,GAGdpnB,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCpB5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,sCAAuC,KAAMP,GAC/DD,EAAKQ,aAAa,sCAAuC,KAAMP,GAC/DD,EAAKQ,aAAa,2CAA4C,KAAMP,GACpED,EAAKQ,aAAa,wCAAyC,KAAMP,GAWjE1T,aAAa/0B,uBAAyB,SAASkpC,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa/0B,uBAAwBuoC,EAAKY,SACpDX,EAAKc,QAAUC,WAKjBxU,aAAa/0B,uBAAuBwpC,YAAc,uCAYpDzU,aAAap0B,uBAAyB,SAASuoC,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAap0B,uBAAwB4nC,EAAKY,SACpDX,EAAKc,QAAUC,WAKjBxU,aAAap0B,uBAAuB6oC,YAAc,uCAYpDzU,aAAal0B,yBAA2B,SAASqoC,GAC/CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAal0B,yBAA0B0nC,EAAKY,SACtDX,EAAKc,QAAUC,WAKjBxU,aAAal0B,yBAAyB2oC,YAAc,yCAYtDzU,aAAa5zB,4BAA8B,SAAS+nC,GAClDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa5zB,4BAA6BonC,EAAKY,SACzDX,EAAKc,QAAUC,WAKjBxU,aAAa5zB,4BAA4BqoC,YAAc,4CAKrDjB,EAAKY,QAAQiB,qBAajBrV,aAAa/0B,uBAAuBmoC,UAAUkC,SAAW,SAASC,GAChE,OAAOvV,aAAa/0B,uBAAuBqqC,SAASC,EAAqB/6C,KAC3E,EAYAwlC,aAAa/0B,uBAAuBqqC,SAAW,SAASE,EAAiBj6C,GACvE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB7Y,aAAcl/C,EAAIm/C,wBAClBtvC,kBAAmBooC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC5Do/C,cAAep/C,EAAIq/C,yBACnBtvC,mBAAoBkoC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM/D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa/0B,uBAAuBwkB,kBAAoB,SAAS1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa/0B,uBAC3B,OAAO+0B,aAAa/0B,uBAAuB6qC,4BAA4Bv6C,EAAKq6C,EAC9E,EAUA5V,aAAa/0B,uBAAuB6qC,4BAA8B,SAASv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAImvC,gBAAgBrvC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIovC,qBAAqBtvC,GACzB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIqvC,iBAAiBvvC,GACrB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsvC,sBAAsBxvC,GAC1B,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa/0B,uBAAuBmoC,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa/0B,uBAAuBqrC,wBAAwB97C,KAAM47C,GAC3DA,EAAOG,iBAChB,EAUAvW,aAAa/0B,uBAAuBqrC,wBAA0B,SAASxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQk2C,wBACN94C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQm2C,yBAEV7E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQo2C,yBACNh5C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQq2C,0BAEV/E,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa/0B,uBAAuBmoC,UAAUsgB,gBAAkB,WAC9D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa/0B,uBAAuBmoC,UAAUkgB,sBAAwB,WACpE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa/0B,uBAAuBmoC,UAAUogB,qBAAuB,WACnE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa/0B,uBAAuBmoC,UAAU/R,gBAAkB,SAAShmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa/0B,uBAAuBmoC,UAAUiI,gBAAkB,WAC9D,OAA4C7H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa/0B,uBAAuBmoC,UAAUsH,sBAAwB,WACpE,OAA8BlH,EAAKY,QAAQyC,WACvCr8C,KAAK6gD,kBACX,EAUArb,aAAa/0B,uBAAuBmoC,UAAU4H,qBAAuB,WACnE,OAAmCxH,EAAKY,QAAQ0C,UAC5Ct8C,KAAK6gD,kBACX,EAOArb,aAAa/0B,uBAAuBmoC,UAAU1I,gBAAkB,SAASrvC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa/0B,uBAAuBmoC,UAAU6H,qBAAuB,WACnE,OAA8BzH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa/0B,uBAAuBmoC,UAAUzI,qBAAuB,SAAStvC,GAC5E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa/0B,uBAAuBmoC,UAAUkI,iBAAmB,WAC/D,OAA4C9H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa/0B,uBAAuBmoC,UAAUwH,uBAAyB,WACrE,OAA8BpH,EAAKY,QAAQyC,WACvCr8C,KAAK8gD,mBACX,EAUAtb,aAAa/0B,uBAAuBmoC,UAAU8H,sBAAwB,WACpE,OAAmC1H,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8gD,mBACX,EAOAtb,aAAa/0B,uBAAuBmoC,UAAUxI,iBAAmB,SAASvvC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa/0B,uBAAuBmoC,UAAU+H,sBAAwB,WACpE,OAA8B3H,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa/0B,uBAAuBmoC,UAAUvI,sBAAwB,SAASxvC,GAC7E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAap0B,uBAAuBwnC,UAAUkC,SAAW,SAASC,GAChE,OAAOvV,aAAap0B,uBAAuB0pC,SAASC,EAAqB/6C,KAC3E,EAYAwlC,aAAap0B,uBAAuB0pC,SAAW,SAASE,EAAiBj6C,GACvE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBhZ,WAAY9G,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDa,QAASb,EAAIu/D,mBACbnvD,MAAO6nC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAap0B,uBAAuB6jB,kBAAoB,SAAS1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAap0B,uBAC3B,OAAOo0B,aAAap0B,uBAAuBkqC,4BAA4Bv6C,EAAKq6C,EAC9E,EAUA5V,aAAap0B,uBAAuBkqC,4BAA8B,SAASv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0vC,cAAc5vC,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4mC,WAAW9mC,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2vC,SAAS7vC,GACb,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAap0B,uBAAuBwnC,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAap0B,uBAAuB0qC,wBAAwB97C,KAAM47C,GAC3DA,EAAOG,iBAChB,EAUAvW,aAAap0B,uBAAuB0qC,wBAA0B,SAASxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQg2C,kBAEV1E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQi2D,mBACN74D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQk2D,aAEV5kB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAap0B,uBAAuBwnC,UAAUsgB,gBAAkB,WAC9D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAap0B,uBAAuBwnC,UAAUkgB,sBAAwB,WACpE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAap0B,uBAAuBwnC,UAAUogB,qBAAuB,WACnE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAap0B,uBAAuBwnC,UAAU/R,gBAAkB,SAAShmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAap0B,uBAAuBwnC,UAAU0H,cAAgB,WAC5D,OAA8BtH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAap0B,uBAAuBwnC,UAAUnI,cAAgB,SAAS5vC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAap0B,uBAAuBwnC,UAAU6nB,WAAa,WACzD,OAA4CznB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAap0B,uBAAuBwnC,UAAU0nB,iBAAmB,WAC/D,OAA8BtnB,EAAKY,QAAQyC,WACvCr8C,KAAKygE,aACX,EAUAj7B,aAAap0B,uBAAuBwnC,UAAU2nB,gBAAkB,WAC9D,OAAmCvnB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKygE,aACX,EAOAj7B,aAAap0B,uBAAuBwnC,UAAUjR,WAAa,SAAS9mC,GAClE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAap0B,uBAAuBwnC,UAAU4nB,SAAW,WACvD,OAA8BxnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAap0B,uBAAuBwnC,UAAUlI,SAAW,SAAS7vC,GAChE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAal0B,yBAAyBsnC,UAAUkC,SAAW,SAASC,GAClE,OAAOvV,aAAal0B,yBAAyBwpC,SAASC,EAAqB/6C,KAC7E,EAYAwlC,aAAal0B,yBAAyBwpC,SAAW,SAASE,EAAiBj6C,GACzE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBhZ,WAAY9G,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDa,QAASb,EAAIu/D,mBACbnvD,MAAO6nC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAal0B,yBAAyB2jB,kBAAoB,SAAS1E,GACjE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAal0B,yBAC3B,OAAOk0B,aAAal0B,yBAAyBgqC,4BAA4Bv6C,EAAKq6C,EAChF,EAUA5V,aAAal0B,yBAAyBgqC,4BAA8B,SAASv6C,EAAKq6C,GAChF,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0vC,cAAc5vC,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4mC,WAAW9mC,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2vC,SAAS7vC,GACb,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAal0B,yBAAyBsnC,UAAUzjB,gBAAkB,WAChE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAal0B,yBAAyBwqC,wBAAwB97C,KAAM47C,GAC7DA,EAAOG,iBAChB,EAUAvW,aAAal0B,yBAAyBwqC,wBAA0B,SAASxxC,EAASsxC,GAChF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQg2C,kBAEV1E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQi2D,mBACN74D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQk2D,aAEV5kB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAal0B,yBAAyBsnC,UAAUsgB,gBAAkB,WAChE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAal0B,yBAAyBsnC,UAAUkgB,sBAAwB,WACtE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAal0B,yBAAyBsnC,UAAUogB,qBAAuB,WACrE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAal0B,yBAAyBsnC,UAAU/R,gBAAkB,SAAShmC,GACzE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAal0B,yBAAyBsnC,UAAU0H,cAAgB,WAC9D,OAA8BtH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAal0B,yBAAyBsnC,UAAUnI,cAAgB,SAAS5vC,GACvE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAal0B,yBAAyBsnC,UAAU6nB,WAAa,WAC3D,OAA4CznB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAal0B,yBAAyBsnC,UAAU0nB,iBAAmB,WACjE,OAA8BtnB,EAAKY,QAAQyC,WACvCr8C,KAAKygE,aACX,EAUAj7B,aAAal0B,yBAAyBsnC,UAAU2nB,gBAAkB,WAChE,OAAmCvnB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKygE,aACX,EAOAj7B,aAAal0B,yBAAyBsnC,UAAUjR,WAAa,SAAS9mC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAal0B,yBAAyBsnC,UAAU4nB,SAAW,WACzD,OAA8BxnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAal0B,yBAAyBsnC,UAAUlI,SAAW,SAAS7vC,GAClE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa5zB,4BAA4BgnC,UAAUkC,SAAW,SAASC,GACrE,OAAOvV,aAAa5zB,4BAA4BkpC,SAASC,EAAqB/6C,KAChF,EAYAwlC,aAAa5zB,4BAA4BkpC,SAAW,SAASE,EAAiBj6C,GAC5E,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBhZ,WAAY9G,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrDa,QAASb,EAAIu/D,mBACbnvD,MAAO6nC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAChD4Q,SAAUqnC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMrD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa5zB,4BAA4BqjB,kBAAoB,SAAS1E,GACpE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa5zB,4BAC3B,OAAO4zB,aAAa5zB,4BAA4B0pC,4BAA4Bv6C,EAAKq6C,EACnF,EAUA5V,aAAa5zB,4BAA4B0pC,4BAA8B,SAASv6C,EAAKq6C,GACnF,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0vC,cAAc5vC,GAClB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAI4mC,WAAW9mC,GACf,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2vC,SAAS7vC,GACb,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIkwC,YAAYpwC,GAChB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa5zB,4BAA4BgnC,UAAUzjB,gBAAkB,WACnE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa5zB,4BAA4BkqC,wBAAwB97C,KAAM47C,GAChEA,EAAOG,iBAChB,EAUAvW,aAAa5zB,4BAA4BkqC,wBAA0B,SAASxxC,EAASsxC,GACnF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQg2C,kBAEV1E,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQi2D,mBACN74D,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQk2D,aAEV5kB,EAAOkB,WACL,EACA/b,GAIM,KADVA,EAAIz2B,EAAQo2D,gBAEV9kB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa5zB,4BAA4BgnC,UAAUsgB,gBAAkB,WACnE,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa5zB,4BAA4BgnC,UAAUkgB,sBAAwB,WACzE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa5zB,4BAA4BgnC,UAAUogB,qBAAuB,WACxE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa5zB,4BAA4BgnC,UAAU/R,gBAAkB,SAAShmC,GAC5E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa5zB,4BAA4BgnC,UAAU0H,cAAgB,WACjE,OAA8BtH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa5zB,4BAA4BgnC,UAAUnI,cAAgB,SAAS5vC,GAC1E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa5zB,4BAA4BgnC,UAAU6nB,WAAa,WAC9D,OAA4CznB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa5zB,4BAA4BgnC,UAAU0nB,iBAAmB,WACpE,OAA8BtnB,EAAKY,QAAQyC,WACvCr8C,KAAKygE,aACX,EAUAj7B,aAAa5zB,4BAA4BgnC,UAAU2nB,gBAAkB,WACnE,OAAmCvnB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKygE,aACX,EAOAj7B,aAAa5zB,4BAA4BgnC,UAAUjR,WAAa,SAAS9mC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa5zB,4BAA4BgnC,UAAU4nB,SAAW,WAC5D,OAA8BxnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa5zB,4BAA4BgnC,UAAUlI,SAAW,SAAS7vC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAa5zB,4BAA4BgnC,UAAU8nB,YAAc,WAC/D,OAA8B1nB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa5zB,4BAA4BgnC,UAAU3H,YAAc,SAASpwC,GACxE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAGAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCtuC5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,sCAAuC,KAAMP,GAC/DD,EAAKQ,aAAa,sCAAuC,KAAMP,GAW/D1T,aAAax1B,wBAA0B,SAAS2pC,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAax1B,wBAAyBgpC,EAAKY,SACrDX,EAAKc,QAAUC,WAKjBxU,aAAax1B,wBAAwBiqC,YAAc,wCAYrDzU,aAAah2B,uBAAyB,SAASmqC,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAah2B,uBAAwBwpC,EAAKY,SACpDX,EAAKc,QAAUC,WAKjBxU,aAAah2B,uBAAuByqC,YAAc,uCAYpDzU,aAAa51B,uBAAyB,SAAS+pC,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa51B,uBAAwBopC,EAAKY,SACpDX,EAAKc,QAAUC,WAKjBxU,aAAa51B,uBAAuBqqC,YAAc,uCAKhDjB,EAAKY,QAAQiB,qBAajBrV,aAAax1B,wBAAwB4oC,UAAUkC,SAAW,SAASC,GACjE,OAAOvV,aAAax1B,wBAAwB8qC,SAASC,EAAqB/6C,KAC5E,EAYAwlC,aAAax1B,wBAAwB8qC,SAAW,SAASE,EAAiBj6C,GACxE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB7b,WAAYjE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrD4/D,cAAe3nB,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,IAMjE,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAax1B,wBAAwBilB,kBAAoB,SAAS1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAax1B,wBAC3B,OAAOw1B,aAAax1B,wBAAwBsrC,4BAA4Bv6C,EAAKq6C,EAC/E,EAUA5V,aAAax1B,wBAAwBsrC,4BAA8B,SAASv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2uC,cAAc7uC,GAClB,MACF,KAAK,EACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI+uC,iBAAiBjvC,GACrB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAax1B,wBAAwB4oC,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAax1B,wBAAwB8rC,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAChB,EAUAvW,aAAax1B,wBAAwB8rC,wBAA0B,SAASxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ2zC,kBAEVrC,EAAOkB,WACL,EACA/b,IAGJA,EAAIz2B,EAAQs2D,qBAEVhlB,EAAOuK,UACL,EACAplB,EAGN,EAOAyE,aAAax1B,wBAAwB4oC,UAAUsgB,gBAAkB,WAC/D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAax1B,wBAAwB4oC,UAAUkgB,sBAAwB,WACrE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAax1B,wBAAwB4oC,UAAUogB,qBAAuB,WACpE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAax1B,wBAAwB4oC,UAAU/R,gBAAkB,SAAShmC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAax1B,wBAAwB4oC,UAAUqF,cAAgB,WAC7D,OAA8BjF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAax1B,wBAAwB4oC,UAAUlJ,cAAgB,SAAS7uC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAax1B,wBAAwB4oC,UAAUgoB,iBAAmB,WAChE,OAA+B5nB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EAClF,EAOAwlC,aAAax1B,wBAAwB4oC,UAAU9I,iBAAmB,SAASjvC,GACzE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACrD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAah2B,uBAAuBopC,UAAUkC,SAAW,SAASC,GAChE,OAAOvV,aAAah2B,uBAAuBsrC,SAASC,EAAqB/6C,KAC3E,EAYAwlC,aAAah2B,uBAAuBsrC,SAAW,SAASE,EAAiBj6C,GACvE,IAAIggC,EAAGvoB,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB1b,eAAgBrc,EAAIhgC,EAAIuuC,oBAAsBvO,EAAE+Z,SAASE,OAAiB5hC,GAAa,IAMzF,OAHI4hC,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAah2B,uBAAuBylB,kBAAoB,SAAS1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAah2B,uBAC3B,OAAOg2B,aAAah2B,uBAAuB8rC,4BAA4Bv6C,EAAKq6C,EAC9E,EAUA5V,aAAah2B,uBAAuB8rC,4BAA8B,SAASv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAQE,EAAIuuC,mBAChB8L,EAAOuC,YAAY98C,GAAO,SAASyJ,EAAS8wC,GAC1CpC,EAAKtY,IAAIzL,kBAAkB3qB,EAAS8wC,EAAQpC,EAAKqC,aAAazC,UAAU+D,UAAW3D,EAAKqC,aAAazC,UAAU+D,UAAW,KAAM,EAAG,EAClI,IACH,MACF,QACEvB,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAah2B,uBAAuBopC,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAah2B,uBAAuBssC,wBAAwB97C,KAAM47C,GAC3DA,EAAOG,iBAChB,EAUAvW,aAAah2B,uBAAuBssC,wBAA0B,SAASxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQglC,kBAAiB,KACpBvO,EAAEod,YAAc,GACvBpd,EAAE5L,gBAAgB,EAAGymB,EAAQ5C,EAAK6C,aAAajD,UAAUkE,WAAY9D,EAAK6C,aAAajD,UAAUkE,WAErG,EAOAtX,aAAah2B,uBAAuBopC,UAAUsgB,gBAAkB,WAC9D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAah2B,uBAAuBopC,UAAUkgB,sBAAwB,WACpE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAah2B,uBAAuBopC,UAAUogB,qBAAuB,WACnE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAah2B,uBAAuBopC,UAAU/R,gBAAkB,SAAShmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EASA2kC,aAAah2B,uBAAuBopC,UAAUtJ,iBAAmB,SAAS0P,GACxE,OACIhG,EAAKY,QAAQqF,YAAYj/C,KAAM,EAAGg/C,EAClC,KACN,EAOAxZ,aAAah2B,uBAAuBopC,UAAUsG,mBAAqB,WAEjE,OADAl/C,KAAKsvC,mBAAmB6P,QACjBn/C,IAAK,EAMVg5C,EAAKY,QAAQiB,qBAajBrV,aAAa51B,uBAAuBgpC,UAAUkC,SAAW,SAASC,GAChE,OAAOvV,aAAa51B,uBAAuBkrC,SAASC,EAAqB/6C,KAC3E,EAYAwlC,aAAa51B,uBAAuBkrC,SAAW,SAASE,EAAiBj6C,GACvE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB7b,WAAYjE,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMvD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa51B,uBAAuBqlB,kBAAoB,SAAS1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa51B,uBAC3B,OAAO41B,aAAa51B,uBAAuB0rC,4BAA4Bv6C,EAAKq6C,EAC9E,EAUA5V,aAAa51B,uBAAuB0rC,4BAA8B,SAASv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2uC,cAAc7uC,GAClB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa51B,uBAAuBgpC,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa51B,uBAAuBksC,wBAAwB97C,KAAM47C,GAC3DA,EAAOG,iBAChB,EAUAvW,aAAa51B,uBAAuBksC,wBAA0B,SAASxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ2zC,kBAEVrC,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa51B,uBAAuBgpC,UAAUsgB,gBAAkB,WAC9D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa51B,uBAAuBgpC,UAAUkgB,sBAAwB,WACpE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa51B,uBAAuBgpC,UAAUogB,qBAAuB,WACnE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa51B,uBAAuBgpC,UAAU/R,gBAAkB,SAAShmC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa51B,uBAAuBgpC,UAAUqF,cAAgB,WAC5D,OAA8BjF,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa51B,uBAAuBgpC,UAAUlJ,cAAgB,SAAS7uC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAGAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,gBCrpB5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACuB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WACI,OAAOp5C,IACX,EAAE+Y,KAAK,OACPsgC,SAAS,cAATA,GAEAwf,EAAe,EAAQ,MAC3B5f,EAAKM,OAAOC,OAAO1kB,MAAO+jC,GAC1B5f,EAAKQ,aAAa,gCAAiC,KAAMP,GACzDD,EAAKQ,aAAa,6BAA8B,KAAMP,GACtDD,EAAKQ,aAAa,mCAAoC,KAAMP,GAC5DD,EAAKQ,aAAa,6BAA8B,KAAMP,GACtDD,EAAKQ,aAAa,iCAAkC,KAAMP,GAC1DD,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,iDAAkD,KAAMP,GAC1ED,EAAKQ,aAAa,6CAA8C,KAAMP,GACtED,EAAKQ,aAAa,2DAA4D,KAAMP,GACpFD,EAAKQ,aAAa,wCAAyC,KAAMP,GACjED,EAAKQ,aAAa,oCAAqC,KAAMP,GAC7DD,EAAKQ,aAAa,yCAA0C,KAAMP,GAClED,EAAKQ,aAAa,qCAAsC,KAAMP,GAW9D1T,aAAaC,cAAgB,SAAUkU,GACnCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaC,cAAeuT,EAAKY,SAC3CX,EAAKc,QAAUC,WAKfxU,aAAaC,cAAcwU,YAAc,8BAY7CzU,aAAaC,cAAcwF,IAAM,SAAU0O,GACvCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaC,cAAcwF,IAAIkP,gBAAiB,KACnG,EACAlB,EAAKa,SAAStU,aAAaC,cAAcwF,IAAK+N,EAAKY,SAC/CX,EAAKc,QAAUC,WAKfxU,aAAaC,cAAcwF,IAAIgP,YAAc,kCAYjDzU,aAAaC,cAAcwF,IAAIE,MAAQ,SAAUwO,GAC7CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAaC,cAAcwF,IAAIE,MAAMgP,gBAAiB,KACzG,EACAlB,EAAKa,SAAStU,aAAaC,cAAcwF,IAAIE,MAAO6N,EAAKY,SACrDX,EAAKc,QAAUC,WAKfxU,aAAaC,cAAcwF,IAAIE,MAAM8O,YAAc,wCAYvDzU,aAAaC,cAAcwF,IAAIE,MAAMC,MAAQ,SAAUuO,GACnDX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaC,cAAcwF,IAAIE,MAAMC,MAAO4N,EAAKY,SAC3DX,EAAKc,QAAUC,WAKfxU,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM6O,YAAc,8CAY7DzU,aAAaq7B,cAAgB,SAAUlnB,GACnCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaq7B,cAAe7nB,EAAKY,SAC3CX,EAAKc,QAAUC,WAKfxU,aAAaq7B,cAAc5mB,YAAc,8BAY7CzU,aAAaz8B,oBAAsB,SAAU4wC,GACzCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaz8B,oBAAqBiwC,EAAKY,SACjDX,EAAKc,QAAUC,WAKfxU,aAAaz8B,oBAAoBkxC,YAAc,oCAYnDzU,aAAat6B,qBAAuB,SAAUyuC,GAC1CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAat6B,qBAAsB8tC,EAAKY,SAClDX,EAAKc,QAAUC,WAKfxU,aAAat6B,qBAAqB+uC,YAAc,qCAYpDzU,aAAa/5B,iBAAmB,SAAUkuC,GACtCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa/5B,iBAAkButC,EAAKY,SAC9CX,EAAKc,QAAUC,WAKfxU,aAAa/5B,iBAAiBwuC,YAAc,iCAYhDzU,aAAa1zB,sBAAwB,SAAU6nC,GAC3CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAa1zB,sBAAuBknC,EAAKY,SACnDX,EAAKc,QAAUC,WAKfxU,aAAa1zB,sBAAsBmoC,YAAc,sCAYrDzU,aAAaxzB,0BAA4B,SAAU2nC,GAC/CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAaxzB,0BAA2BgnC,EAAKY,SACvDX,EAAKc,QAAUC,WAKfxU,aAAaxzB,0BAA0BioC,YAAc,0CAYzDzU,aAAas7B,yBAA2B,SAAUnnB,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACzD,EACAV,EAAKa,SAAStU,aAAas7B,yBAA0B9nB,EAAKY,SACtDX,EAAKc,QAAUC,WAKfxU,aAAas7B,yBAAyB7mB,YAAc,yCAGpDjB,EAAKY,QAAQiB,qBAabrV,aAAaC,cAAcmT,UAAUkC,SAAW,SAAUC,GACtD,OAAOvV,aAAaC,cAAcqV,SAASC,EAAqB/6C,KACpE,EAWAwlC,aAAaC,cAAcqV,SAAW,SAAUE,EAAiBj6C,GAC7D,IAAIggC,EACAvoB,EAAM,CACFuoD,cAAehgE,EAAIigE,yBACnB53D,gBAAiBrI,EAAIkgE,2BACrBn7D,KAAMi7B,EAAIhgC,EAAImgE,WAAa17B,aAAaC,cAAcwF,IAAI6P,SAASE,EAAiBja,GACpF96B,SAAUlF,EAAIogE,oBACdx7D,UAAWqzC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpDqgE,2BAA4BpoB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACrEJ,KAAMq4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAC/C2E,kBAAmBszC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC5DsgE,SAAUtgE,EAAIugE,oBACdC,QAASxgE,EAAIygE,mBACbjkD,QAASy7B,EAAKY,QAAQwC,oBAAoBr7C,EAAK,GAAI,IAM3D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaC,cAAcxQ,kBAAoB,SAAU1E,GACrD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaC,cAC3B,OAAOD,aAAaC,cAAc6V,4BAA4Bv6C,EAAKq6C,EACvE,EASA5V,aAAaC,cAAc6V,4BAA8B,SAAUv6C,EAAKq6C,GACpE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIurC,iBAAiBzrC,GACrB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIwmC,mBAAmB1mC,GACvB,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAaC,cAAcwF,IAC3CmQ,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAcwF,IAAIqQ,6BACzDv6C,EAAIorC,OAAOtrC,GACX,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIyrC,YAAY3rC,GAChB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIymC,aAAa3mC,GACjB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIqrC,8BAA8BvrC,GAClC,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIuqC,QAAQzqC,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsrC,qBAAqBxrC,GACzB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI0gE,YAAY5gE,GAChB,MACJ,KAAK,GACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI2gE,WAAW7gE,GACf,MACJ,KAAK,GACGA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAI4gE,WAAW9gE,GACf,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaC,cAAcmT,UAAUzjB,gBAAkB,WACnD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaC,cAAcqW,wBAAwB97C,KAAM47C,GAClDA,EAAOG,iBAClB,EASAvW,aAAaC,cAAcqW,wBAA0B,SAAUxxC,EAASsxC,GACpE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQs3D,yBACNl6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQu3D,2BACNn6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGhB,OADTA,EAAIz2B,EAAQ42D,WAERtlB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAaC,cAAcwF,IAAI6Q,0BAE7D/a,EAAIz2B,EAAQw3D,oBACNp6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQy3D,iBAERnmB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQ03D,kCAERpmB,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQ6xC,WACNz0C,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,GAGhB,KADVA,EAAIz2B,EAAQ23D,yBAERrmB,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQ43D,oBACNx6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQ63D,mBACNz6D,OAAS,GACXk0C,EAAOK,WAAW,GAAIlb,GAGhB,KADVA,EAAIz2B,EAAQ83D,eAERxmB,EAAOuR,WAAW,GAAIpsB,EAE9B,EAOAyE,aAAaC,cAAcwF,IAAIkP,gBAAkB,CAAC,GAE9CnB,EAAKY,QAAQiB,qBAabrV,aAAaC,cAAcwF,IAAI2N,UAAUkC,SAAW,SAAUC,GAC1D,OAAOvV,aAAaC,cAAcwF,IAAI6P,SAASC,EAAqB/6C,KACxE,EAWAwlC,aAAaC,cAAcwF,IAAI6P,SAAW,SAAUE,EAAiBj6C,GACjE,IACIyX,EAAM,CACF6pD,WAAYrpB,EAAKY,QAAQqH,aACrBlgD,EAAIuhE,gBACJ98B,aAAaC,cAAcwF,IAAIE,MAAM2P,SACrCE,IAOZ,OAHIA,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaC,cAAcwF,IAAIhW,kBAAoB,SAAU1E,GACzD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaC,cAAcwF,IACzC,OAAOzF,aAAaC,cAAcwF,IAAIqQ,4BAA4Bv6C,EAAKq6C,EAC3E,EASA5V,aAAaC,cAAcwF,IAAIqQ,4BAA8B,SAAUv6C,EAAKq6C,GACxE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,GACS,IAFGJ,EAAOK,iBAEf,CACI,IAAI56C,EAAQ,IAAI2kC,aAAaC,cAAcwF,IAAIE,MAC/CiQ,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAcwF,IAAIE,MAAMmQ,6BAC/Dv6C,EAAIwhE,UAAU1hE,EACT,MAELu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaC,cAAcwF,IAAI2N,UAAUzjB,gBAAkB,WACvD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaC,cAAcwF,IAAI6Q,wBAAwB97C,KAAM47C,GACtDA,EAAOG,iBAClB,EASAvW,aAAaC,cAAcwF,IAAI6Q,wBAA0B,SAAUxxC,EAASsxC,GACxE,IAAI7a,GACJA,EAAIz2B,EAAQg4D,iBACN56D,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAGyE,aAAaC,cAAcwF,IAAIE,MAAM2Q,wBAE/E,EAOAtW,aAAaC,cAAcwF,IAAIE,MAAMgP,gBAAkB,CAAC,EAAG,GAEvDnB,EAAKY,QAAQiB,qBAabrV,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUkC,SAAW,SAAUC,GAChE,OAAOvV,aAAaC,cAAcwF,IAAIE,MAAM2P,SAASC,EAAqB/6C,KAC9E,EAWAwlC,aAAaC,cAAcwF,IAAIE,MAAM2P,SAAW,SAAUE,EAAiBj6C,GACvE,IACIyX,EAAM,CACFumB,UAAWia,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,GAC3Du+B,SAAU0Z,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,GAC1DJ,KAAMq4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAC/CyhE,WAAYxpB,EAAKY,QAAQqH,aACrBlgD,EAAI0hE,gBACJj9B,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0P,SAC3CE,GAEJ0nB,YAAa1pB,EAAKY,QAAQqH,aACtBlgD,EAAI4hE,iBACJn9B,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0P,SAC3CE,GAEJp6C,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GAC/CyF,QAASwyC,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,GACzD6hE,gBAAiB5pB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlE,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaC,cAAcwF,IAAIE,MAAMlW,kBAAoB,SAAU1E,GAC/D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaC,cAAcwF,IAAIE,MAC7C,OAAO3F,aAAaC,cAAcwF,IAAIE,MAAMmQ,4BAA4Bv6C,EAAKq6C,EACjF,EASA5V,aAAaC,cAAcwF,IAAIE,MAAMmQ,4BAA8B,SAAUv6C,EAAKq6C,GAC9E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI2qC,aAAa7qC,GACjB,MACJ,KAAK,EACGA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAI4qC,YAAY9qC,GAChB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIuqC,QAAQzqC,GACZ,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MACrDgQ,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMkQ,6BACrEv6C,EAAI8hE,UAAUhiE,GACd,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MACrDgQ,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMkQ,6BACrEv6C,EAAI+hE,WAAWjiE,GACf,MACJ,KAAK,EACGA,EAAwEu6C,EAAO2C,WACnFh9C,EAAIqlC,QAAQvlC,GACZ,MACJ,KAAK,EACGA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAIgrC,WAAWlrC,GACf,MACJ,KAAK,EACGA,EAAkFu6C,EAAO2C,WAC7Fh9C,EAAIirC,mBAAmBnrC,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaC,cAAcwF,IAAIE,MAAM2Q,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAClB,EASAvW,aAAaC,cAAcwF,IAAIE,MAAM2Q,wBAA0B,SAAUxxC,EAASsxC,GAC9E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQy4D,iBAERnnB,EAAOuK,UAAU,EAAGplB,IAExBA,EAAIz2B,EAAQ04D,gBAERpnB,EAAOuK,UAAU,EAAGplB,IAExBA,EAAIz2B,EAAQ6xC,WACNz0C,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,IAE1BA,EAAIz2B,EAAQm4D,iBACN/6D,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAGyE,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0Q,0BAEjF/a,EAAIz2B,EAAQq4D,kBACNj7D,OAAS,GACXk0C,EAAO+J,qBAAqB,EAAG5kB,EAAGyE,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0Q,yBAGvE,KADV/a,EAAIz2B,EAAQunC,YAER+J,EAAO6C,UAAU,EAAG1d,IAExBA,EAAIz2B,EAAQ24D,eAERrnB,EAAOuK,UAAU,EAAGplB,GAGd,KADVA,EAAIz2B,EAAQ44D,uBAERtnB,EAAO6C,UAAU,EAAG1d,EAE5B,EAKAyE,aAAaC,cAAcwF,IAAIE,MAAMW,UAAY,CAC7Cq3B,iBAAkB,EAClBC,YAAa,EACbC,SAAU,EACVC,MAAO,EACPC,SAAU,EACVC,QAAS,EACTC,MAAO,GAMXj+B,aAAaC,cAAcwF,IAAIE,MAAMc,oBAAsB,CACvDy3B,sBAAuB,EACvBC,KAAM,EACNC,KAAM,EACNC,WAAY,EACZC,QAAS,GAGT9qB,EAAKY,QAAQiB,qBAabrV,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUkC,SAAW,SAAUC,GACtE,OAAOvV,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0P,SAASC,EAAqB/6C,KACpF,EAWAwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0P,SAAW,SAAUE,EAAiBj6C,GAC7E,IACIyX,EAAM,CACFikB,QAASuc,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,GACzDJ,KAAMq4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAC/CH,KAAMo4C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,KAMvD,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMnW,kBAAoB,SAAU1E,GACrE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaC,cAAcwF,IAAIE,MAAMC,MACnD,OAAO5F,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMkQ,4BAA4Bv6C,EAAKq6C,EACvF,EASA5V,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMkQ,4BAA8B,SAAUv6C,EAAKq6C,GACpF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAIsqC,WAAWxqC,GACf,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIuqC,QAAQzqC,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAO6I,aAC1CljD,EAAIqlC,QAAQvlC,GACZ,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUzjB,gBAAkB,WACnE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0Q,wBAAwB97C,KAAM47C,GAClEA,EAAOG,iBAClB,EASAvW,aAAaC,cAAcwF,IAAIE,MAAMC,MAAM0Q,wBAA0B,SAAUxxC,EAASsxC,GACpF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQy5D,eAERnoB,EAAOuK,UAAU,EAAGplB,IAExBA,EAAIz2B,EAAQ6xC,WACNz0C,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,IAE1BA,EAAIz2B,EAAQunC,WACNnqC,OAAS,GACXk0C,EAAOgK,YAAY,EAAG7kB,EAE9B,EAMAyE,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUmrB,WAAa,WAC9D,OAA+B/qB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EACpF,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUvN,WAAa,SAAUxqC,GACxE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACvD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUuD,QAAU,WAC3D,OAA8BnD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUtN,QAAU,SAAUzqC,GACrE,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAU/G,QAAU,WAC3D,OAA8BmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAMwN,UAAUxS,QAAU,SAAUvlC,GACrE,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUmqB,aAAe,WAC1D,OAA+B/pB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EACpF,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUlN,aAAe,SAAU7qC,GACpE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACvD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUoqB,YAAc,WACzD,OAA+BhqB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EACpF,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUjN,YAAc,SAAU9qC,GACnE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACvD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUuD,QAAU,WACrD,OAA8BnD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUtN,QAAU,SAAUzqC,GAC/D,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU6pB,cAAgB,WAC3D,OACIzpB,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAO,EAE/F,EAMA5F,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUhN,cAAgB,SAAU/qC,GACrE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUiqB,UAAY,SAAUtZ,EAAW7J,GAC5E,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaC,cAAcwF,IAAIE,MAAMC,MAAOsU,EAClH,EAMAla,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUorB,gBAAkB,WAC7D,OAAOhkE,KAAK4rC,cAAc,GAC9B,EAMApG,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU+pB,eAAiB,WAC5D,OACI3pB,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaC,cAAcwF,IAAIE,MAAMC,MAAO,EAE/F,EAMA5F,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU/M,eAAiB,SAAUhrC,GACtE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUkqB,WAAa,SAAUvZ,EAAW7J,GAC7E,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaC,cAAcwF,IAAIE,MAAMC,MAAOsU,EAClH,EAMAla,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUqrB,iBAAmB,WAC9D,OAAOjkE,KAAK6rC,eAAe,GAC/B,EAMArG,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU/G,QAAU,WACrD,OAAuEmH,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EACrH,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUxS,QAAU,SAAUvlC,GAC/D,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUqqB,WAAa,WACxD,OAA+BjqB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EACpF,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU7M,WAAa,SAAUlrC,GAClE,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACvD,EAMA2kC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAUsqB,mBAAqB,WAChE,OACIlqB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAElD,EAMAwlC,aAAaC,cAAcwF,IAAIE,MAAMyN,UAAU5M,mBAAqB,SAAUnrC,GAC1E,OAAOm4C,EAAKY,QAAQiG,mBAAmB7/C,KAAM,EAAGa,EACpD,EAMA2kC,aAAaC,cAAcwF,IAAI2N,UAAU0pB,cAAgB,WACrD,OACItpB,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAaC,cAAcwF,IAAIE,MAAO,EAEzF,EAMA3F,aAAaC,cAAcwF,IAAI2N,UAAU1M,cAAgB,SAAUrrC,GAC/D,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACzD,EAOA2kC,aAAaC,cAAcwF,IAAI2N,UAAU2pB,UAAY,SAAUhZ,EAAW7J,GACtE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAaC,cAAcwF,IAAIE,MAAOuU,EAC5G,EAMAla,aAAaC,cAAcwF,IAAI2N,UAAUsrB,gBAAkB,WACvD,OAAOlkE,KAAKksC,cAAc,GAC9B,EAMA1G,aAAaC,cAAcmT,UAAUurB,iBAAmB,WACpD,OAA4CnrB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaC,cAAcmT,UAAUooB,uBAAyB,WAC1D,OAA8BhoB,EAAKY,QAAQyC,WAAWr8C,KAAKmkE,mBAC/D,EASA3+B,aAAaC,cAAcmT,UAAUgpB,sBAAwB,WACzD,OAAmC5oB,EAAKY,QAAQ0C,UAAUt8C,KAAKmkE,mBACnE,EAMA3+B,aAAaC,cAAcmT,UAAUtM,iBAAmB,SAAUzrC,GAC9D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaC,cAAcmT,UAAUwrB,mBAAqB,WACtD,OAA4CprB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaC,cAAcmT,UAAUqoB,yBAA2B,WAC5D,OAA8BjoB,EAAKY,QAAQyC,WAAWr8C,KAAKokE,qBAC/D,EASA5+B,aAAaC,cAAcmT,UAAUipB,wBAA0B,WAC3D,OAAmC7oB,EAAKY,QAAQ0C,UAAUt8C,KAAKokE,qBACnE,EAMA5+B,aAAaC,cAAcmT,UAAUrR,mBAAqB,SAAU1mC,GAChE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaC,cAAcmT,UAAUsoB,OAAS,WAC1C,OAAsDloB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaC,cAAcwF,IAAK,EAC7H,EAMAzF,aAAaC,cAAcmT,UAAUzM,OAAS,SAAUtrC,GACpD,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAaC,cAAcmT,UAAUyrB,SAAW,WAC5C,OAAOrkE,KAAKmsC,YAAO/yB,EACvB,EAMAosB,aAAaC,cAAcmT,UAAU0rB,OAAS,WAC1C,OAAyC,MAAlCtrB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAaC,cAAcmT,UAAU2rB,YAAc,WAC/C,OAA4CvrB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaC,cAAcmT,UAAUuoB,kBAAoB,WACrD,OAA8BnoB,EAAKY,QAAQyC,WAAWr8C,KAAKukE,cAC/D,EASA/+B,aAAaC,cAAcmT,UAAUkpB,iBAAmB,WACpD,OAAmC9oB,EAAKY,QAAQ0C,UAAUt8C,KAAKukE,cACnE,EAMA/+B,aAAaC,cAAcmT,UAAUpM,YAAc,SAAU3rC,GACzD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaC,cAAcmT,UAAUmpB,aAAe,WAChD,OAA8B/oB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaC,cAAcmT,UAAUpR,aAAe,SAAU3mC,GAC1D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaC,cAAcmT,UAAUopB,8BAAgC,WACjE,OAA8BhpB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaC,cAAcmT,UAAUxM,8BAAgC,SAAUvrC,GAC3E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaC,cAAcmT,UAAUuD,QAAU,WAC3C,OAA8BnD,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC5E,EAMAwlC,aAAaC,cAAcmT,UAAUtN,QAAU,SAAUzqC,GACrD,OAAOm4C,EAAKY,QAAQ+T,qBAAqB3tD,KAAM,EAAGa,EACtD,EAMA2kC,aAAaC,cAAcmT,UAAUqpB,qBAAuB,WACxD,OAA8BjpB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaC,cAAcmT,UAAUvM,qBAAuB,SAAUxrC,GAClE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaC,cAAcmT,UAAU4rB,YAAc,WAC/C,OAA4CxrB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaC,cAAcmT,UAAU0oB,kBAAoB,WACrD,OAA8BtoB,EAAKY,QAAQyC,WAAWr8C,KAAKwkE,cAC/D,EASAh/B,aAAaC,cAAcmT,UAAUspB,iBAAmB,WACpD,OAAmClpB,EAAKY,QAAQ0C,UAAUt8C,KAAKwkE,cACnE,EAMAh/B,aAAaC,cAAcmT,UAAU6oB,YAAc,SAAU5gE,GACzD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaC,cAAcmT,UAAU6rB,WAAa,WAC9C,OAA4CzrB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GAC3F,EAOAwlC,aAAaC,cAAcmT,UAAU4oB,iBAAmB,WACpD,OAA8BxoB,EAAKY,QAAQyC,WAAWr8C,KAAKykE,aAC/D,EASAj/B,aAAaC,cAAcmT,UAAUupB,gBAAkB,WACnD,OAAmCnpB,EAAKY,QAAQ0C,UAAUt8C,KAAKykE,aACnE,EAMAj/B,aAAaC,cAAcmT,UAAU8oB,WAAa,SAAU7gE,GACxD,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACtD,EAMA2kC,aAAaC,cAAcmT,UAAUwpB,WAAa,WAC9C,OAA8BppB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,EAC7E,EAMAwlC,aAAaC,cAAcmT,UAAU+oB,WAAa,SAAU9gE,GACxD,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,GAAIa,EACpD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAaq7B,cAAcjoB,UAAUkC,SAAW,SAAUC,GACtD,OAAOvV,aAAaq7B,cAAc/lB,SAASC,EAAqB/6C,KACpE,EAWAwlC,aAAaq7B,cAAc/lB,SAAW,SAAUE,EAAiBj6C,GAC7D,IACIyX,EAAM,CACF8uC,YAAatO,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACtD2jE,aAAc1rB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACvD4jE,YAAa3rB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM9D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaq7B,cAAc5rC,kBAAoB,SAAU1E,GACrD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaq7B,cAC3B,OAAOr7B,aAAaq7B,cAAcvlB,4BAA4Bv6C,EAAKq6C,EACvE,EASA5V,aAAaq7B,cAAcvlB,4BAA8B,SAAUv6C,EAAKq6C,GACpE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIgnD,eAAelnD,GACnB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6jE,gBAAgB/jE,GACpB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI8jE,eAAehkE,GACnB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaq7B,cAAcjoB,UAAUzjB,gBAAkB,WACnD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaq7B,cAAc/kB,wBAAwB97C,KAAM47C,GAClDA,EAAOG,iBAClB,EASAvW,aAAaq7B,cAAc/kB,wBAA0B,SAAUxxC,EAASsxC,GACpE,IAAI7a,OAAI3nB,EAEE,KADV2nB,EAAIz2B,EAAQi+C,mBAER3M,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQw6D,oBAERlpB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQy6D,mBAERnpB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAaq7B,cAAcjoB,UAAU2P,eAAiB,WAClD,OAA8BvP,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaq7B,cAAcjoB,UAAUmP,eAAiB,SAAUlnD,GAC5D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaq7B,cAAcjoB,UAAUksB,gBAAkB,WACnD,OAA8B9rB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaq7B,cAAcjoB,UAAUgsB,gBAAkB,SAAU/jE,GAC7D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaq7B,cAAcjoB,UAAUmsB,eAAiB,WAClD,OAA8B/rB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaq7B,cAAcjoB,UAAUisB,eAAiB,SAAUhkE,GAC5D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAaz8B,oBAAoB6vC,UAAUkC,SAAW,SAAUC,GAC5D,OAAOvV,aAAaz8B,oBAAoB+xC,SAASC,EAAqB/6C,KAC1E,EAWAwlC,aAAaz8B,oBAAoB+xC,SAAW,SAAUE,EAAiBj6C,GACnE,IAAIggC,EACAvoB,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClBkM,aAAcjkC,EAAIhgC,EAAIkkE,mBAAqBz/B,aAAaC,cAAcqV,SAASE,EAAiBja,GAChGmkC,eAAgBlsB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACzDa,QAASo3C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM1D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaz8B,oBAAoBksB,kBAAoB,SAAU1E,GAC3D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaz8B,oBAC3B,OAAOy8B,aAAaz8B,oBAAoBuyC,4BAA4Bv6C,EAAKq6C,EAC7E,EASA5V,aAAaz8B,oBAAoBuyC,4BAA8B,SAAUv6C,EAAKq6C,GAC1E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAaC,cAC7B2V,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAc6V,6BACrDv6C,EAAI0rC,eAAe5rC,GACnB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6mC,kBAAkB/mC,GACtB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI4mC,WAAW9mC,GACf,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaz8B,oBAAoB6vC,UAAUzjB,gBAAkB,WACzD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaz8B,oBAAoB+yC,wBAAwB97C,KAAM47C,GACxDA,EAAOG,iBAClB,EASAvW,aAAaz8B,oBAAoB+yC,wBAA0B,SAAUxxC,EAASsxC,GAC1E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGhB,OADTA,EAAIz2B,EAAQ26D,mBAERrpB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAaC,cAAcqW,yBAG/C,KADV/a,EAAIz2B,EAAQ66D,sBAERvpB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQm2D,eAER7kB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAaz8B,oBAAoB6vC,UAAUsgB,gBAAkB,WACzD,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaz8B,oBAAoB6vC,UAAUkgB,sBAAwB,WAC/D,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaz8B,oBAAoB6vC,UAAUogB,qBAAuB,WAC9D,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaz8B,oBAAoB6vC,UAAU/R,gBAAkB,SAAUhmC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaz8B,oBAAoB6vC,UAAUqsB,eAAiB,WACxD,OAAkDjsB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaC,cAAe,EACrH,EAMAD,aAAaz8B,oBAAoB6vC,UAAUnM,eAAiB,SAAU5rC,GAClE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAaz8B,oBAAoB6vC,UAAUwsB,iBAAmB,WAC1D,OAAOplE,KAAKysC,oBAAerzB,EAC/B,EAMAosB,aAAaz8B,oBAAoB6vC,UAAUysB,eAAiB,WACxD,OAAyC,MAAlCrsB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAaz8B,oBAAoB6vC,UAAUusB,kBAAoB,WAC3D,OAA8BnsB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaz8B,oBAAoB6vC,UAAUhR,kBAAoB,SAAU/mC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAaz8B,oBAAoB6vC,UAAU6nB,WAAa,WACpD,OAA8BznB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaz8B,oBAAoB6vC,UAAUjR,WAAa,SAAU9mC,GAC9D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAat6B,qBAAqB0tC,UAAUkC,SAAW,SAAUC,GAC7D,OAAOvV,aAAat6B,qBAAqB4vC,SAASC,EAAqB/6C,KAC3E,EAWAwlC,aAAat6B,qBAAqB4vC,SAAW,SAAUE,EAAiBj6C,GACpE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB1vD,gBAAiBrI,EAAIkgE,2BACrBt7D,UAAWqzC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACpDE,KAAMF,EAAI41D,gBACVuO,eAAgBlsB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,GACzDa,QAASo3C,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM1D,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAat6B,qBAAqB+pB,kBAAoB,SAAU1E,GAC5D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAat6B,qBAC3B,OAAOs6B,aAAat6B,qBAAqBowC,4BAA4Bv6C,EAAKq6C,EAC9E,EASA5V,aAAat6B,qBAAqBowC,4BAA8B,SAAUv6C,EAAKq6C,GAC3E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIwmC,mBAAmB1mC,GACvB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIymC,aAAa3mC,GACjB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI0mC,QAAQ5mC,GACZ,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI6mC,kBAAkB/mC,GACtB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI4mC,WAAW9mC,GACf,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAat6B,qBAAqB0tC,UAAUzjB,gBAAkB,WAC1D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAat6B,qBAAqB4wC,wBAAwB97C,KAAM47C,GACzDA,EAAOG,iBAClB,EASAvW,aAAat6B,qBAAqB4wC,wBAA0B,SAAUxxC,EAASsxC,GAC3E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQu3D,2BACNn6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQy3D,iBAERnmB,EAAOkB,WAAW,EAAG/b,IAEzBA,EAAIz2B,EAAQitD,gBACN7vD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ66D,sBAERvpB,EAAOkB,WAAW,EAAG/b,GAGf,KADVA,EAAIz2B,EAAQm2D,eAER7kB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAat6B,qBAAqB0tC,UAAUsgB,gBAAkB,WAC1D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAat6B,qBAAqB0tC,UAAUkgB,sBAAwB,WAChE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAat6B,qBAAqB0tC,UAAUogB,qBAAuB,WAC/D,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAat6B,qBAAqB0tC,UAAU/R,gBAAkB,SAAUhmC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAat6B,qBAAqB0tC,UAAUwrB,mBAAqB,WAC7D,OAA4CprB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAat6B,qBAAqB0tC,UAAUqoB,yBAA2B,WACnE,OAA8BjoB,EAAKY,QAAQyC,WAAWr8C,KAAKokE,qBAC/D,EASA5+B,aAAat6B,qBAAqB0tC,UAAUipB,wBAA0B,WAClE,OAAmC7oB,EAAKY,QAAQ0C,UAAUt8C,KAAKokE,qBACnE,EAMA5+B,aAAat6B,qBAAqB0tC,UAAUrR,mBAAqB,SAAU1mC,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAat6B,qBAAqB0tC,UAAUmpB,aAAe,WACvD,OAA8B/oB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAat6B,qBAAqB0tC,UAAUpR,aAAe,SAAU3mC,GACjE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAat6B,qBAAqB0tC,UAAUmf,QAAU,WAClD,OAA4C/e,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAat6B,qBAAqB0tC,UAAU+d,cAAgB,WACxD,OAA8B3d,EAAKY,QAAQyC,WAAWr8C,KAAK+3D,UAC/D,EASAvyB,aAAat6B,qBAAqB0tC,UAAU2e,aAAe,WACvD,OAAmCve,EAAKY,QAAQ0C,UAAUt8C,KAAK+3D,UACnE,EAMAvyB,aAAat6B,qBAAqB0tC,UAAUnR,QAAU,SAAU5mC,GAC5D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAat6B,qBAAqB0tC,UAAUusB,kBAAoB,WAC5D,OAA8BnsB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAat6B,qBAAqB0tC,UAAUhR,kBAAoB,SAAU/mC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAMA2kC,aAAat6B,qBAAqB0tC,UAAU6nB,WAAa,WACrD,OAA8BznB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAat6B,qBAAqB0tC,UAAUjR,WAAa,SAAU9mC,GAC/D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa/5B,iBAAiBmtC,UAAUkC,SAAW,SAAUC,GACzD,OAAOvV,aAAa/5B,iBAAiBqvC,SAASC,EAAqB/6C,KACvE,EAWAwlC,aAAa/5B,iBAAiBqvC,SAAW,SAAUE,EAAiBj6C,GAChE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB1vD,gBAAiBrI,EAAIkgE,4BAM7B,OAHIjmB,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa/5B,iBAAiBwpB,kBAAoB,SAAU1E,GACxD,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa/5B,iBAC3B,OAAO+5B,aAAa/5B,iBAAiB6vC,4BAA4Bv6C,EAAKq6C,EAC1E,EASA5V,aAAa/5B,iBAAiB6vC,4BAA8B,SAAUv6C,EAAKq6C,GACvE,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIwmC,mBAAmB1mC,GACvB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa/5B,iBAAiBmtC,UAAUzjB,gBAAkB,WACtD,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa/5B,iBAAiBqwC,wBAAwB97C,KAAM47C,GACrDA,EAAOG,iBAClB,EASAvW,aAAa/5B,iBAAiBqwC,wBAA0B,SAAUxxC,EAASsxC,GACvE,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQu3D,2BACNn6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,EAE7B,EAMAyE,aAAa/5B,iBAAiBmtC,UAAUsgB,gBAAkB,WACtD,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa/5B,iBAAiBmtC,UAAUkgB,sBAAwB,WAC5D,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAa/5B,iBAAiBmtC,UAAUogB,qBAAuB,WAC3D,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAa/5B,iBAAiBmtC,UAAU/R,gBAAkB,SAAUhmC,GAChE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa/5B,iBAAiBmtC,UAAUwrB,mBAAqB,WACzD,OAA4CprB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa/5B,iBAAiBmtC,UAAUqoB,yBAA2B,WAC/D,OAA8BjoB,EAAKY,QAAQyC,WAAWr8C,KAAKokE,qBAC/D,EASA5+B,aAAa/5B,iBAAiBmtC,UAAUipB,wBAA0B,WAC9D,OAAmC7oB,EAAKY,QAAQ0C,UAAUt8C,KAAKokE,qBACnE,EAMA5+B,aAAa/5B,iBAAiBmtC,UAAUrR,mBAAqB,SAAU1mC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAa1zB,sBAAsB8mC,UAAUkC,SAAW,SAAUC,GAC9D,OAAOvV,aAAa1zB,sBAAsBgpC,SAASC,EAAqB/6C,KAC5E,EAWAwlC,aAAa1zB,sBAAsBgpC,SAAW,SAAUE,EAAiBj6C,GACrE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB1vD,gBAAiBrI,EAAIkgE,2BACrBG,2BAA4BpoB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAM7E,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAa1zB,sBAAsBmjB,kBAAoB,SAAU1E,GAC7D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa1zB,sBAC3B,OAAO0zB,aAAa1zB,sBAAsBwpC,4BAA4Bv6C,EAAKq6C,EAC/E,EASA5V,aAAa1zB,sBAAsBwpC,4BAA8B,SAAUv6C,EAAKq6C,GAC5E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIwmC,mBAAmB1mC,GACvB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIqrC,8BAA8BvrC,GAClC,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAa1zB,sBAAsB8mC,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa1zB,sBAAsBgqC,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAClB,EASAvW,aAAa1zB,sBAAsBgqC,wBAA0B,SAAUxxC,EAASsxC,GAC5E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQu3D,2BACNn6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ03D,kCAERpmB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAa1zB,sBAAsB8mC,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa1zB,sBAAsB8mC,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAa1zB,sBAAsB8mC,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAa1zB,sBAAsB8mC,UAAU/R,gBAAkB,SAAUhmC,GACrE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa1zB,sBAAsB8mC,UAAUwrB,mBAAqB,WAC9D,OAA4CprB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAa1zB,sBAAsB8mC,UAAUqoB,yBAA2B,WACpE,OAA8BjoB,EAAKY,QAAQyC,WAAWr8C,KAAKokE,qBAC/D,EASA5+B,aAAa1zB,sBAAsB8mC,UAAUipB,wBAA0B,WACnE,OAAmC7oB,EAAKY,QAAQ0C,UAAUt8C,KAAKokE,qBACnE,EAMA5+B,aAAa1zB,sBAAsB8mC,UAAUrR,mBAAqB,SAAU1mC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAa1zB,sBAAsB8mC,UAAUopB,8BAAgC,WACzE,OAA8BhpB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAa1zB,sBAAsB8mC,UAAUxM,8BAAgC,SAAUvrC,GACnF,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAaxzB,0BAA0B4mC,UAAUkC,SAAW,SAAUC,GAClE,OAAOvV,aAAaxzB,0BAA0B8oC,SAASC,EAAqB/6C,KAChF,EAWAwlC,aAAaxzB,0BAA0B8oC,SAAW,SAAUE,EAAiBj6C,GACzE,IACIyX,EAAM,CACFjW,aAAcxB,EAAI+3D,wBAClB1vD,gBAAiBrI,EAAIkgE,2BACrBv7D,kBAAmBszC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMpE,OAHIi6C,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAaxzB,0BAA0BijB,kBAAoB,SAAU1E,GACjE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaxzB,0BAC3B,OAAOwzB,aAAaxzB,0BAA0BspC,4BAA4Bv6C,EAAKq6C,EACnF,EASA5V,aAAaxzB,0BAA0BspC,4BAA8B,SAAUv6C,EAAKq6C,GAChF,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAIwmC,mBAAmB1mC,GACvB,MACJ,KAAK,EACGA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIsrC,qBAAqBxrC,GACzB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAaxzB,0BAA0B4mC,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaxzB,0BAA0B8pC,wBAAwB97C,KAAM47C,GAC9DA,EAAOG,iBAClB,EASAvW,aAAaxzB,0BAA0B8pC,wBAA0B,SAAUxxC,EAASsxC,GAChF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,IAEzBA,EAAIz2B,EAAQu3D,2BACNn6D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGf,KADVA,EAAIz2B,EAAQ23D,yBAERrmB,EAAOkB,WAAW,EAAG/b,EAE7B,EAMAyE,aAAaxzB,0BAA0B4mC,UAAUsgB,gBAAkB,WAC/D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaxzB,0BAA0B4mC,UAAUkgB,sBAAwB,WACrE,OAA8B9f,EAAKY,QAAQyC,WAAWr8C,KAAKk5D,kBAC/D,EASA1zB,aAAaxzB,0BAA0B4mC,UAAUogB,qBAAuB,WACpE,OAAmChgB,EAAKY,QAAQ0C,UAAUt8C,KAAKk5D,kBACnE,EAMA1zB,aAAaxzB,0BAA0B4mC,UAAU/R,gBAAkB,SAAUhmC,GACzE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaxzB,0BAA0B4mC,UAAUwrB,mBAAqB,WAClE,OAA4CprB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAaxzB,0BAA0B4mC,UAAUqoB,yBAA2B,WACxE,OAA8BjoB,EAAKY,QAAQyC,WAAWr8C,KAAKokE,qBAC/D,EASA5+B,aAAaxzB,0BAA0B4mC,UAAUipB,wBAA0B,WACvE,OAAmC7oB,EAAKY,QAAQ0C,UAAUt8C,KAAKokE,qBACnE,EAMA5+B,aAAaxzB,0BAA0B4mC,UAAUrR,mBAAqB,SAAU1mC,GAC5E,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAaxzB,0BAA0B4mC,UAAUqpB,qBAAuB,WACpE,OAA8BjpB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC5E,EAMAwlC,aAAaxzB,0BAA0B4mC,UAAUvM,qBAAuB,SAAUxrC,GAC9E,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACnD,EAEIm4C,EAAKY,QAAQiB,qBAabrV,aAAas7B,yBAAyBloB,UAAUkC,SAAW,SAAUC,GACjE,OAAOvV,aAAas7B,yBAAyBhmB,SAASC,EAAqB/6C,KAC/E,EAWAwlC,aAAas7B,yBAAyBhmB,SAAW,SAAUE,EAAiBj6C,GACxE,IAAIggC,EACAvoB,EAAM,CACF8sD,eAAgBvkC,EAAIhgC,EAAIwkE,qBAAuB//B,aAAaC,cAAcqV,SAASE,EAAiBja,GACpGykC,YAAazkE,EAAI0kE,uBACjBC,eAAgB3kC,EAAIhgC,EAAI4kE,qBAAuBngC,aAAaq7B,cAAc/lB,SAASE,EAAiBja,IAM5G,OAHIia,IACAxiC,EAAI2iC,qBAAuBp6C,GAExByX,CACX,GAQJgtB,aAAas7B,yBAAyB7rC,kBAAoB,SAAU1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAas7B,yBAC3B,OAAOt7B,aAAas7B,yBAAyBxlB,4BAA4Bv6C,EAAKq6C,EAClF,EASA5V,aAAas7B,yBAAyBxlB,4BAA8B,SAAUv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACNH,EAAOI,cAIX,OADYJ,EAAOK,kBAEf,KAAK,EACD,IAAI56C,EAAQ,IAAI2kC,aAAaC,cAC7B2V,EAAOuC,YAAY98C,EAAO2kC,aAAaC,cAAc6V,6BACrDv6C,EAAI6kE,iBAAiB/kE,GACrB,MACJ,KAAK,EACGA,EAAoCu6C,EAAOM,YAC/C36C,EAAI8kE,eAAehlE,GACnB,MACJ,KAAK,EACGA,EAAQ,IAAI2kC,aAAaq7B,cAC7BzlB,EAAOuC,YAAY98C,EAAO2kC,aAAaq7B,cAAcvlB,6BACrDv6C,EAAI+kE,iBAAiBjlE,GACrB,MACJ,QACIu6C,EAAOO,YAInB,OAAO56C,CACX,EAMAykC,aAAas7B,yBAAyBloB,UAAUzjB,gBAAkB,WAC9D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAas7B,yBAAyBhlB,wBAAwB97C,KAAM47C,GAC7DA,EAAOG,iBAClB,EASAvW,aAAas7B,yBAAyBhlB,wBAA0B,SAAUxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,EAEC,OADT2nB,EAAIz2B,EAAQi7D,qBAER3pB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAaC,cAAcqW,0BAEzD/a,EAAIz2B,EAAQy7D,uBACNr+D,OAAS,GACXk0C,EAAOK,WAAW,EAAGlb,GAGhB,OADTA,EAAIz2B,EAAQq7D,qBAER/pB,EAAOqK,aAAa,EAAGllB,EAAGyE,aAAaq7B,cAAc/kB,wBAE7D,EAMAtW,aAAas7B,yBAAyBloB,UAAU2sB,iBAAmB,WAC/D,OAAkDvsB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaC,cAAe,EACrH,EAMAD,aAAas7B,yBAAyBloB,UAAUgtB,iBAAmB,SAAU/kE,GACzE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAas7B,yBAAyBloB,UAAUotB,mBAAqB,WACjE,OAAOhmE,KAAK4lE,sBAAiBxsD,EACjC,EAMAosB,aAAas7B,yBAAyBloB,UAAUqtB,iBAAmB,WAC/D,OAAyC,MAAlCjtB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAMAwlC,aAAas7B,yBAAyBloB,UAAUstB,eAAiB,WAC7D,OAA4CltB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GAC1F,EAOAwlC,aAAas7B,yBAAyBloB,UAAU6sB,qBAAuB,WACnE,OAA8BzsB,EAAKY,QAAQyC,WAAWr8C,KAAKkmE,iBAC/D,EASA1gC,aAAas7B,yBAAyBloB,UAAUmtB,oBAAsB,WAClE,OAAmC/sB,EAAKY,QAAQ0C,UAAUt8C,KAAKkmE,iBACnE,EAMA1gC,aAAas7B,yBAAyBloB,UAAUitB,eAAiB,SAAUhlE,GACvE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACrD,EAMA2kC,aAAas7B,yBAAyBloB,UAAU+sB,iBAAmB,WAC/D,OAAkD3sB,EAAKY,QAAQkP,gBAAgB9oD,KAAMwlC,aAAaq7B,cAAe,EACrH,EAMAr7B,aAAas7B,yBAAyBloB,UAAUktB,iBAAmB,SAAUjlE,GACzE,OAAOm4C,EAAKY,QAAQmP,gBAAgB/oD,KAAM,EAAGa,EACjD,EAMA2kC,aAAas7B,yBAAyBloB,UAAUutB,mBAAqB,WACjE,OAAOnmE,KAAK8lE,sBAAiB1sD,EACjC,EAMAosB,aAAas7B,yBAAyBloB,UAAUwtB,iBAAmB,WAC/D,OAAyC,MAAlCptB,EAAKY,QAAQsP,SAASlpD,KAAM,EACvC,EAEAi5C,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCl4F5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,uCAAwC,KAAMP,GAChED,EAAKQ,aAAa,kCAAmC,KAAMP,GAC3DD,EAAKQ,aAAa,mCAAoC,KAAMP,GAC5DD,EAAKQ,aAAa,uCAAwC,KAAMP,GAWhE1T,aAAa6gC,wBAA0B,SAAS1sB,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa6gC,wBAAyBrtB,EAAKY,SACrDX,EAAKc,QAAUC,WAKjBxU,aAAa6gC,wBAAwBpsB,YAAc,wCAYrDzU,aAAa8gC,mBAAqB,SAAS3sB,GACzCX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa8gC,mBAAoBttB,EAAKY,SAChDX,EAAKc,QAAUC,WAKjBxU,aAAa8gC,mBAAmBrsB,YAAc,mCAYhDzU,aAAa+gC,oBAAsB,SAAS5sB,GAC1CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa+gC,oBAAqBvtB,EAAKY,SACjDX,EAAKc,QAAUC,WAKjBxU,aAAa+gC,oBAAoBtsB,YAAc,oCAYjDzU,aAAa35B,wBAA0B,SAAS8tC,GAC9CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa35B,wBAAyBmtC,EAAKY,SACrDX,EAAKc,QAAUC,WAKjBxU,aAAa35B,wBAAwBouC,YAAc,wCAKjDjB,EAAKY,QAAQiB,qBAajBrV,aAAa6gC,wBAAwBztB,UAAUkC,SAAW,SAASC,GACjE,OAAOvV,aAAa6gC,wBAAwBvrB,SAASC,EAAqB/6C,KAC5E,EAYAwlC,aAAa6gC,wBAAwBvrB,SAAW,SAASE,EAAiBj6C,GACxE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBvoC,MAAOyoB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa6gC,wBAAwBpxC,kBAAoB,SAAS1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa6gC,wBAC3B,OAAO7gC,aAAa6gC,wBAAwB/qB,4BAA4Bv6C,EAAKq6C,EAC/E,EAUA5V,aAAa6gC,wBAAwB/qB,4BAA8B,SAASv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAIylE,SAAS3lE,GACb,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa6gC,wBAAwBztB,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa6gC,wBAAwBvqB,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAChB,EAUAvW,aAAa6gC,wBAAwBvqB,wBAA0B,SAASxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQgtB,aAEVskB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa6gC,wBAAwBztB,UAAUsgB,gBAAkB,WAC/D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa6gC,wBAAwBztB,UAAUkgB,sBAAwB,WACrE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa6gC,wBAAwBztB,UAAUogB,qBAAuB,WACpE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa6gC,wBAAwBztB,UAAU/R,gBAAkB,SAAShmC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa6gC,wBAAwBztB,UAAUthB,SAAW,WACxD,OAA8B0hB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa6gC,wBAAwBztB,UAAU4tB,SAAW,SAAS3lE,GACjE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa8gC,mBAAmB1tB,UAAUkC,SAAW,SAASC,GAC5D,OAAOvV,aAAa8gC,mBAAmBxrB,SAASC,EAAqB/6C,KACvE,EAYAwlC,aAAa8gC,mBAAmBxrB,SAAW,SAASE,EAAiBj6C,GACnE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB3nD,MAAO6nC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMlD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa8gC,mBAAmBrxC,kBAAoB,SAAS1E,GAC3D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa8gC,mBAC3B,OAAO9gC,aAAa8gC,mBAAmBhrB,4BAA4Bv6C,EAAKq6C,EAC1E,EAUA5V,aAAa8gC,mBAAmBhrB,4BAA8B,SAASv6C,EAAKq6C,GAC1E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2vC,SAAS7vC,GACb,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa8gC,mBAAmB1tB,UAAUzjB,gBAAkB,WAC1D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa8gC,mBAAmBxqB,wBAAwB97C,KAAM47C,GACvDA,EAAOG,iBAChB,EAUAvW,aAAa8gC,mBAAmBxqB,wBAA0B,SAASxxC,EAASsxC,GAC1E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQk2D,aAEV5kB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa8gC,mBAAmB1tB,UAAUsgB,gBAAkB,WAC1D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa8gC,mBAAmB1tB,UAAUkgB,sBAAwB,WAChE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa8gC,mBAAmB1tB,UAAUogB,qBAAuB,WAC/D,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa8gC,mBAAmB1tB,UAAU/R,gBAAkB,SAAShmC,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa8gC,mBAAmB1tB,UAAU4nB,SAAW,WACnD,OAA8BxnB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa8gC,mBAAmB1tB,UAAUlI,SAAW,SAAS7vC,GAC5D,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa+gC,oBAAoB3tB,UAAUkC,SAAW,SAASC,GAC7D,OAAOvV,aAAa+gC,oBAAoBzrB,SAASC,EAAqB/6C,KACxE,EAYAwlC,aAAa+gC,oBAAoBzrB,SAAW,SAASE,EAAiBj6C,GACpE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB2N,aAAcztB,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMzD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa+gC,oBAAoBtxC,kBAAoB,SAAS1E,GAC5D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa+gC,oBAC3B,OAAO/gC,aAAa+gC,oBAAoBjrB,4BAA4Bv6C,EAAKq6C,EAC3E,EAUA5V,aAAa+gC,oBAAoBjrB,4BAA8B,SAASv6C,EAAKq6C,GAC3E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI2lE,gBAAgB7lE,GACpB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa+gC,oBAAoB3tB,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa+gC,oBAAoBzqB,wBAAwB97C,KAAM47C,GACxDA,EAAOG,iBAChB,EAUAvW,aAAa+gC,oBAAoBzqB,wBAA0B,SAASxxC,EAASsxC,GAC3E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQq8D,oBAEV/qB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAa+gC,oBAAoB3tB,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa+gC,oBAAoB3tB,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa+gC,oBAAoB3tB,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa+gC,oBAAoB3tB,UAAU/R,gBAAkB,SAAShmC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa+gC,oBAAoB3tB,UAAU+tB,gBAAkB,WAC3D,OAA8B3tB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa+gC,oBAAoB3tB,UAAU8tB,gBAAkB,SAAS7lE,GACpE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAa35B,wBAAwB+sC,UAAUkC,SAAW,SAASC,GACjE,OAAOvV,aAAa35B,wBAAwBivC,SAASC,EAAqB/6C,KAC5E,EAYAwlC,aAAa35B,wBAAwBivC,SAAW,SAASE,EAAiBj6C,GACxE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBntD,UAAWqtC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMtD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa35B,wBAAwBopB,kBAAoB,SAAS1E,GAChE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa35B,wBAC3B,OAAO25B,aAAa35B,wBAAwByvC,4BAA4Bv6C,EAAKq6C,EAC/E,EAUA5V,aAAa35B,wBAAwByvC,4BAA8B,SAASv6C,EAAKq6C,GAC/E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAA+Bu6C,EAAO4R,YAC1CjsD,EAAIisC,aAAansC,GACjB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa35B,wBAAwB+sC,UAAUzjB,gBAAkB,WAC/D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa35B,wBAAwBiwC,wBAAwB97C,KAAM47C,GAC5DA,EAAOG,iBAChB,EAUAvW,aAAa35B,wBAAwBiwC,wBAA0B,SAASxxC,EAASsxC,GAC/E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQ8c,iBAEVw0B,EAAOuR,WACL,EACApsB,EAGN,EAOAyE,aAAa35B,wBAAwB+sC,UAAUsgB,gBAAkB,WAC/D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa35B,wBAAwB+sC,UAAUkgB,sBAAwB,WACrE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa35B,wBAAwB+sC,UAAUogB,qBAAuB,WACpE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa35B,wBAAwB+sC,UAAU/R,gBAAkB,SAAShmC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa35B,wBAAwB+sC,UAAUxxB,aAAe,WAC5D,OAA8B4xB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAa35B,wBAAwB+sC,UAAU5L,aAAe,SAASnsC,GACrE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAGAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,iBCl0B5B,IAAIwT,EAAO,EAAQ,MACfC,EAAOD,EACPE,EACqB,oBAAfrkB,YAA8BA,YACnB,oBAAXskB,QAA0BA,aACf,IAAXD,GAA0BA,GACjB,oBAATE,MAAwBA,MAChC,WAAe,OAAOp5C,IAAO,EAAE+Y,KAAK,OACpCsgC,SAAS,cAATA,GAEFJ,EAAKQ,aAAa,mCAAoC,KAAMP,GAC5DD,EAAKQ,aAAa,wCAAyC,KAAMP,GACjED,EAAKQ,aAAa,qCAAsC,KAAMP,GAC9DD,EAAKQ,aAAa,qCAAsC,KAAMP,GAW9D1T,aAAa9gC,sBAAwB,SAASi1C,GAC5CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAa9gC,sBAAuBs0C,EAAKY,SACnDX,EAAKc,QAAUC,WAKjBxU,aAAa9gC,sBAAsBu1C,YAAc,sCAYnDzU,aAAaohC,sBAAwB,SAASjtB,GAC5CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAaohC,sBAAuB5tB,EAAKY,SACnDX,EAAKc,QAAUC,WAKjBxU,aAAaohC,sBAAsB3sB,YAAc,sCAYnDzU,aAAalgC,oBAAsB,SAASq0C,GAC1CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAGnU,aAAalgC,oBAAoB60C,gBAAiB,KACnG,EACAlB,EAAKa,SAAStU,aAAalgC,oBAAqB0zC,EAAKY,SACjDX,EAAKc,QAAUC,WAKjBxU,aAAalgC,oBAAoB20C,YAAc,oCAYjDzU,aAAalgC,oBAAoBglC,KAAO,SAASqP,GAC/CX,EAAKY,QAAQC,WAAW75C,KAAM25C,EAAU,GAAI,EAAG,KAAM,KACvD,EACAV,EAAKa,SAAStU,aAAalgC,oBAAoBglC,KAAM0O,EAAKY,SACtDX,EAAKc,QAAUC,WAKjBxU,aAAalgC,oBAAoBglC,KAAK2P,YAAc,yCAKlDjB,EAAKY,QAAQiB,qBAajBrV,aAAa9gC,sBAAsBk0C,UAAUkC,SAAW,SAASC,GAC/D,OAAOvV,aAAa9gC,sBAAsBo2C,SAASC,EAAqB/6C,KAC1E,EAYAwlC,aAAa9gC,sBAAsBo2C,SAAW,SAASE,EAAiBj6C,GACtE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClBt0D,IAAKzD,EAAIs5D,gBAMX,OAHIrf,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAa9gC,sBAAsBuwB,kBAAoB,SAAS1E,GAC9D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAa9gC,sBAC3B,OAAO8gC,aAAa9gC,sBAAsB42C,4BAA4Bv6C,EAAKq6C,EAC7E,EAUA5V,aAAa9gC,sBAAsB42C,4BAA8B,SAASv6C,EAAKq6C,GAC7E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIkpC,OAAOppC,GACX,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAa9gC,sBAAsBk0C,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAa9gC,sBAAsBo3C,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAChB,EAUAvW,aAAa9gC,sBAAsBo3C,wBAA0B,SAASxxC,EAASsxC,GAC7E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ+wD,eACN3zD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,EAGN,EAOAyE,aAAa9gC,sBAAsBk0C,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa9gC,sBAAsBk0C,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAa9gC,sBAAsBk0C,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAa9gC,sBAAsBk0C,UAAU/R,gBAAkB,SAAShmC,GACtE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAa9gC,sBAAsBk0C,UAAUkW,OAAS,WACpD,OAA4C9V,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAa9gC,sBAAsBk0C,UAAUyhB,aAAe,WAC1D,OAA8BrhB,EAAKY,QAAQyC,WACvCr8C,KAAK8uD,SACX,EAUAtpB,aAAa9gC,sBAAsBk0C,UAAUyiB,YAAc,WACzD,OAAmCriB,EAAKY,QAAQ0C,UAC5Ct8C,KAAK8uD,SACX,EAOAtpB,aAAa9gC,sBAAsBk0C,UAAU3O,OAAS,SAASppC,GAC7D,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAMIm4C,EAAKY,QAAQiB,qBAajBrV,aAAaohC,sBAAsBhuB,UAAUkC,SAAW,SAASC,GAC/D,OAAOvV,aAAaohC,sBAAsB9rB,SAASC,EAAqB/6C,KAC1E,EAYAwlC,aAAaohC,sBAAsB9rB,SAAW,SAASE,EAAiBj6C,GACtE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB+N,UAAW9lE,EAAI+lE,sBAMjB,OAHI9rB,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAaohC,sBAAsB3xC,kBAAoB,SAAS1E,GAC9D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAaohC,sBAC3B,OAAOphC,aAAaohC,sBAAsBtrB,4BAA4Bv6C,EAAKq6C,EAC7E,EAUA5V,aAAaohC,sBAAsBtrB,4BAA8B,SAASv6C,EAAKq6C,GAC7E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,GACCA,EAAoCu6C,EAAOM,YAC/C36C,EAAIgmE,aAAalmE,GACjB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAaohC,sBAAsBhuB,UAAUzjB,gBAAkB,WAC7D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAaohC,sBAAsB9qB,wBAAwB97C,KAAM47C,GAC1DA,EAAOG,iBAChB,EAUAvW,aAAaohC,sBAAsB9qB,wBAA0B,SAASxxC,EAASsxC,GAC7E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ08D,qBACNt/D,OAAS,GACbk0C,EAAOK,WACL,GACAlb,EAGN,EAOAyE,aAAaohC,sBAAsBhuB,UAAUsgB,gBAAkB,WAC7D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAaohC,sBAAsBhuB,UAAUkgB,sBAAwB,WACnE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAaohC,sBAAsBhuB,UAAUogB,qBAAuB,WAClE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAaohC,sBAAsBhuB,UAAU/R,gBAAkB,SAAShmC,GACtE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAaohC,sBAAsBhuB,UAAUquB,aAAe,WAC1D,OAA4CjuB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,GAAI,GACzF,EAQAwlC,aAAaohC,sBAAsBhuB,UAAUkuB,mBAAqB,WAChE,OAA8B9tB,EAAKY,QAAQyC,WACvCr8C,KAAKinE,eACX,EAUAzhC,aAAaohC,sBAAsBhuB,UAAUouB,kBAAoB,WAC/D,OAAmChuB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKinE,eACX,EAOAzhC,aAAaohC,sBAAsBhuB,UAAUmuB,aAAe,SAASlmE,GACnE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,GAAIa,EACpD,EASA2kC,aAAalgC,oBAAoB60C,gBAAkB,CAAC,GAIhDnB,EAAKY,QAAQiB,qBAajBrV,aAAalgC,oBAAoBszC,UAAUkC,SAAW,SAASC,GAC7D,OAAOvV,aAAalgC,oBAAoBw1C,SAASC,EAAqB/6C,KACxE,EAYAwlC,aAAalgC,oBAAoBw1C,SAAW,SAASE,EAAiBj6C,GACpE,IAAOyX,EAAM,CACXjW,aAAcxB,EAAI+3D,wBAClB9X,UAAWhI,EAAKY,QAAQqH,aAAalgD,EAAImgD,eACzC1b,aAAalgC,oBAAoBglC,KAAKwQ,SAAUE,GAChDksB,QAASluB,EAAKY,QAAQoI,2BAA2BjhD,EAAK,GAAG,IAM3D,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAalgC,oBAAoB2vB,kBAAoB,SAAS1E,GAC5D,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAalgC,oBAC3B,OAAOkgC,aAAalgC,oBAAoBg2C,4BAA4Bv6C,EAAKq6C,EAC3E,EAUA5V,aAAalgC,oBAAoBg2C,4BAA8B,SAASv6C,EAAKq6C,GAC3E,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAI8lC,gBAAgBhmC,GACpB,MACF,KAAK,EACCA,EAAQ,IAAI2kC,aAAalgC,oBAAoBglC,KACjD8Q,EAAOuC,YAAY98C,EAAM2kC,aAAalgC,oBAAoBglC,KAAKgR,6BAC/Dv6C,EAAI2pC,SAAS7pC,GACb,MACF,KAAK,EACCA,EAAgCu6C,EAAOoJ,WAC3CzjD,EAAIomE,WAAWtmE,GACf,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAalgC,oBAAoBszC,UAAUzjB,gBAAkB,WAC3D,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAalgC,oBAAoBw2C,wBAAwB97C,KAAM47C,GACxDA,EAAOG,iBAChB,EAUAvW,aAAalgC,oBAAoBw2C,wBAA0B,SAASxxC,EAASsxC,GAC3E,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQ0uD,wBACNtxD,OAAS,GACbk0C,EAAOK,WACL,EACAlb,IAGJA,EAAIz2B,EAAQ42C,gBACNx5C,OAAS,GACbk0C,EAAO+J,qBACL,EACA5kB,EACAyE,aAAalgC,oBAAoBglC,KAAKwR,0BAG1C/a,EAAIz2B,EAAQ88D,eAEVxrB,EAAOuK,UACL,EACAplB,EAGN,EAMIiY,EAAKY,QAAQiB,qBAajBrV,aAAalgC,oBAAoBglC,KAAKsO,UAAUkC,SAAW,SAASC,GAClE,OAAOvV,aAAalgC,oBAAoBglC,KAAKwQ,SAASC,EAAqB/6C,KAC7E,EAYAwlC,aAAalgC,oBAAoBglC,KAAKwQ,SAAW,SAASE,EAAiBj6C,GACzE,IAAOyX,EAAM,CACXikC,YAAa17C,EAAI27C,uBACjBz3C,UAAW+zC,EAAKY,QAAQwC,oBAAoBr7C,EAAK,EAAG,IAMtD,OAHIi6C,IACFxiC,EAAI2iC,qBAAuBp6C,GAEtByX,CACT,GASAgtB,aAAalgC,oBAAoBglC,KAAKrV,kBAAoB,SAAS1E,GACjE,IAAI6qB,EAAS,IAAIpC,EAAKqC,aAAa9qB,GAC/BxvB,EAAM,IAAIykC,aAAalgC,oBAAoBglC,KAC/C,OAAO9E,aAAalgC,oBAAoBglC,KAAKgR,4BAA4Bv6C,EAAKq6C,EAChF,EAUA5V,aAAalgC,oBAAoBglC,KAAKgR,4BAA8B,SAASv6C,EAAKq6C,GAChF,KAAOA,EAAOG,cACRH,EAAOI,cAIX,OADYJ,EAAOK,kBAEnB,KAAK,EACH,IAAI56C,EAAoCu6C,EAAOM,YAC/C36C,EAAIwpC,eAAe1pC,GACnB,MACF,KAAK,EACCA,EAA+Bu6C,EAAOuB,YAC1C57C,EAAI0pC,aAAa5pC,GACjB,MACF,QACEu6C,EAAOO,YAIX,OAAO56C,CACT,EAOAykC,aAAalgC,oBAAoBglC,KAAKsO,UAAUzjB,gBAAkB,WAChE,IAAIymB,EAAS,IAAI5C,EAAK6C,aAEtB,OADArW,aAAalgC,oBAAoBglC,KAAKwR,wBAAwB97C,KAAM47C,GAC7DA,EAAOG,iBAChB,EAUAvW,aAAalgC,oBAAoBglC,KAAKwR,wBAA0B,SAASxxC,EAASsxC,GAChF,IAAI7a,OAAI3nB,GACR2nB,EAAIz2B,EAAQsyC,uBACNl1C,OAAS,GACbk0C,EAAOK,WACL,EACAlb,GAIM,KADVA,EAAIz2B,EAAQuyC,iBAEVjB,EAAOkB,WACL,EACA/b,EAGN,EAOAyE,aAAalgC,oBAAoBglC,KAAKsO,UAAUmE,eAAiB,WAC/D,OAA4C/D,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAalgC,oBAAoBglC,KAAKsO,UAAU8D,qBAAuB,WACrE,OAA8B1D,EAAKY,QAAQyC,WACvCr8C,KAAK+8C,iBACX,EAUAvX,aAAalgC,oBAAoBglC,KAAKsO,UAAUgE,oBAAsB,WACpE,OAAmC5D,EAAKY,QAAQ0C,UAC5Ct8C,KAAK+8C,iBACX,EAOAvX,aAAalgC,oBAAoBglC,KAAKsO,UAAUrO,eAAiB,SAAS1pC,GACxE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAalgC,oBAAoBglC,KAAKsO,UAAUiE,aAAe,WAC7D,OAA8B7D,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,EAC1E,EAOAwlC,aAAalgC,oBAAoBglC,KAAKsO,UAAUnO,aAAe,SAAS5pC,GACtE,OAAOm4C,EAAKY,QAAQoD,kBAAkBh9C,KAAM,EAAGa,EACjD,EAOA2kC,aAAalgC,oBAAoBszC,UAAUsgB,gBAAkB,WAC3D,OAA4ClgB,EAAKY,QAAQwC,oBAAoBp8C,KAAM,EAAG,GACxF,EAQAwlC,aAAalgC,oBAAoBszC,UAAUkgB,sBAAwB,WACjE,OAA8B9f,EAAKY,QAAQyC,WACvCr8C,KAAKk5D,kBACX,EAUA1zB,aAAalgC,oBAAoBszC,UAAUogB,qBAAuB,WAChE,OAAmChgB,EAAKY,QAAQ0C,UAC5Ct8C,KAAKk5D,kBACX,EAOA1zB,aAAalgC,oBAAoBszC,UAAU/R,gBAAkB,SAAShmC,GACpE,OAAOm4C,EAAKY,QAAQ2C,oBAAoBv8C,KAAM,EAAGa,EACnD,EAOA2kC,aAAalgC,oBAAoBszC,UAAUsI,aAAe,WACxD,OACElI,EAAKY,QAAQwP,wBAAwBppD,KAAMwlC,aAAalgC,oBAAoBglC,KAAM,EACtF,EAOA9E,aAAalgC,oBAAoBszC,UAAUyQ,aAAe,SAASxoD,GACjE,OAAOm4C,EAAKY,QAAQ0P,wBAAwBtpD,KAAM,EAAGa,EACvD,EAQA2kC,aAAalgC,oBAAoBszC,UAAUlO,SAAW,SAAS6e,EAAW7J,GACxE,OAAO1G,EAAKY,QAAQ4P,0BAA0BxpD,KAAM,EAAGupD,EAAW/jB,aAAalgC,oBAAoBglC,KAAMoV,EAC3G,EAOAla,aAAalgC,oBAAoBszC,UAAU6Q,eAAiB,WAC1D,OAAOzpD,KAAKqpD,aAAa,GAC3B,EAOA7jB,aAAalgC,oBAAoBszC,UAAUwuB,WAAa,WACtD,OAA+BpuB,EAAKY,QAAQoI,2BAA2BhiD,KAAM,GAAG,EAClF,EAOAwlC,aAAalgC,oBAAoBszC,UAAUuuB,WAAa,SAAStmE,GAC/D,OAAOm4C,EAAKY,QAAQoQ,sBAAsBhqD,KAAM,EAAGa,EACrD,EAGAo4C,EAAKM,OAAOC,OAAOV,EAAStT,a,GC17BxB6hC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBnuD,IAAjBouD,EACH,OAAOA,EAAa1uB,QAGrB,IAAID,EAASwuB,EAAyBE,GAAY,CAGjDzuB,QAAS,CAAC,GAOX,OAHA2uB,EAAoBF,GAAU1uB,EAAQA,EAAOC,QAASwuB,GAG/CzuB,EAAOC,OACf,C,oDCtBA,6BAAO,UAGP,gBAGA,UAGA,UAGA,SAGA,UAGA,UAGA,UAGA,UAGA,yBAGA,UAAe,CACXtwB,MAAA,UACAH,UAAA,EAAAA,UACA1J,UAAA,EAAAA,UACAkK,mBAAA,EAAAA,mBACA/J,IAAA,EAAAA,IACA+L,SAAA,EAAAA,SACAjC,MAAA,EAAAA,MACA/L,OAAA,EAAAA,OACA/c,QAAA,EAAAA,QACA4nE,Q","sources":["webpack://tronweb/./src/lib/TransactionBuilder/TransactionBuilder.ts","webpack://tronweb/./src/lib/TransactionBuilder/helper.ts","webpack://tronweb/./src/lib/contract/index.ts","webpack://tronweb/./src/lib/contract/method.ts","webpack://tronweb/./src/lib/event.ts","webpack://tronweb/./src/lib/plugin.ts","webpack://tronweb/./src/lib/providers/HttpProvider.ts","webpack://tronweb/./src/lib/providers/index.ts","webpack://tronweb/./src/lib/trx.ts","webpack://tronweb/./src/paramValidator/index.ts","webpack://tronweb/./src/tronweb.ts","webpack://tronweb/./src/types/Contract.ts","webpack://tronweb/./src/types/Trx.ts","webpack://tronweb/./src/types/index.ts","webpack://tronweb/./src/utils/abi.ts","webpack://tronweb/./src/utils/accounts.ts","webpack://tronweb/./src/utils/address.ts","webpack://tronweb/./src/utils/base58.ts","webpack://tronweb/./src/utils/base64.ts","webpack://tronweb/./src/utils/bytes.ts","webpack://tronweb/./src/utils/code.ts","webpack://tronweb/./src/utils/crypto.ts","webpack://tronweb/./src/utils/ethersUtils.ts","webpack://tronweb/./src/utils/fragments.ts","webpack://tronweb/./src/utils/index.ts","webpack://tronweb/./src/utils/interface.ts","webpack://tronweb/./src/utils/message.ts","webpack://tronweb/./src/utils/transaction.ts","webpack://tronweb/./src/utils/typedData.ts","webpack://tronweb/./src/utils/validations.ts","webpack://tronweb/external commonjs \"@tronweb3/google-protobuf\"","webpack://tronweb/external commonjs \"@tronweb3/google-protobuf/google/protobuf/any_pb.js\"","webpack://tronweb/external commonjs \"axios\"","webpack://tronweb/external commonjs \"bignumber.js\"","webpack://tronweb/external commonjs \"ethereum-cryptography/secp256k1\"","webpack://tronweb/external commonjs \"ethers\"","webpack://tronweb/external commonjs \"eventemitter3\"","webpack://tronweb/external commonjs \"semver\"","webpack://tronweb/external commonjs \"tslib\"","webpack://tronweb/external commonjs \"validator\"","webpack://tronweb/./src/protocol/core/Tron_pb.cjs","webpack://tronweb/./src/protocol/core/contract/account_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/asset_issue_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/balance_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/common_pb.cjs","webpack://tronweb/./src/protocol/core/contract/exchange_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/proposal_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/smart_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/storage_contract_pb.cjs","webpack://tronweb/./src/protocol/core/contract/witness_contract_pb.cjs","webpack://tronweb/webpack/bootstrap","webpack://tronweb/./src/index.ts"],"sourcesContent":["import { TronWeb } from '../../tronweb.js';\nimport { AbiCoder, keccak256 } from '../../utils/ethersUtils.js';\nimport { ADDRESS_PREFIX_REGEX, toHex } from '../../utils/address.js';\nimport { encodeParamsV2ByABI } from '../../utils/abi.js';\nimport { CreateSmartContractTransaction, SignedTransaction, Transaction, TransactionWrapper } from '../../types/Transaction.js';\nimport { Validator } from '../../paramValidator/index.js';\nimport { GetSignWeightResponse } from '../../types/APIResponse.js';\nimport { isArray, isInteger, isNotNullOrUndefined, isObject, isString } from '../../utils/validations.js';\nimport {\n AccountCreateContract,\n AccountPermissionUpdateContract,\n AccountUpdateContract,\n AssetIssueContract,\n CancelFreezeBalanceV2Contract,\n ClearABIContract,\n ContractParamter,\n ContractType,\n CreateSmartContract,\n DelegateResourceContract,\n DeployConstantContract,\n ExchangeCreateContract,\n ExchangeInjectContract,\n ExchangeTransactionContract,\n ExchangeWithdrawContract,\n FreezeBalanceContract,\n FreezeBalanceV2Contract,\n ParticipateAssetIssueContract,\n Permission,\n ProposalCreateContract,\n ProposalDeleteContract,\n SetAccountIdContract,\n TransferAssetContract,\n TransferContract,\n TriggerSmartContract,\n UnDelegateResourceContract,\n UnfreezeBalanceContract,\n UnfreezeBalanceV2Contract,\n UpdateAssetContract,\n UpdateBrokerageContract,\n UpdateEnergyLimitContract,\n UpdateSettingContract,\n VoteProposalContract,\n VoteWitnessContract,\n WithdrawBalanceContract,\n WithdrawExpireUnfreezeContract,\n WitnessCreateContract,\n} from '../../types/Contract.js';\nimport {\n createTransaction,\n deepCopyJson,\n fromUtf8,\n genContractAddress,\n resultManager,\n resultManagerTriggerSmartContract,\n getTransactionOptions,\n} from './helper.js';\nimport {\n AlterTransactionOptions,\n CreateSmartContractOptions,\n CreateTokenOptions,\n DeployConstantContractOptions,\n TriggerConstantContractOptions,\n TransactionCommonOptions,\n Resource,\n ContractFunctionParameter,\n TriggerSmartContractOptions,\n TxLocal,\n UpdateTokenOptions,\n VoteInfo,\n} from '../../types/TransactionBuilder.js';\nimport { Address } from '../../types/Trx.js';\nimport { ConstructorFragment, ContractAbiInterface, FunctionFragment } from '../../types/ABI.js';\n\ninterface IArgs extends TriggerSmartContract {\n function_selector?: string;\n parameter?: string;\n fee_limit?: number;\n Permission_id?: number;\n}\nexport class TransactionBuilder {\n private tronWeb: TronWeb;\n private validator: Validator;\n constructor(tronWeb?: TronWeb) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) {\n throw new Error('Expected instance of TronWeb');\n }\n this.tronWeb = tronWeb;\n this.validator = new Validator();\n }\n\n async sendTrx(\n to: string,\n amount = 0,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<TransferContract>> {\n // accept amounts passed as strings\n amount = parseInt(amount);\n\n this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to,\n },\n {\n name: 'origin',\n type: 'address',\n value: from as string,\n },\n {\n names: ['recipient', 'origin'],\n type: 'notEqual',\n msg: 'Cannot transfer TRX to the same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n ]);\n\n const data: TransferContract = {\n to_address: toHex(to),\n owner_address: toHex(from as string),\n amount: amount,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<TransferContract>(this.tronWeb, ContractType.TransferContract, data, options?.permissionId, transactionOptions);\n }\n\n async sendToken(\n to: string,\n amount = 0,\n tokenId: string,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<TransferAssetContract>> {\n amount = parseInt(amount);\n this.validator.notValid([\n {\n name: 'recipient',\n type: 'address',\n value: to,\n },\n {\n name: 'origin',\n type: 'address',\n value: from as string,\n },\n {\n names: ['recipient', 'origin'],\n type: 'notEqual',\n msg: 'Cannot transfer tokens to the same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'token ID',\n type: 'tokenId',\n value: tokenId,\n },\n ]);\n\n const data: TransferAssetContract = {\n to_address: toHex(to),\n owner_address: toHex(from as string),\n asset_name: fromUtf8(tokenId as string),\n amount,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<TransferAssetContract>(this.tronWeb, ContractType.TransferAssetContract, data, options?.permissionId, transactionOptions);\n }\n\n async purchaseToken(\n issuerAddress: string,\n tokenId: string,\n amount = 0,\n buyer: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ParticipateAssetIssueContract>> {\n this.validator.notValid([\n {\n name: 'buyer',\n type: 'address',\n value: buyer as string,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n names: ['buyer', 'issuer'],\n type: 'notEqual',\n msg: 'Cannot purchase tokens from same account',\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'token ID',\n type: 'tokenId',\n value: tokenId,\n },\n ]);\n\n const data: ParticipateAssetIssueContract = {\n to_address: toHex(issuerAddress),\n owner_address: toHex(buyer as string),\n asset_name: fromUtf8(tokenId as string),\n amount: parseInt(amount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ParticipateAssetIssueContract>(this.tronWeb, ContractType.ParticipateAssetIssueContract, data, options?.permissionId, transactionOptions);\n }\n\n async freezeBalance(\n amount = 0,\n duration = 3,\n resource: Resource = 'BANDWIDTH',\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n receiverAddress?: string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<FreezeBalanceContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress as string,\n optional: true,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'duration',\n type: 'integer',\n gte: 3,\n value: duration,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: FreezeBalanceContract = {\n owner_address: toHex(ownerAddress as string),\n frozen_balance: parseInt(amount),\n frozen_duration: parseInt(String(duration)),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n if (isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress as string) !== toHex(ownerAddress as string)) {\n data.receiver_address = toHex(receiverAddress as string);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<FreezeBalanceContract>(this.tronWeb, ContractType.FreezeBalanceContract, data, options?.permissionId, transactionOptions);\n }\n\n async unfreezeBalance(\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n receiverAddress?: string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UnfreezeBalanceContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress as string,\n optional: true,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: Partial<UnfreezeBalanceContract> = {\n owner_address: toHex(address as string),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n if (isNotNullOrUndefined(receiverAddress) && toHex(receiverAddress as string) !== toHex(address as string)) {\n data.receiver_address = toHex(receiverAddress as string);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UnfreezeBalanceContract>(this.tronWeb, ContractType.UnfreezeBalanceContract, data as UnfreezeBalanceContract, options?.permissionId, transactionOptions);\n }\n\n async freezeBalanceV2(\n amount = 0,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<FreezeBalanceV2Contract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: FreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n frozen_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<FreezeBalanceV2Contract>(this.tronWeb, ContractType.FreezeBalanceV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async unfreezeBalanceV2(\n amount = 0,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UnfreezeBalanceV2Contract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n const data: UnfreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n unfreeze_balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UnfreezeBalanceV2Contract>(this.tronWeb, ContractType.UnfreezeBalanceV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async cancelUnfreezeBalanceV2(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<CancelFreezeBalanceV2Contract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n const data: CancelFreezeBalanceV2Contract = {\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<CancelFreezeBalanceV2Contract>(this.tronWeb, ContractType.CancelAllUnfreezeV2Contract, data, options?.permissionId, transactionOptions);\n }\n\n async delegateResource(\n amount = 0,\n receiverAddress: string,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n lock = false,\n lockPeriod?: number,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<DelegateResourceContract>> {\n this.validator.notValid([\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'lock',\n type: 'boolean',\n value: lock as boolean,\n },\n {\n name: 'lock period',\n type: 'integer',\n gte: 0,\n value: lockPeriod as number,\n optional: true,\n },\n ]);\n if (toHex(receiverAddress) === toHex(address as string)) {\n throw new Error('Receiver address must not be the same as owner address');\n }\n\n const data: DelegateResourceContract = {\n owner_address: toHex(address as string),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n if (lock) {\n data.lock = lock as boolean;\n if (isNotNullOrUndefined(lockPeriod)) {\n data.lock_period = lockPeriod as number;\n }\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<DelegateResourceContract>(this.tronWeb, ContractType.DelegateResourceContract, data, options?.permissionId, transactionOptions);\n }\n\n async undelegateResource(\n amount = 0,\n receiverAddress: string,\n resource: Resource = 'BANDWIDTH',\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UnDelegateResourceContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n {\n name: 'receiver',\n type: 'address',\n value: receiverAddress,\n },\n {\n name: 'amount',\n type: 'integer',\n gt: 0,\n value: amount,\n },\n {\n name: 'resource',\n type: 'resource',\n value: resource as string,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n\n if (toHex(receiverAddress) === toHex(address as string)) {\n throw new Error('Receiver address must not be the same as owner address');\n }\n\n const data: UnDelegateResourceContract = {\n owner_address: toHex(address as string),\n receiver_address: toHex(receiverAddress),\n balance: parseInt(amount),\n };\n if (resource !== 'BANDWIDTH') {\n data.resource = resource as Resource;\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UnDelegateResourceContract>(this.tronWeb, ContractType.UnDelegateResourceContract, data, options?.permissionId, transactionOptions);\n }\n\n async withdrawExpireUnfreeze(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<WithdrawExpireUnfreezeContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data: WithdrawExpireUnfreezeContract = {\n owner_address: toHex(address),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<WithdrawExpireUnfreezeContract>(this.tronWeb, ContractType.WithdrawExpireUnfreezeContract, data, options?.permissionId, transactionOptions);\n }\n\n async withdrawBlockRewards(\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<WithdrawBalanceContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: WithdrawBalanceContract = {\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<WithdrawBalanceContract>(this.tronWeb, ContractType.WithdrawBalanceContract, data, options?.permissionId, transactionOptions);\n }\n\n async applyForSR(\n address: string = this.tronWeb.defaultAddress.hex as string,\n url = '',\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<WitnessCreateContract>> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n {\n name: 'url',\n type: 'url',\n value: url as string,\n msg: 'Invalid url provided',\n },\n {\n name: 'url',\n type: 'string',\n value: url as string,\n lte: 256,\n msg: 'Invalid url provided',\n },\n ]);\n\n const data: WitnessCreateContract = {\n owner_address: toHex(address as string),\n url: fromUtf8(url as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<WitnessCreateContract>(this.tronWeb, ContractType.WitnessCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n async vote(\n votes: VoteInfo = {},\n voterAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<VoteWitnessContract>> {\n this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress as string,\n },\n {\n name: 'votes',\n type: 'notEmptyObject',\n value: votes as VoteInfo,\n },\n ]);\n\n const entries = Object.entries(votes);\n for (const [srAddress, voteCount] of entries) {\n this.validator.notValid([\n {\n name: 'SR',\n type: 'address',\n value: srAddress,\n },\n {\n name: 'vote count',\n type: 'integer',\n gt: 0,\n value: voteCount,\n msg: 'Invalid vote count provided for SR: ' + srAddress,\n },\n ]);\n }\n const voteList = entries.map(([srAddress, voteCount]) => {\n return {\n vote_address: toHex(srAddress),\n vote_count: parseInt(voteCount),\n };\n });\n\n const data: VoteWitnessContract = {\n owner_address: toHex(voterAddress as string),\n votes: voteList,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<VoteWitnessContract>(this.tronWeb, ContractType.VoteWitnessContract, data, options?.permissionId, transactionOptions);\n }\n\n async createSmartContract(\n options: CreateSmartContractOptions = {} as CreateSmartContractOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<CreateSmartContractTransaction> {\n const feeLimit = options.feeLimit || this.tronWeb.feeLimit;\n let userFeePercentage = options.userFeePercentage;\n if (typeof userFeePercentage !== 'number' && !userFeePercentage) {\n userFeePercentage = 100;\n }\n const originEnergyLimit = options.originEnergyLimit || 10_000_000;\n const callValue = options.callValue || 0;\n const tokenValue = options.tokenValue;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const tokenId = options.tokenId || options.token_id;\n\n let { abi } = options;\n const { parameters = [] } = options;\n let parameter = '';\n const { bytecode = false, name = '' } = options;\n if (abi && isString(abi)) {\n try {\n abi = JSON.parse(abi);\n } catch {\n throw new Error('Invalid options.abi provided');\n }\n }\n\n const newAbi = abi as { entrys: ContractAbiInterface } | ContractAbiInterface;\n let entries: ContractAbiInterface | null = newAbi as ContractAbiInterface;\n if ((newAbi as { entrys: ContractAbiInterface }).entrys) {\n entries = (newAbi as { entrys: ContractAbiInterface }).entrys;\n }\n\n if (!isArray(entries)) throw new Error('Invalid options.abi provided');\n\n const payable = entries.some((func) => {\n return func.type === 'constructor' && 'payable' === (func as ConstructorFragment).stateMutability.toLowerCase();\n });\n\n this.validator.notValid([\n {\n name: 'bytecode',\n type: 'hex',\n value: bytecode,\n },\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'userFeePercentage',\n type: 'integer',\n value: userFeePercentage,\n gte: 0,\n lte: 100,\n },\n {\n name: 'originEnergyLimit',\n type: 'integer',\n value: originEnergyLimit,\n gte: 0,\n lte: 10_000_000,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (!payable && (callValue > 0 || tokenValue > 0))\n throw new Error('When contract is not payable, options.callValue and options.tokenValue must be 0');\n\n const { rawParameter, funcABIV2, parametersV2 } = options as any;\n if (rawParameter && isString(rawParameter)) {\n parameter = rawParameter.replace(/^(0x)/, '');\n } else if (funcABIV2) {\n parameter = encodeParamsV2ByABI(funcABIV2, parametersV2).replace(/^(0x)/, '');\n } else {\n let constructorParams: any = entries.find((it: any) => {\n return it.type === 'constructor';\n });\n\n if (typeof constructorParams !== 'undefined' && constructorParams) {\n const abiCoder = new AbiCoder();\n const types = [];\n const values = [];\n constructorParams = constructorParams.inputs;\n\n if (parameters.length != constructorParams.length)\n throw new Error(`constructor needs ${constructorParams.length} but ${parameters.length} provided`);\n\n for (let i = 0; i < parameters.length; i++) {\n let type = constructorParams[i].type;\n let value: any = parameters[i];\n\n if (!type || !isString(type) || !type.length) throw new Error('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value: unknown): any => {\n if (isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value as string).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type === 'address') value = replaceAddressPrefix(value);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)?.[0] === 'address[') value = replaceAddressPrefix(value);\n else if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n\n types.push(type);\n values.push(value);\n }\n\n try {\n parameter = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } catch (ex) {\n throw new Error(ex as string);\n }\n } else {\n parameter = '';\n }\n }\n\n const args: any = {\n owner_address: toHex(issuerAddress),\n fee_limit: parseInt(feeLimit),\n call_value: parseInt(callValue),\n consume_user_resource_percent: userFeePercentage,\n origin_energy_limit: originEnergyLimit,\n abi: JSON.stringify(abi),\n bytecode,\n parameter,\n name,\n };\n\n // tokenValue and tokenId can cause errors if provided when the trx10 proposal has not been approved yet. So we set them only if they are passed to the method.\n if (isNotNullOrUndefined(tokenValue)) {\n args.call_token_value = parseInt(tokenValue as number);\n }\n if (isNotNullOrUndefined(tokenId)) {\n args.token_id = parseInt(tokenId);\n }\n\n const contract: CreateSmartContract = {} as CreateSmartContract;\n contract.owner_address = args.owner_address;\n if (isNotNullOrUndefined(args.call_token_value)) {\n contract.call_token_value = args.call_token_value;\n }\n if (isNotNullOrUndefined(args.token_id)) {\n contract.token_id = args.token_id;\n }\n const new_contract = (contract.new_contract = {} as CreateSmartContract['new_contract']);\n\n if (args.abi) {\n new_contract.abi = {\n entrys: JSON.parse(args.abi),\n };\n } else {\n new_contract.abi = {};\n }\n if (args.call_value) {\n new_contract.call_value = args.call_value;\n }\n new_contract.consume_user_resource_percent = args.consume_user_resource_percent;\n new_contract.origin_energy_limit = args.origin_energy_limit;\n new_contract.origin_address = args.origin_address ?? args.owner_address;\n if (args.bytecode + args.parameter) {\n new_contract.bytecode = (args.bytecode + args.parameter).replace(/^0x/, '');\n }\n if (isNotNullOrUndefined(args.name)) {\n new_contract.name = args.name;\n }\n const transactionOptions = getTransactionOptions(options);\n const tx = (await createTransaction(this.tronWeb, ContractType.CreateSmartContract, contract, options?.permissionId, {\n ...transactionOptions,\n fee_limit: args.fee_limit,\n })) as CreateSmartContractTransaction;\n tx.contract_address = genContractAddress(args.owner_address, tx.txID);\n return tx;\n }\n\n async triggerSmartContract(\n contractAddress: string,\n functionSelector: string,\n options?: TriggerSmartContractOptions,\n parameters?: ContractFunctionParameter[],\n issuerAddress?: string\n ): Promise<TransactionWrapper> {\n const params: Parameters<typeof this._triggerSmartContractLocal> = [\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n ];\n if (typeof params[2] !== 'object') {\n params[2] = {\n feeLimit: params[2],\n callValue: params[3] as unknown as number,\n };\n params.splice(3, 1);\n }\n if (params[2]?.txLocal) {\n return this._triggerSmartContractLocal(...params);\n }\n return this._triggerSmartContract(...params);\n }\n\n async triggerConstantContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<TransactionWrapper> {\n options._isConstant = true;\n return this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n }\n\n async triggerConfirmedConstantContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<TransactionWrapper> {\n options._isConstant = true;\n options.confirmed = true;\n return this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n }\n\n async estimateEnergy(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<{ result: { result: boolean }; energy_required: number }> {\n options.estimateEnergy = true;\n const result = await this._triggerSmartContract(contractAddress, functionSelector, options, parameters, issuerAddress);\n return result as { result: { result: boolean }; energy_required: number };\n }\n\n async deployConstantContract(options: DeployConstantContractOptions = { input: '', ownerAddress: '' }) {\n const { input, ownerAddress, tokenId, tokenValue, callValue = 0 } = options;\n\n this.validator.notValid([\n {\n name: 'input',\n type: 'not-empty-string',\n value: input,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n const args: DeployConstantContract = {\n data: input,\n owner_address: toHex(ownerAddress),\n call_value: callValue,\n };\n\n if (tokenId) {\n args.token_id = tokenId;\n }\n if (tokenValue) {\n args.call_token_value = tokenValue;\n }\n\n const pathInfo = `wallet${options.confirmed ? 'solidity' : ''}/estimateenergy`;\n const transaction: TransactionWrapper = await this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n pathInfo,\n args,\n 'post'\n );\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(this.tronWeb.toUtf8(transaction.result.message));\n }\n return transaction as { result: { result: boolean }; energy_required: number };\n }\n\n _getTriggerSmartContractArgs(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions,\n parameters: ContractFunctionParameter[],\n issuerAddress: string,\n tokenValue?: number,\n tokenId?: string,\n callValue?: number,\n feeLimit?: number\n ) {\n const args: IArgs = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(issuerAddress),\n };\n\n if (functionSelector && isString(functionSelector)) {\n functionSelector = functionSelector.replace(/\\s*/g, '');\n let parameterStr;\n if (parameters.length) {\n const abiCoder = new AbiCoder();\n let types = [];\n const values = [];\n\n for (let i = 0; i < parameters.length; i++) {\n let { value } = parameters[i];\n const { type } = parameters[i];\n\n if (!type || !isString(type) || !type.length) throw new Error('Invalid parameter type provided: ' + type);\n\n const replaceAddressPrefix = (value: unknown): any => {\n if (isArray(value)) {\n return value.map((v) => replaceAddressPrefix(v));\n }\n return toHex(value as string).replace(ADDRESS_PREFIX_REGEX, '0x');\n };\n if (type === 'address') value = replaceAddressPrefix(value);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)?.[0] === 'address[') value = replaceAddressPrefix(value);\n\n types.push(type);\n values.push(value);\n }\n\n try {\n // workaround for unsupported trcToken type\n types = types.map((type) => {\n if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n return type;\n });\n\n parameterStr = abiCoder.encode(types, values).replace(/^(0x)/, '');\n } catch (ex) {\n throw new Error(ex as string);\n }\n } else parameterStr = '';\n\n // work for abiv2 if passed the function abi in options\n if (options.funcABIV2) {\n parameterStr = encodeParamsV2ByABI(\n options.funcABIV2 as FunctionFragment,\n options.parametersV2 as unknown[]\n ).replace(/^(0x)/, '');\n }\n\n if (options.shieldedParameter && isString(options.shieldedParameter)) {\n parameterStr = options.shieldedParameter.replace(/^(0x)/, '');\n }\n\n if (options.rawParameter && isString(options.rawParameter)) {\n parameterStr = options.rawParameter.replace(/^(0x)/, '');\n }\n\n args.function_selector = functionSelector;\n args.parameter = parameterStr;\n } else if (options.input) {\n args.data = options.input;\n }\n\n args.call_value = parseInt(callValue as number);\n if (isNotNullOrUndefined(tokenValue)) args.call_token_value = parseInt(tokenValue as number);\n if (isNotNullOrUndefined(tokenId)) args.token_id = parseInt(tokenId as string);\n\n if (!(options._isConstant || options.estimateEnergy)) {\n args.fee_limit = parseInt(feeLimit as number);\n }\n\n if (options.permissionId) {\n args.Permission_id = options.permissionId;\n }\n\n return args;\n }\n\n async _triggerSmartContractLocal(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress = this.tronWeb.defaultAddress.hex as string\n ) {\n const { tokenValue, tokenId, callValue, feeLimit } = Object.assign(\n {\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit,\n },\n options\n );\n\n this.validator.notValid([\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n optional: true,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n\n const args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n\n if (args.function_selector) {\n args.data = keccak256(Buffer.from(args.function_selector, 'utf-8')).toString().substring(2, 10) + args.parameter;\n }\n const value: TriggerSmartContract = {\n data: args.data,\n owner_address: args.owner_address,\n contract_address: args.contract_address,\n };\n if (args.call_value) {\n value.call_value = args.call_value;\n }\n if (args.call_token_value) {\n value.call_token_value = args.call_token_value;\n }\n if (args.token_id) {\n value.token_id = args.token_id;\n }\n const transactionOptions = getTransactionOptions(options);\n const transaction = await createTransaction<TriggerSmartContract>(\n this.tronWeb,\n ContractType.TriggerSmartContract,\n value,\n options.permissionId,\n {\n ...transactionOptions,\n fee_limit: args.fee_limit,\n }\n );\n return {\n result: {\n result: true,\n },\n transaction,\n };\n }\n\n async _triggerSmartContract(\n contractAddress: string,\n functionSelector: string,\n options: TriggerConstantContractOptions = {},\n parameters: ContractFunctionParameter[] = [],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ) {\n const { tokenValue, tokenId, callValue, feeLimit } = Object.assign(\n {\n callValue: 0,\n feeLimit: this.tronWeb.feeLimit,\n },\n options\n );\n this.validator.notValid([\n {\n name: 'feeLimit',\n type: 'integer',\n value: feeLimit,\n gt: 0,\n },\n {\n name: 'callValue',\n type: 'integer',\n value: callValue,\n gte: 0,\n },\n {\n name: 'parameters',\n type: 'array',\n value: parameters,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n optional: true,\n },\n {\n name: 'tokenValue',\n type: 'integer',\n value: tokenValue,\n gte: 0,\n optional: true,\n },\n {\n name: 'tokenId',\n type: 'integer',\n value: tokenId,\n gte: 0,\n optional: true,\n },\n ]);\n const args = this._getTriggerSmartContractArgs(\n contractAddress,\n functionSelector,\n options,\n parameters,\n issuerAddress,\n tokenValue,\n tokenId,\n callValue,\n feeLimit\n );\n\n let pathInfo = 'triggersmartcontract';\n if (options._isConstant) {\n pathInfo = 'triggerconstantcontract';\n } else if (options.estimateEnergy) {\n pathInfo = 'estimateenergy';\n }\n\n pathInfo = `wallet${options.confirmed ? 'solidity' : ''}/${pathInfo}`;\n const transaction: TransactionWrapper = await this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n pathInfo,\n args,\n 'post'\n );\n return resultManagerTriggerSmartContract(transaction, args, options);\n }\n\n async clearABI(\n contractAddress: string,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ClearABIContract>> {\n if (!TronWeb.isAddress(contractAddress)) throw new Error('Invalid contract address provided');\n if (!TronWeb.isAddress(ownerAddress)) throw new Error('Invalid owner address provided');\n const data: ClearABIContract = {\n contract_address: toHex(contractAddress),\n owner_address: toHex(ownerAddress as string),\n };\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (this.tronWeb.trx.cache.contracts[contractAddress]) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n delete this.tronWeb.trx.cache.contracts[contractAddress];\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ClearABIContract>(this.tronWeb, ContractType.ClearABIContract, data, options?.permissionId, transactionOptions);\n }\n async updateBrokerage(\n brokerage: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UpdateBrokerageContract>> {\n if (!isNotNullOrUndefined(brokerage)) throw new Error('Invalid brokerage provided');\n\n if (!isInteger(brokerage) || brokerage < 0 || brokerage > 100)\n throw new Error('Brokerage must be an integer between 0 and 100');\n\n if (!TronWeb.isAddress(ownerAddress)) throw new Error('Invalid owner address provided');\n\n const data: UpdateBrokerageContract = {\n brokerage: parseInt(brokerage),\n owner_address: toHex(ownerAddress as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UpdateBrokerageContract>(this.tronWeb, ContractType.UpdateBrokerageContract, data, options?.permissionId, transactionOptions);\n }\n\n async createToken(\n options: CreateTokenOptions = {} as CreateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<Transaction<AssetIssueContract>> {\n const {\n name = false,\n abbreviation = false,\n description = '',\n url = false,\n totalSupply = 0,\n trxRatio = 1, // How much TRX will `tokenRatio` cost\n tokenRatio = 1, // How many tokens will `trxRatio` afford\n saleStart = Date.now(),\n saleEnd = false,\n freeBandwidth = 0, // The creator's \"donated\" bandwidth for use by token holders\n freeBandwidthLimit = 0, // Out of `totalFreeBandwidth`, the amount each token holder get\n frozenAmount = 0,\n frozenDuration = 0,\n // for now there is no default for the following values\n voteScore,\n precision,\n } = options;\n\n this.validator.notValid([\n {\n name: 'Supply amount',\n type: 'positive-integer',\n value: totalSupply,\n },\n {\n name: 'TRX ratio',\n type: 'positive-integer',\n value: trxRatio,\n },\n {\n name: 'Token ratio',\n type: 'positive-integer',\n value: tokenRatio,\n },\n {\n name: 'token abbreviation',\n type: 'string',\n value: abbreviation,\n lte: 32,\n gt: 0,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: name,\n },\n {\n name: 'token description',\n type: 'string',\n value: description,\n lte: 200,\n },\n {\n name: 'token url',\n type: 'url',\n value: url,\n },\n {\n name: 'token url',\n type: 'string',\n value: url,\n lte: 256,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress,\n },\n {\n name: 'sale start timestamp',\n type: 'integer',\n value: saleStart,\n gte: Date.now(),\n },\n {\n name: 'sale end timestamp',\n type: 'integer',\n value: saleEnd,\n gt: saleStart,\n },\n {\n name: 'Frozen supply',\n type: 'integer',\n value: frozenAmount,\n gte: 0,\n },\n {\n name: 'Frozen duration',\n type: 'integer',\n value: frozenDuration,\n gte: 0,\n },\n ]);\n\n if (isNotNullOrUndefined(voteScore) && (!isInteger(voteScore) || voteScore <= 0))\n throw new Error('voteScore must be a positive integer greater than 0');\n\n if (isNotNullOrUndefined(precision) && (!isInteger(precision) || precision < 0 || precision > 6))\n throw new Error('precision must be a positive integer >= 0 and <= 6');\n\n const data: Partial<AssetIssueContract> = {\n owner_address: toHex(issuerAddress),\n name: fromUtf8(name as string),\n abbr: fromUtf8(abbreviation as string),\n description: fromUtf8(description),\n url: fromUtf8(url as string),\n total_supply: parseInt(totalSupply),\n trx_num: parseInt(trxRatio),\n num: parseInt(tokenRatio),\n start_time: parseInt(saleStart),\n end_time: parseInt(saleEnd as number),\n frozen_supply: [\n {\n frozen_amount: parseInt(frozenAmount),\n frozen_days: parseInt(frozenDuration),\n },\n ],\n };\n (['name', 'abbr', 'description', 'url'] as (keyof typeof data)[]).forEach((key) => {\n if (!data[key]) {\n delete data[key];\n }\n });\n if (!(parseInt(frozenAmount) > 0)) {\n delete data.frozen_supply;\n }\n if (freeBandwidth && !isNaN(parseInt(freeBandwidth)) && parseInt(freeBandwidth) >= 0) {\n data.free_asset_net_limit = parseInt(freeBandwidth);\n }\n if (freeBandwidthLimit && !isNaN(parseInt(freeBandwidthLimit)) && parseInt(freeBandwidthLimit) >= 0) {\n data.public_free_asset_net_limit = parseInt(freeBandwidthLimit);\n }\n if (precision && !isNaN(parseInt(precision))) {\n data.precision = parseInt(precision);\n }\n if (voteScore && !isNaN(parseInt(voteScore))) {\n data.vote_score = parseInt(voteScore);\n }\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<AssetIssueContract>(\n this.tronWeb,\n ContractType.AssetIssueContract,\n data as AssetIssueContract,\n options?.permissionId,\n transactionOptions,\n );\n }\n\n async createAccount(\n accountAddress: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<AccountCreateContract>> {\n this.validator.notValid([\n {\n name: 'account',\n type: 'address',\n value: accountAddress,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n const data: AccountCreateContract = {\n owner_address: toHex(address as string),\n account_address: toHex(accountAddress),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<AccountCreateContract>(this.tronWeb, ContractType.AccountCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n async updateAccount(\n accountName: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<AccountUpdateContract>> {\n this.validator.notValid([\n {\n name: 'Name',\n type: 'string',\n lte: 200,\n gt: 0,\n value: accountName,\n msg: 'Invalid accountName',\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: AccountUpdateContract = {\n account_name: fromUtf8(accountName as string),\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<AccountUpdateContract>(this.tronWeb, ContractType.AccountUpdateContract, data, options?.permissionId, transactionOptions);\n }\n\n async setAccountId(\n accountId: string,\n address: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<SetAccountIdContract>> {\n if (accountId && isString(accountId) && accountId.startsWith('0x')) {\n accountId = accountId.slice(2);\n }\n\n this.validator.notValid([\n {\n name: 'accountId',\n type: 'hex',\n value: accountId,\n },\n {\n name: 'accountId',\n type: 'string',\n lte: 32,\n gte: 8,\n value: accountId,\n },\n {\n name: 'origin',\n type: 'address',\n value: address as string,\n },\n ]);\n\n const data: SetAccountIdContract = {\n account_id: accountId,\n owner_address: toHex(address as string),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<SetAccountIdContract>(this.tronWeb, ContractType.SetAccountIdContract, data, options?.permissionId, transactionOptions);\n }\n\n async updateToken(\n options: UpdateTokenOptions = {} as UpdateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ): Promise<Transaction<UpdateAssetContract>> {\n const {\n description = '',\n url = false,\n freeBandwidth = 0, // The creator's \"donated\" bandwidth for use by token holders\n freeBandwidthLimit = 0, // Out of `totalFreeBandwidth`, the amount each token holder get\n } = options;\n\n this.validator.notValid([\n {\n name: 'token description',\n type: 'string',\n value: description,\n lte: 200,\n },\n {\n name: 'token url',\n type: 'url',\n value: url,\n },\n {\n name: 'token url',\n type: 'string',\n value: url,\n lte: 256,\n },\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n ]);\n\n const data: UpdateAssetContract = {\n owner_address: toHex(issuerAddress as string),\n description: fromUtf8(description),\n url: fromUtf8(url as string),\n };\n\n if (freeBandwidth && !isNaN(parseInt(freeBandwidth)) && parseInt(freeBandwidth) >= 0) {\n data.new_limit = parseInt(freeBandwidth);\n }\n if (freeBandwidthLimit && !isNaN(parseInt(freeBandwidthLimit)) && parseInt(freeBandwidthLimit) >= 0) {\n data.new_public_limit = parseInt(freeBandwidthLimit);\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UpdateAssetContract>(this.tronWeb, ContractType.UpdateAssetContract, data, options?.permissionId, transactionOptions);\n }\n\n async sendAsset(\n to: string,\n amount = 0,\n tokenId: string,\n from: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ) {\n return this.sendToken(to, amount, tokenId, from as string, options);\n }\n\n async purchaseAsset(\n issuerAddress: string,\n tokenId: string,\n amount = 0,\n buyer: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ) {\n return this.purchaseToken(issuerAddress, tokenId, amount, buyer as string, options);\n }\n\n async createAsset(options: CreateTokenOptions, issuerAddress: string) {\n return this.createToken(options, issuerAddress);\n }\n\n async updateAsset(\n options: UpdateTokenOptions = {} as UpdateTokenOptions,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string\n ) {\n return this.updateToken(options, issuerAddress);\n }\n\n /**\n * Creates a proposal to modify the network.\n * Can only be created by a current Super Representative.\n */\n async createProposal(\n parameters: Record<string, string | number> | Record<string, string | number>[],\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ProposalCreateContract>> {\n this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n ]);\n\n const invalid = 'Invalid proposal parameters provided';\n if (!parameters) throw new Error(invalid);\n\n const newParams = isArray(parameters) ? parameters : [parameters];\n for (const parameter of newParams) {\n if (!isObject(parameter)) throw new Error(invalid);\n }\n\n const data: ProposalCreateContract = {\n owner_address: toHex(issuerAddress as string),\n parameters: newParams,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ProposalCreateContract>(this.tronWeb, ContractType.ProposalCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Deletes a network modification proposal that the owner issued.\n * Only current Super Representative can vote on a proposal.\n */\n async deleteProposal(\n proposalID: number,\n issuerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ProposalDeleteContract>> {\n this.validator.notValid([\n {\n name: 'issuer',\n type: 'address',\n value: issuerAddress as string,\n },\n {\n name: 'proposalID',\n type: 'integer',\n value: proposalID,\n gte: 0,\n },\n ]);\n\n const data: ProposalDeleteContract = {\n owner_address: toHex(issuerAddress as string),\n proposal_id: parseInt(proposalID as number),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ProposalDeleteContract>(this.tronWeb, ContractType.ProposalDeleteContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Adds a vote to an issued network modification proposal.\n * Only current Super Representative can vote on a proposal.\n */\n async voteProposal(\n proposalID: number,\n isApproval = false,\n voterAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<VoteProposalContract>> {\n this.validator.notValid([\n {\n name: 'voter',\n type: 'address',\n value: voterAddress as string,\n },\n {\n name: 'proposalID',\n type: 'integer',\n value: proposalID,\n gte: 0,\n },\n {\n name: 'has approval',\n type: 'boolean',\n value: isApproval,\n },\n ]);\n\n const data: VoteProposalContract = {\n owner_address: toHex(voterAddress as string),\n proposal_id: parseInt(proposalID),\n is_add_approval: isApproval,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ProposalApproveContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Create an exchange between a token and TRX.\n * Token Name should be a CASE SENSITIVE string.\n * PLEASE VERIFY THIS ON TRONSCAN.\n */\n async createTRXExchange(\n tokenName: string,\n tokenBalance: number,\n trxBalance: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ExchangeCreateContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token balance',\n type: 'positive-integer',\n value: tokenBalance,\n },\n {\n name: 'trx balance',\n type: 'positive-integer',\n value: trxBalance,\n },\n ]);\n\n const data: ExchangeCreateContract = {\n owner_address: toHex(ownerAddress as string),\n first_token_id: fromUtf8(tokenName),\n first_token_balance: tokenBalance,\n second_token_id: '5f', // Constant for TRX.\n second_token_balance: trxBalance,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Create an exchange between a token and another token.\n * DO NOT USE THIS FOR TRX.\n * Token Names should be a CASE SENSITIVE string.\n * PLEASE VERIFY THIS ON TRONSCAN.\n */\n async createTokenExchange(\n firstTokenName: string,\n firstTokenBalance: number,\n secondTokenName: string,\n secondTokenBalance: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ExchangeCreateContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'first token name',\n type: 'not-empty-string',\n value: firstTokenName,\n },\n {\n name: 'second token name',\n type: 'not-empty-string',\n value: secondTokenName,\n },\n {\n name: 'first token balance',\n type: 'positive-integer',\n value: firstTokenBalance,\n },\n {\n name: 'second token balance',\n type: 'positive-integer',\n value: secondTokenBalance,\n },\n ]);\n\n const data: ExchangeCreateContract = {\n owner_address: toHex(ownerAddress as string),\n first_token_id: fromUtf8(firstTokenName),\n first_token_balance: firstTokenBalance,\n second_token_id: fromUtf8(secondTokenName),\n second_token_balance: secondTokenBalance,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ExchangeCreateContract>(this.tronWeb, ContractType.ExchangeCreateContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Adds tokens into a bancor style exchange.\n * Will add both tokens at market rate.\n * Use \"_\" for the constant value for TRX.\n */\n async injectExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmount: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ExchangeInjectContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token amount',\n type: 'integer',\n value: tokenAmount,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeInjectContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction(this.tronWeb, ContractType.ExchangeInjectContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Withdraws tokens from a bancor style exchange.\n * Will withdraw at market rate both tokens.\n * Use \"_\" for the constant value for TRX.\n */\n async withdrawExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmount: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ExchangeWithdrawContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'token amount',\n type: 'integer',\n value: tokenAmount,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeWithdrawContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: fromUtf8(tokenName),\n quant: parseInt(tokenAmount),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ExchangeWithdrawContract>(this.tronWeb, ContractType.ExchangeWithdrawContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Trade tokens on a bancor style exchange.\n * Expected value is a validation and used to cap the total amt of token 2 spent.\n * Use \"_\" for the constant value for TRX.\n */\n async tradeExchangeTokens(\n exchangeID: number,\n tokenName: string,\n tokenAmountSold: number,\n tokenAmountExpected: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<ExchangeTransactionContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'token name',\n type: 'not-empty-string',\n value: tokenName,\n },\n {\n name: 'tokenAmountSold',\n type: 'integer',\n value: tokenAmountSold,\n gte: 1,\n },\n {\n name: 'tokenAmountExpected',\n type: 'integer',\n value: tokenAmountExpected,\n gte: 1,\n },\n {\n name: 'exchangeID',\n type: 'integer',\n value: exchangeID,\n gte: 0,\n },\n ]);\n\n const data: ExchangeTransactionContract = {\n owner_address: toHex(ownerAddress as string),\n exchange_id: parseInt(exchangeID),\n token_id: TronWeb.fromAscii(tokenName).replace(/^0x/, ''),\n quant: parseInt(tokenAmountSold),\n expected: parseInt(tokenAmountExpected),\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<ExchangeTransactionContract>(this.tronWeb, ContractType.ExchangeTransactionContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Update userFeePercentage.\n */\n async updateSetting(\n contractAddress: string,\n userFeePercentage: number,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UpdateSettingContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'userFeePercentage',\n type: 'integer',\n value: userFeePercentage,\n gte: 0,\n lte: 100,\n },\n ]);\n\n const data: UpdateSettingContract = {\n owner_address: toHex(ownerAddress as string),\n contract_address: toHex(contractAddress),\n consume_user_resource_percent: userFeePercentage,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UpdateSettingContract>(this.tronWeb, ContractType.UpdateSettingContract, data, options?.permissionId, transactionOptions);\n }\n\n /**\n * Update energy limit.\n */\n async updateEnergyLimit(\n contractAddress: string,\n originEnergyLimit = 0,\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<UpdateEnergyLimitContract>> {\n this.validator.notValid([\n {\n name: 'owner',\n type: 'address',\n value: ownerAddress as string,\n },\n {\n name: 'contract',\n type: 'address',\n value: contractAddress,\n },\n {\n name: 'originEnergyLimit',\n type: 'integer',\n value: originEnergyLimit,\n gte: 0,\n lte: 10_000_000,\n },\n ]);\n\n const data: UpdateEnergyLimitContract = {\n owner_address: toHex(ownerAddress as string),\n contract_address: toHex(contractAddress),\n origin_energy_limit: originEnergyLimit,\n };\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<UpdateEnergyLimitContract>(this.tronWeb, ContractType.UpdateEnergyLimitContract, data, options?.permissionId, transactionOptions);\n }\n\n private checkPermissions(permissions: Permission, type: number) {\n if (permissions) {\n if (\n permissions.type !== type ||\n !permissions.permission_name ||\n !isString(permissions.permission_name) ||\n !isInteger(permissions.threshold) ||\n permissions.threshold < 1 ||\n !permissions.keys\n ) {\n return false;\n }\n for (const key of permissions.keys) {\n if (\n !TronWeb.isAddress(key.address) ||\n !isInteger(key.weight) ||\n key.weight > permissions.threshold ||\n key.weight < 1 ||\n (type === 2 && !permissions.operations)\n ) {\n return false;\n }\n }\n }\n return true;\n }\n\n async updateAccountPermissions(\n ownerAddress: string = this.tronWeb.defaultAddress.hex as string,\n ownerPermission: Permission,\n witnessPermission?: Permission,\n activesPermissions?: Permission | Permission[],\n options: TransactionCommonOptions = {}\n ): Promise<Transaction<AccountPermissionUpdateContract>> {\n if (!TronWeb.isAddress(ownerAddress as Address)) throw new Error('Invalid ownerAddress provided');\n\n if (!this.checkPermissions(ownerPermission, 0)) {\n throw new Error('Invalid ownerPermissions provided');\n }\n\n if (!this.checkPermissions(witnessPermission!, 1)) {\n throw new Error('Invalid witnessPermissions provided');\n }\n\n if (!Array.isArray(activesPermissions)) {\n activesPermissions = [activesPermissions!];\n }\n\n for (const activesPermission of activesPermissions) {\n if (!this.checkPermissions(activesPermission, 2)) {\n throw new Error('Invalid activesPermissions provided');\n }\n }\n\n const data: AccountPermissionUpdateContract = {\n owner_address: toHex(ownerAddress as string),\n };\n if (ownerPermission) {\n const _ownerPermissions = deepCopyJson<Partial<Permission>>(ownerPermission);\n // for compatible with old way of building transaction from chain which type prop is omitted\n if ('type' in _ownerPermissions) {\n delete _ownerPermissions.type;\n }\n _ownerPermissions.keys = _ownerPermissions.keys?.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n data.owner = _ownerPermissions as Permission;\n }\n if (witnessPermission) {\n const _witnessPermissions = deepCopyJson<Permission>(witnessPermission);\n // for compatible with old way of building transaction from chain which type prop is Witness\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n _witnessPermissions.type = 'Witness';\n _witnessPermissions.keys = _witnessPermissions.keys.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n data.witness = _witnessPermissions;\n }\n if (activesPermissions) {\n const _activesPermissions = deepCopyJson<Permission[]>(activesPermissions);\n // for compatible with old way of building transaction from chain which type prop is Active\n _activesPermissions.forEach((activePermissions: Permission) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n activePermissions.type = 'Active';\n });\n _activesPermissions.forEach((_activesPermission) => {\n _activesPermission.keys = _activesPermission.keys.map(({ address, weight }) => ({\n address: this.tronWeb.address.toHex(address),\n weight,\n }));\n });\n data.actives = _activesPermissions as Permission[];\n }\n\n const transactionOptions = getTransactionOptions(options);\n return createTransaction<AccountPermissionUpdateContract>(this.tronWeb, ContractType.AccountPermissionUpdateContract, data, options?.permissionId, transactionOptions);\n }\n\n async newTxID<T extends ContractParamter, U extends (SignedTransaction<T> | Transaction<T>)>(transaction: U, options: { txLocal?: boolean } = {}): Promise<U> {\n if (options?.txLocal) {\n const contract = transaction.raw_data.contract[0];\n try {\n const tx = await createTransaction<T>(\n this.tronWeb,\n contract.type,\n contract.parameter.value,\n contract.Permission_id,\n {\n fee_limit: transaction.raw_data.fee_limit,\n data: transaction.raw_data.data,\n ref_block_bytes: transaction.raw_data.ref_block_bytes,\n ref_block_hash: transaction.raw_data.ref_block_hash,\n expiration: transaction.raw_data.expiration,\n timestamp: transaction.raw_data.timestamp,\n }\n );\n (tx as SignedTransaction<T>).signature = (transaction as SignedTransaction<T>).signature;\n tx.visible = transaction.visible;\n return tx as U;\n } catch (e) {\n throw new Error('Error generating a new transaction id.');\n }\n }\n try {\n const res: GetSignWeightResponse = await this.tronWeb.fullNode.request('wallet/getsignweight', transaction, 'post');\n if (typeof transaction.visible === 'boolean') {\n res.transaction.transaction.visible = transaction.visible;\n }\n return resultManager(\n res.transaction.transaction as unknown as TransactionWrapper,\n {\n ...transaction.raw_data.contract[0].parameter.value,\n Permission_id: transaction.raw_data.contract[0].Permission_id,\n },\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n /* @ts-ignore */\n { data: transaction.raw_data.data, fee_limit: transaction.raw_data.fee_limit }\n ) as unknown as U;\n } catch (e) {\n throw new Error('Error generating a new transaction id.');\n }\n }\n\n async alterTransaction(transaction: Transaction, options: AlterTransactionOptions = {}) {\n if (Reflect.has(transaction, 'signature')) throw new Error('You can not extend the expiration of a signed transaction.');\n\n if (options.data) {\n if (options.dataFormat !== 'hex') options.data = TronWeb.toHex(options.data);\n options.data = options.data!.replace(/^0x/, '');\n if (options.data.length === 0) throw new Error('Invalid data provided');\n transaction.raw_data.data = options.data;\n }\n\n if (options.extension) {\n options.extension = parseInt(options.extension * 1000);\n if (isNaN(options.extension) || transaction.raw_data.expiration + options.extension <= Date.now() + 3000)\n throw new Error('Invalid extension provided');\n transaction.raw_data.expiration += options.extension;\n }\n\n return await this.newTxID(transaction, { txLocal: options.txLocal });\n }\n\n async extendExpiration(transaction: Transaction, extension: number, options: TxLocal = {}) {\n return await this.alterTransaction(transaction, { extension, txLocal: options?.txLocal });\n }\n\n async addUpdateData(transaction: Transaction, data: string, dataFormat: 'utf8' | 'hex' = 'utf8', options: TxLocal = {}) {\n return this.alterTransaction(transaction, { data, dataFormat: dataFormat as string, txLocal: options?.txLocal });\n }\n}\n","import { TronWeb } from '../../tronweb.js';\nimport { Transaction, TransactionWrapper } from '../../types/Transaction.js';\nimport { txCheckWithArgs, txJsonToPb, txPbToTxID, txPbToRawDataHex } from '../../utils/transaction.js';\nimport { keccak256 } from '../../utils/ethersUtils.js';\nimport { BlockWithoutDetail } from '../../types/APIResponse.js';\nimport HttpProvider from '../providers/HttpProvider.js';\nimport { ContractParamter, ContractType } from '../../types/Contract.js';\nimport { TriggerConstantContractOptions } from '../../types/TransactionBuilder.js';\n\nexport function fromUtf8(value: string) {\n return TronWeb.fromUtf8(value).replace(/^0x/, '');\n}\n\nexport function deepCopyJson<T = unknown>(json: object): T {\n return JSON.parse(JSON.stringify(json));\n}\nexport function resultManager(transaction: TransactionWrapper, data: unknown, options: TriggerConstantContractOptions) {\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(TronWeb.toUtf8(transaction.result.message));\n }\n const authResult = txCheckWithArgs(transaction, data, options);\n if (authResult) {\n return transaction;\n }\n throw new Error('Invalid transaction');\n}\n\nexport function resultManagerTriggerSmartContract(\n transaction: TransactionWrapper,\n data: unknown,\n options: TriggerConstantContractOptions\n) {\n if (transaction.Error) throw new Error(transaction.Error);\n\n if (transaction.result && transaction.result.message) {\n throw new Error(TronWeb.toUtf8(transaction.result.message));\n }\n\n if (!(options._isConstant || options.estimateEnergy)) {\n const authResult = txCheckWithArgs(transaction.transaction, data, options);\n if (authResult) {\n return transaction;\n }\n throw new Error('Invalid transaction');\n }\n return transaction;\n}\n\nexport function genContractAddress(ownerAddress: string, txID: string) {\n return (\n '41' +\n keccak256(Buffer.from(txID + ownerAddress, 'hex'))\n .toString()\n .substring(2)\n .slice(24)\n );\n}\n\nexport function getHeaderInfo(node: HttpProvider) {\n return node.request<BlockWithoutDetail>('wallet/getblock', { detail: false }, 'post').then((data) => {\n return {\n ref_block_bytes: data.block_header.raw_data.number.toString(16).slice(-4).padStart(4, '0'),\n ref_block_hash: data.blockID.slice(16, 32),\n expiration: data.block_header.raw_data.timestamp + 60 * 1000,\n timestamp: data.block_header.raw_data.timestamp,\n };\n });\n}\n\nfunction checkBlockHeader(options = {} as Partial<Transaction['raw_data']>): boolean {\n if (\n typeof options['ref_block_bytes'] === 'undefined' &&\n typeof options['ref_block_hash'] === 'undefined' &&\n typeof options['expiration'] === 'undefined' &&\n typeof options['timestamp'] === 'undefined'\n ) {\n return false;\n }\n if (typeof options['ref_block_bytes'] !== 'string') {\n throw new Error('Invalid ref_block_bytes provided.');\n }\n if (typeof options['ref_block_hash'] !== 'string') {\n throw new Error('Invalid ref_block_hash provided.');\n }\n if (typeof options['expiration'] !== 'number') {\n throw new Error('Invalid expiration provided.');\n }\n if (typeof options['timestamp'] !== 'number') {\n throw new Error('Invalid timestamp provided.');\n }\n return true;\n}\n\nexport async function createTransaction<T extends ContractParamter>(\n tronWeb: TronWeb,\n type: ContractType,\n value: T,\n Permission_id?: number,\n options = {} as Partial<Omit<Transaction['raw_data'], 'contract'>>\n): Promise<Transaction<T>> {\n const tx: Transaction<T> = {\n visible: false,\n txID: '',\n raw_data_hex: '',\n raw_data: {\n contract: [\n {\n parameter: {\n value,\n type_url: `type.googleapis.com/protocol.${type}`,\n },\n type,\n },\n ],\n ...(checkBlockHeader(options) ? ({} as Transaction['raw_data']) : await getHeaderInfo(tronWeb.fullNode)),\n ...options,\n },\n };\n if (Permission_id) {\n tx.raw_data.contract[0].Permission_id = Permission_id;\n }\n const pb = txJsonToPb(tx);\n tx.txID = txPbToTxID(pb).replace(/^0x/, '');\n tx.raw_data_hex = txPbToRawDataHex(pb).toLowerCase();\n return tx;\n}\n\nexport function getTransactionOptions(options: { blockHeader?: Partial<Transaction['raw_data']> } = {}) {\n const ret = {} as Partial<Transaction['raw_data']>;\n if (checkBlockHeader(options.blockHeader)) {\n ret['ref_block_bytes'] = options.blockHeader!['ref_block_bytes'];\n ret['ref_block_hash'] = options.blockHeader!['ref_block_hash'];\n ret['expiration'] = options.blockHeader!['expiration'];\n ret['timestamp'] = options.blockHeader!['timestamp'];\n }\n return ret;\n}\n","import { TronWeb } from '../../tronweb.js';\nimport utils from '../../utils/index.js';\nimport { Method, AbiFragmentNoErrConstructor } from './method.js';\nimport type { ContractAbiInterface } from '../../types/ABI.js';\nimport { Address } from '../../types/Trx.js';\nimport { CreateSmartContractOptions } from '../../types/TransactionBuilder.js';\n\n\nexport class Contract {\n tronWeb: TronWeb;\n abi: ContractAbiInterface;\n address: false | string;\n eventListener: any;\n bytecode?: false | string;\n deployed?: boolean;\n lastBlock?: false | number;\n methods: Record<string | number | symbol, (...args: any) => ReturnType<Method['onMethod']>>;\n methodInstances: Record<string | number | symbol, Method>;\n props: any[];\n [key: string | number | symbol]: any;\n\n constructor(tronWeb: TronWeb, abi: ContractAbiInterface = [], address: Address) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n\n this.tronWeb = tronWeb;\n\n this.address = address;\n this.abi = abi;\n\n this.eventListener = false;\n this.bytecode = false;\n this.deployed = false;\n this.lastBlock = false;\n\n this.methods = {};\n this.methodInstances = {};\n this.props = [];\n\n if (utils.address.isAddress(address)) {\n this.deployed = true;\n } else {\n this.address = false;\n }\n\n this.loadAbi(abi);\n }\n\n hasProperty(property: number | string | symbol) {\n // eslint-disable-next-line no-prototype-builtins\n return this.hasOwnProperty(property) || (this as any).__proto__.hasOwnProperty(property);\n }\n\n loadAbi(abi: ContractAbiInterface) {\n this.abi = abi;\n this.methods = {};\n\n this.props.forEach((prop: string) => delete (this as any)[prop]);\n\n abi.forEach((func) => {\n // Don't build a method for constructor function. That's handled through contract create.\n // Don't build a method for error function.\n if (!func.type || /constructor|error/i.test(func.type)) return;\n\n const method = new Method(this, func as AbiFragmentNoErrConstructor);\n const methodCall = method.onMethod.bind(method);\n\n const { name, functionSelector, signature } = method;\n\n this.methods[name] = methodCall;\n this.methods[functionSelector!] = methodCall;\n this.methods[signature] = methodCall;\n\n this.methodInstances[name] = method;\n this.methodInstances[functionSelector!] = method;\n this.methodInstances[signature] = method;\n\n if (!this.hasProperty(name)) {\n (this as any)[name] = methodCall;\n this.props.push(name);\n }\n\n if (!this.hasProperty(functionSelector!)) {\n (this as any)[functionSelector!] = methodCall;\n this.props.push(functionSelector);\n }\n\n if (!this.hasProperty(signature)) {\n (this as any)[signature] = methodCall;\n this.props.push(signature);\n }\n });\n }\n\n decodeInput(data: string) {\n const methodName = data.substring(0, 8);\n const inputData = data.substring(8);\n\n if (!this.methodInstances[methodName]) throw new Error('Contract method ' + methodName + ' not found');\n\n const methodInstance = this.methodInstances[methodName];\n\n return {\n name: methodInstance.name,\n params: this.methodInstances[methodName].decodeInput(inputData),\n };\n }\n\n async new(options: CreateSmartContractOptions, privateKey = this.tronWeb.defaultPrivateKey) {\n const address = this.tronWeb.address.fromPrivateKey(privateKey as string);\n const transaction = await this.tronWeb.transactionBuilder.createSmartContract(options, address as Address);\n const signedTransaction = await this.tronWeb.trx.sign(transaction, privateKey);\n const contract = await this.tronWeb.trx.sendRawTransaction(signedTransaction);\n\n if (contract.code) {\n throw {\n error: contract.code,\n message: this.tronWeb.toUtf8(contract.message),\n };\n }\n\n await utils.sleep(3000);\n return this.at(signedTransaction.contract_address);\n }\n\n async at(contractAddress: Address) {\n try {\n const contract = await this.tronWeb.trx.getContract(contractAddress);\n\n if (!contract.contract_address) {\n throw new Error('Unknown error: ' + JSON.stringify(contract, null, 2));\n }\n\n this.address = contract.contract_address;\n this.bytecode = contract.bytecode;\n this.deployed = true;\n\n this.loadAbi(contract.abi ? (contract.abi.entrys ? contract.abi.entrys : []) : []);\n\n return this;\n } catch (ex: any) {\n if (ex.toString().includes('does not exist')) {\n throw new Error('Contract has not been deployed on the network');\n }\n\n throw new Error(ex);\n }\n }\n}\n\nexport type { CallOptions, SendOptions, AbiFragmentNoErrConstructor } from './method.js';\nexport { Method } from './method.js';\n","/* eslint-disable no-control-regex */\nimport utils from '../../utils/index.js';\nimport { encodeParamsV2ByABI, decodeParamsV2ByABI } from '../../utils/abi.js';\nimport { TronWeb } from '../../tronweb.js';\nimport { Contract } from './index.js';\nimport { sha3 } from '../../utils/crypto.js';\n\nexport interface CallOptions {\n feeLimit?: number;\n callValue?: number;\n callTokenValue?: number;\n callTokenId?: number;\n userFeePercentage?: number;\n shouldPollResponse?: boolean;\n from?: string | false;\n rawParameter?: string;\n _isConstant?: true;\n}\n\nexport interface SendOptions {\n from?: string | false;\n feeLimit?: number;\n callValue?: number;\n rawParameter?: string;\n userFeePercentage?: number;\n shouldPollResponse?: boolean;\n pollTimes?: number;\n rawResponse?: boolean;\n keepTxID?: boolean;\n}\n\nimport type {\n FragmentTypes,\n StateMutabilityTypes,\n FunctionFragment,\n FallbackFragment,\n ReceiveFragment,\n EventFragment,\n AbiInputsType,\n AbiOutputsType,\n} from '../../types/ABI.js';\n\nexport type AbiFragmentNoErrConstructor = FunctionFragment | EventFragment | FallbackFragment | ReceiveFragment;\n\nconst getFunctionSelector = (abi: AbiFragmentNoErrConstructor) => {\n if ('stateMutability' in abi) {\n (abi.stateMutability as StateMutabilityTypes) = abi.stateMutability ? abi.stateMutability.toLowerCase() : 'nonpayable';\n }\n (abi.type as FragmentTypes) = abi.type ? abi.type.toLowerCase() : '';\n if (abi.type === 'fallback' || abi.type === 'receive') return '0x';\n const iface = new utils.ethersUtils.Interface([abi]);\n let obj;\n if (abi.type === 'event') {\n obj = iface.getEvent(abi.name);\n } else {\n obj = iface.getFunction(abi.name);\n }\n if (obj) {\n return obj.format('sighash');\n }\n throw new Error('unknown function');\n};\n\nconst decodeOutput = (abi: AbiFragmentNoErrConstructor, output: string) => {\n return decodeParamsV2ByABI(abi, output);\n};\n\nexport class Method {\n tronWeb: TronWeb;\n contract: Contract;\n abi: AbiFragmentNoErrConstructor;\n name: string;\n inputs: AbiInputsType;\n outputs: AbiOutputsType;\n functionSelector: string | null;\n signature: string;\n defaultOptions: {\n feeLimit: number;\n callValue: number;\n userFeePercentage: number;\n shouldPollResponse: boolean;\n };\n\n constructor(contract: Contract, abi: AbiFragmentNoErrConstructor) {\n this.tronWeb = contract.tronWeb;\n this.contract = contract;\n\n this.abi = abi;\n this.name = abi.name || abi.type;\n\n this.inputs = abi.inputs || [];\n\n this.outputs = [];\n if ('outputs' in abi && abi.outputs) {\n this.outputs = abi.outputs;\n }\n\n this.functionSelector = getFunctionSelector(abi);\n this.signature = sha3(this.functionSelector, false).slice(0, 8);\n\n this.defaultOptions = {\n feeLimit: this.tronWeb.feeLimit,\n callValue: 0,\n userFeePercentage: 100,\n shouldPollResponse: false, // Only used for sign()\n };\n }\n\n decodeInput(data: string) {\n const abi = JSON.parse(JSON.stringify(this.abi));\n abi.outputs = abi.inputs;\n return decodeOutput(abi, '0x' + data);\n }\n\n onMethod(...args: any[]) {\n let rawParameter = '';\n if (this.abi && !/event/i.test(this.abi.type)) {\n rawParameter = encodeParamsV2ByABI(this.abi, args);\n }\n return {\n call: async (options: CallOptions = {}) => {\n options = {\n ...options,\n rawParameter,\n };\n\n return await this._call([], [], options);\n },\n send: async (options: SendOptions = {}, privateKey = this.tronWeb.defaultPrivateKey) => {\n options = {\n ...options,\n rawParameter,\n };\n\n return await this._send([], [], options, privateKey);\n },\n };\n }\n\n async _call(types: [], args: [], options: CallOptions = {}) {\n if (types.length !== args.length) {\n throw new Error('Invalid argument count provided');\n }\n\n if (!this.contract.address) {\n throw new Error('Smart contract is missing address');\n }\n\n if (!this.contract.deployed) {\n throw new Error('Calling smart contracts requires you to load the contract first');\n }\n if ('stateMutability' in this.abi) {\n const { stateMutability } = this.abi;\n\n if (stateMutability && !['pure', 'view'].includes(stateMutability.toLowerCase())) {\n throw new Error(`Methods with state mutability \"${stateMutability}\" must use send()`);\n }\n }\n\n options = {\n ...this.defaultOptions,\n from: this.tronWeb.defaultAddress.hex,\n ...options,\n _isConstant: true,\n };\n\n const parameters = args.map((value, index) => ({\n type: types[index],\n value,\n }));\n\n const transaction = await this.tronWeb.transactionBuilder.triggerSmartContract(\n this.contract.address,\n this.functionSelector!,\n options,\n parameters,\n options.from ? this.tronWeb.address.toHex(options.from) : undefined\n );\n\n if (!utils.hasProperty(transaction, 'constant_result')) {\n throw new Error('Failed to execute');\n }\n\n const len = transaction.constant_result![0].length;\n if (len === 0 || len % 64 === 8) {\n let msg = 'The call has been reverted or has thrown an error.';\n if (len !== 0) {\n msg += ' Error message: ';\n let msg2 = '';\n const chunk = transaction.constant_result![0].substring(8);\n for (let i = 0; i < len - 8; i += 64) {\n msg2 += this.tronWeb.toUtf8(chunk.substring(i, i + 64));\n }\n msg += msg2\n .replace(/(\\u0000|\\u000b|\\f)+/g, ' ')\n .replace(/ +/g, ' ')\n .replace(/\\s+$/g, '');\n }\n throw new Error(msg);\n }\n\n let output = decodeOutput(this.abi, '0x' + transaction.constant_result![0]);\n\n if (output.length === 1 && Object.keys(output).length === 1) {\n output = output[0];\n }\n return output;\n }\n\n async _send(types: [], args: [], options: SendOptions = {}, privateKey = this.tronWeb.defaultPrivateKey) {\n if (types.length !== args.length) {\n throw new Error('Invalid argument count provided');\n }\n\n if (!this.contract.address) {\n throw new Error('Smart contract is missing address');\n }\n\n if (!this.contract.deployed) {\n throw new Error('Calling smart contracts requires you to load the contract first');\n }\n\n const { stateMutability } = this.abi as { stateMutability: StateMutabilityTypes };\n\n if (['pure', 'view'].includes(stateMutability.toLowerCase())) {\n throw new Error(`Methods with state mutability \"${stateMutability}\" must use call()`);\n }\n\n // If a function isn't payable, dont provide a callValue.\n if (!['payable'].includes(stateMutability.toLowerCase())) {\n options.callValue = 0;\n }\n\n options = {\n ...this.defaultOptions,\n from: this.tronWeb.defaultAddress.hex,\n ...options,\n };\n\n const parameters = args.map((value, index) => ({\n type: types[index],\n value,\n }));\n\n const address = privateKey ? this.tronWeb.address.fromPrivateKey(privateKey) : this.tronWeb.defaultAddress.base58;\n const transaction = await this.tronWeb.transactionBuilder.triggerSmartContract(\n this.contract.address,\n this.functionSelector!,\n options,\n parameters,\n this.tronWeb.address.toHex(address as string)\n );\n\n if (!transaction.result || !transaction.result.result) {\n throw new Error('Unknown error: ' + JSON.stringify(transaction, null, 2));\n }\n\n // If privateKey is false, this won't be signed here. We assume sign functionality will be replaced.\n const signedTransaction = await this.tronWeb.trx.sign(transaction.transaction, privateKey);\n\n if (!signedTransaction.signature) {\n if (!privateKey) {\n throw new Error('Transaction was not signed properly');\n }\n\n throw new Error('Invalid private key provided');\n }\n\n const broadcast = await this.tronWeb.trx.sendRawTransaction(signedTransaction);\n\n if (broadcast.code) {\n const err = {\n error: broadcast.code,\n message: broadcast.code as unknown as string,\n };\n if (broadcast.message) err.message = this.tronWeb.toUtf8(broadcast.message);\n const error = new Error(err.message);\n (error as any).error = broadcast.code;\n throw error;\n }\n\n if (!options.shouldPollResponse) {\n return signedTransaction.txID;\n }\n\n const checkResult: (index: number) => any = async (index) => {\n if (index === (options.pollTimes || 20)) {\n const error: any = new Error('Cannot find result in solidity node');\n error.error = 'Cannot find result in solidity node';\n error.transaction = signedTransaction;\n throw error;\n }\n\n const output = await this.tronWeb.trx.getTransactionInfo(signedTransaction.txID);\n\n if (!Object.keys(output).length) {\n await new Promise((r) => setTimeout(r, 3000));\n return checkResult(index + 1);\n }\n\n if (output.result && output.result === 'FAILED') {\n const error: any = new Error(this.tronWeb.toUtf8(output.resMessage));\n error.error = this.tronWeb.toUtf8(output.resMessage);\n error.transaction = signedTransaction;\n error.output = output;\n throw error;\n }\n\n if (!utils.hasProperty(output, 'contractResult')) {\n const error: any = new Error('Failed to execute: ' + JSON.stringify(output, null, 2));\n error.error = 'Failed to execute: ' + JSON.stringify(output, null, 2);\n error.transaction = signedTransaction;\n error.output = output;\n throw error;\n }\n\n if (options.rawResponse) {\n return output;\n }\n\n let decoded = decodeOutput(this.abi, '0x' + output.contractResult[0]);\n\n if (decoded.length === 1 && Object.keys(decoded).length === 1) {\n decoded = decoded[0];\n }\n\n if (options.keepTxID) {\n return [signedTransaction.txID, decoded];\n }\n\n return decoded;\n };\n\n return checkResult(0);\n }\n}\n","import { TronWeb } from '../tronweb.js';\nimport { NodeProvider } from '../types/TronWeb.js';\nimport utils from '../utils/index.js';\nimport { HttpProvider } from './providers/index.js';\n\nexport interface GetEventResultOptions {\n /**\n * Name of the event to filter by.\n */\n eventName?: string;\n /**\n * Specific block number to query.\n */\n blockNumber?: number;\n /**\n * Maximum number returned.\n */\n limit?: number;\n /**\n * When the data volume of the query result is large, the returned result of one query will not contain all the data, and it takes multiple queries to obtain the complete data. Therefore, the fingerprint field will appear in the last piece of data in the returned result. After specifying this field as the content of the fingerprint in the result of the previous query in the next query, the query will return subsequent data. If there is no such field in the last data of the query result, it means that there is no more data.\n */\n fingerprint?: string;\n /**\n * If set to true, only returns confirmed transactions.\n */\n onlyConfirmed?: boolean;\n /**\n * If set to true, only returns unconfirmed transactions.\n */\n onlyUnconfirmed?: boolean;\n /**\n * Specify the query order, whether to query forward or backward from the sinceTimestamp.\n * The value can be 'block_timestamp,desc' for time sequence or 'block_timestamp,asc' for the reverse.\n * Default is 'block_timestamp,desc'.\n */\n orderBy?: 'block_timestamp,desc' | 'block_timestamp,asc';\n /**\n * Specifies the starting timestamp of the query, in milliseconds, default value is the current time.\n */\n minBlockTimestamp?: number;\n /**\n * Specifies the ending timestamp of the query, in milliseconds.\n */\n maxBlockTimestamp?: number;\n}\n\nexport interface EventResponse {\n success: boolean;\n error?: string;\n data?: {\n block_number: number;\n block_timestamp: number;\n caller_contract_address: string;\n contract_address: string;\n event_index: number;\n event_name: string;\n result: Record<string, string>;\n result_type: Record<string, string>;\n event: string;\n transaction_id: string;\n _unconfirmed: boolean;\n }[];\n meta?: {\n at: number;\n fingerprint?: string;\n links?: {\n next: string;\n };\n page_size: number;\n };\n}\n\nexport class Event {\n private tronWeb: TronWeb;\n\n constructor(tronWeb: TronWeb) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n }\n\n setServer(eventServer: NodeProvider, healthcheck = 'healthcheck') {\n if (!eventServer) return (this.tronWeb.eventServer = undefined);\n\n if (utils.isString(eventServer)) eventServer = new HttpProvider(eventServer);\n\n if (!this.tronWeb.isValidProvider(eventServer)) throw new Error('Invalid event server provided');\n\n this.tronWeb.eventServer = eventServer;\n this.tronWeb.eventServer.isConnected = () =>\n this.tronWeb\n .eventServer!.request(healthcheck)\n .then(() => true)\n .catch(() => false);\n }\n\n async getEventsByContractAddress(contractAddress: string, options: GetEventResultOptions = {}) {\n const newOptions = Object.assign(\n {\n limit: 20,\n },\n options\n );\n const {\n eventName,\n blockNumber,\n onlyUnconfirmed,\n onlyConfirmed,\n minBlockTimestamp,\n maxBlockTimestamp,\n orderBy,\n fingerprint,\n } = newOptions;\n let { limit } = newOptions;\n\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n if (!this.tronWeb.isAddress(contractAddress)) {\n throw new Error('Invalid contract address provided');\n }\n\n if (typeof minBlockTimestamp !== 'undefined' && !utils.isInteger(minBlockTimestamp)) {\n throw new Error('Invalid minBlockTimestamp provided');\n }\n\n if (typeof maxBlockTimestamp !== 'undefined' && !utils.isInteger(maxBlockTimestamp)) {\n throw new Error('Invalid maxBlockTimestamp provided');\n }\n\n if (utils.isInteger(limit) && limit > 200) {\n console.warn('Defaulting to maximum accepted limit: 200');\n limit = 200;\n }\n\n const qs = {} as any;\n\n if (eventName) qs.event_name = eventName;\n if (blockNumber) qs.block_number = blockNumber;\n if (typeof onlyUnconfirmed === 'boolean') qs.only_unconfirmed = onlyUnconfirmed;\n if (typeof onlyConfirmed === 'boolean') qs.only_confirmed = onlyConfirmed;\n if (minBlockTimestamp) qs.min_block_timestamp = minBlockTimestamp;\n if (maxBlockTimestamp) qs.max_block_timestamp = maxBlockTimestamp;\n if (orderBy) qs.order_by = orderBy;\n if (fingerprint) qs.fingerprint = fingerprint;\n if (utils.isInteger(limit)) qs.limit = limit;\n\n const res = await this.tronWeb.eventServer.request<EventResponse>(\n `v1/contracts/${this.tronWeb.address.fromHex(contractAddress)}/events?${new URLSearchParams(qs).toString()}`\n );\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n }\n\n async getEventsByTransactionID(\n transactionID: string,\n options: {\n only_unconfirmed?: boolean;\n only_confirmed?: boolean;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_unconfirmed === 'boolean') {\n qs.only_unconfirmed = options.only_unconfirmed;\n }\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n return this.tronWeb.eventServer\n .request<EventResponse>(`v1/transactions/${transactionID}/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(JSON.parse(res.error!).message);\n });\n }\n\n async getEventsByBlockNumber(\n blockNumber: number | string,\n options: {\n only_confirmed?: boolean;\n limit?: number;\n fingerprint?: string;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n if (options.limit) {\n qs.limit = options.limit;\n }\n\n if (options.fingerprint) {\n qs.fingerprint = options.fingerprint;\n }\n\n return this.tronWeb.eventServer\n .request<EventResponse>(`v1/blocks/${blockNumber}/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n });\n }\n\n async getEventsOfLatestBlock(\n options: {\n only_confirmed?: boolean;\n } = {}\n ) {\n if (!this.tronWeb.eventServer) {\n throw new Error('No event server configured');\n }\n\n const qs = {} as any;\n\n if (typeof options.only_confirmed === 'boolean') {\n qs.only_confirmed = options.only_confirmed;\n }\n\n return this.tronWeb.eventServer\n .request<EventResponse>(`v1/blocks/latest/events?${new URLSearchParams(qs).toString()}`)\n .then((res) => {\n if (res.success) {\n return res;\n }\n throw new Error(res.error);\n });\n }\n}\n","import { TronWeb } from '../tronweb.js';\nimport utils from '../utils/index.js';\nimport semver from 'semver';\n\ninterface PluginConstructorOptions {\n disablePlugins?: boolean;\n}\n\ninterface PluginClassInterface {\n new (tronWeb: TronWeb): {\n pluginInterface?: (options: PluginOptions) => PluginInterfaceReturn;\n };\n}\n\ninterface PluginInterfaceReturn {\n requires: string;\n components?: Record<string | number | symbol, any>;\n fullClass?: boolean;\n}\n\ntype PluginOptions = any;\n\nexport class Plugin {\n tronWeb: TronWeb;\n pluginNoOverride: string[];\n disablePlugins: boolean;\n\n constructor(tronWeb: TronWeb, options: PluginConstructorOptions = {}) {\n if (!tronWeb || !(tronWeb instanceof TronWeb)) throw new Error('Expected instance of TronWeb');\n this.tronWeb = tronWeb;\n this.pluginNoOverride = ['register'];\n this.disablePlugins = !!options.disablePlugins;\n }\n\n register(Plugin: PluginClassInterface, options?: PluginOptions) {\n let pluginInterface: PluginInterfaceReturn = {\n requires: '0.0.0',\n components: {},\n };\n const result: {\n libs: any[];\n plugged: any[];\n skipped: any[];\n error?: string;\n } = {\n libs: [],\n plugged: [],\n skipped: [],\n error: undefined,\n };\n if (this.disablePlugins) {\n result.error = 'This instance of TronWeb has plugins disabled.';\n return result;\n }\n const plugin = new Plugin(this.tronWeb);\n if (utils.isFunction(plugin.pluginInterface)) {\n pluginInterface = plugin.pluginInterface(options);\n }\n if (semver.satisfies(TronWeb.version, pluginInterface.requires)) {\n if (pluginInterface.fullClass) {\n // plug the entire class at the same level of tronWeb.trx\n const className = plugin.constructor.name;\n const classInstanceName = className.substring(0, 1).toLowerCase() + className.substring(1);\n if (className !== classInstanceName) {\n Object.assign(TronWeb, {\n [className]: Plugin,\n });\n Object.assign(this.tronWeb, {\n [classInstanceName]: plugin,\n });\n result.libs.push(className);\n }\n } else {\n // plug methods into a class, like trx\n for (const component in pluginInterface.components) {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.tronWeb.hasOwnProperty(component)) {\n continue;\n }\n const methods = pluginInterface.components[component];\n const pluginNoOverride = (this.tronWeb as any)[component].pluginNoOverride || [];\n for (const method in methods) {\n if (\n method === 'constructor' ||\n ((this.tronWeb as any)[component][method] &&\n (pluginNoOverride.includes(method) || // blacklisted methods\n /^_/.test(method))) // private methods\n ) {\n result.skipped.push(method);\n continue;\n }\n (this.tronWeb as any)[component][method] = methods[method].bind((this.tronWeb as any)[component]);\n result.plugged.push(method);\n }\n }\n }\n } else {\n throw new Error('The plugin is not compatible with this version of TronWeb');\n }\n return result;\n }\n}\n","import axios, { Method } from 'axios';\nimport { hasProperties, isObject, isValidURL } from '../../utils/validations.js';\nimport { HeadersType, HttpProviderInstance } from '../../types/Providers.js';\n\nexport default class HttpProvider {\n host: string;\n timeout: number;\n user: string;\n password: string;\n headers: HeadersType;\n statusPage: string;\n instance: HttpProviderInstance;\n constructor(host: string, timeout = 30000, user = '', password = '', headers: HeadersType = {}, statusPage = '/') {\n if (!isValidURL(host)) throw new Error('Invalid URL provided to HttpProvider');\n\n if (isNaN(timeout) || timeout < 0) throw new Error('Invalid timeout duration provided');\n\n if (!isObject(headers)) throw new Error('Invalid headers object provided');\n\n host = host.replace(/\\/+$/, '');\n\n this.host = host;\n this.timeout = timeout;\n this.user = user;\n this.password = password;\n this.headers = headers;\n this.statusPage = statusPage;\n\n this.instance = axios.create({\n baseURL: host,\n timeout: timeout,\n headers: headers,\n auth: user\n ? {\n username: user,\n password,\n }\n : undefined,\n });\n }\n\n setStatusPage(statusPage = '/') {\n this.statusPage = statusPage;\n }\n\n async isConnected(statusPage = this.statusPage) {\n return this.request(statusPage)\n .then((data) => {\n return hasProperties(data as Record<string, string>, 'blockID', 'block_header');\n })\n .catch(() => false);\n }\n\n request<T = unknown>(url: string, payload = {}, method: Method = 'get'): Promise<T> {\n method = method.toLowerCase() as Method;\n\n return this.instance\n .request<T>({\n data: method == 'post' && Object.keys(payload).length ? payload : null,\n params: method == 'get' && payload,\n url,\n method,\n })\n .then(({ data }) => data);\n }\n}\n","import HttpProvider from './HttpProvider.js';\nexport interface Providers {\n HttpProvider: typeof HttpProvider;\n}\nexport const providers: Providers = { HttpProvider };\nexport { HttpProvider };\n","import { TronWeb } from '../tronweb.js';\nimport utils from '../utils/index.js';\nimport { keccak256, toUtf8Bytes, recoverAddress, SigningKey, Signature } from '../utils/ethersUtils.js';\nimport { ADDRESS_PREFIX } from '../utils/address.js';\nimport { Validator } from '../paramValidator/index.js';\nimport { txCheck } from '../utils/transaction.js';\nimport { ecRecover } from '../utils/crypto.js';\nimport { Block } from '../types/APIResponse.js';\nimport {\n Token,\n Account,\n AccountNetMessage,\n Witness,\n TransactionSignWeight,\n BroadcastReturn,\n AddressOptions,\n Proposal,\n ChainParameter,\n BroadcastHexReturn,\n AccountResourceMessage,\n Address,\n Exchange,\n TransactionInfo,\n} from '../types/Trx.js';\nimport { SignedTransaction, Transaction } from '../types/Transaction.js';\nimport { TypedDataDomain, TypedDataField } from '../utils/typedData.js';\nimport { Resource } from '../types/TransactionBuilder.js';\n\nconst TRX_MESSAGE_HEADER = '\\x19TRON Signed Message:\\n32';\n// it should be: '\\x15TRON Signed Message:\\n32';\nconst ETH_MESSAGE_HEADER = '\\x19Ethereum Signed Message:\\n32';\n\nfunction toHex(value: string) {\n return TronWeb.address.toHex(value);\n}\n\ntype SignedStringOrSignedTransaction<T extends string | Transaction | SignedTransaction> = T extends string\n ? string\n : SignedTransaction & T;\n\nexport class Trx {\n private tronWeb: TronWeb;\n private cache: { contracts: Record<string, any> };\n private validator: Validator;\n\n signMessage;\n sendAsset;\n send;\n sendTrx;\n broadcast;\n broadcastHex;\n signTransaction;\n\n constructor(tronWeb: TronWeb) {\n this.tronWeb = tronWeb;\n\n this.cache = {\n contracts: {},\n };\n this.validator = new Validator();\n this.signMessage = this.sign;\n this.sendAsset = this.sendToken;\n this.send = this.sendTransaction;\n this.sendTrx = this.sendTransaction;\n this.broadcast = this.sendRawTransaction;\n this.broadcastHex = this.sendHexTransaction;\n this.signTransaction = this.sign;\n }\n\n _parseToken(token: any): Token {\n return {\n ...token,\n name: this.tronWeb.toUtf8(token.name),\n abbr: token.abbr && this.tronWeb.toUtf8(token.abbr),\n description: token.description && this.tronWeb.toUtf8(token.description),\n url: token.url && this.tronWeb.toUtf8(token.url),\n };\n }\n\n getCurrentBlock(): Promise<Block> {\n return this.tronWeb.fullNode.request('wallet/getnowblock');\n }\n\n getConfirmedCurrentBlock(): Promise<Block> {\n return this.tronWeb.solidityNode.request('walletsolidity/getnowblock');\n }\n\n async getBlock(block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock): Promise<Block> {\n if (block === false) {\n throw new Error('No block identifier provided');\n }\n\n if (block == 'earliest') block = 0;\n\n if (block == 'latest') return this.getCurrentBlock();\n\n if (isNaN(+block) && utils.isHex(block.toString())) return this.getBlockByHash(block as string);\n\n return this.getBlockByNumber(block as number);\n }\n\n async getBlockByHash(blockHash: string): Promise<Block> {\n const block = await this.tronWeb.fullNode.request<Block>(\n 'wallet/getblockbyid',\n {\n value: blockHash,\n },\n 'post'\n );\n if (!Object.keys(block).length) {\n throw new Error('Block not found');\n }\n return block;\n }\n\n async getBlockByNumber(blockID: number): Promise<Block> {\n if (!utils.isInteger(blockID) || blockID < 0) {\n throw new Error('Invalid block number provided');\n }\n\n return this.tronWeb.fullNode\n .request<Block>(\n 'wallet/getblockbynum',\n {\n num: parseInt(blockID),\n },\n 'post'\n )\n .then((block) => {\n if (!Object.keys(block).length) {\n throw new Error('Block not found');\n }\n\n return block;\n });\n }\n\n async getBlockTransactionCount(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock\n ): Promise<number> {\n const { transactions = [] } = await this.getBlock(block);\n return transactions.length;\n }\n\n async getTransactionFromBlock(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock,\n index: number\n ): Promise<Transaction> {\n const { transactions } = await this.getBlock(block);\n if (!transactions) {\n throw new Error('Transaction not found in block');\n }\n if (index >= 0 && index < transactions.length) return transactions[index];\n else throw new Error('Invalid transaction index provided');\n }\n\n async getTransactionsFromBlock(\n block: 'earliest' | 'latest' | number | string | false = this.tronWeb.defaultBlock\n ): Promise<Transaction[]> {\n const { transactions } = await this.getBlock(block);\n if (!transactions) {\n throw new Error('Transaction not found in block');\n }\n return transactions;\n }\n\n async getTransaction(transactionID: string): Promise<Transaction> {\n const transaction = await this.tronWeb.fullNode.request<Transaction>(\n 'wallet/gettransactionbyid',\n {\n value: transactionID,\n },\n 'post'\n );\n if (!Object.keys(transaction).length) {\n throw new Error('Transaction not found');\n }\n return transaction;\n }\n\n async getConfirmedTransaction(transactionID: string): Promise<Transaction> {\n const transaction = await this.tronWeb.solidityNode.request<Transaction>(\n 'walletsolidity/gettransactionbyid',\n {\n value: transactionID,\n },\n 'post'\n );\n if (!Object.keys(transaction).length) {\n throw new Error('Transaction not found');\n }\n return transaction;\n }\n\n getUnconfirmedTransactionInfo(transactionID: string): Promise<TransactionInfo> {\n return this.tronWeb.fullNode.request('wallet/gettransactioninfobyid', { value: transactionID }, 'post');\n }\n\n getTransactionInfo(transactionID: string): Promise<TransactionInfo> {\n return this.tronWeb.solidityNode.request('walletsolidity/gettransactioninfobyid', { value: transactionID }, 'post');\n }\n\n getTransactionsToAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0): Promise<Transaction[]> {\n return this.getTransactionsRelated(this.tronWeb.address.toHex(address as string), 'to', limit, offset);\n }\n\n getTransactionsFromAddress(address = this.tronWeb.defaultAddress.hex, limit = 30, offset = 0): Promise<Transaction[]> {\n return this.getTransactionsRelated(this.tronWeb.address.toHex(address as string), 'from', limit, offset);\n }\n\n async getTransactionsRelated(\n address = this.tronWeb.defaultAddress.hex,\n direction = 'all',\n limit = 30,\n offset = 0\n ): Promise<Transaction[]> {\n if (!['to', 'from', 'all'].includes(direction)) {\n throw new Error('Invalid direction provided: Expected \"to\", \"from\" or \"all\"');\n }\n\n if (direction == 'all') {\n const [from, to] = await Promise.all([\n this.getTransactionsRelated(address, 'from', limit, offset),\n this.getTransactionsRelated(address, 'to', limit, offset),\n ]);\n\n return [\n ...from.map((tx) => (((tx as any).direction = 'from'), tx)),\n ...to.map((tx) => (((tx as any).direction = 'to'), tx)),\n ].sort((a, b) => {\n return b.raw_data.timestamp - a.raw_data.timestamp;\n });\n }\n\n if (!this.tronWeb.isAddress(address as string)) {\n throw new Error('Invalid address provided');\n }\n\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1)) {\n throw new Error('Invalid limit provided');\n }\n\n if (!utils.isInteger(offset) || offset < 0) {\n throw new Error('Invalid offset provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.solidityNode\n .request<{ transaction: Transaction[] }>(\n `walletextension/gettransactions${direction}this`,\n {\n account: {\n address,\n },\n offset,\n limit,\n },\n 'post'\n )\n .then(({ transaction }) => {\n return transaction;\n });\n }\n\n async getAccount(address = this.tronWeb.defaultAddress.hex): Promise<Account> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.solidityNode.request(\n 'walletsolidity/getaccount',\n {\n address,\n },\n 'post'\n );\n }\n\n getAccountById(id: string): Promise<Account> {\n return this.getAccountInfoById(id, { confirmed: true });\n }\n\n async getAccountInfoById(id: string, options: { confirmed: boolean }): Promise<Account> {\n this.validator.notValid([\n {\n name: 'accountId',\n type: 'hex',\n value: id,\n },\n {\n name: 'accountId',\n type: 'string',\n lte: 32,\n gte: 8,\n value: id,\n },\n ]);\n\n if (id.startsWith('0x')) {\n id = id.slice(2);\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getaccountbyid`,\n {\n account_id: id,\n },\n 'post'\n );\n }\n\n async getBalance(address = this.tronWeb.defaultAddress.hex): Promise<number> {\n const { balance = 0 } = await this.getAccount(address);\n return balance;\n }\n\n async getUnconfirmedAccount(address = this.tronWeb.defaultAddress.hex): Promise<Account> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode.request(\n 'wallet/getaccount',\n {\n address,\n },\n 'post'\n );\n }\n\n getUnconfirmedAccountById(id: string): Promise<Account> {\n return this.getAccountInfoById(id, { confirmed: false });\n }\n\n async getUnconfirmedBalance(address = this.tronWeb.defaultAddress.hex): Promise<number> {\n const { balance = 0 } = await this.getUnconfirmedAccount(address);\n return balance;\n }\n\n async getBandwidth(address = this.tronWeb.defaultAddress.hex): Promise<number> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode\n .request<AccountNetMessage>(\n 'wallet/getaccountnet',\n {\n address,\n },\n 'post'\n )\n .then(({ freeNetUsed = 0, freeNetLimit = 0, NetUsed = 0, NetLimit = 0 }) => {\n return freeNetLimit - freeNetUsed + (NetLimit - NetUsed);\n });\n }\n\n async getTokensIssuedByAddress(address = this.tronWeb.defaultAddress.hex): Promise<Record<string, Token>> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n address = this.tronWeb.address.toHex(address as string);\n\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>(\n 'wallet/getassetissuebyaccount',\n {\n address,\n },\n 'post'\n )\n .then(({ assetIssue }) => {\n if (!assetIssue) return {};\n\n const tokens = assetIssue\n .map((token) => {\n return this._parseToken(token);\n })\n .reduce((tokens, token) => {\n return (tokens[token.name] = token), tokens;\n }, {} as Record<string, Token>);\n\n return tokens;\n });\n }\n\n async getTokenFromID(tokenID: string | number): Promise<Token> {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request<Token>(\n 'wallet/getassetissuebyname',\n {\n value: this.tronWeb.fromUtf8(tokenID),\n },\n 'post'\n )\n .then((token) => {\n if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n async listNodes(): Promise<string[]> {\n const { nodes = [] } = await this.tronWeb.fullNode.request<{ nodes: { address: { host: string; port: number } }[] }>(\n 'wallet/listnodes'\n );\n return nodes.map(({ address: { host, port } }) => `${this.tronWeb.toUtf8(host)}:${port}`);\n }\n\n async getBlockRange(start = 0, end = 30): Promise<Block[]> {\n if (!utils.isInteger(start) || start < 0) {\n throw new Error('Invalid start of range provided');\n }\n\n if (!utils.isInteger(end) || end < start) {\n throw new Error('Invalid end of range provided');\n }\n\n if (end + 1 - start > 100) {\n throw new Error('Invalid range size, which should be no more than 100.');\n }\n\n return this.tronWeb.fullNode\n .request<{ block: Block[] }>(\n 'wallet/getblockbylimitnext',\n {\n startNum: parseInt(start),\n endNum: parseInt(end) + 1,\n },\n 'post'\n )\n .then(({ block = [] }) => block);\n }\n\n async listSuperRepresentatives(): Promise<Witness[]> {\n const { witnesses = [] } = await this.tronWeb.fullNode.request<{ witnesses: Witness[] }>('wallet/listwitnesses');\n return witnesses;\n }\n\n async listTokens(limit = 0, offset = 0): Promise<Token[]> {\n if (!utils.isInteger(limit) || limit < 0 || (offset && limit < 1)) {\n throw new Error('Invalid limit provided');\n }\n\n if (!utils.isInteger(offset) || offset < 0) {\n throw new Error('Invalid offset provided');\n }\n\n if (!limit) {\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>('wallet/getassetissuelist')\n .then(({ assetIssue = [] }) => assetIssue.map((token) => this._parseToken(token)));\n }\n\n return this.tronWeb.fullNode\n .request<{ assetIssue: Token[] }>(\n 'wallet/getpaginatedassetissuelist',\n {\n offset: parseInt(offset),\n limit: parseInt(limit),\n },\n 'post'\n )\n .then(({ assetIssue = [] }) => assetIssue.map((token) => this._parseToken(token)));\n }\n\n async timeUntilNextVoteCycle(): Promise<number> {\n const { num = -1 } = await this.tronWeb.fullNode.request<{ num: number }>('wallet/getnextmaintenancetime');\n if (num == -1) {\n throw new Error('Failed to get time until next vote cycle');\n }\n return Math.floor(num / 1000);\n }\n\n async getContract(contractAddress: string): Promise<any> {\n if (!this.tronWeb.isAddress(contractAddress)) {\n throw new Error('Invalid contract address provided');\n }\n\n if (this.cache.contracts[contractAddress]) {\n return this.cache.contracts[contractAddress];\n }\n\n contractAddress = this.tronWeb.address.toHex(contractAddress);\n\n const contract = await this.tronWeb.fullNode.request<any>('wallet/getcontract', {\n value: contractAddress,\n });\n if (contract.Error) {\n throw new Error('Contract does not exist');\n }\n this.cache.contracts[contractAddress] = contract;\n return contract;\n }\n\n ecRecover(transaction: SignedTransaction) {\n return Trx.ecRecover(transaction);\n }\n\n static ecRecover(transaction: SignedTransaction): Address | Address[] {\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n if (!transaction.signature?.length) {\n throw new Error('Transaction is not signed');\n }\n if (transaction.signature.length === 1) {\n const tronAddress = ecRecover(transaction.txID, transaction.signature[0]);\n return TronWeb.address.fromHex(tronAddress);\n }\n return transaction.signature.map((sig) => {\n const tronAddress = ecRecover(transaction.txID, sig);\n return TronWeb.address.fromHex(tronAddress);\n });\n }\n\n async verifyMessage(message: string, signature: string, address = this.tronWeb.defaultAddress.base58, useTronHeader = true) {\n if (!utils.isHex(message)) {\n throw new Error('Expected hex message input');\n }\n\n if (Trx.verifySignature(message, address as string, signature, useTronHeader)) {\n return true;\n }\n\n throw new Error('Signature does not match');\n }\n\n static verifySignature(message: string, address: string, signature: string, useTronHeader = true) {\n message = message.replace(/^0x/, '');\n const messageBytes = [\n ...toUtf8Bytes(useTronHeader ? TRX_MESSAGE_HEADER : ETH_MESSAGE_HEADER),\n ...utils.code.hexStr2byteArray(message),\n ];\n\n const messageDigest = keccak256(new Uint8Array(messageBytes));\n const recovered = recoverAddress(messageDigest, Signature.from(`0x${signature.replace(/^0x/, '')}`));\n\n const tronAddress = ADDRESS_PREFIX + recovered.substr(2);\n const base58Address = TronWeb.address.fromHex(tronAddress);\n\n return base58Address == TronWeb.address.fromHex(address);\n }\n\n async verifyMessageV2(message: string | Uint8Array | Array<number>, signature: string) {\n return Trx.verifyMessageV2(message, signature);\n }\n\n static verifyMessageV2(message: string | Uint8Array | Array<number>, signature: string) {\n return utils.message.verifyMessage(message, signature);\n }\n\n verifyTypedData(\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, any>,\n signature: string,\n address = this.tronWeb.defaultAddress.base58\n ) {\n if (Trx.verifyTypedData(domain, types, value, signature, address as string)) return true;\n\n throw new Error('Signature does not match');\n }\n\n static verifyTypedData(\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, any>,\n signature: string,\n address: string\n ) {\n const messageDigest = utils._TypedDataEncoder.hash(domain, types, value);\n const recovered = recoverAddress(messageDigest, Signature.from(`0x${signature.replace(/^0x/, '')}`));\n\n const tronAddress = ADDRESS_PREFIX + recovered.substr(2);\n const base58Address = TronWeb.address.fromHex(tronAddress);\n\n return base58Address == TronWeb.address.fromHex(address);\n }\n\n async sign<T extends SignedTransaction | Transaction | string>(\n transaction: T,\n privateKey = this.tronWeb.defaultPrivateKey,\n useTronHeader = true,\n multisig = false\n ): Promise<SignedStringOrSignedTransaction<T>> {\n // Message signing\n if (utils.isString(transaction)) {\n if (!utils.isHex(transaction)) {\n throw new Error('Expected hex message input');\n }\n\n return Trx.signString(transaction, privateKey as string, useTronHeader) as SignedStringOrSignedTransaction<T>;\n }\n\n if (!utils.isObject(transaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n if (!multisig && (transaction as SignedTransaction).signature) {\n throw new Error('Transaction is already signed');\n }\n\n if (!multisig) {\n const address = this.tronWeb.address\n .toHex(this.tronWeb.address.fromPrivateKey(privateKey as string) as string)\n .toLowerCase();\n\n if (address !== this.tronWeb.address.toHex(transaction.raw_data.contract[0].parameter.value.owner_address)) {\n throw new Error('Private key does not match address in transaction');\n }\n\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n }\n return utils.crypto.signTransaction(privateKey as string, transaction) as SignedStringOrSignedTransaction<T>;\n }\n\n static signString(message: string, privateKey: string, useTronHeader = true) {\n message = message.replace(/^0x/, '');\n const value = `0x${privateKey.replace(/^0x/, '')}`;\n const signingKey = new SigningKey(value);\n const messageBytes = [\n ...toUtf8Bytes(useTronHeader ? TRX_MESSAGE_HEADER : ETH_MESSAGE_HEADER),\n ...utils.code.hexStr2byteArray(message),\n ];\n const messageDigest = keccak256(new Uint8Array(messageBytes));\n const signature = signingKey.sign(messageDigest);\n const signatureHex = ['0x', signature.r.substring(2), signature.s.substring(2), Number(signature.v).toString(16)].join(\n ''\n );\n return signatureHex;\n }\n\n /**\n * sign message v2 for verified header length\n *\n * @param {message to be signed, should be Bytes or string} message\n * @param {privateKey for signature} privateKey\n * @param {reserved} options\n */\n signMessageV2(message: string | Uint8Array | Array<number>, privateKey = this.tronWeb.defaultPrivateKey) {\n return Trx.signMessageV2(message, privateKey as string);\n }\n\n static signMessageV2(message: string | Uint8Array | Array<number>, privateKey: string) {\n return utils.message.signMessage(message, privateKey);\n }\n\n _signTypedData(\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, any>,\n privateKey = this.tronWeb.defaultPrivateKey\n ) {\n return Trx._signTypedData(domain, types, value, privateKey as string);\n }\n\n static _signTypedData(\n domain: TypedDataDomain,\n types: Record<string, TypedDataField[]>,\n value: Record<string, any>,\n privateKey: string\n ) {\n return utils.crypto._signTypedData(domain, types, value, privateKey);\n }\n\n async multiSign(transaction: Transaction, privateKey = this.tronWeb.defaultPrivateKey, permissionId = 0) {\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract) {\n throw new Error('Invalid transaction provided');\n }\n\n // If owner permission or permission id exists in transaction, do sign directly\n // If no permission id inside transaction or user passes permission id, use old way to reset permission id\n if (!transaction.raw_data.contract[0].Permission_id && permissionId > 0) {\n // set permission id\n transaction.raw_data.contract[0].Permission_id = permissionId;\n\n // check if private key insides permission list\n const address = this.tronWeb.address\n .toHex(this.tronWeb.address.fromPrivateKey(privateKey as string) as string)\n .toLowerCase();\n const signWeight = await this.getSignWeight(transaction, permissionId);\n\n if (signWeight.result.code === 'PERMISSION_ERROR') {\n throw new Error(signWeight.result.message);\n }\n\n let foundKey = false;\n signWeight.permission.keys.map((key) => {\n if (key.address === address) foundKey = true;\n });\n\n if (!foundKey) {\n throw new Error(privateKey + ' has no permission to sign');\n }\n\n if (signWeight.approved_list && signWeight.approved_list.indexOf(address) != -1) {\n throw new Error(privateKey + ' already sign transaction');\n }\n\n // reset transaction\n if (signWeight.transaction && signWeight.transaction.transaction) {\n transaction = signWeight.transaction.transaction;\n if (permissionId > 0) {\n transaction.raw_data.contract[0].Permission_id = permissionId;\n }\n } else {\n throw new Error('Invalid transaction provided');\n }\n }\n\n // sign\n if (!txCheck(transaction)) {\n throw new Error('Invalid transaction');\n }\n return utils.crypto.signTransaction(privateKey as string, transaction);\n }\n\n async getApprovedList(transaction: Transaction): Promise<{ approved_list: string[] }> {\n if (!utils.isObject(transaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n return this.tronWeb.fullNode.request('wallet/getapprovedlist', transaction, 'post');\n }\n\n async getSignWeight(transaction: Transaction, permissionId?: number): Promise<TransactionSignWeight> {\n if (!utils.isObject(transaction) || !transaction.raw_data || !transaction.raw_data.contract)\n throw new Error('Invalid transaction provided');\n\n if (utils.isInteger(permissionId)) {\n transaction.raw_data.contract[0].Permission_id = parseInt(permissionId);\n } else if (typeof transaction.raw_data.contract[0].Permission_id !== 'number') {\n transaction.raw_data.contract[0].Permission_id = 0;\n }\n\n return this.tronWeb.fullNode.request('wallet/getsignweight', transaction, 'post');\n }\n\n async sendRawTransaction<T extends SignedTransaction>(signedTransaction: T): Promise<BroadcastReturn<T>> {\n if (!utils.isObject(signedTransaction)) {\n throw new Error('Invalid transaction provided');\n }\n\n if (!signedTransaction.signature || !utils.isArray(signedTransaction.signature)) {\n throw new Error('Transaction is not signed');\n }\n\n const result = await this.tronWeb.fullNode.request<Omit<BroadcastReturn<T>, 'transaction'>>(\n 'wallet/broadcasttransaction',\n signedTransaction,\n 'post'\n );\n return {\n ...result,\n transaction: signedTransaction,\n };\n }\n\n async sendHexTransaction(signedHexTransaction: string) {\n if (!utils.isHex(signedHexTransaction)) {\n throw new Error('Invalid hex transaction provided');\n }\n\n const params = {\n transaction: signedHexTransaction,\n };\n\n const result = await this.tronWeb.fullNode.request<BroadcastHexReturn>('wallet/broadcasthex', params, 'post');\n if (result.result) {\n return {\n ...result,\n transaction: JSON.parse(result.transaction) as Transaction,\n hexTransaction: signedHexTransaction,\n };\n }\n return result;\n }\n\n async sendTransaction(to: string, amount: number, options: AddressOptions = {}): Promise<BroadcastReturn<SignedTransaction>> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!this.tronWeb.isAddress(to)) {\n throw new Error('Invalid recipient provided');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const transaction = await this.tronWeb.transactionBuilder.sendTrx(to, amount, address as Address);\n const signedTransaction = await this.sign(transaction, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n async sendToken(\n to: string,\n amount: number,\n tokenID: string | number,\n options: AddressOptions = {}\n ): Promise<BroadcastReturn<SignedTransaction>> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!this.tronWeb.isAddress(to)) {\n throw new Error('Invalid recipient provided');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID)) {\n throw new Error('Invalid token ID provided');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const transaction = await this.tronWeb.transactionBuilder.sendToken(to, amount, tokenID, address as Address);\n const signedTransaction = await this.sign(transaction, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Freezes an amount of TRX.\n * Will give bandwidth OR Energy and TRON Power(voting rights)\n * to the owner of the frozen tokens.\n *\n * @param amount - is the number of frozen trx\n * @param duration - is the duration in days to be frozen\n * @param resource - is the type, must be either \"ENERGY\" or \"BANDWIDTH\"\n * @param options\n */\n async freezeBalance(\n amount = 0,\n duration = 3,\n resource: Resource = 'BANDWIDTH',\n options: AddressOptions = {},\n receiverAddress?: string\n ): Promise<BroadcastReturn<SignedTransaction>> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource)) {\n throw new Error('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n }\n\n if (!utils.isInteger(amount) || amount <= 0) {\n throw new Error('Invalid amount provided');\n }\n\n if (!utils.isInteger(duration) || duration < 3) {\n throw new Error('Invalid duration provided, minimum of 3 days');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const freezeBalance = await this.tronWeb.transactionBuilder.freezeBalance(\n amount,\n duration,\n resource,\n address as Address,\n receiverAddress\n );\n const signedTransaction = await this.sign(freezeBalance, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Unfreeze TRX that has passed the minimum freeze duration.\n * Unfreezing will remove bandwidth and TRON Power.\n *\n * @param resource - is the type, must be either \"ENERGY\" or \"BANDWIDTH\"\n * @param options\n */\n async unfreezeBalance(\n resource: Resource = 'BANDWIDTH',\n options: AddressOptions = {},\n receiverAddress: string\n ): Promise<BroadcastReturn<SignedTransaction>> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!['BANDWIDTH', 'ENERGY'].includes(resource)) {\n throw new Error('Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) {\n throw new Error('Function requires either a private key or address to be set');\n }\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const unfreezeBalance = await this.tronWeb.transactionBuilder.unfreezeBalance(\n resource,\n address as Address,\n receiverAddress\n );\n const signedTransaction = await this.sign(unfreezeBalance, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Modify account name\n * Note: Username is allowed to edit only once.\n *\n * @param privateKey - Account private Key\n * @param accountName - name of the account\n *\n * @return modified Transaction Object\n */\n async updateAccount(accountName: string, options: AddressOptions = {}): Promise<BroadcastReturn<SignedTransaction>> {\n if (typeof options === 'string') options = { privateKey: options };\n\n if (!utils.isString(accountName) || !accountName.length) {\n throw new Error('Name must be a string');\n }\n\n options = {\n privateKey: this.tronWeb.defaultPrivateKey as string,\n address: this.tronWeb.defaultAddress.hex as string,\n ...options,\n };\n\n if (!options.privateKey && !options.address) throw Error('Function requires either a private key or address to be set');\n\n const address = options.privateKey ? this.tronWeb.address.fromPrivateKey(options.privateKey) : options.address;\n const updateAccount = await this.tronWeb.transactionBuilder.updateAccount(accountName, address as Address);\n const signedTransaction = await this.sign(updateAccount, options.privateKey);\n const result = await this.sendRawTransaction(signedTransaction);\n return result;\n }\n\n /**\n * Gets a network modification proposal by ID.\n */\n async getProposal(proposalID: number): Promise<Proposal> {\n if (!utils.isInteger(proposalID) || proposalID < 0) {\n throw new Error('Invalid proposalID provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getproposalbyid',\n {\n id: parseInt(proposalID),\n },\n 'post'\n );\n }\n\n /**\n * Lists all network modification proposals.\n */\n async listProposals(): Promise<Proposal[]> {\n const { proposals = [] } = await this.tronWeb.fullNode.request<{ proposals: Proposal[] }>(\n 'wallet/listproposals',\n {},\n 'post'\n );\n return proposals;\n }\n\n /**\n * Lists all parameters available for network modification proposals.\n */\n async getChainParameters(): Promise<ChainParameter[]> {\n const { chainParameter = [] } = await this.tronWeb.fullNode.request<{ chainParameter: ChainParameter[] }>(\n 'wallet/getchainparameters',\n {},\n 'post'\n );\n return chainParameter;\n }\n\n /**\n * Get the account resources\n */\n async getAccountResources(address = this.tronWeb.defaultAddress.hex): Promise<AccountResourceMessage> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getaccountresource',\n {\n address: this.tronWeb.address.toHex(address as string),\n },\n 'post'\n );\n }\n\n /**\n * Query the amount of resources of a specific resourceType delegated by fromAddress to toAddress\n */\n async getDelegatedResourceV2(\n fromAddress = this.tronWeb.defaultAddress.hex,\n toAddress = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n delegatedResource: {\n from: string;\n to: string;\n frozen_balance_for_bandwidth: number;\n frozen_balance_for_energy: number;\n expire_time_for_bandwidth: number;\n expire_time_for_energy: number;\n };\n }> {\n if (!this.tronWeb.isAddress(fromAddress as Address)) {\n throw new Error('Invalid address provided');\n }\n\n if (!this.tronWeb.isAddress(toAddress as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourcev2`,\n {\n fromAddress: toHex(fromAddress as string),\n toAddress: toHex(toAddress as string),\n },\n 'post'\n );\n }\n\n /**\n * Query the resource delegation index by an account\n */\n async getDelegatedResourceAccountIndexV2(\n address = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n account: Address;\n fromAccounts: Address[];\n toAccounts: Address[];\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getdelegatedresourceaccountindexv2`,\n {\n value: toHex(address as Address),\n },\n 'post'\n );\n }\n\n /**\n * Query the amount of delegatable resources of the specified resource Type for target address, unit is sun.\n */\n async getCanDelegatedMaxSize(\n address = this.tronWeb.defaultAddress.hex,\n resource: Resource = 'BANDWIDTH',\n options = { confirmed: true }\n ): Promise<{\n max_size: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n this.validator.notValid([\n {\n name: 'resource',\n type: 'resource',\n value: resource,\n msg: 'Invalid resource provided: Expected \"BANDWIDTH\" or \"ENERGY\"',\n },\n ]);\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getcandelegatedmaxsize`,\n {\n owner_address: toHex(address as Address),\n type: resource === 'ENERGY' ? 1 : 0,\n },\n 'post'\n );\n }\n\n /**\n * Remaining times of available unstaking API\n */\n async getAvailableUnfreezeCount(\n address = this.tronWeb.defaultAddress.hex,\n options = { confirmed: true }\n ): Promise<{\n count: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getavailableunfreezecount`,\n {\n owner_address: toHex(address as Address),\n },\n 'post'\n );\n }\n\n /**\n * Query the withdrawable balance at the specified timestamp\n */\n async getCanWithdrawUnfreezeAmount(\n address = this.tronWeb.defaultAddress.hex,\n timestamp = Date.now(),\n options = { confirmed: true }\n ): Promise<{\n amount: number;\n }> {\n if (!this.tronWeb.isAddress(address as Address)) {\n throw new Error('Invalid address provided');\n }\n\n if (!utils.isInteger(timestamp) || timestamp < 0) {\n throw new Error('Invalid timestamp provided');\n }\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode'].request(\n `wallet${options.confirmed ? 'solidity' : ''}/getcanwithdrawunfreezeamount`,\n {\n owner_address: toHex(address as Address),\n timestamp: timestamp,\n },\n 'post'\n );\n }\n\n /**\n * Get the exchange ID.\n */\n async getExchangeByID(exchangeID: number): Promise<Exchange> {\n if (!utils.isInteger(exchangeID) || exchangeID < 0) {\n throw new Error('Invalid exchangeID provided');\n }\n\n return this.tronWeb.fullNode.request(\n 'wallet/getexchangebyid',\n {\n id: exchangeID,\n },\n 'post'\n );\n }\n\n /**\n * Lists the exchanges\n */\n async listExchanges() {\n return this.tronWeb.fullNode\n .request<{ exchanges: Exchange[] }>('wallet/listexchanges', {}, 'post')\n .then(({ exchanges = [] }) => exchanges);\n }\n\n /**\n * Lists all network modification proposals.\n */\n async listExchangesPaginated(limit = 10, offset = 0) {\n return this.tronWeb.fullNode\n .request<{ exchanges: Exchange[] }>(\n 'wallet/getpaginatedexchangelist',\n {\n limit,\n offset,\n },\n 'post'\n )\n .then(({ exchanges = [] }) => exchanges);\n }\n\n /**\n * Get info about thre node\n */\n async getNodeInfo(): Promise<{\n beginSyncNum: number;\n block: string;\n solidityBlock: string;\n currentConnectCount: number;\n activeConnectCount: number;\n passiveConnectCount: number;\n totalFlow: number;\n peerInfoList: {\n lastSyncBlock: string;\n remainNum: number;\n lastBlockUpdateTime: number;\n syncFlag: boolean;\n headBlockTimeWeBothHave: number;\n needSyncFromPeer: boolean;\n needSyncFromUs: boolean;\n host: string;\n port: number;\n nodeId: string;\n connectTime: number;\n avgLatency: number;\n syncToFetchSize: number;\n syncToFetchSizePeekNum: number;\n syncBlockRequestedSize: number;\n unFetchSynNum: number;\n blockInPorcSize: number;\n headBlockWeBothHave: string;\n isActive: boolean;\n score: number;\n nodeCount: number;\n inFlow: number;\n disconnectTimes: number;\n localDisconnectReason: string;\n remoteDisconnectReason: string;\n };\n configNodeInfo: {\n codeVersion: string;\n p2pVersion: string;\n listenPort: number;\n discoverEnable: boolean;\n activeNodeSize: number;\n passiveNodeSize: number;\n sendNodeSize: number;\n maxConnectCount: number;\n sameIpMaxConnectCount: number;\n backupListenPort: number;\n backupMemberSize: number;\n backupPriority: number;\n dbVersion: number;\n minParticipationRate: number;\n supportConstant: boolean;\n minTimeRatio: number;\n maxTimeRatio: number;\n allowCreationOfContracts: number;\n allowAdaptiveEnergy: number;\n };\n machineInfo: {\n threadCount: number;\n deadLockThreadCount: number;\n cpuCount: number;\n totalMemory: number;\n freeMemory: number;\n cpuRate: number;\n javaVersion: string;\n osName: string;\n jvmTotalMemory: number;\n jvmFreeMemory: number;\n processCpuRate: number;\n memoryDescInfoList: {\n name: string;\n initSize: number;\n useSize: number;\n maxSize: number;\n useRate: number;\n };\n deadLockThreadInfoList: {\n name: string;\n lockName: string;\n lockOwner: string;\n state: string;\n blockTime: number;\n waitTime: number;\n stackTrace: string;\n };\n };\n cheatWitnessInfoMap: Map<string, string>;\n }> {\n return this.tronWeb.fullNode.request('wallet/getnodeinfo', {}, 'post');\n }\n\n async getTokenListByName(tokenID: string | number): Promise<Token | Token[]> {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request<({ assetIssue: Token[] } & { name: undefined }) | (Token & { assetIssue: undefined })>(\n 'wallet/getassetissuelistbyname',\n {\n value: this.tronWeb.fromUtf8(tokenID),\n },\n 'post'\n )\n .then((token) => {\n if (Array.isArray(token.assetIssue)) {\n return token.assetIssue.map((t) => this._parseToken(t));\n } else if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n getTokenByID(tokenID: number | string): Promise<Token> {\n if (utils.isInteger(tokenID)) tokenID = tokenID.toString();\n\n if (!utils.isString(tokenID) || !tokenID.length) {\n throw new Error('Invalid token ID provided');\n }\n\n return this.tronWeb.fullNode\n .request<Token>(\n 'wallet/getassetissuebyid',\n {\n value: tokenID,\n },\n 'post'\n )\n .then((token) => {\n if (!token.name) {\n throw new Error('Token does not exist');\n }\n\n return this._parseToken(token);\n });\n }\n\n async getReward(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = true;\n return this._getReward(address, options);\n }\n\n async getUnconfirmedReward(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = false;\n return this._getReward(address, options);\n }\n\n async getBrokerage(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = true;\n return this._getBrokerage(address, options);\n }\n\n async getUnconfirmedBrokerage(address: Address, options: { confirmed?: boolean } = {}) {\n options.confirmed = false;\n return this._getBrokerage(address, options);\n }\n\n async _getReward(address = this.tronWeb.defaultAddress.hex, options: { confirmed?: boolean }): Promise<number> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data = {\n address: toHex(address as Address),\n };\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode']\n .request<{ reward?: number }>(`wallet${options.confirmed ? 'solidity' : ''}/getReward`, data, 'post')\n .then((result = { reward: undefined }) => {\n if (typeof result.reward === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.reward;\n });\n }\n\n private async _getBrokerage(address = this.tronWeb.defaultAddress.hex, options: { confirmed?: boolean }): Promise<number> {\n this.validator.notValid([\n {\n name: 'origin',\n type: 'address',\n value: address,\n },\n ]);\n\n const data = {\n address: toHex(address as Address),\n };\n\n return this.tronWeb[options.confirmed ? 'solidityNode' : 'fullNode']\n .request<{ brokerage?: number }>(`wallet${options.confirmed ? 'solidity' : ''}/getBrokerage`, data, 'post')\n .then((result = {}) => {\n if (typeof result.brokerage === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.brokerage;\n });\n }\n\n async getBandwidthPrices(): Promise<string> {\n return this.tronWeb.fullNode.request<{ prices?: string }>('wallet/getbandwidthprices', {}, 'post')\n .then((result = {}) => {\n if (typeof result.prices === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.prices;\n });\n }\n\n async getEnergyPrices(): Promise<string> {\n return this.tronWeb.fullNode.request<{ prices?: string }>('wallet/getenergyprices', {}, 'post')\n .then((result = {}) => {\n if (typeof result.prices === 'undefined') {\n throw new Error('Not found.');\n }\n\n return result.prices;\n });\n }\n}\n","import { isAddress, toHex } from '../utils/address.js';\nimport { isNotNullOrUndefined, isInteger, isString, isObject, isValidURL, isHex, isBoolean } from '../utils/validations.js';\n\nexport type ValidatorParamType = {\n value?: string | number | boolean | Record<string, unknown> | unknown[];\n type: unknown;\n name?: string;\n msg?: string;\n names?: string[];\n gt?: number;\n lt?: number;\n gte?: number;\n lte?: number;\n se?: number;\n optional?: boolean;\n};\n\nexport class Validator {\n invalid(param: ValidatorParamType) {\n return param.msg || `Invalid ${param.name}${param.type === 'address' ? ' address' : ''} provided`;\n }\n\n notPositive(param: ValidatorParamType) {\n return `${param.name} must be a positive integer`;\n }\n\n notEqual(param: ValidatorParamType) {\n return param.msg || `${param.names?.[0]} can not be equal to ${param.names?.[1]}`;\n }\n\n notValid(params: ValidatorParamType[]) {\n const normalized: Record<string, unknown> = {};\n let no = false;\n for (const param of params) {\n const { name, names, value, type, gt, lt, gte, lte, optional } = param;\n if (optional && (!isNotNullOrUndefined(value) || (type !== 'boolean' && value === false))) continue;\n normalized[name as string] = param.value;\n switch (type) {\n case 'address':\n if (!isAddress(value as string)) {\n no = true;\n } else {\n normalized[name as string] = toHex(value as string);\n }\n break;\n\n case 'integer':\n if (\n !isInteger(value) ||\n (typeof gt === 'number' && value <= gt) ||\n (typeof lt === 'number' && value >= lt) ||\n (typeof gte === 'number' && value < gte) ||\n (typeof lte === 'number' && value > lte)\n ) {\n no = true;\n }\n break;\n\n case 'positive-integer':\n if (!isInteger(value) || value <= 0) {\n throw new Error(this.notPositive(param));\n }\n break;\n\n case 'tokenId':\n if (!isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'notEmptyObject':\n if (!isObject(value) || !Object.keys(value).length) {\n no = true;\n }\n break;\n\n case 'notEqual':\n if (names && normalized[names[0]] === normalized[names[1]]) {\n throw new Error(this.notEqual(param));\n }\n break;\n\n case 'resource':\n if (!['BANDWIDTH', 'ENERGY'].includes(value as string)) {\n no = true;\n }\n break;\n\n case 'url':\n if (!isValidURL(value as string)) {\n no = true;\n }\n break;\n\n case 'hex':\n if (!isHex(value as string)) {\n no = true;\n }\n break;\n\n case 'array':\n if (!Array.isArray(value)) {\n no = true;\n }\n break;\n\n case 'not-empty-string':\n if (!isString(value) || !value.length) {\n no = true;\n }\n break;\n\n case 'boolean':\n if (!isBoolean(value)) {\n no = true;\n }\n break;\n case 'string':\n if (\n !isString(value) ||\n (typeof gt === 'number' && value.length <= gt) ||\n (typeof lt === 'number' && value.length >= lt) ||\n (typeof gte === 'number' && value.length < gte) ||\n (typeof lte === 'number' && value.length > lte)\n ) {\n no = true;\n }\n break;\n }\n if (no) {\n throw new Error(this.invalid(param));\n }\n }\n return false;\n }\n}\n","import { HttpProvider, providers } from './lib/providers/index.js';\nimport type { Providers } from './lib/providers/index.js';\nimport utils from './utils/index.js';\nimport { BigNumber } from 'bignumber.js';\nimport EventEmitter from 'eventemitter3';\nimport semver from 'semver';\n\nimport { TransactionBuilder } from './lib/TransactionBuilder/TransactionBuilder.js';\nimport { Trx } from './lib/trx.js';\nimport { Contract } from './lib/contract/index.js';\nimport { Plugin } from './lib/plugin.js';\nimport { Event } from './lib/event.js';\nimport { keccak256 } from './utils/ethersUtils.js';\nimport { fromHex, fromPrivateKey, isAddress, toHex, toChecksumAddress, isChecksumAddress } from './utils/address.js';\nimport { HeadersType } from './types/Providers.js';\nimport { isString } from './utils/validations.js';\nimport { DefaultAddress, NodeProvider, TronWebOptions, IBigNumber } from './types/TronWeb.js';\nimport { ContractAbiInterface } from './types/ABI.js';\nimport { Address } from './types/Trx.js';\n\nconst DEFAULT_VERSION = '4.7.1';\n\nconst FEE_LIMIT = 150000000;\n\nconst version = '6.0.0';\n\nfunction isValidOptions(options: unknown): options is TronWebOptions {\n return (\n !!options &&\n typeof options === 'object' &&\n (!!(options as TronWebOptions).fullNode || !!(options as TronWebOptions).fullHost)\n );\n}\n\nexport class TronWeb extends EventEmitter {\n providers: Providers;\n BigNumber: typeof BigNumber;\n transactionBuilder: TransactionBuilder;\n trx: Trx;\n plugin: Plugin;\n event: Event;\n version: typeof TronWeb.version;\n static version = version;\n utils: typeof utils;\n\n defaultBlock: number | false | 'earliest' | 'latest';\n defaultPrivateKey: string | false;\n defaultAddress: DefaultAddress;\n fullnodeVersion: string;\n feeLimit: number;\n\n fullNode!: HttpProvider;\n solidityNode!: HttpProvider;\n eventServer?: HttpProvider;\n\n constructor(options: TronWebOptions);\n constructor(fullNode: NodeProvider, solidityNode: NodeProvider, eventServer?: NodeProvider, privateKey?: string);\n /* prettier-ignore */\n constructor(fullNode: NodeProvider, solidityNode: NodeProvider, eventServer: NodeProvider, privateKey?: string);\n constructor(\n options: TronWebOptions | NodeProvider,\n solidityNode: NodeProvider = '',\n eventServer?: NodeProvider,\n privateKey = ''\n ) {\n super();\n\n let fullNode;\n let headers: HeadersType | false = false;\n let eventHeaders: HeadersType | false = false;\n\n if (isValidOptions(options)) {\n fullNode = options.fullNode || options.fullHost;\n solidityNode = (options.solidityNode || options.fullHost)!;\n eventServer = (options.eventServer || options.fullHost)!;\n headers = options.headers || false;\n eventHeaders = options.eventHeaders || headers;\n privateKey = options.privateKey!;\n } else {\n fullNode = options;\n }\n if (utils.isString(fullNode)) fullNode = new providers.HttpProvider(fullNode);\n\n if (utils.isString(solidityNode)) solidityNode = new providers.HttpProvider(solidityNode);\n\n if (utils.isString(eventServer)) eventServer = new providers.HttpProvider(eventServer);\n\n this.event = new Event(this);\n this.transactionBuilder = new TransactionBuilder(this);\n this.trx = new Trx(this);\n this.plugin = new Plugin(this, {\n disablePlugins: isValidOptions(options) ? options.disablePlugins : false,\n });\n this.utils = utils;\n\n this.setFullNode(fullNode as HttpProvider);\n this.setSolidityNode(solidityNode as HttpProvider);\n this.setEventServer(eventServer!);\n\n this.providers = providers;\n this.BigNumber = BigNumber;\n\n this.defaultBlock = false;\n this.defaultPrivateKey = false;\n this.defaultAddress = {\n hex: false,\n base58: false,\n };\n\n this.version = TronWeb.version;\n this.sha3 = TronWeb.sha3;\n this.fromUtf8 = TronWeb.fromUtf8;\n this.address = TronWeb.address;\n this.toAscii = TronWeb.toAscii;\n this.toUtf8 = TronWeb.toUtf8;\n this.isAddress = TronWeb.isAddress;\n this.fromAscii = TronWeb.fromAscii;\n this.toHex = TronWeb.toHex;\n this.toBigNumber = TronWeb.toBigNumber;\n this.toDecimal = TronWeb.toDecimal;\n this.fromDecimal = TronWeb.fromDecimal;\n this.toSun = TronWeb.toSun;\n this.fromSun = TronWeb.fromSun;\n this.createAccount = TronWeb.createAccount;\n this.createRandom = TronWeb.createRandom;\n this.fromMnemonic = TronWeb.fromMnemonic;\n\n if (privateKey) this.setPrivateKey(privateKey);\n this.fullnodeVersion = DEFAULT_VERSION;\n this.feeLimit = FEE_LIMIT;\n\n if (headers) {\n this.setFullNodeHeader(headers);\n }\n\n if (eventHeaders) {\n this.setEventHeader(eventHeaders);\n }\n }\n\n async getFullnodeVersion() {\n try {\n const nodeInfo = await this.trx.getNodeInfo();\n this.fullnodeVersion = nodeInfo.configNodeInfo.codeVersion;\n if (this.fullnodeVersion.split('.').length === 2) {\n this.fullnodeVersion += '.0';\n }\n } catch (err) {\n this.fullnodeVersion = DEFAULT_VERSION;\n }\n }\n\n setDefaultBlock(blockID: false | 'latest' | 'earliest' | number = false) {\n if ([false, 'latest', 'earliest', 0].includes(blockID)) {\n return (this.defaultBlock = blockID);\n }\n\n if (!utils.isInteger(blockID) || !blockID) throw new Error('Invalid block ID provided');\n\n return (this.defaultBlock = Math.abs(blockID));\n }\n\n setPrivateKey(privateKey: string) {\n try {\n this.setAddress(TronWeb.address.fromPrivateKey(privateKey) as string);\n } catch {\n throw new Error('Invalid private key provided');\n }\n\n this.defaultPrivateKey = privateKey;\n this.emit('privateKeyChanged', privateKey);\n }\n\n setAddress(address: string) {\n if (!TronWeb.isAddress(address)) throw new Error('Invalid address provided');\n\n const hex = TronWeb.address.toHex(address);\n const base58 = TronWeb.address.fromHex(address);\n\n if (this.defaultPrivateKey && TronWeb.address.fromPrivateKey(this.defaultPrivateKey) !== base58)\n this.defaultPrivateKey = false;\n\n this.defaultAddress = {\n hex,\n base58,\n };\n\n this.emit('addressChanged', { hex, base58 });\n }\n\n fullnodeSatisfies(version: string) {\n return semver.satisfies(this.fullnodeVersion, version);\n }\n\n isValidProvider(provider: unknown) {\n return Object.values(providers).some((knownProvider) => provider instanceof knownProvider);\n }\n\n setFullNode(fullNode: HttpProvider | string) {\n if (isString(fullNode)) fullNode = new providers.HttpProvider(fullNode);\n\n if (!this.isValidProvider(fullNode)) throw new Error('Invalid full node provided');\n\n this.fullNode = fullNode;\n this.fullNode.setStatusPage('wallet/getnowblock');\n }\n\n setSolidityNode(solidityNode: HttpProvider | string) {\n if (utils.isString(solidityNode)) solidityNode = new providers.HttpProvider(solidityNode);\n\n if (!this.isValidProvider(solidityNode)) throw new Error('Invalid solidity node provided');\n\n this.solidityNode = solidityNode;\n this.solidityNode.setStatusPage('walletsolidity/getnowblock');\n }\n\n setEventServer(eventServer: NodeProvider, healthcheck?: string) {\n this.event.setServer(eventServer, healthcheck);\n }\n\n setHeader(headers = {}) {\n const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, '', '', headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, '', '', headers);\n const eventServer = new providers.HttpProvider(this.eventServer!.host, 30000, '', '', headers);\n\n this.setFullNode(fullNode);\n this.setSolidityNode(solidityNode);\n this.setEventServer(eventServer);\n }\n\n setFullNodeHeader(headers = {}) {\n const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, '', '', headers);\n const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, '', '', headers);\n\n this.setFullNode(fullNode);\n this.setSolidityNode(solidityNode);\n }\n\n setEventHeader(headers = {}) {\n const eventServer = new providers.HttpProvider(this.eventServer!.host, 30000, '', '', headers);\n this.setEventServer(eventServer);\n }\n\n currentProviders() {\n return {\n fullNode: this.fullNode,\n solidityNode: this.solidityNode,\n eventServer: this.eventServer,\n };\n }\n\n currentProvider() {\n return this.currentProviders();\n }\n\n getEventResult(...params: Parameters<Event['getEventsByContractAddress']>): ReturnType<Event['getEventsByContractAddress']> {\n return this.event.getEventsByContractAddress(...params);\n }\n\n getEventByTransactionID(\n ...params: Parameters<Event['getEventsByTransactionID']>\n ): ReturnType<Event['getEventsByTransactionID']> {\n return this.event.getEventsByTransactionID(...params);\n }\n\n contract(abi: ContractAbiInterface = [], address?: Address) {\n return new Contract(this, abi, address!);\n }\n\n address: typeof TronWeb.address;\n static get address() {\n return {\n fromHex(address: string) {\n return fromHex(address);\n },\n toHex(address: string) {\n return toHex(address);\n },\n toChecksumAddress(address: string) {\n return toChecksumAddress(address);\n },\n isChecksumAddress(address: string) {\n return isChecksumAddress(address);\n },\n fromPrivateKey(privateKey: string, strict = false) {\n return fromPrivateKey(privateKey, strict);\n },\n };\n }\n\n sha3: typeof TronWeb.sha3;\n static sha3(string: string, prefix = true) {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n }\n\n toHex: typeof TronWeb.toHex;\n static toHex(val: string | number | boolean | Record<string | number | symbol, unknown> | unknown[] | IBigNumber) {\n if (utils.isBoolean(val)) return TronWeb.fromDecimal(+val);\n\n if (utils.isBigNumber(val)) return TronWeb.fromDecimal(val);\n\n if (typeof val === 'object') return TronWeb.fromUtf8(JSON.stringify(val));\n\n if (utils.isString(val)) {\n if (/^(-|)0x/.test(val)) return val;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (!isFinite(val) || /^\\s*$/.test(val)) return TronWeb.fromUtf8(val);\n }\n\n const result = TronWeb.fromDecimal(val as number);\n if (result === '0xNaN') {\n throw new Error('The passed value is not convertible to a hex string');\n } else {\n return result;\n }\n }\n\n toUtf8: typeof TronWeb.toUtf8;\n static toUtf8(hex: string) {\n if (utils.isHex(hex)) {\n hex = hex.replace(/^0x/, '');\n return Buffer.from(hex, 'hex').toString('utf8');\n } else {\n throw new Error('The passed value is not a valid hex string');\n }\n }\n\n fromUtf8: typeof TronWeb.fromUtf8;\n static fromUtf8(string: string) {\n if (!utils.isString(string)) {\n throw new Error('The passed value is not a valid utf-8 string');\n }\n return '0x' + Buffer.from(string, 'utf8').toString('hex');\n }\n\n toAscii: typeof TronWeb.toAscii;\n static toAscii(hex: string) {\n if (utils.isHex(hex)) {\n let str = '';\n let i = 0;\n const l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i += 2) {\n const code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n return str;\n } else {\n throw new Error('The passed value is not a valid hex string');\n }\n }\n\n fromAscii: typeof TronWeb.fromAscii;\n static fromAscii(string: string, padding?: number) {\n if (!utils.isString(string)) {\n throw new Error('The passed value is not a valid utf-8 string');\n }\n return '0x' + Buffer.from(string, 'ascii').toString('hex').padEnd(padding!, '0');\n }\n\n toDecimal: typeof TronWeb.toDecimal;\n static toDecimal(value: string | number | IBigNumber) {\n return TronWeb.toBigNumber(value).toNumber();\n }\n\n fromDecimal: typeof TronWeb.fromDecimal;\n static fromDecimal(value: number | IBigNumber) {\n const number = TronWeb.toBigNumber(value);\n const result = number.toString(16);\n\n return number.isLessThan(0) ? '-0x' + result.substr(1) : '0x' + result;\n }\n\n fromSun: typeof TronWeb.fromSun;\n static fromSun(sun: number): string | IBigNumber {\n const trx = TronWeb.toBigNumber(sun).div(1_000_000);\n return utils.isBigNumber(sun) ? trx : trx.toString(10);\n }\n\n toSun: typeof TronWeb.toSun;\n static toSun(trx: number): string | IBigNumber {\n const sun = TronWeb.toBigNumber(trx).times(1_000_000);\n return utils.isBigNumber(trx) ? sun : sun.toString(10);\n }\n\n toBigNumber: typeof TronWeb.toBigNumber;\n static toBigNumber(amount: string | number | IBigNumber = 0): IBigNumber {\n if (utils.isBigNumber(amount)) return amount;\n\n if (utils.isString(amount) && /^(-|)0x/.test(amount)) return new BigNumber(amount.replace('0x', ''), 16);\n\n return new BigNumber(amount.toString(10), 10);\n }\n\n isAddress: typeof TronWeb.isAddress;\n static isAddress(address: unknown = ''): boolean {\n return isAddress(address);\n }\n\n createAccount: typeof TronWeb.createAccount;\n static async createAccount() {\n const account = utils.accounts.generateAccount();\n\n return account;\n }\n\n createRandom: typeof TronWeb.createRandom;\n static createRandom(\n ...params: Parameters<(typeof utils)['accounts']['generateRandom']>\n ): ReturnType<(typeof utils)['accounts']['generateRandom']> {\n const account = utils.accounts.generateRandom(...params);\n\n return account;\n }\n\n fromMnemonic: typeof TronWeb.fromMnemonic;\n static fromMnemonic(\n ...params: Parameters<(typeof utils)['accounts']['generateAccountWithMnemonic']>\n ): ReturnType<(typeof utils)['accounts']['generateAccountWithMnemonic']> {\n const account = utils.accounts.generateAccountWithMnemonic(...params);\n\n return account;\n }\n\n async isConnected() {\n return {\n fullNode: await this.fullNode.isConnected(),\n solidityNode: await this.solidityNode.isConnected(),\n eventServer: this.eventServer && (await this.eventServer.isConnected()),\n };\n }\n}\nexport default TronWeb;\n","import { Resource } from '../types/TransactionBuilder.js';\nimport { ContractAbiInterface } from './ABI.js';\nexport enum ContractType {\n AccountCreateContract = 'AccountCreateContract',\n TransferContract = 'TransferContract',\n TransferAssetContract = 'TransferAssetContract',\n VoteAssetContract = 'VoteAssetContract',\n VoteWitnessContract = 'VoteWitnessContract',\n WitnessCreateContract = 'WitnessCreateContract',\n AssetIssueContract = 'AssetIssueContract',\n WitnessUpdateContract = 'WitnessUpdateContract',\n ParticipateAssetIssueContract = 'ParticipateAssetIssueContract',\n AccountUpdateContract = 'AccountUpdateContract',\n FreezeBalanceContract = 'FreezeBalanceContract',\n UnfreezeBalanceContract = 'UnfreezeBalanceContract',\n CancelAllUnfreezeV2Contract = 'CancelAllUnfreezeV2Contract',\n WithdrawBalanceContract = 'WithdrawBalanceContract',\n UnfreezeAssetContract = 'UnfreezeAssetContract',\n UpdateAssetContract = 'UpdateAssetContract',\n ProposalCreateContract = 'ProposalCreateContract',\n ProposalApproveContract = 'ProposalApproveContract',\n ProposalDeleteContract = 'ProposalDeleteContract',\n SetAccountIdContract = 'SetAccountIdContract',\n CustomContract = 'CustomContract',\n CreateSmartContract = 'CreateSmartContract',\n TriggerSmartContract = 'TriggerSmartContract',\n GetContract = 'GetContract',\n UpdateSettingContract = 'UpdateSettingContract',\n ExchangeCreateContract = 'ExchangeCreateContract',\n ExchangeInjectContract = 'ExchangeInjectContract',\n ExchangeWithdrawContract = 'ExchangeWithdrawContract',\n ExchangeTransactionContract = 'ExchangeTransactionContract',\n UpdateEnergyLimitContract = 'UpdateEnergyLimitContract',\n AccountPermissionUpdateContract = 'AccountPermissionUpdateContract',\n ClearABIContract = 'ClearABIContract',\n UpdateBrokerageContract = 'UpdateBrokerageContract',\n ShieldedTransferContract = 'ShieldedTransferContract',\n MarketSellAssetContract = 'MarketSellAssetContract',\n MarketCancelOrderContract = 'MarketCancelOrderContract',\n FreezeBalanceV2Contract = 'FreezeBalanceV2Contract',\n UnfreezeBalanceV2Contract = 'UnfreezeBalanceV2Contract',\n WithdrawExpireUnfreezeContract = 'WithdrawExpireUnfreezeContract',\n DelegateResourceContract = 'DelegateResourceContract',\n UnDelegateResourceContract = 'UnDelegateResourceContract',\n UNRECOGNIZED = 'UNRECOGNIZED',\n}\nexport enum Permission_PermissionType {\n Owner = 0,\n Witness = 1,\n Active = 2,\n UNRECOGNIZED = -1,\n}\n\nexport interface Key {\n address: Uint8Array;\n weight: number;\n}\n\nexport enum AccountType {\n Normal = 0,\n AssetIssue = 1,\n Contract = 2,\n UNRECOGNIZED = -1,\n}\n\nexport interface PermissionKey {\n address: string;\n weight: number;\n}\nexport interface Permission {\n type: number;\n /** Owner id=0, Witness id=1, Active id start by 2 */\n id?: number;\n permission_name: string;\n threshold: number;\n operations?: string;\n keys: PermissionKey[];\n}\n\nexport interface TransferContract {\n to_address: string;\n owner_address: string;\n amount: number;\n}\n\nexport interface TransferAssetContract {\n to_address: string;\n owner_address: string;\n amount: number;\n asset_name: string;\n}\n\nexport interface ParticipateAssetIssueContract {\n to_address: string;\n owner_address: string;\n asset_name: string;\n amount: number;\n}\n\nexport interface TriggerSmartContract {\n owner_address: string;\n contract_address: string;\n call_value?: number;\n call_token_value?: number;\n token_id?: number;\n data?: string;\n}\n\nexport interface FreezeBalanceContract {\n owner_address: string;\n frozen_balance: number;\n frozen_duration: number;\n resource?: Resource;\n receiver_address?: string;\n}\n\nexport interface UnfreezeBalanceContract {\n owner_address: string;\n resource: string;\n receiver_address: string;\n}\n\nexport interface WithdrawBalanceContract {\n owner_address: string;\n}\n\nexport interface FreezeBalanceV2Contract {\n owner_address: string;\n frozen_balance: number;\n resource?: Resource;\n}\n\nexport interface CancelFreezeBalanceV2Contract {\n owner_address: string;\n}\n\nexport interface UnfreezeBalanceV2Contract {\n owner_address: string;\n unfreeze_balance: number;\n resource?: Resource;\n}\n\nexport interface DelegateResourceContract {\n owner_address: string;\n receiver_address: string;\n balance: number;\n resource?: Resource;\n lock?: boolean;\n lock_period?: number;\n}\n\nexport interface UnDelegateResourceContract {\n owner_address: string;\n receiver_address: string;\n balance: number;\n resource?: Resource;\n}\n\nexport interface WithdrawExpireUnfreezeContract {\n owner_address: string;\n}\n\nexport interface CreateSmartContract {\n owner_address: string;\n call_token_value: number;\n token_id: string;\n new_contract: {\n name: string;\n origin_address: string;\n contract_address: string;\n abi: { entrys?: ContractAbiInterface };\n bytecode: string;\n call_value: number;\n consume_user_resource_percent: number;\n origin_energy_limit: number;\n };\n}\n\nexport interface DeployConstantContract {\n data: string;\n owner_address: string;\n call_value?: number;\n token_id?: number | string;\n call_token_value?: number | string;\n}\n\nexport interface ClearABIContract {\n contract_address: string;\n owner_address: string;\n}\n\nexport interface UpdateBrokerageContract {\n brokerage: number;\n owner_address: string;\n}\n\ninterface FrozenSupply {\n frozen_amount: number;\n frozen_days: number;\n}\nexport interface AssetIssueContract {\n owner_address: string;\n name: string;\n abbr: string;\n description: string;\n url: string;\n total_supply: number;\n trx_num: number;\n num: number;\n start_time: number;\n end_time: number;\n precision: number;\n free_asset_net_limit: number;\n public_free_asset_net_limit: number;\n public_free_asset_net_usage: number;\n public_latest_free_net_time: number;\n vote_score: number;\n frozen_supply: FrozenSupply[];\n}\n\nexport interface AccountCreateContract {\n account_address: string;\n owner_address: string;\n}\n\nexport interface AccountUpdateContract {\n account_name: string;\n owner_address: string;\n}\n\nexport interface SetAccountIdContract {\n account_id: string;\n owner_address: string;\n}\n\nexport interface ProposalCreateContract {\n owner_address: string;\n parameters: Record<string, string | number>[];\n}\n\nexport interface ProposalDeleteContract {\n owner_address: string;\n proposal_id: number;\n}\n\nexport interface VoteProposalContract {\n owner_address: string;\n proposal_id: number;\n is_add_approval: boolean;\n}\n\nexport interface ExchangeCreateContract {\n owner_address: string;\n first_token_id: string;\n first_token_balance: number;\n second_token_id: string;\n second_token_balance: number;\n}\n\nexport interface ExchangeInjectContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n}\n\nexport interface ExchangeWithdrawContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n}\n\nexport interface ExchangeTransactionContract {\n owner_address: string;\n exchange_id: number;\n token_id: string;\n quant: number;\n expected: number;\n}\n\nexport interface UpdateSettingContract {\n owner_address: string;\n contract_address: string;\n consume_user_resource_percent: number;\n}\n\nexport interface UpdateEnergyLimitContract {\n owner_address: string;\n contract_address: string;\n origin_energy_limit: number;\n}\n\nexport interface AccountPermissionUpdateContract {\n owner_address: string;\n owner?: Permission;\n witness?: Permission;\n actives?: Permission[];\n}\n\nexport interface UpdateAssetContract {\n owner_address: string;\n description: string;\n url: string;\n new_limit?: number;\n new_public_limit?: number;\n}\n\nexport interface WitnessCreateContract {\n owner_address: string;\n url: string;\n}\n\nexport interface VoteWitnessContract {\n owner_address: string;\n votes: { vote_address: string; vote_count: number }[];\n}\n\nexport type ContractParamter =\n | TransferContract\n | TransferAssetContract\n | ParticipateAssetIssueContract\n | TriggerSmartContract\n | FreezeBalanceContract\n | UnfreezeBalanceContract\n | WithdrawBalanceContract\n | FreezeBalanceV2Contract\n | CancelFreezeBalanceV2Contract\n | UnfreezeBalanceV2Contract\n | DelegateResourceContract\n | UnDelegateResourceContract\n | WithdrawExpireUnfreezeContract\n | CreateSmartContract\n | ClearABIContract\n | UpdateBrokerageContract\n | AssetIssueContract\n | AccountCreateContract\n | AccountUpdateContract\n | SetAccountIdContract\n | ProposalCreateContract\n | ProposalDeleteContract\n | VoteProposalContract\n | ExchangeCreateContract\n | ExchangeInjectContract\n | ExchangeWithdrawContract\n | ExchangeTransactionContract\n | UpdateSettingContract\n | UpdateEnergyLimitContract\n | AccountPermissionUpdateContract\n | UpdateAssetContract\n | WitnessCreateContract\n | VoteWitnessContract;\n","import { AccountType, Permission } from './Contract.js';\nimport { SignedTransaction, Transaction } from './Transaction.js';\nimport { Resource } from './TransactionBuilder.js';\n\ntype HTTPMap<T extends string | number | symbol, U> = Record<T, U>[];\n\nexport interface FrozenSupply {\n frozen_amount: number;\n frozen_days: number;\n}\n\nexport interface Token {\n id: string;\n owner_address: string;\n name: string;\n abbr: string;\n total_supply: number;\n frozen_supply: FrozenSupply[];\n trx_num: number;\n precision: number;\n num: number;\n start_time: number;\n end_time: number;\n order: number; // useless\n vote_score: number;\n description: string;\n url: string;\n free_asset_net_limit: number;\n public_free_asset_net_limit: number;\n public_free_asset_net_usage: number;\n public_latest_free_net_time: number;\n}\n\nexport interface Frozen {\n frozen_balance: number;\n expire_time: number;\n}\n\nexport interface Vote {\n vote_address: string;\n vote_count: number;\n}\n\nexport interface AccountResource {\n energy_usage: number;\n frozen_balance_for_energy: Frozen;\n latest_consume_time_for_energy: number;\n acquired_delegated_frozen_balance_for_energy: number;\n delegated_frozen_balance_for_energy: number;\n storage_limit: number;\n storage_usage: number;\n latest_exchange_storage_time: number;\n energy_window_size: number;\n delegated_frozenV2_balance_for_energy: number;\n acquired_delegated_frozenV2_balance_for_energy: number;\n energy_window_optimized: boolean;\n}\n\nexport enum ResourceCode {\n BANDWIDTH = 0x00,\n ENERGY = 0x01,\n TRON_POWER = 0x02,\n}\n\nexport interface FreezeV2 {\n type: Resource;\n amount: number;\n}\nexport interface UnFreezeV2 {\n type: Resource;\n unfreeze_amount: number;\n unfreeze_expire_time: number;\n}\n\nexport interface Account {\n account_name: string;\n type: AccountType;\n address: string;\n balance: number;\n votes: Vote[];\n asset: HTTPMap<string, number>;\n assetV2: HTTPMap<string, number>;\n frozen: Frozen[];\n net_usage: number;\n acquired_delegated_frozen_balance_for_bandwidth: number;\n delegated_frozen_balance_for_bandwidth: number;\n old_tron_power: number;\n tron_power: Frozen;\n asset_optimized: boolean;\n create_time: number;\n latest_opration_time: number;\n allowance: number;\n latest_withdraw_time: number;\n code: string;\n is_witness: boolean;\n is_committee: boolean;\n frozen_supply: Frozen;\n asset_issued_name: string;\n asset_issued_ID: string;\n latest_asset_operation_time: HTTPMap<string, number>;\n latest_asset_operation_timeV2: HTTPMap<string, number>;\n free_net_usage: number;\n free_asset_net_usage: HTTPMap<string, number>;\n free_asset_net_usageV2: HTTPMap<string, number>;\n latest_consume_time: number;\n latest_consume_free_time: number;\n account_id: string;\n net_window_size: number;\n net_window_optimized: number;\n account_resource: AccountResource;\n codeHash: string;\n owner_permission: Permission;\n witness_permission: Permission;\n active_permission: Permission[];\n frozenV2: FreezeV2[];\n unfrozenV2: UnFreezeV2[];\n delegated_frozenV2_balance_for_bandwidth: number;\n acquired_delegated_frozenV2_balance_for_bandwidth: number;\n}\n\nexport interface AccountNetMessage {\n freeNetUsed: number;\n freeNetLimit: number;\n NetUsed: number;\n NetLimit: number;\n assetNetUsed: HTTPMap<string, number>;\n assetNetLimit: HTTPMap<string, number>;\n TotalNetLimit: number;\n TotalNetWeight: number;\n}\n\nexport interface Witness {\n address: string;\n voteCount: number;\n pubKey: string;\n url: string;\n totalProduced: number;\n totalMissed: number;\n latestBlockNum: number;\n latestSlotNum: number;\n isJobs: boolean;\n}\n\nenum TransactionSignWeight_response_code {\n ENOUGH_PERMISSION = 'ENOUGH_PERMISSION',\n NOT_ENOUGH_PERMISSION = 'NOT_ENOUGH_PERMISSION', // error in\n SIGNATURE_FORMAT_ERROR = 'SIGNATURE_FORMAT_ERROR',\n COMPUTE_ADDRESS_ERROR = 'COMPUTE_ADDRESS_ERROR',\n PERMISSION_ERROR = 'PERMISSION_ERROR', //The key is not in permission\n OTHER_ERROR = 'OTHER_ERROR',\n}\n\ninterface TransactionSignWeightResult {\n code: TransactionSignWeight_response_code;\n message: string;\n}\n\nexport interface TransactionSignWeight {\n permission: Permission;\n approved_list: string[];\n current_weight: number;\n result: TransactionSignWeightResult;\n transaction: { transaction: Transaction };\n}\n\nenum BroadcastReturn_response_code {\n SUCCESS = 0,\n SIGERROR = 1, // error in signature\n CONTRACT_VALIDATE_ERROR = 2,\n CONTRACT_EXE_ERROR = 3,\n BANDWITH_ERROR = 4,\n DUP_TRANSACTION_ERROR = 5,\n TAPOS_ERROR = 6,\n TOO_BIG_TRANSACTION_ERROR = 7,\n TRANSACTION_EXPIRATION_ERROR = 8,\n SERVER_BUSY = 9,\n NO_CONNECTION = 10,\n NOT_ENOUGH_EFFECTIVE_CONNECTION = 11,\n OTHER_ERROR = 20,\n}\n\nexport interface BroadcastReturn<T extends SignedTransaction> {\n result: boolean;\n code: BroadcastReturn_response_code;\n message: string;\n transaction: T;\n}\n\nexport interface BroadcastHexReturn {\n result: boolean;\n txid: string;\n code: string;\n message: string;\n transaction: string;\n}\n\nexport interface AddressOptions {\n privateKey?: string;\n address?: string;\n}\n\nenum ProposalState {\n PENDING = 0,\n DISAPPROVED = 1,\n APPROVED = 2,\n CANCELED = 3,\n}\n\nexport interface Proposal {\n proposal_id: number;\n proposer_address: string;\n parameters: HTTPMap<number, number>;\n expiration_time: number;\n create_time: number;\n approvals: string[];\n state: ProposalState;\n}\n\nexport interface ChainParameter {\n key: string;\n value: number;\n}\n\nexport interface AccountResourceMessage {\n freeNetUsed: number;\n freeNetLimit: number;\n NetUsed: number;\n NetLimit: number;\n assetNetUsed: HTTPMap<string, number>;\n assetNetLimit: HTTPMap<string, number>;\n TotalNetLimit: number;\n TotalNetWeight: number;\n TotalTronPowerWeight: number;\n tronPowerUsed: number;\n tronPowerLimit: number;\n EnergyUsed: number;\n EnergyLimit: number;\n TotalEnergyLimit: number;\n TotalEnergyWeight: number;\n storageUsed: number;\n storageLimit: number;\n}\n\nexport type Address = string;\n\nexport interface Exchange {\n exchange_id: number;\n creator_address: Address;\n create_time: number;\n first_token_id: string;\n first_token_balance: number;\n second_token_id: string;\n second_token_balance: number;\n}\n\nexport interface TransactionInfo {\n id: string;\n fee: number;\n blockNumber: number;\n blockTimeStamp: number;\n contractResult: string[];\n contract_address: string;\n receipt: {\n energy_usage: number;\n energy_fee: number;\n origin_energy_usage: number;\n energy_usage_total: number;\n net_usage: number;\n net_fee: number;\n result: string;\n energy_penalty_total: number;\n };\n log: {\n address: Address;\n topics: string[];\n data: string;\n }[];\n result?: 'FAILED';\n resMessage: string;\n withdraw_amount: number;\n unfreeze_amount: number;\n withdraw_expire_amount: number;\n cancel_unfreezeV2_amount: HTTPMap<string, number>;\n exchange_id: string;\n}\n","export * from './ABI.js';\nexport * from './APIResponse.js';\nexport * from './Contract.js';\nexport * from './Providers.js';\nexport * from './Transaction.js';\nexport * from './TransactionBuilder.js';\nexport * from './TronWeb.js';\nexport * from './Trx.js';\nexport * from './UtilsTypes.js';\n","import { AbiCoder } from './ethersUtils.js';\nimport { TronWeb } from '../tronweb.js';\nimport { ADDRESS_PREFIX, ADDRESS_PREFIX_REGEX } from './address.js';\nimport { FunctionFragment, AbiParamsCommon, AbiInputsType } from '../types/ABI.js';\n\nconst abiCoder = new AbiCoder();\n\nfunction _addressToHex(value: string) {\n return TronWeb.address.toHex(value).replace(ADDRESS_PREFIX_REGEX, '0x');\n}\n\nexport function decodeParams(names: string[], types: string[], output: string, ignoreMethodHash = false) {\n if (ignoreMethodHash && output.replace(/^0x/, '').length % 64 === 8) output = '0x' + output.replace(/^0x/, '').substring(8);\n\n if (output.replace(/^0x/, '').length % 64) {\n throw new Error('The encoded string is not valid. Its length must be a multiple of 64.');\n }\n\n // workaround for unsupported trcToken type\n types = types.map((type) => {\n if (/trcToken/.test(type)) {\n type = type.replace(/trcToken/, 'uint256');\n }\n return type;\n });\n\n return abiCoder.decode(types, output).reduce(\n (obj, arg, index) => {\n if (types[index] == 'address') {\n arg = ADDRESS_PREFIX + arg.substr(2).toLowerCase();\n }\n\n if (names.length) {\n obj[names[index]] = arg;\n } else {\n obj.push(arg);\n }\n\n return obj;\n },\n names.length ? {} : []\n );\n}\n\nexport function encodeParams(types: string[], values: any[]) {\n for (let i = 0; i < types.length; i++) {\n if (types[i] === 'address') {\n values[i] = TronWeb.address.toHex(values[i]).replace(ADDRESS_PREFIX_REGEX, '0x');\n }\n }\n\n return abiCoder.encode(types, values);\n}\n\nfunction extractSize(type: string) {\n const size = type.match(/([a-zA-Z0-9])(\\[.*\\])/);\n return size ? size[2] : '';\n}\n\nfunction extractArrayDim(type: string) {\n const size = extractSize(type);\n return (size.match(/\\]\\[/g) || []).length + 1;\n}\n\nexport function encodeParamsV2ByABI(funABI: FunctionFragment, args: any[]) {\n const types: string[] = [];\n\n const buildFullTypeDefinition = (typeDef: AbiParamsCommon): string => {\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType: AbiParamsCommon) => {\n return buildFullTypeDefinition(innerType);\n });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}`;\n }\n\n if (/trcToken/.test(typeDef.type)) return typeDef.type.replace(/trcToken/, 'uint256');\n\n return typeDef.type;\n };\n\n const convertTypes = (types: string[]) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (/trcToken/.test(type)) types[i] = type.replace(/trcToken/, 'uint256');\n }\n };\n\n const convertAddresses = (addrArr: string | string[]) => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs) as string;\n });\n return addrArr;\n } else {\n return _addressToHex(addrArr);\n }\n };\n\n const mapTuple = (components: ReadonlyArray<FunctionFragment>, args: any[], dimension: number) => {\n if (dimension > 1) {\n if (args.length) {\n args.forEach((arg) => {\n mapTuple(components, arg, dimension - 1);\n });\n }\n } else {\n if (args.length && dimension) {\n args.forEach((arg) => {\n encodeArgs(components, arg);\n });\n }\n }\n };\n\n const encodeArgs = (inputs: ReadonlyArray<AbiParamsCommon> = [], args: any[]) => {\n if (inputs.length)\n inputs.forEach((input: AbiParamsCommon, i: number) => {\n const type = input.type;\n\n if (args[i])\n if (type === 'address') args[i] = _addressToHex(args[i]);\n else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)![0] === 'address[') convertAddresses(args[i]);\n else if (type.indexOf('tuple') === 0)\n if (extractSize(type)) {\n const dimension = extractArrayDim(type);\n mapTuple(input.components!, args[i], dimension);\n } else encodeArgs(input.components!, args[i]);\n });\n };\n\n if (funABI.inputs && funABI.inputs.length) {\n for (let i = 0; i < funABI.inputs.length; i++) {\n const type = funABI.inputs[i].type;\n // \"false\" will be converting to `false` and \"true\" will be working\n // fine as abiCoder assume anything in quotes as `true`\n if (type === 'bool' && args[i] === 'false') {\n args[i] = false;\n }\n types.push(type.indexOf('tuple') === 0 ? buildFullTypeDefinition(funABI.inputs[i]) : type);\n if (args.length < types.length) {\n args.push('');\n }\n }\n }\n\n encodeArgs(funABI.inputs, args);\n convertTypes(types);\n\n return abiCoder.encode(types, args);\n}\n\nexport function decodeParamsV2ByABI(funABI: FunctionFragment | AbiInputsType, data: string | Uint8Array) {\n const convertTypeNames = (types: string[]) => {\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n if (/^trcToken/.test(type)) types[i] = type.replace(/^trcToken/, 'uint256');\n }\n };\n\n const convertAddresses = (addrArr: string | string[]) => {\n if (Array.isArray(addrArr)) {\n addrArr.forEach((addrs, i) => {\n addrArr[i] = convertAddresses(addrs) as string;\n });\n return addrArr;\n } else {\n return TronWeb.address.toHex(addrArr);\n }\n };\n\n const mapTuple = (components: ReadonlyArray<AbiParamsCommon>, args: string[] | string[][], dimension: number) => {\n if (dimension > 1) {\n if (args.length) {\n args.forEach((arg) => {\n mapTuple(components, arg as string[], dimension - 1);\n });\n }\n } else {\n if (args.length && dimension) {\n args.forEach((arg) => {\n decodeResult(components, arg as string[]);\n });\n }\n }\n };\n\n const buildFullTypeNameDefinition = (typeDef: AbiParamsCommon): string => {\n const name = typeDef.name ? ` ${typeDef.name}` : '';\n if (typeDef && typeDef.type.indexOf('tuple') === 0 && typeDef.components) {\n const innerTypes = typeDef.components.map((innerType) => {\n return buildFullTypeNameDefinition(innerType);\n });\n return `tuple(${innerTypes.join(',')})${extractSize(typeDef.type)}${name}`;\n }\n if (/trcToken/.test(typeDef.type)) return typeDef.type.replace(/trcToken/, 'uint256') + name;\n\n return typeDef.type + name;\n };\n\n const decodeResult = (outputs: ReadonlyArray<AbiParamsCommon>, result: any[]) => {\n if (outputs.length)\n outputs.forEach((output, i) => {\n const { type, name } = output;\n\n if (result[i]) {\n if (type === 'address') {\n result[i] = TronWeb.address.toHex(result[i]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = TronWeb.address.toHex(result[i]);\n } else if (type.match(/^([^\\x5b]*)(\\x5b|$)/)![0] === 'address[') {\n convertAddresses(result[i]);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = convertAddresses(result[i]);\n } else if (type.indexOf('tuple') === 0) {\n if (extractSize(type)) {\n const dimension = extractArrayDim(type);\n mapTuple(output.components!, result[i], dimension);\n } else decodeResult(output.components!, result[i]);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n if (name) result[name] = result[i];\n }\n });\n };\n\n // Only decode if there supposed to be fields\n if ('outputs' in funABI && funABI.outputs && funABI.outputs.length > 0) {\n const outputTypes: any[] = [];\n for (let i = 0; i < funABI.outputs.length; i++) {\n const type = funABI.outputs[i].type;\n const name = funABI.outputs[i].name ? ` ${funABI.outputs[i].name}` : '';\n outputTypes.push(type.indexOf('tuple') === 0 ? buildFullTypeNameDefinition(funABI.outputs[i]) : type + name);\n }\n convertTypeNames(outputTypes);\n\n if (!data || !data.length) data = new Uint8Array(32 * funABI.outputs.length); // ensuring the data is at least filled by 0 cause `AbiCoder` throws if there's not engouh data\n // decode data\n const decodeRes = abiCoder.decode(outputTypes, data);\n const decodeResCopy = decodeRes.toArray(true);\n decodeResult(funABI.outputs, decodeResCopy);\n\n return decodeResCopy;\n }\n return [];\n}\n","import { byteArray2hexStr } from './bytes.js';\nimport { getBase58CheckAddress, genPriKey, getAddressFromPriKey, getPubKeyFromPriKey, pkToAddress } from './crypto.js';\nimport { ethersHDNodeWallet, Mnemonic, Wordlist } from './ethersUtils.js';\nimport { TRON_BIP39_PATH_INDEX_0 } from './address.js';\n\nconst INVALID_TRON_PATH_ERROR_MSG = 'Invalid tron path provided';\n\nexport function generateAccount() {\n const priKeyBytes = genPriKey();\n const pubKeyBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = getAddressFromPriKey(priKeyBytes);\n\n const privateKey = byteArray2hexStr(priKeyBytes);\n const publicKey = byteArray2hexStr(pubKeyBytes);\n\n return {\n privateKey,\n publicKey,\n address: {\n base58: getBase58CheckAddress(addressBytes),\n hex: byteArray2hexStr(addressBytes),\n },\n };\n}\n\nexport function generateRandom(password = '', path = TRON_BIP39_PATH_INDEX_0, wordlist?: Wordlist) {\n const account = ethersHDNodeWallet.createRandom(password, path, wordlist);\n\n const result = {\n mnemonic: account.mnemonic,\n privateKey: account.privateKey,\n publicKey: account.signingKey.publicKey,\n address: pkToAddress(account.privateKey.replace(/^0x/, '')),\n path: account.path,\n };\n\n return result;\n}\n\nexport function generateAccountWithMnemonic(\n mnemonic: string,\n path: string = TRON_BIP39_PATH_INDEX_0,\n password: string | null | undefined = '',\n wordlist: Wordlist | null = null\n) {\n // eslint-disable-next-line no-useless-escape\n if (!String(path).match(/^m\\/44\\'\\/195\\'/)) {\n throw new Error(INVALID_TRON_PATH_ERROR_MSG);\n }\n const account = ethersHDNodeWallet.fromMnemonic(Mnemonic.fromPhrase(mnemonic, password, wordlist), path);\n\n const result = {\n mnemonic: account.mnemonic,\n privateKey: account.privateKey,\n publicKey: account.signingKey.publicKey,\n address: pkToAddress(account.privateKey.replace(/^0x/, '')),\n };\n\n return result;\n}\n","import { hexStr2byteArray, byteArray2hexStr } from './code.js';\nimport { decodeBase58Address, getBase58CheckAddress, isAddressValid, pkToAddress } from './crypto.js';\nimport { isHex, isString } from './validations.js';\nimport { keccak256 } from './ethersUtils.js';\n\nexport const ADDRESS_SIZE = 34;\nexport const ADDRESS_PREFIX = '41';\nexport const ADDRESS_PREFIX_BYTE = 0x41;\nexport const ADDRESS_PREFIX_REGEX = /^(41)/;\n\nexport const TRON_BIP39_PATH_PREFIX = \"m/44'/195'\";\nexport const TRON_BIP39_PATH_INDEX_0 = TRON_BIP39_PATH_PREFIX + \"/0'/0/0\";\n\nexport function fromHex(address: string) {\n if (!isHex(address)) return address;\n\n return getBase58CheckAddress(hexStr2byteArray(address.replace(/^0x/, ADDRESS_PREFIX)));\n}\n\nexport function toHex(address: string) {\n if (isHex(address)) return address.toLowerCase().replace(/^0x/, ADDRESS_PREFIX);\n\n return byteArray2hexStr(decodeBase58Address(address) as number[]).toLowerCase();\n}\n\nfunction getChecksumAddress(address: string): string {\n address = address.toLowerCase();\n\n const chars = address.substring(2).split('');\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = hexStr2byteArray(keccak256(expanded).slice(2));\n\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n\n return ADDRESS_PREFIX + chars.join('');\n}\n\nexport function toChecksumAddress(address: string) {\n if (!isAddress(address)) throw new Error(`'${address}' is not a valid address string`);\n return getChecksumAddress(toHex(address));\n}\n\nexport function isChecksumAddress(address: string) {\n if (!isHex(address) || address.length !== 42) return false;\n try {\n return toChecksumAddress(address) === address;\n } catch {\n return false;\n }\n}\n\nexport function fromPrivateKey(privateKey: string, strict = false) {\n try {\n return pkToAddress(privateKey, strict);\n } catch {\n return false;\n }\n}\n\nexport function isAddress(address: unknown): boolean {\n if (!address || !isString(address)) return false;\n\n // Convert HEX to Base58\n if (address.length === 42) {\n try {\n // it throws an error if the address starts with 0x\n return isAddress(getBase58CheckAddress(hexStr2byteArray(address)));\n } catch (err) {\n return false;\n }\n }\n try {\n return isAddressValid(address);\n } catch (err) {\n return false;\n }\n}\n","import type { BytesLike } from '../types/UtilsTypes.js';\nconst ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nconst ALPHABET_MAP = {} as Record<string, number>;\n\nfor (let i = 0; i < ALPHABET.length; i++) ALPHABET_MAP[ALPHABET.charAt(i)] = i;\n\nconst BASE = 58;\n\nexport function encode58(buffer: BytesLike | string) {\n if (buffer.length === 0) return '';\n\n let i: number;\n let j: number;\n\n const digits = [0];\n\n for (i = 0; i < buffer.length; i++) {\n for (j = 0; j < digits.length; j++) digits[j] <<= 8;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n digits[0] += buffer[i];\n let carry = 0;\n\n for (j = 0; j < digits.length; ++j) {\n digits[j] += carry;\n carry = (digits[j] / BASE) | 0;\n digits[j] %= BASE;\n }\n\n while (carry) {\n digits.push(carry % BASE);\n carry = (carry / BASE) | 0;\n }\n }\n\n for (i = 0; buffer[i] === 0 && i < buffer.length - 1; i++) digits.push(0);\n\n return digits\n .reverse()\n .map((digit) => ALPHABET[digit])\n .join('');\n}\n\nexport function decode58(string: string) {\n if (string.length === 0) return [];\n\n let i;\n let j;\n\n const bytes = [0];\n\n for (i = 0; i < string.length; i++) {\n const c: string = string[i];\n\n if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character');\n\n for (j = 0; j < bytes.length; j++) bytes[j] *= BASE;\n\n bytes[0] += ALPHABET_MAP[c];\n let carry = 0;\n\n for (j = 0; j < bytes.length; ++j) {\n bytes[j] += carry;\n carry = bytes[j] >> 8;\n bytes[j] &= 0xff;\n }\n\n while (carry) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n for (i = 0; string[i] === '1' && i < string.length - 1; i++) bytes.push(0);\n\n return bytes.reverse();\n}\n","import type { BytesLike } from '../types/UtilsTypes.js';\n\nconst _keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nexport class Base64 {\n encode(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) enc3 = enc4 = 64;\n else if (isNaN(chr3)) enc4 = 64;\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n encodeIgnoreUtf8(inputBytes: BytesLike) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n while (i < inputBytes.length) {\n chr1 = inputBytes[i++];\n chr2 = inputBytes[i++];\n chr3 = inputBytes[i++];\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) enc3 = enc4 = 64;\n else if (isNaN(chr3)) enc4 = 64;\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n }\n\n return output;\n }\n\n decode(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n // eslint-disable-next-line no-useless-escape\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n while (i < input.length) {\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64) output = output + String.fromCharCode(chr3);\n }\n\n return this._utf8_decode(output);\n }\n\n decodeToByteArray(input: string) {\n let output = '';\n let chr1: number;\n let chr2: number;\n let chr3: number;\n let enc1: number;\n let enc2: number;\n let enc3: number;\n let enc4: number;\n let i = 0;\n\n // eslint-disable-next-line no-useless-escape\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n while (i < input.length) {\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) output = output + String.fromCharCode(chr2);\n\n if (enc4 != 64) output = output + String.fromCharCode(chr3);\n }\n\n return this._out2ByteArray(output);\n }\n\n _out2ByteArray(utftext: string) {\n const byteArray: BytesLike = new Array(utftext.length);\n\n let i = 0;\n let c = 0;\n\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n byteArray[i] = c;\n i++;\n }\n\n return byteArray;\n }\n\n _utf8_encode(string: string) {\n string = string.replace(/\\r\\n/g, '\\n');\n let utftext = '';\n\n for (let n = 0; n < string.length; n++) {\n const c = string.charCodeAt(n);\n\n if (c < 128) {\n utftext += String.fromCharCode(c);\n } else if (c > 127 && c < 2048) {\n utftext += String.fromCharCode((c >> 6) | 192);\n utftext += String.fromCharCode((c & 63) | 128);\n } else {\n utftext += String.fromCharCode((c >> 12) | 224);\n utftext += String.fromCharCode(((c >> 6) & 63) | 128);\n utftext += String.fromCharCode((c & 63) | 128);\n }\n }\n\n return utftext;\n }\n\n _utf8_decode(utftext: string) {\n let string = '';\n let i = 0;\n let c = 0;\n let c2 = 0;\n let c3 = 0;\n\n while (i < utftext.length) {\n c = utftext.charCodeAt(i);\n\n if (c < 128) {\n string += String.fromCharCode(c);\n i++;\n } else if (c > 191 && c < 224) {\n c2 = utftext.charCodeAt(i + 1);\n string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n i += 2;\n } else {\n c2 = utftext.charCodeAt(i + 1);\n c3 = utftext.charCodeAt(i + 2);\n\n string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\n i += 3;\n }\n }\n\n return string;\n }\n}\n","import { Base64 } from './base64.js';\nimport { BytesLike } from '../types/UtilsTypes.js';\n\nexport function byte2hexStr(byte: number) {\n if (byte < 0 || byte > 255) throw new Error('Input must be a byte');\n\n const hexByteMap = '0123456789ABCDEF';\n\n let str = '';\n str += hexByteMap.charAt(byte >> 4);\n str += hexByteMap.charAt(byte & 0x0f);\n\n return str;\n}\n\nexport function bytesToString(arr: BytesLike) {\n let str = '';\n\n for (let i = 0; i < arr.length; i++) {\n const one = arr[i].toString(2);\n const v = one.match(/^1+?(?=0)/);\n\n if (v && one.length === 8) {\n const bytesLength = v[0].length;\n let store = arr[i].toString(2).slice(7 - bytesLength);\n\n for (let st = 1; st < bytesLength; st++) store += arr[st + i].toString(2).slice(2);\n\n str += String.fromCharCode(parseInt(store, 2));\n i += bytesLength - 1;\n } else {\n str += String.fromCharCode(arr[i]);\n }\n }\n\n return str;\n}\n\nexport function hextoString(hex: string) {\n const arr = hex.replace(/^0x/, '').split('');\n let out = '';\n\n for (let i = 0; i < arr.length / 2; i++) {\n const tmp = `0x${arr[i * 2]}${arr[i * 2 + 1]}`;\n out += String.fromCharCode(parseInt(tmp));\n }\n\n return out;\n}\n\nexport function byteArray2hexStr(byteArray: BytesLike) {\n let str = '';\n\n for (let i = 0; i < byteArray.length; i++) str += byte2hexStr(byteArray[i]);\n\n return str;\n}\n\nexport function base64DecodeFromString(string64: string) {\n return new Base64().decodeToByteArray(string64);\n}\n\nexport function base64EncodeToString(bytes: BytesLike) {\n const b = new Base64();\n const string64 = b.encodeIgnoreUtf8(bytes);\n\n return string64;\n}\n","import {\n byte2hexStr,\n bytesToString,\n hextoString,\n byteArray2hexStr,\n base64DecodeFromString,\n base64EncodeToString,\n} from './bytes.js';\n\nimport type { BytesLike } from '../types/UtilsTypes.js';\n\nexport function bin2String(array: BytesLike) {\n return bytesToString(array);\n}\n\nexport function arrayEquals(array1: any[], array2: any[], strict = false) {\n if (array1.length != array2.length) return false;\n\n for (let i = 0; i < array1.length; i++) {\n if (strict) {\n if (array1[i] != array2[i]) return false;\n } else if (JSON.stringify(array1[i]) != JSON.stringify(array2[i])) return false;\n }\n\n return true;\n}\n\nexport function stringToBytes(str: string) {\n const bytes = [];\n const len: number = str.length;\n let c: number;\n\n for (let i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n\n if (c >= 0x010000 && c <= 0x10ffff) {\n bytes.push(((c >> 18) & 0x07) | 0xf0);\n bytes.push(((c >> 12) & 0x3f) | 0x80);\n bytes.push(((c >> 6) & 0x3f) | 0x80);\n bytes.push((c & 0x3f) | 0x80);\n } else if (c >= 0x000800 && c <= 0x00ffff) {\n bytes.push(((c >> 12) & 0x0f) | 0xe0);\n bytes.push(((c >> 6) & 0x3f) | 0x80);\n bytes.push((c & 0x3f) | 0x80);\n } else if (c >= 0x000080 && c <= 0x0007ff) {\n bytes.push(((c >> 6) & 0x1f) | 0xc0);\n bytes.push((c & 0x3f) | 0x80);\n } else bytes.push(c & 0xff);\n }\n\n return bytes;\n}\n\nexport { byte2hexStr, bytesToString, hextoString, byteArray2hexStr, base64DecodeFromString, base64EncodeToString };\n\nexport function hexChar2byte(c: string) {\n let d: number | undefined;\n\n if (c >= 'A' && c <= 'F') d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n else if (c >= 'a' && c <= 'f') d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;\n else if (c >= '0' && c <= '9') d = c.charCodeAt(0) - '0'.charCodeAt(0);\n\n if (typeof d === 'number') return d;\n else throw new Error('The passed hex char is not a valid hex char');\n}\n\nexport function isHexChar(c: string) {\n if ((c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f') || (c >= '0' && c <= '9')) {\n return 1;\n }\n\n return 0;\n}\n\n// set strict as true: if the length of str is odd, add 0 before the str to make its length as even\nexport function hexStr2byteArray(str: string, strict = false) {\n let len = str.length;\n\n if (strict) {\n if (len % 2) {\n str = `0${str}`;\n len++;\n }\n }\n const byteArray: number[] = [];\n let d = 0;\n let j = 0;\n let k = 0;\n\n for (let i = 0; i < len; i++) {\n const c = str.charAt(i);\n\n if (isHexChar(c)) {\n d <<= 4;\n d += hexChar2byte(c);\n j++;\n\n if (0 === j % 2) {\n byteArray[k++] = d;\n d = 0;\n }\n } else throw new Error('The passed hex char is not a valid hex string');\n }\n\n return byteArray;\n}\n\n//yyyy-MM-DD HH-mm-ss\nexport function strToDate(str: string) {\n if (!/^\\d{4}-\\d{2}-\\d{2}( \\d{2}-\\d{2}-\\d{2}|)/.test(str)) throw new Error('The passed date string is not valid');\n\n const tempStrs = str.split(' ');\n const dateStrs = tempStrs[0].split('-');\n const year = parseInt(dateStrs[0], 10);\n const month = parseInt(dateStrs[1], 10) - 1;\n const day = parseInt(dateStrs[2], 10);\n\n if (tempStrs.length > 1) {\n const timeStrs = tempStrs[1].split('-');\n const hour = parseInt(timeStrs[0], 10);\n const minute = parseInt(timeStrs[1], 10);\n const second = parseInt(timeStrs[2], 10);\n\n return new Date(year, month, day, hour, minute, second);\n }\n\n return new Date(year, month, day);\n}\n\nexport function isNumber(c: string) {\n if (c >= '0' && c <= '9') return 1;\n\n return 0;\n}\n\n//return 1: address --- 20Bytes HexString\n//return 2: blockNumber ------ Decimal number\n//return 3: assetName ------ String\n//return other: error\nexport function getStringType(str: string) {\n if (null == str) return -1;\n\n if (str.length == 0 || str == '') return -1;\n\n let i = 0;\n\n if (str.length == 40) {\n for (; i < 40; i++) {\n const c = str.charAt(i);\n\n if (!isHexChar(c)) break;\n }\n }\n\n if (i == 40) return 1; //40 Hex, Address\n\n for (i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n\n if (!isNumber(c)) break;\n }\n\n if (i == str.length) return 2; // All Decimal number, BlockNumber\n\n for (i = 0; i < str.length; i++) {\n const c = str.charAt(i);\n\n if (c > ' ') return 3; // At least one visible character\n }\n\n return -1;\n}\n","import { ADDRESS_PREFIX, ADDRESS_PREFIX_BYTE, ADDRESS_SIZE } from './address.js';\nimport { base64EncodeToString, base64DecodeFromString, hexStr2byteArray } from './code.js';\nimport { encode58, decode58 } from './base58.js';\nimport { byte2hexStr, byteArray2hexStr } from './bytes.js';\nimport { keccak256, sha256, SigningKey, recoverAddress, arrayify, Signature } from './ethersUtils.js';\nimport { TypedDataEncoder } from './typedData.js';\nimport { secp256k1 as secp } from 'ethereum-cryptography/secp256k1';\nimport type { TypedDataDomain, TypedDataField } from 'ethers';\nimport { SignedTransaction } from '../types/Transaction.js';\n\nimport type { BytesLike } from '../types/UtilsTypes.js';\n\nfunction normalizePrivateKeyBytes(priKeyBytes: BytesLike) {\n return hexStr2byteArray(byteArray2hexStr(priKeyBytes).padStart(64, '0'));\n}\n\nexport function getBase58CheckAddress(addressBytes: number[]) {\n const hash0 = SHA256(addressBytes);\n const hash1 = SHA256(hash0);\n\n let checkSum = hash1.slice(0, 4);\n checkSum = addressBytes.concat(checkSum);\n\n return encode58(checkSum);\n}\n\nexport function decodeBase58Address(base58Sting: string) {\n if (typeof base58Sting != 'string') return false;\n\n if (base58Sting.length <= 4) return false;\n\n let address = decode58(base58Sting);\n\n if (base58Sting.length <= 4) return false;\n\n const len = address.length;\n const offset = len - 4;\n const checkSum = address.slice(offset);\n\n address = address.slice(0, offset);\n\n const hash0 = SHA256(address);\n const hash1 = SHA256(hash0);\n const checkSum1 = hash1.slice(0, 4);\n\n if (\n checkSum[0] == checkSum1[0] &&\n checkSum[1] == checkSum1[1] &&\n checkSum[2] == checkSum1[2] &&\n checkSum[3] == checkSum1[3]\n ) {\n return address;\n }\n\n throw new Error('Invalid address provided');\n}\n\n// @TODO transaction type should be determined.\nexport function signTransaction(priKeyBytes: string | BytesLike, transaction: any): SignedTransaction {\n if (typeof priKeyBytes === 'string') priKeyBytes = hexStr2byteArray(priKeyBytes);\n\n const txID = transaction.txID;\n const signature = ECKeySign(hexStr2byteArray(txID), priKeyBytes);\n\n if (Array.isArray(transaction.signature)) {\n if (!transaction.signature.includes(signature)) transaction.signature.push(signature);\n } else transaction.signature = [signature];\n return transaction;\n}\n\nexport function ecRecover(signedData: string, signature: string) {\n signedData = '0x' + signedData.replace(/^0x/, '');\n signature = '0x' + signature.replace(/^0x/, '');\n\n const recovered = recoverAddress(arrayify(signedData), Signature.from(signature));\n const tronAddress = ADDRESS_PREFIX + recovered.substring(2);\n return tronAddress;\n}\n\nexport function arrayToBase64String(a: number[]) {\n return btoa(String.fromCharCode(...a));\n}\n\nexport function signBytes(privateKey: string | BytesLike, contents: BytesLike) {\n if (typeof privateKey === 'string') privateKey = hexStr2byteArray(privateKey);\n\n const hashBytes = SHA256(contents);\n const signBytes = ECKeySign(hashBytes, privateKey);\n\n return signBytes;\n}\n\nexport function _signTypedData(\n domain: TypedDataDomain,\n types: Record<string, Array<TypedDataField>>,\n value: Record<string, any>,\n privateKey: string\n) {\n const key = `0x${privateKey.replace(/^0x/, '')}`;\n const signingKey = new SigningKey(key);\n\n const messageDigest = TypedDataEncoder.hash(domain, types, value);\n const signature = signingKey.sign(messageDigest);\n const signatureHex = ['0x', signature.r.substring(2), signature.s.substring(2), Number(signature.v).toString(16)].join('');\n return signatureHex;\n}\n\nexport function getRowBytesFromTransactionBase64(base64Data: string): Uint8Array {\n const bytesDecode = base64DecodeFromString(base64Data);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const transaction = globalThis.proto.protocol.Transaction.deserializeBinary(bytesDecode);\n const raw = transaction.getRawData();\n\n return raw.serializeBinary();\n}\n\nexport function genPriKey() {\n const priKey = secp.utils.randomPrivateKey();\n let priKeyHex = byteArray2hexStr(priKey);\n\n priKeyHex = priKeyHex.padStart(64, '0');\n\n return hexStr2byteArray(priKeyHex);\n}\n\nexport function computeAddress(pubBytes: BytesLike) {\n if (pubBytes.length === 65) pubBytes = pubBytes.slice(1);\n\n const hash = keccak256(new Uint8Array(pubBytes)).toString().substring(2);\n const addressHex = ADDRESS_PREFIX + hash.substring(24);\n\n return hexStr2byteArray(addressHex);\n}\n\nexport function getAddressFromPriKey(priKeyBytes: BytesLike) {\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n return computeAddress(pubBytes);\n}\n\nexport function decode58Check(addressStr: string) {\n const decodeCheck = decode58(addressStr);\n\n if (decodeCheck.length <= 4) return false;\n\n const decodeData = decodeCheck.slice(0, decodeCheck.length - 4);\n const hash0 = SHA256(decodeData);\n const hash1 = SHA256(hash0);\n\n if (\n hash1[0] === decodeCheck[decodeData.length] &&\n hash1[1] === decodeCheck[decodeData.length + 1] &&\n hash1[2] === decodeCheck[decodeData.length + 2] &&\n hash1[3] === decodeCheck[decodeData.length + 3]\n ) {\n return decodeData;\n }\n\n return false;\n}\n\nexport function isAddressValid(base58Str: string) {\n if (typeof base58Str !== 'string') return false;\n\n if (base58Str.length !== ADDRESS_SIZE) return false;\n\n let address = decode58(base58Str);\n\n if (address.length !== 25) return false;\n\n if (address[0] !== ADDRESS_PREFIX_BYTE) return false;\n\n const checkSum = address.slice(21);\n address = address.slice(0, 21);\n\n const hash0 = SHA256(address);\n const hash1 = SHA256(hash0);\n const checkSum1 = hash1.slice(0, 4);\n\n if (\n checkSum[0] == checkSum1[0] &&\n checkSum[1] == checkSum1[1] &&\n checkSum[2] == checkSum1[2] &&\n checkSum[3] == checkSum1[3]\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function getBase58CheckAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n\n return getBase58CheckAddress(addressBytes);\n}\n\nexport function getHexStrAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n const addressHex = byteArray2hexStr(addressBytes);\n\n return addressHex;\n}\n\nexport function getAddressFromPriKeyBase64String(priKeyBase64String: string) {\n const priKeyBytes = base64DecodeFromString(priKeyBase64String);\n const pubBytes = getPubKeyFromPriKey(priKeyBytes);\n const addressBytes = computeAddress(pubBytes);\n const addressBase64 = base64EncodeToString(addressBytes);\n\n return addressBase64;\n}\n\nexport function getPubKeyFromPriKey(priKeyBytes: BytesLike) {\n const pubkey = secp.ProjectivePoint.fromPrivateKey(new Uint8Array(normalizePrivateKeyBytes(priKeyBytes)));\n const x = pubkey.x;\n const y = pubkey.y;\n\n const xHex = x.toString(16).padStart(64, '0');\n const yHex = y.toString(16).padStart(64, '0');\n\n const pubkeyHex = `04${xHex}${yHex}`;\n const pubkeyBytes = hexStr2byteArray(pubkeyHex);\n\n return pubkeyBytes;\n}\n\nexport function ECKeySign(hashBytes: BytesLike, priKeyBytes: BytesLike) {\n const signature = secp.sign(byteArray2hexStr(hashBytes), byteArray2hexStr(priKeyBytes));\n\n const r = signature.r.toString(16);\n const s = signature.s.toString(16);\n const v = signature.recovery! + 27;\n\n return r.padStart(64, '0') + s.padStart(64, '0') + byte2hexStr(v);\n}\n\nexport function SHA256(msgBytes: BytesLike) {\n const msgHex = byteArray2hexStr(msgBytes);\n const hashHex = sha256('0x' + msgHex).replace(/^0x/, '');\n return hexStr2byteArray(hashHex);\n}\n\nexport function passwordToAddress(password: string) {\n const com_priKeyBytes = base64DecodeFromString(password);\n const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);\n\n return getBase58CheckAddress(com_addressBytes);\n}\n\nexport function pkToAddress(privateKey: string, strict = false) {\n const com_priKeyBytes = hexStr2byteArray(privateKey, strict);\n const com_addressBytes = getAddressFromPriKey(com_priKeyBytes);\n\n return getBase58CheckAddress(com_addressBytes);\n}\n\nexport function sha3(string: string, prefix = true) {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n}\n","import {\n keccak256,\n sha256,\n toUtf8Bytes,\n toUtf8String,\n recoverAddress,\n SigningKey,\n AbiCoder,\n Signature,\n concat,\n id,\n Mnemonic,\n Wordlist,\n wordlists,\n HDNodeWallet as ethersHDNodeWallet,\n getBytes,\n computeHmac,\n} from 'ethers';\n\nimport type { BytesLike, SignatureLike } from 'ethers';\n\nimport { Interface } from './interface.js';\n\nconst splitSignature = (sigBytes: SignatureLike) => Signature.from(sigBytes);\nconst joinSignature = (splitSig: SignatureLike) => Signature.from(splitSig).serialized;\nconst arrayify = (value: BytesLike) => getBytes(value);\nconst FormatTypes = {\n sighash: 'sighash',\n minimal: 'minimal',\n full: 'full',\n json: 'json',\n};\nconst isValidMnemonic = Mnemonic.isValidMnemonic;\n\ncomputeHmac.register((algorithm, key, data) => {\n return computeHmac._(algorithm, Buffer.from(key), Buffer.from(data));\n});\n\nexport {\n keccak256,\n sha256,\n toUtf8Bytes,\n toUtf8String,\n recoverAddress,\n Signature,\n SigningKey,\n AbiCoder,\n Interface,\n FormatTypes,\n splitSignature,\n joinSignature,\n arrayify,\n ethersHDNodeWallet,\n concat,\n id,\n Mnemonic,\n Wordlist,\n wordlists,\n isValidMnemonic,\n};\n","/**\n * A fragment is a single item from an ABI, which may represent any of:\n *\n * - [Functions](FunctionFragment)\n * - [Events](EventFragment)\n * - [Constructors](ConstructorFragment)\n * - Custom [Errors](ErrorFragment)\n * - [Fallback or Receive](FallbackFragment) functions\n *\n * @_subsection api/abi/abi-coder:Fragments [about-fragments]\n */\n\nimport { defineProperties, getBigInt, getNumber, assert, assertPrivate, assertArgument } from 'ethers';\nimport { id } from 'ethers';\n\n/**\n * A Type description in a [JSON ABI format](link-solc-jsonabi).\n */\nexport interface JsonFragmentType {\n /**\n * The parameter name.\n */\n readonly name?: string;\n\n /**\n * If the parameter is indexed.\n */\n readonly indexed?: boolean;\n\n /**\n * The type of the parameter.\n */\n readonly type?: string;\n\n /**\n * The internal Solidity type.\n */\n readonly internalType?: string;\n\n /**\n * The components for a tuple.\n */\n readonly components?: ReadonlyArray<JsonFragmentType>;\n}\n\n/**\n * A fragment for a method, event or error in a [JSON ABI format](link-solc-jsonabi).\n */\nexport interface JsonFragment {\n /**\n * The name of the error, event, function, etc.\n */\n readonly name?: string;\n\n /**\n * The type of the fragment (e.g. ``event``, ``\"function\"``, etc.)\n */\n readonly type?: string;\n\n /**\n * If the event is anonymous.\n */\n readonly anonymous?: boolean;\n\n /**\n * If the function is payable.\n */\n readonly payable?: boolean;\n\n /**\n * If the function is constant.\n */\n readonly constant?: boolean;\n\n /**\n * The mutability state of the function.\n */\n readonly stateMutability?: string;\n\n /**\n * The input parameters.\n */\n readonly inputs?: ReadonlyArray<JsonFragmentType>;\n\n /**\n * The output parameters.\n */\n readonly outputs?: ReadonlyArray<JsonFragmentType>;\n\n /**\n * The gas limit to use when sending a transaction for this function.\n */\n readonly gas?: string;\n}\n\n/**\n * The format to serialize the output as.\n *\n * **``\"sighash\"``** - the bare formatting, used to compute the selector\n * or topic hash; this format cannot be reversed (as it discards ``indexed``)\n * so cannot by used to export an [[Interface]].\n *\n * **``\"minimal\"``** - Human-Readable ABI with minimal spacing and without\n * names, so it is compact, but will result in Result objects that cannot\n * be accessed by name.\n *\n * **``\"full\"``** - Full Human-Readable ABI, with readable spacing and names\n * intact; this is generally the recommended format.\n *\n * **``\"json\"``** - The [JSON ABI format](link-solc-jsonabi).\n */\nexport type FormatType = 'sighash' | 'minimal' | 'full' | 'json';\n\n// [ \"a\", \"b\" ] => { \"a\": 1, \"b\": 1 }\nfunction setify(items: Array<string>): ReadonlySet<string> {\n const result: Set<string> = new Set();\n items.forEach((k) => result.add(k));\n return Object.freeze(result);\n}\n\n// Visibility Keywords\nconst _kwVisib = 'constant external internal payable private public pure view';\nconst KwVisib = setify(_kwVisib.split(' '));\n\nconst _kwTypes = 'constructor error event fallback function receive struct';\nconst KwTypes = setify(_kwTypes.split(' '));\n\nconst _kwModifiers = 'calldata memory storage payable indexed';\nconst KwModifiers = setify(_kwModifiers.split(' '));\n\nconst _kwOther = 'tuple returns';\n\n// All Keywords\nconst _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(' ');\nconst Keywords = setify(_keywords.split(' '));\n\n// Single character tokens\nconst SimpleTokens: Record<string, string> = {\n '(': 'OPEN_PAREN',\n ')': 'CLOSE_PAREN',\n '[': 'OPEN_BRACKET',\n ']': 'CLOSE_BRACKET',\n ',': 'COMMA',\n '@': 'AT',\n};\n\n// Parser regexes to consume the next token\nconst regexWhitespacePrefix = new RegExp('^(\\\\s*)');\nconst regexNumberPrefix = new RegExp('^([0-9]+)');\nconst regexIdPrefix = new RegExp('^([a-zA-Z$_][a-zA-Z0-9$_]*)');\n\n// Parser regexs to check validity\nconst regexId = new RegExp('^([a-zA-Z$_][a-zA-Z0-9$_]*)$');\nconst regexType = new RegExp('^(trcToken|address|bool|bytes([0-9]*)|string|u?int([0-9]*))$');\n\n/**\n * @ignore:\n */\ntype Token = Readonly<{\n // Type of token (e.g. TYPE, KEYWORD, NUMBER, etc)\n type: string;\n\n // Offset into the original source code\n offset: number;\n\n // Actual text content of the token\n text: string;\n\n // The parenthesis depth\n depth: number;\n\n // If a parenthesis, the offset (in tokens) that balances it\n match: number;\n\n // For parenthesis and commas, the offset (in tokens) to the\n // previous/next parenthesis or comma in the list\n linkBack: number;\n linkNext: number;\n\n // If a BRACKET, the value inside\n value: number;\n}>;\n\nclass TokenString {\n #offset: number;\n #tokens: ReadonlyArray<Token>;\n\n get offset(): number {\n return this.#offset;\n }\n get length(): number {\n return this.#tokens.length - this.#offset;\n }\n\n constructor(tokens: ReadonlyArray<Token>) {\n this.#offset = 0;\n this.#tokens = tokens.slice();\n }\n\n clone(): TokenString {\n return new TokenString(this.#tokens);\n }\n reset(): void {\n this.#offset = 0;\n }\n\n #subTokenString(from = 0, to = 0): TokenString {\n return new TokenString(\n this.#tokens.slice(from, to).map((t) => {\n return Object.freeze(\n Object.assign({}, t, {\n match: t.match - from,\n linkBack: t.linkBack - from,\n linkNext: t.linkNext - from,\n })\n );\n })\n );\n }\n\n // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens\n popKeyword(allowed: ReadonlySet<string>): string {\n const top = this.peek();\n if (top.type !== 'KEYWORD' || !allowed.has(top.text)) {\n throw new Error(`expected keyword ${top.text}`);\n }\n return this.pop().text;\n }\n\n // Pops and returns the value of the next token if it is `type`; throws if out of tokens\n popType(type: string): string {\n if (this.peek().type !== type) {\n throw new Error(`expected ${type}; got ${JSON.stringify(this.peek())}`);\n }\n return this.pop().text;\n }\n\n // Pops and returns a \"(\" TOKENS \")\"\n popParen(): TokenString {\n const top = this.peek();\n if (top.type !== 'OPEN_PAREN') {\n throw new Error('bad start');\n }\n const result = this.#subTokenString(this.#offset + 1, top.match + 1);\n this.#offset = top.match + 1;\n return result;\n }\n\n // Pops and returns the items within \"(\" ITEM1 \",\" ITEM2 \",\" ... \")\"\n popParams(): Array<TokenString> {\n const top = this.peek();\n\n if (top.type !== 'OPEN_PAREN') {\n throw new Error('bad start');\n }\n\n const result: Array<TokenString> = [];\n\n while (this.#offset < top.match - 1) {\n const link = this.peek().linkNext;\n result.push(this.#subTokenString(this.#offset + 1, link));\n this.#offset = link;\n }\n\n this.#offset = top.match + 1;\n\n return result;\n }\n\n // Returns the top Token, throwing if out of tokens\n peek(): Token {\n if (this.#offset >= this.#tokens.length) {\n throw new Error('out-of-bounds');\n }\n return this.#tokens[this.#offset];\n }\n\n // Returns the next value, if it is a keyword in `allowed`\n peekKeyword(allowed: ReadonlySet<string>): null | string {\n const top = this.peekType('KEYWORD');\n return top != null && allowed.has(top) ? top : null;\n }\n\n // Returns the value of the next token if it is `type`\n peekType(type: string): null | string {\n if (this.length === 0) {\n return null;\n }\n const top = this.peek();\n return top.type === type ? top.text : null;\n }\n\n // Returns the next token; throws if out of tokens\n pop(): Token {\n const result = this.peek();\n this.#offset++;\n return result;\n }\n\n toString(): string {\n const tokens: Array<string> = [];\n for (let i = this.#offset; i < this.#tokens.length; i++) {\n const token = this.#tokens[i];\n tokens.push(`${token.type}:${token.text}`);\n }\n return `<TokenString ${tokens.join(' ')}>`;\n }\n}\n\ntype Writeable<T> = { -readonly [P in keyof T]: T[P] };\n\nfunction lex(text: string): TokenString {\n const tokens: Array<Token> = [];\n\n const throwError = (message: string) => {\n const token = offset < text.length ? JSON.stringify(text[offset]) : '$EOI';\n throw new Error(`invalid token ${token} at ${offset}: ${message}`);\n };\n\n const brackets: Array<number> = [];\n const commas: Array<number> = [];\n\n let offset = 0;\n while (offset < text.length) {\n // Strip off any leading whitespace\n let cur = text.substring(offset);\n let match = cur.match(regexWhitespacePrefix);\n if (match) {\n offset += match[1].length;\n cur = text.substring(offset);\n }\n\n const token = {\n depth: brackets.length,\n linkBack: -1,\n linkNext: -1,\n match: -1,\n type: '',\n text: '',\n offset,\n value: -1,\n };\n tokens.push(token);\n\n const type = SimpleTokens[cur[0]] || '';\n if (type) {\n token.type = type;\n token.text = cur[0];\n offset++;\n\n if (type === 'OPEN_PAREN') {\n brackets.push(tokens.length - 1);\n commas.push(tokens.length - 1);\n } else if (type == 'CLOSE_PAREN') {\n if (brackets.length === 0) {\n throwError('no matching open bracket');\n }\n\n token.match = brackets.pop() as number;\n (<Writeable<Token>>tokens[token.match]).match = tokens.length - 1;\n token.depth--;\n\n token.linkBack = commas.pop() as number;\n (<Writeable<Token>>tokens[token.linkBack]).linkNext = tokens.length - 1;\n } else if (type === 'COMMA') {\n token.linkBack = commas.pop() as number;\n (<Writeable<Token>>tokens[token.linkBack]).linkNext = tokens.length - 1;\n commas.push(tokens.length - 1);\n } else if (type === 'OPEN_BRACKET') {\n token.type = 'BRACKET';\n } else if (type === 'CLOSE_BRACKET') {\n // Remove the CLOSE_BRACKET\n let suffix = (tokens.pop() as Token).text;\n if (tokens.length > 0 && tokens[tokens.length - 1].type === 'NUMBER') {\n const value = (tokens.pop() as Token).text;\n suffix = value + suffix;\n (<Writeable<Token>>tokens[tokens.length - 1]).value = getNumber(value);\n }\n if (tokens.length === 0 || tokens[tokens.length - 1].type !== 'BRACKET') {\n throw new Error('missing opening bracket');\n }\n (<Writeable<Token>>tokens[tokens.length - 1]).text += suffix;\n }\n\n continue;\n }\n\n match = cur.match(regexIdPrefix);\n if (match) {\n token.text = match[1];\n offset += token.text.length;\n\n if (Keywords.has(token.text)) {\n token.type = 'KEYWORD';\n continue;\n }\n\n if (token.text.match(regexType)) {\n token.type = 'TYPE';\n continue;\n }\n\n token.type = 'ID';\n continue;\n }\n\n match = cur.match(regexNumberPrefix);\n if (match) {\n token.text = match[1];\n token.type = 'NUMBER';\n offset += token.text.length;\n continue;\n }\n\n throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`);\n }\n\n return new TokenString(tokens.map((t) => Object.freeze(t)));\n}\n\n// Check only one of `allowed` is in `set`\nfunction allowSingle(set: ReadonlySet<string>, allowed: ReadonlySet<string>): void {\n const included: Array<string> = [];\n for (const key in allowed.keys()) {\n if (set.has(key)) {\n included.push(key);\n }\n }\n if (included.length > 1) {\n throw new Error(`conflicting types: ${included.join(', ')}`);\n }\n}\n\n// Functions to process a Solidity Signature TokenString from left-to-right for...\n\n// ...the name with an optional type, returning the name\nfunction consumeName(type: string, tokens: TokenString): string {\n if (tokens.peekKeyword(KwTypes)) {\n const keyword = tokens.pop().text;\n if (keyword !== type) {\n throw new Error(`expected ${type}, got ${keyword}`);\n }\n }\n\n return tokens.popType('ID');\n}\n\n// ...all keywords matching allowed, returning the keywords\nfunction consumeKeywords(tokens: TokenString, allowed?: ReadonlySet<string>): ReadonlySet<string> {\n const keywords: Set<string> = new Set();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const keyword = tokens.peekType('KEYWORD');\n\n if (keyword == null || (allowed && !allowed.has(keyword))) {\n break;\n }\n tokens.pop();\n\n if (keywords.has(keyword)) {\n throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`);\n }\n keywords.add(keyword);\n }\n\n return Object.freeze(keywords);\n}\n\n// ...all visibility keywords, returning the coalesced mutability\nfunction consumeMutability(tokens: TokenString): 'payable' | 'nonpayable' | 'view' | 'pure' {\n const modifiers = consumeKeywords(tokens, KwVisib);\n\n // Detect conflicting modifiers\n allowSingle(modifiers, setify('constant payable nonpayable'.split(' ')));\n allowSingle(modifiers, setify('pure view payable nonpayable'.split(' ')));\n\n // Process mutability states\n if (modifiers.has('view')) {\n return 'view';\n }\n if (modifiers.has('pure')) {\n return 'pure';\n }\n if (modifiers.has('payable')) {\n return 'payable';\n }\n if (modifiers.has('nonpayable')) {\n return 'nonpayable';\n }\n\n // Process legacy `constant` last\n if (modifiers.has('constant')) {\n return 'view';\n }\n\n return 'nonpayable';\n}\n\n// ...a parameter list, returning the ParamType list\nfunction consumeParams(tokens: TokenString, allowIndexed?: boolean): Array<ParamType> {\n return tokens.popParams().map((t) => ParamType.from(t, allowIndexed));\n}\n\n// ...a gas limit, returning a BigNumber or null if none\nfunction consumeGas(tokens: TokenString): null | bigint {\n if (tokens.peekType('AT')) {\n tokens.pop();\n if (tokens.peekType('NUMBER')) {\n return getBigInt(tokens.pop().text);\n }\n throw new Error('invalid gas');\n }\n return null;\n}\n\nfunction consumeEoi(tokens: TokenString): void {\n if (tokens.length) {\n throw new Error(`unexpected tokens: ${tokens.toString()}`);\n }\n}\n\nconst regexArrayType = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nfunction verifyBasicType(type: string): string {\n const match = type.match(regexType);\n assertArgument(match, 'invalid type', 'type', type);\n if (type === 'uint') {\n return 'uint256';\n }\n if (type === 'int') {\n return 'int256';\n }\n\n if (match[2]) {\n // bytesXX\n const length = parseInt(match[2]);\n assertArgument(length !== 0 && length <= 32, 'invalid bytes length', 'type', type);\n } else if (match[3]) {\n // intXX or uintXX\n const size = parseInt(match[3] as string);\n assertArgument(size !== 0 && size <= 256 && size % 8 === 0, 'invalid numeric width', 'type', type);\n }\n\n return type;\n}\n\n// Make the Fragment constructors effectively private\nconst _guard = {};\n\n/**\n * When [walking](ParamType-walk) a [[ParamType]], this is called\n * on each component.\n */\nexport type ParamTypeWalkFunc = (type: string, value: any) => any;\n\n/**\n * When [walking asynchronously](ParamType-walkAsync) a [[ParamType]],\n * this is called on each component.\n */\nexport type ParamTypeWalkAsyncFunc = (type: string, value: any) => any | Promise<any>;\n\nconst internal = Symbol.for('_ethers_internal');\n\nconst ParamTypeInternal = '_ParamTypeInternal';\nconst ErrorFragmentInternal = '_ErrorInternal';\nconst EventFragmentInternal = '_EventInternal';\nconst ConstructorFragmentInternal = '_ConstructorInternal';\nconst FallbackFragmentInternal = '_FallbackInternal';\nconst FunctionFragmentInternal = '_FunctionInternal';\nconst StructFragmentInternal = '_StructInternal';\n\n/**\n * Each input and output of a [[Fragment]] is an Array of **ParamType**.\n */\nexport class ParamType {\n /**\n * The local name of the parameter (or ``\"\"`` if unbound)\n */\n readonly name!: string;\n\n /**\n * The fully qualified type (e.g. ``\"address\"``, ``\"tuple(address)\"``,\n * ``\"uint256[3][]\"``)\n */\n readonly type!: string;\n\n /**\n * The base type (e.g. ``\"address\"``, ``\"tuple\"``, ``\"array\"``)\n */\n readonly baseType!: string;\n\n /**\n * True if the parameters is indexed.\n *\n * For non-indexable types this is ``null``.\n */\n readonly indexed!: null | boolean;\n\n /**\n * The components for the tuple.\n *\n * For non-tuple types this is ``null``.\n */\n readonly components!: null | ReadonlyArray<ParamType>;\n\n /**\n * The array length, or ``-1`` for dynamic-lengthed arrays.\n *\n * For non-array types this is ``null``.\n */\n readonly arrayLength!: null | number;\n\n /**\n * The type of each child in the array.\n *\n * For non-array types this is ``null``.\n */\n readonly arrayChildren!: null | ParamType;\n\n /**\n * @private\n */\n constructor(\n guard: any,\n name: string,\n type: string,\n baseType: string,\n indexed: null | boolean,\n components: null | ReadonlyArray<ParamType>,\n arrayLength: null | number,\n arrayChildren: null | ParamType\n ) {\n assertPrivate(guard, _guard, 'ParamType');\n Object.defineProperty(this, internal, { value: ParamTypeInternal });\n\n if (components) {\n components = Object.freeze(components.slice());\n }\n\n if (baseType === 'array') {\n if (arrayLength == null || arrayChildren == null) {\n throw new Error('');\n }\n } else if (arrayLength != null || arrayChildren != null) {\n throw new Error('');\n }\n\n if (baseType === 'tuple') {\n if (components == null) {\n throw new Error('');\n }\n } else if (components != null) {\n throw new Error('');\n }\n\n defineProperties<ParamType>(this, {\n name,\n type,\n baseType,\n indexed,\n components,\n arrayLength,\n arrayChildren,\n });\n }\n\n /**\n * Return a string representation of this type.\n *\n * For example,\n *\n * ``sighash\" => \"(uint256,address)\"``\n *\n * ``\"minimal\" => \"tuple(uint256,address) indexed\"``\n *\n * ``\"full\" => \"tuple(uint256 foo, address bar) indexed baz\"``\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n const result: any = {\n type: this.baseType === 'tuple' ? 'tuple' : this.type,\n name: this.name || undefined,\n };\n if (typeof this.indexed === 'boolean') {\n result.indexed = this.indexed;\n }\n if (this.isTuple()) {\n result.components = this.components.map((c) => JSON.parse(c.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = '';\n\n // Array\n if (this.isArray()) {\n result += this.arrayChildren.format(format);\n result += `[${this.arrayLength < 0 ? '' : String(this.arrayLength)}]`;\n } else {\n if (this.isTuple()) {\n if (format !== 'sighash') {\n result += this.type;\n }\n result += '(' + this.components.map((comp) => comp.format(format)).join(format === 'full' ? ', ' : ',') + ')';\n } else {\n result += this.type;\n }\n }\n\n if (format !== 'sighash') {\n if (this.indexed === true) {\n result += ' indexed';\n }\n if (format === 'full' && this.name) {\n result += ' ' + this.name;\n }\n }\n\n return result;\n }\n\n /**\n * Returns true if %%this%% is an Array type.\n *\n * This provides a type gaurd ensuring that [[arrayChildren]]\n * and [[arrayLength]] are non-null.\n */\n isArray(): this is ParamType & {\n arrayChildren: ParamType;\n arrayLength: number;\n } {\n return this.baseType === 'array';\n }\n\n /**\n * Returns true if %%this%% is a Tuple type.\n *\n * This provides a type gaurd ensuring that [[components]]\n * is non-null.\n */\n isTuple(): this is ParamType & { components: ReadonlyArray<ParamType> } {\n return this.baseType === 'tuple';\n }\n\n /**\n * Returns true if %%this%% is an Indexable type.\n *\n * This provides a type gaurd ensuring that [[indexed]]\n * is non-null.\n */\n isIndexable(): this is ParamType & { indexed: boolean } {\n return this.indexed != null;\n }\n\n /**\n * Walks the **ParamType** with %%value%%, calling %%process%%\n * on each type, destructing the %%value%% recursively.\n */\n walk(value: any, process: ParamTypeWalkFunc): any {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid array value');\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error('array is wrong length');\n }\n return value.map((v) => this.arrayChildren?.walk(v, process));\n }\n\n if (this.isTuple()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid tuple value');\n }\n if (value.length !== this.components.length) {\n throw new Error('array is wrong length');\n }\n return value.map((v, i) => this.components?.[i].walk(v, process));\n }\n\n return process(this.type, value);\n }\n\n #walkAsync(\n promises: Array<Promise<void>>,\n value: any,\n process: ParamTypeWalkAsyncFunc,\n setValue: (value: any) => void\n ): void {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error('invalid array value');\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error('array is wrong length');\n }\n const childType = this.arrayChildren;\n\n const result = value.slice();\n result.forEach((value, index) => {\n childType.#walkAsync(promises, value, process, (value: any) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n\n if (this.isTuple()) {\n const components = this.components;\n\n // Convert the object into an array\n let result: Array<any>;\n if (Array.isArray(value)) {\n result = value.slice();\n } else {\n if (value == null || typeof value !== 'object') {\n throw new Error('invalid tuple value');\n }\n\n result = components.map((param) => {\n if (!param.name) {\n throw new Error('cannot use object value with unnamed components');\n }\n if (!(param.name in value)) {\n throw new Error(`missing value for component ${param.name}`);\n }\n return value[param.name];\n });\n }\n\n if (result.length !== this.components.length) {\n throw new Error('array is wrong length');\n }\n\n result.forEach((value, index) => {\n components[index].#walkAsync(promises, value, process, (value: any) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n\n const result = process(this.type, value);\n if (result.then) {\n promises.push(\n (async function () {\n setValue(await result);\n })()\n );\n } else {\n setValue(result);\n }\n }\n\n /**\n * Walks the **ParamType** with %%value%%, asynchronously calling\n * %%process%% on each type, destructing the %%value%% recursively.\n *\n * This can be used to resolve ENS naes by walking and resolving each\n * ``\"address\"`` type.\n */\n async walkAsync(value: any, process: ParamTypeWalkAsyncFunc): Promise<any> {\n const promises: Array<Promise<void>> = [];\n const result: [any] = [value];\n this.#walkAsync(promises, value, process, (value: any) => {\n result[0] = value;\n });\n if (promises.length) {\n await Promise.all(promises);\n }\n return result[0];\n }\n\n /**\n * Creates a new **ParamType** for %%obj%%.\n *\n * If %%allowIndexed%% then the ``indexed`` keyword is permitted,\n * otherwise the ``indexed`` keyword will throw an error.\n */\n static from(obj: any, allowIndexed?: boolean): ParamType {\n if (ParamType.isParamType(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ParamType.from(lex(obj), allowIndexed);\n } else if (obj instanceof TokenString) {\n let type = '',\n baseType = '';\n let comps: null | Array<ParamType> = null;\n\n if (consumeKeywords(obj, setify(['tuple'])).has('tuple') || obj.peekType('OPEN_PAREN')) {\n // Tuple\n baseType = 'tuple';\n comps = obj.popParams().map((t) => ParamType.from(t));\n type = `tuple(${comps.map((c) => c.format()).join(',')})`;\n } else {\n // Normal\n type = verifyBasicType(obj.popType('TYPE'));\n baseType = type;\n }\n\n // Check for Array\n let arrayChildren: null | ParamType = null;\n let arrayLength: null | number = null;\n\n while (obj.length && obj.peekType('BRACKET')) {\n const bracket = obj.pop(); //arrays[i];\n arrayChildren = new ParamType(_guard, '', type, baseType, null, comps, arrayLength, arrayChildren);\n arrayLength = bracket.value;\n type += bracket.text;\n baseType = 'array';\n comps = null;\n }\n\n let indexed: boolean | null = null;\n const keywords = consumeKeywords(obj, KwModifiers);\n if (keywords.has('indexed')) {\n if (!allowIndexed) {\n throw new Error('');\n }\n indexed = true;\n }\n\n const name = obj.peekType('ID') ? obj.pop().text : '';\n\n if (obj.length) {\n throw new Error('leftover tokens');\n }\n\n return new ParamType(_guard, name, type, baseType, indexed, comps, arrayLength, arrayChildren);\n }\n\n const name = obj.name;\n assertArgument(!name || (typeof name === 'string' && name.match(regexId)), 'invalid name', 'obj.name', name);\n\n let indexed = obj.indexed;\n if (indexed != null) {\n assertArgument(allowIndexed, 'parameter cannot be indexed', 'obj.indexed', obj.indexed);\n indexed = !!indexed;\n }\n\n let type = obj.type;\n\n const arrayMatch = type.match(regexArrayType);\n if (arrayMatch) {\n const arrayLength = parseInt(arrayMatch[2] || '-1');\n const arrayChildren = ParamType.from({\n type: arrayMatch[1],\n components: obj.components,\n });\n\n return new ParamType(_guard, name || '', type, 'array', indexed, null, arrayLength, arrayChildren);\n }\n\n if (type === 'tuple' || type.startsWith('tuple(' /* fix: ) */) || type.startsWith('(' /* fix: ) */)) {\n const comps = obj.components != null ? obj.components.map((c: any) => ParamType.from(c)) : null;\n const tuple = new ParamType(_guard, name || '', type, 'tuple', indexed, comps, null, null);\n // @TODO: use lexer to validate and normalize type\n return tuple;\n }\n\n type = verifyBasicType(obj.type);\n\n return new ParamType(_guard, name || '', type, type, indexed, null, null, null);\n }\n\n /**\n * Returns true if %%value%% is a **ParamType**.\n */\n static isParamType(value: any): value is ParamType {\n return value && value[internal] === ParamTypeInternal;\n }\n}\n\n/**\n * The type of a [[Fragment]].\n */\nexport type FragmentType = 'constructor' | 'error' | 'event' | 'fallback' | 'function' | 'struct';\n\n/**\n * An abstract class to represent An individual fragment from a parse ABI.\n */\nexport abstract class Fragment {\n /**\n * The type of the fragment.\n */\n readonly type!: FragmentType;\n\n /**\n * The inputs for the fragment.\n */\n readonly inputs!: ReadonlyArray<ParamType>;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, inputs: ReadonlyArray<ParamType>) {\n assertPrivate(guard, _guard, 'Fragment');\n inputs = Object.freeze(inputs.slice());\n defineProperties<Fragment>(this, { type, inputs });\n }\n\n /**\n * Returns a string representation of this fragment as %%format%%.\n */\n abstract format(format?: FormatType): string;\n\n /**\n * Creates a new **Fragment** for %%obj%%, wich can be any supported\n * ABI frgament type.\n */\n static from(obj: any): Fragment {\n if (typeof obj === 'string') {\n // Try parsing JSON...\n try {\n Fragment.from(JSON.parse(obj));\n } catch (e) {\n //\n }\n\n // ...otherwise, use the human-readable lexer\n return Fragment.from(lex(obj));\n }\n\n if (obj instanceof TokenString) {\n // Human-readable ABI (already lexed)\n\n const type = obj.peekKeyword(KwTypes);\n\n switch (type) {\n case 'constructor':\n return ConstructorFragment.from(obj);\n case 'error':\n return ErrorFragment.from(obj);\n case 'event':\n return EventFragment.from(obj);\n case 'fallback':\n case 'receive':\n return FallbackFragment.from(obj);\n case 'function':\n return FunctionFragment.from(obj);\n case 'struct':\n return StructFragment.from(obj);\n }\n } else if (typeof obj === 'object') {\n // JSON ABI\n\n switch (obj.type) {\n case 'constructor':\n return ConstructorFragment.from(obj);\n case 'error':\n return ErrorFragment.from(obj);\n case 'event':\n return EventFragment.from(obj);\n case 'fallback':\n case 'receive':\n return FallbackFragment.from(obj);\n case 'function':\n return FunctionFragment.from(obj);\n case 'struct':\n return StructFragment.from(obj);\n }\n\n assert(false, `unsupported type: ${obj.type}`, 'UNSUPPORTED_OPERATION', {\n operation: 'Fragment.from',\n });\n }\n\n assertArgument(false, 'unsupported frgament object', 'obj', obj);\n }\n\n /**\n * Returns true if %%value%% is a [[ConstructorFragment]].\n */\n static isConstructor(value: any): value is ConstructorFragment {\n return ConstructorFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is an [[ErrorFragment]].\n */\n static isError(value: any): value is ErrorFragment {\n return ErrorFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is an [[EventFragment]].\n */\n static isEvent(value: any): value is EventFragment {\n return EventFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is a [[FunctionFragment]].\n */\n static isFunction(value: any): value is FunctionFragment {\n return FunctionFragment.isFragment(value);\n }\n\n /**\n * Returns true if %%value%% is a [[StructFragment]].\n */\n static isStruct(value: any): value is StructFragment {\n return StructFragment.isFragment(value);\n }\n}\n\n/**\n * An abstract class to represent An individual fragment\n * which has a name from a parse ABI.\n */\nexport abstract class NamedFragment extends Fragment {\n /**\n * The name of the fragment.\n */\n readonly name!: string;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, name: string, inputs: ReadonlyArray<ParamType>) {\n super(guard, type, inputs);\n assertArgument(typeof name === 'string' && name.match(regexId), 'invalid identifier', 'name', name);\n inputs = Object.freeze(inputs.slice());\n defineProperties<NamedFragment>(this, { name });\n }\n}\n\nfunction joinParams(format: FormatType, params: ReadonlyArray<ParamType>): string {\n return '(' + params.map((p) => p.format(format)).join(format === 'full' ? ', ' : ',') + ')';\n}\n\n/**\n * A Fragment which represents a //Custom Error//.\n */\nexport class ErrorFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>) {\n super(guard, 'error', name, inputs);\n Object.defineProperty(this, internal, { value: ErrorFragmentInternal });\n }\n\n /**\n * The Custom Error selector.\n */\n get selector(): string {\n return id(this.format('sighash')).substring(0, 10);\n }\n\n /**\n * Returns a string representation of this fragment as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'error',\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n\n const result: string[] = [];\n if (format !== 'sighash') {\n result.push('error');\n }\n result.push(this.name + joinParams(format, this.inputs));\n return result.join(' ');\n }\n\n /**\n * Returns a new **ErrorFragment** for %%obj%%.\n */\n static from(obj: any): ErrorFragment {\n if (ErrorFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ErrorFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('error', obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n\n return new ErrorFragment(_guard, name, inputs);\n }\n\n return new ErrorFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **ErrorFragment**.\n */\n static isFragment(value: any): value is ErrorFragment {\n return value && value[internal] === ErrorFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents an Event.\n */\nexport class EventFragment extends NamedFragment {\n /**\n * Whether this event is anonymous.\n */\n readonly anonymous!: boolean;\n\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>, anonymous: boolean) {\n super(guard, 'event', name, inputs);\n Object.defineProperty(this, internal, { value: EventFragmentInternal });\n defineProperties<EventFragment>(this, { anonymous });\n }\n\n /**\n * The Event topic hash.\n */\n get topicHash(): string {\n return id(this.format('sighash'));\n }\n\n /**\n * Returns a string representation of this event as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'event',\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n });\n }\n\n const result: string[] = [];\n if (format !== 'sighash') {\n result.push('event');\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== 'sighash' && this.anonymous) {\n result.push('anonymous');\n }\n return result.join(' ');\n }\n\n /**\n * Return the topic hash for an event with %%name%% and %%params%%.\n */\n static getTopicHash(name: string, params?: Array<any>): string {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new EventFragment(_guard, name, params, false);\n return fragment.topicHash;\n }\n\n /**\n * Returns a new **EventFragment** for %%obj%%.\n */\n static from(obj: any): EventFragment {\n if (EventFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return EventFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('event', obj);\n const inputs = consumeParams(obj, true);\n const anonymous = !!consumeKeywords(obj, setify(['anonymous'])).has('anonymous');\n consumeEoi(obj);\n\n return new EventFragment(_guard, name, inputs, anonymous);\n }\n\n return new EventFragment(\n _guard,\n obj.name,\n obj.inputs ? obj.inputs.map((p: any) => ParamType.from(p, true)) : [],\n !!obj.anonymous\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **EventFragment**.\n */\n static isFragment(value: any): value is EventFragment {\n return value && value[internal] === EventFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a constructor.\n */\nexport class ConstructorFragment extends Fragment {\n /**\n * Whether the constructor can receive an endowment.\n */\n readonly payable!: boolean;\n\n /**\n * The recommended gas limit for deployment or ``null``.\n */\n readonly gas!: null | bigint;\n\n /**\n * @private\n */\n constructor(guard: any, type: FragmentType, inputs: ReadonlyArray<ParamType>, payable: boolean, gas: null | bigint) {\n super(guard, type, inputs);\n Object.defineProperty(this, internal, {\n value: ConstructorFragmentInternal,\n });\n defineProperties<ConstructorFragment>(this, { payable, gas });\n }\n\n /**\n * Returns a string representation of this constructor as %%format%%.\n */\n format(format?: FormatType): string {\n assert(format != null && format !== 'sighash', 'cannot format a constructor for sighash', 'UNSUPPORTED_OPERATION', {\n operation: 'format(sighash)',\n });\n\n if (format === 'json') {\n return JSON.stringify({\n type: 'constructor',\n stateMutability: this.payable ? 'payable' : 'undefined',\n payable: this.payable,\n gas: this.gas != null ? this.gas : undefined,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n });\n }\n\n const result = [`constructor${joinParams(format, this.inputs)}`];\n result.push(this.payable ? 'payable' : 'nonpayable');\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n return result.join(' ');\n }\n\n /**\n * Returns a new **ConstructorFragment** for %%obj%%.\n */\n static from(obj: any): ConstructorFragment {\n if (ConstructorFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return ConstructorFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n consumeKeywords(obj, setify(['constructor']));\n const inputs = consumeParams(obj);\n const payable = !!consumeKeywords(obj, setify(['payable'])).has('payable');\n const gas = consumeGas(obj);\n consumeEoi(obj);\n\n return new ConstructorFragment(_guard, 'constructor', inputs, payable, gas);\n }\n\n return new ConstructorFragment(\n _guard,\n 'constructor',\n obj.inputs ? obj.inputs.map(ParamType.from) : [],\n !!obj.payable,\n obj.gas != null ? obj.gas : null\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **ConstructorFragment**.\n */\n static isFragment(value: any): value is ConstructorFragment {\n return value && value[internal] === ConstructorFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a method.\n */\nexport class FallbackFragment extends Fragment {\n /**\n * If the function can be sent value during invocation.\n */\n readonly payable!: boolean;\n\n constructor(guard: any, inputs: ReadonlyArray<ParamType>, payable: boolean) {\n super(guard, 'fallback', inputs);\n Object.defineProperty(this, internal, { value: FallbackFragmentInternal });\n defineProperties<FallbackFragment>(this, { payable });\n }\n\n /**\n * Returns a string representation of this fallback as %%format%%.\n */\n format(format?: FormatType): string {\n const type = this.inputs.length === 0 ? 'receive' : 'fallback';\n\n if (format === 'json') {\n const stateMutability = this.payable ? 'payable' : 'nonpayable';\n return JSON.stringify({ type, stateMutability });\n }\n\n return `${type}()${this.payable ? ' payable' : ''}`;\n }\n\n /**\n * Returns a new **FallbackFragment** for %%obj%%.\n */\n static from(obj: any): FallbackFragment {\n if (FallbackFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return FallbackFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const errorObj = obj.toString();\n\n const topIsValid = obj.peekKeyword(setify(['fallback', 'receive']));\n assertArgument(topIsValid, 'type must be fallback or receive', 'obj', errorObj);\n\n const type = obj.popKeyword(setify(['fallback', 'receive']));\n\n // receive()\n if (type === 'receive') {\n const inputs = consumeParams(obj);\n assertArgument(inputs.length === 0, `receive cannot have arguments`, 'obj.inputs', inputs);\n consumeKeywords(obj, setify(['payable']));\n consumeEoi(obj);\n return new FallbackFragment(_guard, [], true);\n }\n\n // fallback() [payable]\n // fallback(bytes) [payable] returns (bytes)\n let inputs = consumeParams(obj);\n if (inputs.length) {\n assertArgument(\n inputs.length === 1 && inputs[0].type === 'bytes',\n 'invalid fallback inputs',\n 'obj.inputs',\n inputs.map((i) => i.format('minimal')).join(', ')\n );\n } else {\n inputs = [ParamType.from('bytes')];\n }\n\n const mutability = consumeMutability(obj);\n assertArgument(\n mutability === 'nonpayable' || mutability === 'payable',\n 'fallback cannot be constants',\n 'obj.stateMutability',\n mutability\n );\n\n if (consumeKeywords(obj, setify(['returns'])).has('returns')) {\n const outputs = consumeParams(obj);\n assertArgument(\n outputs.length === 1 && outputs[0].type === 'bytes',\n 'invalid fallback outputs',\n 'obj.outputs',\n outputs.map((i) => i.format('minimal')).join(', ')\n );\n }\n\n consumeEoi(obj);\n\n return new FallbackFragment(_guard, inputs, mutability === 'payable');\n }\n\n if (obj.type === 'receive') {\n return new FallbackFragment(_guard, [], true);\n }\n\n if (obj.type === 'fallback') {\n const inputs = [ParamType.from('bytes')];\n const payable = obj.stateMutability === 'payable';\n return new FallbackFragment(_guard, inputs, payable);\n }\n\n assertArgument(false, 'invalid fallback description', 'obj', obj);\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FallbackFragment**.\n */\n static isFragment(value: any): value is FallbackFragment {\n return value && value[internal] === FallbackFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a method.\n */\nexport class FunctionFragment extends NamedFragment {\n /**\n * If the function is constant (e.g. ``pure`` or ``view`` functions).\n */\n readonly constant!: boolean;\n\n /**\n * The returned types for the result of calling this function.\n */\n readonly outputs!: ReadonlyArray<ParamType>;\n\n /**\n * The state mutability (e.g. ``payable``, ``nonpayable``, ``view``\n * or ``pure``)\n */\n readonly stateMutability!: 'payable' | 'nonpayable' | 'view' | 'pure';\n\n /**\n * If the function can be sent value during invocation.\n */\n readonly payable!: boolean;\n\n /**\n * The recommended gas limit to send when calling this function.\n */\n readonly gas!: null | bigint;\n\n /**\n * @private\n */\n constructor(\n guard: any,\n name: string,\n stateMutability: 'payable' | 'nonpayable' | 'view' | 'pure',\n inputs: ReadonlyArray<ParamType>,\n outputs: ReadonlyArray<ParamType>,\n gas: null | bigint\n ) {\n super(guard, 'function', name, inputs);\n Object.defineProperty(this, internal, { value: FunctionFragmentInternal });\n outputs = Object.freeze(outputs.slice());\n const constant = stateMutability === 'view' || stateMutability === 'pure';\n const payable = stateMutability === 'payable';\n defineProperties<FunctionFragment>(this, {\n constant,\n gas,\n outputs,\n payable,\n stateMutability,\n });\n }\n\n /**\n * The Function selector.\n */\n get selector(): string {\n return id(this.format('sighash')).substring(0, 10);\n }\n\n /**\n * Returns a string representation of this function as %%format%%.\n */\n format(format?: FormatType): string {\n if (format == null) {\n format = 'sighash';\n }\n if (format === 'json') {\n return JSON.stringify({\n type: 'function',\n name: this.name,\n constant: this.constant,\n stateMutability: this.stateMutability !== 'nonpayable' ? this.stateMutability : undefined,\n payable: this.payable,\n gas: this.gas != null ? this.gas : undefined,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n outputs: this.outputs.map((o) => JSON.parse(o.format(format))),\n });\n }\n\n const result: string[] = [];\n\n if (format !== 'sighash') {\n result.push('function');\n }\n\n result.push(this.name + joinParams(format, this.inputs));\n\n if (format !== 'sighash') {\n if (this.stateMutability !== 'nonpayable') {\n result.push(this.stateMutability);\n }\n\n if (this.outputs && this.outputs.length) {\n result.push('returns');\n result.push(joinParams(format, this.outputs));\n }\n\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n }\n return result.join(' ');\n }\n\n /**\n * Return the selector for a function with %%name%% and %%params%%.\n */\n static getSelector(name: string, params?: Array<any>): string {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new FunctionFragment(_guard, name, 'view', params, [], null);\n return fragment.selector;\n }\n\n /**\n * Returns a new **FunctionFragment** for %%obj%%.\n */\n static from(obj: any): FunctionFragment {\n if (FunctionFragment.isFragment(obj)) {\n return obj;\n }\n\n if (typeof obj === 'string') {\n return FunctionFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('function', obj);\n const inputs = consumeParams(obj);\n const mutability = consumeMutability(obj);\n\n let outputs: Array<ParamType> = [];\n if (consumeKeywords(obj, setify(['returns'])).has('returns')) {\n outputs = consumeParams(obj);\n }\n\n const gas = consumeGas(obj);\n\n consumeEoi(obj);\n\n return new FunctionFragment(_guard, name, mutability, inputs, outputs, gas);\n }\n\n let stateMutability = obj.stateMutability;\n\n // Use legacy Solidity ABI logic if stateMutability is missing\n if (stateMutability == null) {\n stateMutability = 'payable';\n\n if (typeof obj.constant === 'boolean') {\n stateMutability = 'view';\n if (!obj.constant) {\n stateMutability = 'payable';\n if (typeof obj.payable === 'boolean' && !obj.payable) {\n stateMutability = 'nonpayable';\n }\n }\n } else if (typeof obj.payable === 'boolean' && !obj.payable) {\n stateMutability = 'nonpayable';\n }\n }\n\n // @TODO: verifyState for stateMutability (e.g. throw if\n // payable: false but stateMutability is \"nonpayable\")\n\n return new FunctionFragment(\n _guard,\n obj.name,\n stateMutability,\n obj.inputs ? obj.inputs.map(ParamType.from) : [],\n obj.outputs ? obj.outputs.map(ParamType.from) : [],\n obj.gas != null ? obj.gas : null\n );\n }\n\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FunctionFragment**.\n */\n static isFragment(value: any): value is FunctionFragment {\n return value && value[internal] === FunctionFragmentInternal;\n }\n}\n\n/**\n * A Fragment which represents a structure.\n */\nexport class StructFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard: any, name: string, inputs: ReadonlyArray<ParamType>) {\n super(guard, 'struct', name, inputs);\n Object.defineProperty(this, internal, { value: StructFragmentInternal });\n }\n\n /**\n * Returns a string representation of this struct as %%format%%.\n */\n format(): string {\n throw new Error('@TODO');\n }\n\n /**\n * Returns a new **StructFragment** for %%obj%%.\n */\n static from(obj: any): StructFragment {\n if (typeof obj === 'string') {\n return StructFragment.from(lex(obj));\n } else if (obj instanceof TokenString) {\n const name = consumeName('struct', obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n return new StructFragment(_guard, name, inputs);\n }\n\n return new StructFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n\n // @TODO: fix this return type\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **StructFragment**.\n */\n static isFragment(value: any): value is FunctionFragment {\n return value && value[internal] === StructFragmentInternal;\n }\n}\n","import * as accounts from './accounts.js';\nimport * as address from './address.js';\nimport * as base58 from './base58.js';\nimport * as bytes from './bytes.js';\nimport * as crypto from './crypto.js';\nimport * as code from './code.js';\nimport * as abi from './abi.js';\nimport * as message from './message.js';\nimport * as ethersUtils from './ethersUtils.js';\nimport { TypedDataEncoder as _TypedDataEncoder } from './typedData.js';\nimport * as transaction from './transaction.js';\n\nimport * as validations from './validations.js';\n\nconst utils = {\n ...validations,\n address,\n code,\n accounts,\n base58,\n bytes,\n crypto,\n abi,\n message,\n _TypedDataEncoder,\n transaction,\n ethersUtils,\n};\nexport default utils;\nexport * from './accounts.js';\nexport * from './address.js';\nexport * from './base58.js';\nexport * from './bytes.js';\nexport * from './crypto.js';\nexport * from './code.js';\nexport * from './abi.js';\nexport * from './message.js';\nexport * from './ethersUtils.js';\nexport * from './typedData.js';\nexport * from './transaction.js';\n\nexport * from './validations.js';\n","/**\n * The Interface class is a low-level class that accepts an\n * ABI and provides all the necessary functionality to encode\n * and decode paramaters to and results from methods, events\n * and errors.\n *\n * It also provides several convenience methods to automatically\n * search and find matching transactions and events to parse them.\n *\n * @_subsection api/abi:Interfaces [interfaces]\n */\n\nimport { keccak256 } from 'ethers';\nimport { id } from 'ethers';\nimport {\n concat,\n dataSlice,\n getBigInt,\n getBytes,\n getBytesCopy,\n hexlify,\n zeroPadValue,\n isHexString,\n defineProperties,\n assertArgument,\n toBeHex,\n assert,\n} from 'ethers';\n\nimport { AbiCoder } from 'ethers';\nimport { checkResultErrors, Result } from 'ethers';\nimport {\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FallbackFragment,\n Fragment,\n FunctionFragment,\n ParamType,\n} from './fragments.js';\nimport { Typed } from 'ethers';\n\nimport type { BigNumberish, BytesLike, CallExceptionError, CallExceptionTransaction } from 'ethers';\n\nimport type { JsonFragment } from 'ethers';\n\nexport { checkResultErrors, Result };\n\n/**\n * When using the [[Interface-parseLog]] to automatically match a Log to its event\n * for parsing, a **LogDescription** is returned.\n */\nexport class LogDescription {\n /**\n * The matching fragment for the ``topic0``.\n */\n readonly fragment!: EventFragment;\n\n /**\n * The name of the Event.\n */\n readonly name!: string;\n\n /**\n * The full Event signature.\n */\n readonly signature!: string;\n\n /**\n * The topic hash for the Event.\n */\n readonly topic!: string;\n\n /**\n * The arguments passed into the Event with ``emit``.\n */\n readonly args!: Result;\n\n /**\n * @_ignore:\n */\n constructor(fragment: EventFragment, topic: string, args: Result) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties<LogDescription>(this, {\n fragment,\n name,\n signature,\n topic,\n args,\n });\n }\n}\n\n/**\n * When using the [[Interface-parseTransaction]] to automatically match\n * a transaction data to its function for parsing,\n * a **TransactionDescription** is returned.\n */\nexport class TransactionDescription {\n /**\n * The matching fragment from the transaction ``data``.\n */\n readonly fragment!: FunctionFragment;\n\n /**\n * The name of the Function from the transaction ``data``.\n */\n readonly name!: string;\n\n /**\n * The arguments passed to the Function from the transaction ``data``.\n */\n readonly args!: Result;\n\n /**\n * The full Function signature from the transaction ``data``.\n */\n readonly signature!: string;\n\n /**\n * The selector for the Function from the transaction ``data``.\n */\n readonly selector!: string;\n\n /**\n * The ``value`` (in wei) from the transaction.\n */\n readonly value!: bigint;\n\n /**\n * @_ignore:\n */\n constructor(fragment: FunctionFragment, selector: string, args: Result, value: bigint) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties<TransactionDescription>(this, {\n fragment,\n name,\n args,\n signature,\n selector,\n value,\n });\n }\n}\n\n/**\n * When using the [[Interface-parseError]] to automatically match an\n * error for a call result for parsing, an **ErrorDescription** is returned.\n */\nexport class ErrorDescription {\n /**\n * The matching fragment.\n */\n readonly fragment!: ErrorFragment;\n\n /**\n * The name of the Error.\n */\n readonly name!: string;\n\n /**\n * The arguments passed to the Error with ``revert``.\n */\n readonly args!: Result;\n\n /**\n * The full Error signature.\n */\n readonly signature!: string;\n\n /**\n * The selector for the Error.\n */\n readonly selector!: string;\n\n /**\n * @_ignore:\n */\n constructor(fragment: ErrorFragment, selector: string, args: Result) {\n const name = fragment.name,\n signature = fragment.format();\n defineProperties<ErrorDescription>(this, {\n fragment,\n name,\n args,\n signature,\n selector,\n });\n }\n}\n\n/**\n * An **Indexed** is used as a value when a value that does not\n * fit within a topic (i.e. not a fixed-length, 32-byte type). It\n * is the ``keccak256`` of the value, and used for types such as\n * arrays, tuples, bytes and strings.\n */\nexport class Indexed {\n /**\n * The ``keccak256`` of the value logged.\n */\n readonly hash!: null | string;\n\n /**\n * @_ignore:\n */\n readonly _isIndexed!: boolean;\n\n /**\n * Returns ``true`` if %%value%% is an **Indexed**.\n *\n * This provides a Type Guard for property access.\n */\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n\n /**\n * @_ignore:\n */\n constructor(hash: null | string) {\n defineProperties<Indexed>(this, { hash, _isIndexed: true });\n }\n}\n\ntype ErrorInfo = {\n signature: string;\n inputs: Array<string>;\n name: string;\n reason: (...args: Array<any>) => string;\n};\n\n// https://docs.soliditylang.org/en/v0.8.13/control-structures.html?highlight=panic#panic-via-assert-and-error-via-require\nconst PanicReasons: Record<string, string> = {\n '0': 'generic panic',\n '1': 'assert(false)',\n '17': 'arithmetic overflow',\n '18': 'division or modulo by zero',\n '33': 'enum overflow',\n '34': 'invalid encoded storage byte array accessed',\n '49': 'out-of-bounds array access; popping on an empty array',\n '50': 'out-of-bounds access of an array or bytesN',\n '65': 'out of memory',\n '81': 'uninitialized function',\n};\n\nconst BuiltinErrors: Record<string, ErrorInfo> = {\n '0x08c379a0': {\n signature: 'Error(string)',\n name: 'Error',\n inputs: ['string'],\n reason: (message: string) => {\n return `reverted with reason string ${JSON.stringify(message)}`;\n },\n },\n '0x4e487b71': {\n signature: 'Panic(uint256)',\n name: 'Panic',\n inputs: ['uint256'],\n reason: (code: bigint) => {\n let reason = 'unknown panic code';\n if (code >= 0 && code <= 0xff && PanicReasons[code.toString()]) {\n reason = PanicReasons[code.toString()];\n }\n return `reverted with panic code 0x${code.toString(16)} (${reason})`;\n },\n },\n};\n\n/*\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (<any>wrap).error = error;\n return wrap;\n}\n*/\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array<ParamType>): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\n\n/**\n * An **InterfaceAbi** may be any supported ABI format.\n *\n * A string is expected to be a JSON string, which will be parsed\n * using ``JSON.parse``. This means that the value **must** be a valid\n * JSON string, with no stray commas, etc.\n *\n * An array may contain any combination of:\n * - Human-Readable fragments\n * - Parsed JSON fragment\n * - [[Fragment]] instances\n *\n * A **Human-Readable Fragment** is a string which resembles a Solidity\n * signature and is introduced in [this blog entry](link-ricmoo-humanreadableabi).\n * For example, ``function balanceOf(address) view returns (uint)``.\n *\n * A **Parsed JSON Fragment** is a JavaScript Object desribed in the\n * [Solidity documentation](link-solc-jsonabi).\n */\nexport type InterfaceAbi = string | ReadonlyArray<Fragment | JsonFragment | string>;\n\n/**\n * An Interface abstracts many of the low-level details for\n * encoding and decoding the data on the blockchain.\n *\n * An ABI provides information on how to encode data to send to\n * a Contract, how to decode the results and events and how to\n * interpret revert errors.\n *\n * The ABI can be specified by [any supported format](InterfaceAbi).\n */\nexport class Interface {\n /**\n * All the Contract ABI members (i.e. methods, events, errors, etc).\n */\n readonly fragments!: ReadonlyArray<Fragment>;\n\n /**\n * The Contract constructor.\n */\n readonly deploy!: ConstructorFragment;\n\n /**\n * The Fallback method, if any.\n */\n readonly fallback!: null | FallbackFragment;\n\n /**\n * If receiving ether is supported.\n */\n readonly receive!: boolean;\n\n #errors: Map<string, ErrorFragment>;\n #events: Map<string, EventFragment>;\n #functions: Map<string, FunctionFragment>;\n // #structs: Map<string, StructFragment>;\n\n #abiCoder: AbiCoder;\n\n /**\n * Create a new Interface for the %%fragments%%.\n */\n constructor(fragments: InterfaceAbi) {\n let abi: ReadonlyArray<Fragment | JsonFragment | string> = [];\n if (typeof fragments === 'string') {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n this.#functions = new Map();\n this.#errors = new Map();\n this.#events = new Map();\n // this.#structs = new Map();\n\n const frags: Array<Fragment> = [];\n for (const a of abi) {\n try {\n frags.push(Fragment.from(a));\n } catch (error) {\n console.log('EE', error);\n }\n }\n\n defineProperties<Interface>(this, {\n fragments: Object.freeze(frags),\n });\n\n let fallback: null | FallbackFragment = null;\n let receive = false;\n\n this.#abiCoder = this.getAbiCoder();\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment, index) => {\n let bucket: Map<string, Fragment>;\n switch (fragment.type) {\n case 'constructor':\n if (this.deploy) {\n console.log('duplicate definition - constructor');\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineProperties<Interface>(this, {\n deploy: <ConstructorFragment>fragment,\n });\n return;\n\n case 'fallback':\n if (fragment.inputs.length === 0) {\n receive = true;\n } else {\n assertArgument(\n !fallback || (<FallbackFragment>fragment).payable !== fallback.payable,\n 'conflicting fallback fragments',\n `fragments[${index}]`,\n fragment\n );\n fallback = <FallbackFragment>fragment;\n receive = fallback.payable;\n }\n return;\n\n case 'function':\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (<FunctionFragment>fragment).outputs);\n bucket = this.#functions;\n break;\n\n case 'event':\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.#events;\n break;\n\n case 'error':\n bucket = this.#errors;\n break;\n\n default:\n return;\n }\n\n // Two identical entries; ignore it\n const signature = fragment.format();\n if (bucket.has(signature)) {\n return;\n }\n\n bucket.set(signature, fragment);\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineProperties<Interface>(this, {\n deploy: ConstructorFragment.from('constructor()'),\n });\n }\n\n defineProperties<Interface>(this, { fallback, receive });\n }\n\n /**\n * Returns the entire Human-Readable ABI, as an array of\n * signatures, optionally as %%minimal%% strings, which\n * removes parameter names and unneceesary spaces.\n */\n format(minimal?: boolean): Array<string> {\n const format = minimal ? 'minimal' : 'full';\n const abi = this.fragments.map((f) => f.format(format));\n return abi;\n }\n\n /**\n * Return the JSON-encoded ABI. This is the format Solidiy\n * returns.\n */\n formatJson(): string {\n const abi = this.fragments.map((f) => f.format('json'));\n\n // We need to re-bundle the JSON fragments a bit\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n /**\n * The ABI coder that will be used to encode and decode binary\n * data.\n */\n getAbiCoder(): AbiCoder {\n return AbiCoder.defaultAbiCoder();\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n #getFunction(key: string, values: null | Array<any | Typed>, forceUnique: boolean): null | FunctionFragment {\n // Selector\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n for (const fragment of this.#functions.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: Array<FunctionFragment> = [];\n for (const [name, fragment] of this.#functions) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (values) {\n const lastValue = values.length > 0 ? values[values.length - 1] : null;\n\n let valueLength = values.length;\n let allowOptions = true;\n if (Typed.isTyped(lastValue) && lastValue.type === 'overrides') {\n allowOptions = false;\n valueLength--;\n }\n\n // Remove all matches that don't have a compatible length. The args\n // may contain an overrides, so the match may have n or n - 1 parameters\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs.length;\n if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) {\n matching.splice(i, 1);\n }\n }\n\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n\n // We are past the inputs\n if (j >= inputs.length) {\n if (values[j].type === 'overrides') {\n continue;\n }\n matching.splice(i, 1);\n break;\n }\n\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n\n // We found a single matching signature with an overrides, but the\n // last value is something that cannot possibly be an options\n if (matching.length === 1 && values && values.length !== matching[0].inputs.length) {\n const lastArg = values[values.length - 1];\n if (lastArg == null || Array.isArray(lastArg) || typeof lastArg !== 'object') {\n matching.splice(0, 1);\n }\n }\n\n if (matching.length === 0) {\n return null;\n }\n\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, 'key', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n const result = this.#functions.get(FunctionFragment.from(key).format());\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Get the function name for %%key%%, which may be a function selector,\n * function name or function signature that belongs to the ABI.\n */\n getFunctionName(key: string): string {\n const fragment = this.#getFunction(key, null, false);\n assertArgument(fragment, 'no matching function', 'key', key);\n return fragment.name;\n }\n\n /**\n * Returns true if %%key%% (a function selector, function name or\n * function signature) is present in the ABI.\n *\n * In the case of a function name, the name may be ambiguous, so\n * accessing the [[FunctionFragment]] may require refinement.\n */\n hasFunction(key: string): boolean {\n return !!this.#getFunction(key, null, false);\n }\n\n /**\n * Get the [[FunctionFragment]] for %%key%%, which may be a function\n * selector, function name or function signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple functions match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single function in\n * the ABI, this will throw.\n */\n getFunction(key: string, values?: Array<any | Typed>): null | FunctionFragment {\n return this.#getFunction(key, values || null, true);\n }\n\n /**\n * Iterate over all functions, calling %%callback%%, sorted by their name.\n */\n forEachFunction(callback: (func: FunctionFragment, index: number) => void): void {\n const names = Array.from(this.#functions.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(<FunctionFragment>this.#functions.get(name), i);\n }\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n #getEvent(key: string, values: null | Array<null | any | Typed>, forceUnique: boolean): null | EventFragment {\n // EventTopic\n if (isHexString(key)) {\n const eventTopic = key.toLowerCase();\n for (const fragment of this.#events.values()) {\n if (eventTopic === fragment.topicHash) {\n return fragment;\n }\n }\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: EventFragment[] = [];\n for (const [name, fragment] of this.#events) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (values) {\n // Remove all matches that don't have a compatible length.\n for (let i = matching.length - 1; i >= 0; i--) {\n if (matching[i].inputs.length < values.length) {\n matching.splice(i, 1);\n }\n }\n\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n\n if (matching.length === 0) {\n return null;\n }\n\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, 'key', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n const result = this.#events.get(EventFragment.from(key).format());\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Get the event name for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n */\n getEventName(key: string): string {\n const fragment = this.#getEvent(key, null, false);\n assertArgument(fragment, 'no matching event', 'key', key);\n\n return fragment.name;\n }\n\n /**\n * Returns true if %%key%% (an event topic hash, event name or\n * event signature) is present in the ABI.\n *\n * In the case of an event name, the name may be ambiguous, so\n * accessing the [[EventFragment]] may require refinement.\n */\n hasEvent(key: string): boolean {\n return !!this.#getEvent(key, null, false);\n }\n\n /**\n * Get the [[EventFragment]] for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple events match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single event in\n * the ABI, this will throw.\n */\n getEvent(key: string, values?: Array<any | Typed>): null | EventFragment {\n return this.#getEvent(key, values || null, true);\n }\n\n /**\n * Iterate over all events, calling %%callback%%, sorted by their name.\n */\n forEachEvent(callback: (func: EventFragment, index: number) => void): void {\n const names = Array.from(this.#events.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(<EventFragment>this.#events.get(name), i);\n }\n }\n\n /**\n * Get the [[ErrorFragment]] for %%key%%, which may be an error\n * selector, error name or error signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple errors match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single error in\n * the ABI, this will throw.\n */\n getError(key: string, values?: Array<any | Typed>): null | ErrorFragment {\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n\n if (BuiltinErrors[selector]) {\n return ErrorFragment.from(BuiltinErrors[selector].signature);\n }\n\n for (const fragment of this.#errors.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n\n return null;\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf('(') === -1) {\n const matching: ErrorFragment[] = [];\n for (const [name, fragment] of this.#errors) {\n if (name.split('(' /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n\n if (matching.length === 0) {\n if (key === 'Error') {\n return ErrorFragment.from('error Error(string)');\n }\n if (key === 'Panic') {\n return ErrorFragment.from('error Panic(uint256)');\n }\n return null;\n } else if (matching.length > 1) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(', ');\n assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, 'name', key);\n }\n\n return matching[0];\n }\n\n // Normalize the signature and lookup the function\n key = ErrorFragment.from(key).format();\n if (key === 'Error(string)') {\n return ErrorFragment.from('error Error(string)');\n }\n if (key === 'Panic(uint256)') {\n return ErrorFragment.from('error Panic(uint256)');\n }\n\n const result = this.#errors.get(key);\n if (result) {\n return result;\n }\n\n return null;\n }\n\n /**\n * Iterate over all errors, calling %%callback%%, sorted by their name.\n */\n forEachError(callback: (func: ErrorFragment, index: number) => void): void {\n const names = Array.from(this.#errors.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback(<ErrorFragment>this.#errors.get(name), i);\n }\n }\n\n // Get the 4-byte selector used by Solidity to identify a function\n /*\n getSelector(fragment: ErrorFragment | FunctionFragment): string {\n if (typeof(fragment) === \"string\") {\n const matches: Array<Fragment> = [ ];\n\n try { matches.push(this.getFunction(fragment)); } catch (error) { }\n try { matches.push(this.getError(<string>fragment)); } catch (_) { }\n\n if (matches.length === 0) {\n logger.throwArgumentError(\"unknown fragment\", \"key\", fragment);\n } else if (matches.length > 1) {\n logger.throwArgumentError(\"ambiguous fragment matches function and error\", \"key\", fragment);\n }\n\n fragment = matches[0];\n }\n\n return dataSlice(id(fragment.format()), 0, 4);\n }\n */\n\n // Get the 32-byte topic hash used by Solidity to identify an event\n /*\n getEventTopic(fragment: EventFragment): string {\n //if (typeof(fragment) === \"string\") { fragment = this.getEvent(eventFragment); }\n return id(fragment.format());\n }\n */\n\n _decodeParams(params: ReadonlyArray<ParamType | string>, data: BytesLike): Result {\n return this.#abiCoder.decode(params as any, data);\n }\n\n _encodeParams(params: ReadonlyArray<ParamType>, values: ReadonlyArray<any>): string {\n return this.#abiCoder.encode(params as any, values);\n }\n\n /**\n * Encodes a ``tx.data`` object for deploying the Contract with\n * the %%values%% as the constructor arguments.\n */\n encodeDeploy(values?: ReadonlyArray<any>): string {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified error (see [[getError]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getError(fragment);\n assertArgument(f, 'unknown error', 'fragment', fragment);\n fragment = f;\n }\n\n assertArgument(\n dataSlice(data, 0, 4) === fragment.selector,\n `data signature does not match error ${fragment.name}.`,\n 'data',\n data\n );\n\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n\n /**\n * Encodes the transaction revert data for a call result that\n * reverted from the the Contract with the sepcified %%error%%\n * (see [[getError]] for valid values for %%fragment%%) with the %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray<any>): string {\n if (typeof fragment === 'string') {\n const f = this.getError(fragment);\n assertArgument(f, 'unknown error', 'fragment', fragment);\n fragment = f;\n }\n\n return concat([fragment.selector, this._encodeParams(fragment.inputs, values || [])]);\n }\n\n /**\n * Decodes the %%data%% from a transaction ``tx.data`` for\n * the function specified (see [[getFunction]] for valid values\n * for %%fragment%%).\n *\n * Most developers should prefer the [[parseTransaction]] method\n * instead, which will automatically detect the fragment.\n */\n decodeFunctionData(fragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n assertArgument(\n dataSlice(data, 0, 4) === fragment.selector,\n `data signature does not match function ${fragment.name}.`,\n 'data',\n data\n );\n\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n\n /**\n * Encodes the ``tx.data`` for a transaction that calls the function\n * specified (see [[getFunction]] for valid values for %%fragment%%) with\n * the %%values%%.\n */\n encodeFunctionData(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n return concat([fragment.selector, this._encodeParams(fragment.inputs, values || [])]);\n }\n\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeFunctionResult(fragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n\n let message = 'invalid length for result data';\n\n const bytes = getBytesCopy(data);\n if (bytes.length % 32 === 0) {\n try {\n return this.#abiCoder.decode(fragment.outputs as any, bytes);\n } catch (error) {\n message = 'could not decode result data';\n }\n }\n\n // Call returned data with no error, but the data is junk\n assert(false, message, 'BAD_DATA', {\n value: hexlify(bytes),\n info: { method: fragment.name, signature: fragment.format() },\n });\n }\n\n makeError(_data: BytesLike, tx: CallExceptionTransaction): CallExceptionError {\n const data = getBytes(_data, 'data');\n\n const error = AbiCoder.getBuiltinCallException('call', tx, data);\n\n // Not a built-in error; try finding a custom error\n const customPrefix = 'execution reverted (unknown custom error)';\n if (error.message.startsWith(customPrefix)) {\n const selector = hexlify(data.slice(0, 4));\n\n const ef = this.getError(selector);\n if (ef) {\n try {\n const args = this.#abiCoder.decode(ef.inputs as any, data.slice(4));\n error.revert = {\n name: ef.name,\n signature: ef.format(),\n args,\n };\n error.reason = error.revert.signature;\n error.message = `execution reverted: ${error.reason}`;\n } catch (e) {\n error.message = `execution reverted (coult not decode custom error)`;\n }\n }\n }\n\n // Add the invocation, if available\n const parsed = this.parseTransaction(tx);\n if (parsed) {\n error.invocation = {\n method: parsed.name,\n signature: parsed.signature,\n args: parsed.args,\n };\n }\n\n return error;\n }\n\n /**\n * Encodes the result data (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values\n * for %%fragment%%) with %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeFunctionResult(fragment: FunctionFragment | string, values?: ReadonlyArray<any>): string {\n if (typeof fragment === 'string') {\n const f = this.getFunction(fragment);\n assertArgument(f, 'unknown function', 'fragment', fragment);\n fragment = f;\n }\n return hexlify(this.#abiCoder.encode(fragment.outputs as any, values || []));\n }\n /*\n spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> {\n const promises: Array<Promise<>> = [ ];\n const process = function(type: ParamType, value: any): any {\n if (type.baseType === \"array\") {\n return descend(type.child\n }\n if (type. === \"address\") {\n }\n };\n\n const descend = function (inputs: Array<ParamType>, values: ReadonlyArray<any>) {\n if (inputs.length !== values.length) { throw new Error(\"length mismatch\"); }\n \n };\n\n const result: Array<any> = [ ];\n values.forEach((value, index) => {\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n }\n*/\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(fragment: EventFragment | string, values: ReadonlyArray<any>): Array<null | string | Array<string>> {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, 'UNEXPECTED_ARGUMENT', {\n count: values.length,\n expectedCount: fragment.inputs.length,\n });\n\n const topics: Array<null | string | Array<string>> = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n\n // @TODO: Use the coders for this; to properly support tuples, etc.\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === 'string') {\n return id(value);\n } else if (param.type === 'bytes') {\n return keccak256(hexlify(value));\n }\n\n if (param.type === 'bool' && typeof value === 'boolean') {\n value = value ? '0x01' : '0x00';\n }\n\n if (param.type.match(/^u?int/)) {\n value = toBeHex(value);\n }\n\n // Check addresses are valid\n if (param.type === 'address') {\n this.#abiCoder.encode(['address'], [value]);\n }\n return zeroPadValue(hexlify(value), 32);\n //@TOOD should probably be return toHex(value, 32)\n };\n\n values.forEach((value, index) => {\n const param = (<EventFragment>fragment).inputs[index];\n\n if (!param.indexed) {\n assertArgument(\n value == null,\n 'cannot filter non-indexed parameters; must be null',\n 'contract.' + param.name,\n value\n );\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === 'array' || param.baseType === 'tuple') {\n assertArgument(false, 'filtering with tuples or arrays not supported', 'contract.' + param.name, value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(fragment: EventFragment | string, values: ReadonlyArray<any>): { data: string; topics: Array<string> } {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n const topics: Array<string> = [];\n\n const dataTypes: Array<ParamType> = [];\n const dataValues: Array<string> = [];\n\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n\n assertArgument(values.length === fragment.inputs.length, 'event arguments/values mismatch', 'values', values);\n\n fragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === 'string') {\n topics.push(id(value));\n } else if (param.type === 'bytes') {\n topics.push(keccak256(value));\n } else if (param.baseType === 'tuple' || param.baseType === 'array') {\n // @TODO\n throw new Error('not implemented');\n } else {\n topics.push(this.#abiCoder.encode([param.type], [value]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this.#abiCoder.encode(dataTypes as any, dataValues),\n topics: topics,\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(fragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray<string>): Result {\n if (typeof fragment === 'string') {\n const f = this.getEvent(fragment);\n assertArgument(f, 'unknown event', 'eventFragment', fragment);\n fragment = f;\n }\n\n if (topics != null && !fragment.anonymous) {\n const eventTopic = fragment.topicHash;\n assertArgument(\n isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic,\n 'fragment/topic mismatch',\n 'topics[0]',\n topics[0]\n );\n topics = topics.slice(1);\n }\n\n const indexed: Array<ParamType> = [];\n const nonIndexed: Array<ParamType> = [];\n const dynamic: Array<boolean> = [];\n\n fragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (\n param.type === 'string' ||\n param.type === 'bytes' ||\n param.baseType === 'tuple' ||\n param.baseType === 'array'\n ) {\n indexed.push(ParamType.from({ type: 'bytes32', name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n const resultIndexed = topics != null ? this.#abiCoder.decode(indexed as any, concat(topics)) : null;\n const resultNonIndexed = this.#abiCoder.decode(nonIndexed as any, data, true);\n\n //const result: (Array<any> & { [ key: string ]: any }) = [ ];\n const values: Array<any> = [];\n const keys: Array<null | string> = [];\n let nonIndexedIndex = 0,\n indexedIndex = 0;\n fragment.inputs.forEach((param, index) => {\n let value: Indexed | null | unknown = null;\n if (param.indexed) {\n if (resultIndexed == null) {\n value = new Indexed(null);\n } else if (dynamic[index]) {\n value = new Indexed(resultIndexed[indexedIndex++]);\n } else {\n try {\n value = resultIndexed[indexedIndex++];\n } catch (error) {\n value = error;\n }\n }\n } else {\n try {\n value = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n value = error;\n }\n }\n\n values.push(value);\n keys.push(param.name || null);\n });\n\n return Result.fromItems(values, keys);\n }\n\n /**\n * Parses a transaction, finding the matching function and extracts\n * the parameter values along with other useful function details.\n *\n * If the matching function cannot be found, return null.\n */\n parseTransaction(tx: { data: string; value?: BigNumberish }): null | TransactionDescription {\n const data = getBytes(tx.data, 'tx.data');\n const value = getBigInt(tx.value != null ? tx.value : 0, 'tx.value');\n\n const fragment = this.getFunction(hexlify(data.slice(0, 4)));\n\n if (!fragment) {\n return null;\n }\n\n const args = this.#abiCoder.decode(fragment.inputs as any, data.slice(4));\n return new TransactionDescription(fragment, fragment.selector, args, value);\n }\n\n parseCallResult(data: BytesLike): Result {\n throw new Error('@TODO');\n }\n\n /**\n * Parses a receipt log, finding the matching event and extracts\n * the parameter values along with other useful event details.\n *\n * If the matching event cannot be found, returns null.\n */\n parseLog(log: { topics: Array<string>; data: string }): null | LogDescription {\n const fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) {\n return null;\n }\n\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n\n return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));\n }\n\n /**\n * Parses a revert data, finding the matching error and extracts\n * the parameter values along with other useful error details.\n *\n * If the matching event cannot be found, returns null.\n */\n parseError(data: BytesLike): null | ErrorDescription {\n const hexData = hexlify(data);\n\n const fragment = this.getError(dataSlice(hexData, 0, 4));\n\n if (!fragment) {\n return null;\n }\n\n const args = this.#abiCoder.decode(fragment.inputs as any, dataSlice(hexData, 4));\n return new ErrorDescription(fragment, fragment.selector, args);\n }\n\n /**\n * Creates a new [[Interface]] from the ABI %%value%%.\n *\n * The %%value%% may be provided as an existing [[Interface]] object,\n * a JSON-encoded ABI or any Human-Readable ABI format.\n */\n static from(value: InterfaceAbi | Interface): Interface {\n // Already an Interface, which is immutable\n if (value instanceof Interface) {\n return value;\n }\n\n // JSON\n if (typeof value === 'string') {\n return new Interface(JSON.parse(value));\n }\n\n // Maybe an interface from an older version, or from a symlinked copy\n if (typeof (<any>value).format === 'function') {\n return new Interface((<any>value).format('json'));\n }\n\n // Array of fragments\n return new Interface(value);\n }\n}\n","import { keccak256, toUtf8Bytes, concat, recoverAddress, SigningKey, joinSignature } from './ethersUtils.js';\nimport { ADDRESS_PREFIX } from './address.js';\nimport { getBase58CheckAddress } from './crypto.js';\nimport { hexStr2byteArray } from './code.js';\n\nexport const TRON_MESSAGE_PREFIX = '\\x19TRON Signed Message:\\n';\n\nexport function hashMessage(message: string | Uint8Array | Array<number>) {\n if (typeof message === 'string') {\n message = toUtf8Bytes(message);\n } else if (Array.isArray(message)) {\n message = new Uint8Array(message);\n }\n\n return keccak256(concat([toUtf8Bytes(TRON_MESSAGE_PREFIX), toUtf8Bytes(String(message.length)), message]));\n}\n\nexport function signMessage(message: string | Uint8Array | Array<number>, privateKey: string) {\n if (!privateKey.match(/^0x/)) {\n privateKey = '0x' + privateKey;\n }\n\n const signingKey = new SigningKey(privateKey);\n const messageDigest = hashMessage(message);\n const signature = signingKey.sign(messageDigest);\n\n return joinSignature(signature);\n}\n\nexport function verifyMessage(message: string | Uint8Array | Array<number>, signature: string) {\n if (!signature.match(/^0x/)) {\n signature = '0x' + signature;\n }\n const recovered = recoverAddress(hashMessage(message), signature);\n const base58Address = getBase58CheckAddress(hexStr2byteArray(recovered.replace(/^0x/, ADDRESS_PREFIX)));\n\n return base58Address;\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport google_protobuf_any_pb from '@tronweb3/google-protobuf/google/protobuf/any_pb.js';\n\nimport '../protocol/core/Tron_pb.cjs';\nconst { Transaction, Permission, Key } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/balance_contract_pb.cjs';\nconst {\n TransferContract,\n FreezeBalanceContract,\n UnfreezeBalanceContract,\n WithdrawBalanceContract,\n FreezeBalanceV2Contract,\n UnfreezeBalanceV2Contract,\n WithdrawExpireUnfreezeContract,\n DelegateResourceContract,\n UnDelegateResourceContract,\n} = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/asset_issue_contract_pb.cjs';\nconst { TransferAssetContract, ParticipateAssetIssueContract, AssetIssueContract, UpdateAssetContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/smart_contract_pb.cjs';\nconst {\n TriggerSmartContract,\n ClearABIContract,\n UpdateEnergyLimitContract,\n UpdateSettingContract,\n CreateSmartContract,\n SmartContract,\n} = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/common_pb.cjs';\nconst { ResourceCode } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/witness_contract_pb.cjs';\nconst { WitnessCreateContract, VoteWitnessContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/storage_contract_pb.cjs';\nconst { UpdateBrokerageContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/account_contract_pb.cjs';\nconst { AccountCreateContract, AccountUpdateContract, SetAccountIdContract, AccountPermissionUpdateContract } =\n globalThis.TronWebProto;\n\nimport '../protocol/core/contract/proposal_contract_pb.cjs';\nconst { ProposalCreateContract, ProposalDeleteContract, ProposalApproveContract } = globalThis.TronWebProto;\n\nimport '../protocol/core/contract/exchange_contract_pb.cjs';\nconst { ExchangeCreateContract, ExchangeInjectContract, ExchangeWithdrawContract, ExchangeTransactionContract } =\n globalThis.TronWebProto;\n\nimport { byteArray2hexStr } from './bytes.js';\nimport { sha256, keccak256 } from './ethersUtils.js';\nimport TronWeb from '../tronweb.js';\nimport { isHex } from './validations.js';\n\nconst fromHexString = (hexString: string) => {\n if (!hexString || hexString.length === 0) return new Uint8Array([]);\n return new Uint8Array(\n TronWeb.address\n .toHex(hexString)\n .match(/.{1,2}/g)\n .map((byte: string) => parseInt(byte, 16))\n );\n};\n\nconst stringToUint8Array = (hexString: string) => {\n if (!hexString || hexString.length === 0) return new Uint8Array([]);\n return new Uint8Array(\n (isHex(hexString) ? hexString : TronWeb.toHex(hexString))\n .replace(/^0x/, '')\n .match(/.{1,2}/g)\n .map((byte: string) => parseInt(byte, 16))\n );\n};\n\nconst flexToUint8Array = (str: string, visible: boolean) => {\n if (!visible) return stringToUint8Array(str.replace(/^0x/, ''));\n return stringToUint8Array(TronWeb.fromUtf8(str).replace(/^0x/, ''));\n};\n\nconst sha3 = (string: string, prefix = true) => {\n return (prefix ? '0x' : '') + keccak256(Buffer.from(string, 'utf-8')).toString().substring(2);\n};\n\nconst buildCommonTransaction = (message, contractType, typeName, permissionId) => {\n const anyValue = new google_protobuf_any_pb.Any();\n anyValue.pack(message.serializeBinary(), 'protocol.' + typeName);\n const contract = new Transaction.Contract();\n contract.setType(contractType);\n contract.setParameter(anyValue);\n if (permissionId) {\n contract.setPermissionId(permissionId);\n }\n const raw = new Transaction.raw();\n raw.addContract(contract);\n const transaction = new Transaction();\n transaction.setRawData(raw);\n return transaction;\n};\n\n// wallet/createtransaction for sendTrx\nconst buildTransferContract = (value, options) => {\n const { to_address, owner_address, amount } = value;\n const transferContract = new TransferContract();\n transferContract.setToAddress(fromHexString(to_address));\n transferContract.setOwnerAddress(fromHexString(owner_address));\n transferContract.setAmount(amount);\n return buildCommonTransaction(\n transferContract,\n Transaction.Contract.ContractType.TRANSFERCONTRACT,\n 'TransferContract',\n options.Permission_id\n );\n};\n\n// wallet/transferasset for sendToken\nconst buildTransferAssetContract = (value, options) => {\n const { to_address, owner_address, amount, asset_name } = value;\n const transferContract = new TransferAssetContract();\n transferContract.setToAddress(fromHexString(to_address));\n transferContract.setOwnerAddress(fromHexString(owner_address));\n transferContract.setAssetName(flexToUint8Array(asset_name, options.visible));\n transferContract.setAmount(amount);\n return buildCommonTransaction(\n transferContract,\n Transaction.Contract.ContractType.TRANSFERASSETCONTRACT,\n 'TransferAssetContract',\n options.Permission_id\n );\n};\n\n// wallet/participateassetissue for purchaseToken\nconst buildParticipateAssetIssueContract = (value, options) => {\n const pbObj = new ParticipateAssetIssueContract();\n pbObj.setToAddress(fromHexString(value.to_address));\n pbObj.setOwnerAddress(fromHexString(value.owner_address));\n pbObj.setAssetName(flexToUint8Array(value.asset_name, options.visible));\n pbObj.setAmount(value.amount);\n\n return buildCommonTransaction(\n pbObj,\n Transaction.Contract.ContractType.PARTICIPATEASSETISSUECONTRACT,\n 'ParticipateAssetIssueContract',\n options.Permission_id\n );\n};\n\nconst buildTriggerSmartContract = (value, options) => {\n const triggerSmartContract = new TriggerSmartContract();\n const {\n owner_address,\n contract_address,\n parameter = '',\n function_selector,\n call_value,\n call_token_value,\n token_id,\n data,\n } = value;\n triggerSmartContract.setOwnerAddress(fromHexString(owner_address));\n triggerSmartContract.setContractAddress(fromHexString(contract_address));\n triggerSmartContract.setCallValue(call_value);\n if (data) {\n triggerSmartContract.setData(stringToUint8Array(data));\n } else if (function_selector) {\n const contractData = sha3(function_selector).substring(2, 10) + parameter;\n triggerSmartContract.setData(stringToUint8Array(contractData));\n }\n\n if (token_id) {\n triggerSmartContract.setTokenId(token_id);\n }\n if (call_token_value) {\n triggerSmartContract.setCallTokenValue(call_token_value);\n }\n\n return buildCommonTransaction(\n triggerSmartContract,\n Transaction.Contract.ContractType.TRIGGERSMARTCONTRACT,\n 'TriggerSmartContract',\n options.Permission_id\n );\n};\n\nconst buildFreezeBalanceContract = (value, options) => {\n const freezeBalanceContract = new FreezeBalanceContract();\n const { owner_address, frozen_balance, frozen_duration, resource, receiver_address } = value;\n freezeBalanceContract.setOwnerAddress(fromHexString(owner_address));\n freezeBalanceContract.setFrozenBalance(frozen_balance);\n freezeBalanceContract.setFrozenDuration(frozen_duration);\n if (resource) {\n freezeBalanceContract.setResource(ResourceCode[resource]);\n }\n if (receiver_address) {\n freezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));\n }\n\n return buildCommonTransaction(\n freezeBalanceContract,\n Transaction.Contract.ContractType.FREEZEBALANCECONTRACT,\n 'FreezeBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildUnfreezeBalanceContract = (value, options) => {\n const unfreezeBalanceContract = new UnfreezeBalanceContract();\n const { owner_address, resource, receiver_address } = value;\n unfreezeBalanceContract.setOwnerAddress(fromHexString(owner_address));\n if (resource) {\n unfreezeBalanceContract.setResource(ResourceCode[resource]);\n }\n if (receiver_address) {\n unfreezeBalanceContract.setReceiverAddress(fromHexString(receiver_address));\n }\n\n return buildCommonTransaction(\n unfreezeBalanceContract,\n Transaction.Contract.ContractType.UNFREEZEBALANCECONTRACT,\n 'UnfreezeBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildWithdrawBalanceContract = (value, options) => {\n const withdrawbalanceContract = new WithdrawBalanceContract();\n const { owner_address } = value;\n withdrawbalanceContract.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawbalanceContract,\n Transaction.Contract.ContractType.WITHDRAWBALANCECONTRACT,\n 'WithdrawBalanceContract',\n options.Permission_id\n );\n};\n\nconst buildFreezeBalanceV2Contract = (value, options) => {\n const freezeBalanceV2Contract = new FreezeBalanceV2Contract();\n const { owner_address, frozen_balance, resource } = value;\n freezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));\n freezeBalanceV2Contract.setFrozenBalance(frozen_balance);\n freezeBalanceV2Contract.setResource(ResourceCode[resource]);\n\n return buildCommonTransaction(\n freezeBalanceV2Contract,\n Transaction.Contract.ContractType.FREEZEBALANCEV2CONTRACT,\n 'FreezeBalanceV2Contract',\n options.Permission_id\n );\n};\n\nconst buildCancelFreezeBalanceV2Contract = (value, options) => {\n const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();\n const { owner_address } = value;\n withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawExpireUnfreeze,\n Transaction.Contract.ContractType.CANCELALLUNFREEZEV2CONTRACT,\n 'CancelAllUnfreezeV2Contract',\n options.Permission_id\n );\n};\n\nconst buildUnfreezeBalanceV2Contract = (value, options) => {\n const unfreezeBalanceV2Contract = new UnfreezeBalanceV2Contract();\n const { owner_address, unfreeze_balance, resource } = value;\n unfreezeBalanceV2Contract.setOwnerAddress(fromHexString(owner_address));\n unfreezeBalanceV2Contract.setUnfreezeBalance(unfreeze_balance);\n unfreezeBalanceV2Contract.setResource(ResourceCode[resource]);\n\n return buildCommonTransaction(\n unfreezeBalanceV2Contract,\n Transaction.Contract.ContractType.UNFREEZEBALANCEV2CONTRACT,\n 'UnfreezeBalanceV2Contract',\n options.Permission_id\n );\n};\n\nconst buildDelegateResourceContract = (value, options) => {\n const delegateResourceContract = new DelegateResourceContract();\n const { owner_address, receiver_address, balance, resource, lock = false, lock_period } = value;\n delegateResourceContract.setOwnerAddress(fromHexString(owner_address));\n delegateResourceContract.setBalance(balance);\n delegateResourceContract.setResource(ResourceCode[resource]);\n delegateResourceContract.setLock(lock);\n delegateResourceContract.setLockPeriod(lock_period);\n delegateResourceContract.setReceiverAddress(fromHexString(receiver_address));\n\n return buildCommonTransaction(\n delegateResourceContract,\n Transaction.Contract.ContractType.DELEGATERESOURCECONTRACT,\n 'DelegateResourceContract',\n options.Permission_id\n );\n};\n\nconst buildUnDelegateResourceContract = (value, options) => {\n const unDelegateResourceContract = new UnDelegateResourceContract();\n const { owner_address, receiver_address, balance, resource } = value;\n unDelegateResourceContract.setOwnerAddress(fromHexString(owner_address));\n unDelegateResourceContract.setBalance(balance);\n unDelegateResourceContract.setResource(ResourceCode[resource]);\n unDelegateResourceContract.setReceiverAddress(fromHexString(receiver_address));\n\n return buildCommonTransaction(\n unDelegateResourceContract,\n Transaction.Contract.ContractType.UNDELEGATERESOURCECONTRACT,\n 'UnDelegateResourceContract',\n options.Permission_id\n );\n};\n\nconst buildWithdrawExpireUnfreezeContract = (value, options) => {\n const withdrawExpireUnfreeze = new WithdrawExpireUnfreezeContract();\n const { owner_address } = value;\n withdrawExpireUnfreeze.setOwnerAddress(fromHexString(owner_address));\n\n return buildCommonTransaction(\n withdrawExpireUnfreeze,\n Transaction.Contract.ContractType.WITHDRAWEXPIREUNFREEZECONTRACT,\n 'WithdrawExpireUnfreezeContract',\n options.Permission_id\n );\n};\n\n// applyForSR\nconst buildCreateWitness = (value, options) => {\n const createWitnessContract = new WitnessCreateContract();\n const { owner_address, url } = value;\n createWitnessContract.setOwnerAddress(fromHexString(owner_address));\n createWitnessContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n return buildCommonTransaction(\n createWitnessContract,\n Transaction.Contract.ContractType.WITNESSCREATECONTRACT,\n 'WitnessCreateContract',\n options.Permission_id\n );\n};\n\n// vote\nconst buildVoteWitnessAccount = (value, options) => {\n const voteWitnessContract = new VoteWitnessContract();\n const { owner_address, votes } = value;\n voteWitnessContract.setOwnerAddress(fromHexString(owner_address));\n\n votes.forEach((voteItem) => {\n const vote = new VoteWitnessContract.Vote();\n const { vote_address, vote_count } = voteItem;\n vote.setVoteAddress(fromHexString(vote_address));\n const numberOfVotes = parseInt(vote_count);\n vote.setVoteCount(numberOfVotes);\n voteWitnessContract.addVotes(vote);\n });\n\n return buildCommonTransaction(\n voteWitnessContract,\n Transaction.Contract.ContractType.VOTEWITNESSCONTRACT,\n 'VoteWitnessContract',\n options.Permission_id\n );\n};\n\nconst buildCreateSmartContract = (value, options) => {\n const params = value?.new_contract\n ? {\n ...{\n owner_address: value.owner_address,\n call_token_value: value.call_token_value,\n token_id: value.token_id,\n },\n ...value.new_contract,\n }\n : value;\n const {\n owner_address,\n consume_user_resource_percent,\n origin_energy_limit,\n abi,\n bytecode = '',\n parameter = '',\n call_value,\n call_token_value,\n token_id,\n name: contracName,\n } = params;\n let { origin_address } = params;\n\n const createSmartContract = new CreateSmartContract();\n createSmartContract.setOwnerAddress(fromHexString(owner_address));\n if (token_id) {\n createSmartContract.setTokenId(token_id);\n }\n if (call_token_value) {\n createSmartContract.setCallTokenValue(call_token_value);\n }\n const smartContractBuilder = new SmartContract();\n\n if (abi) {\n let abiJson;\n if (typeof abi === 'string') {\n abiJson = JSON.parse(abi);\n } else {\n abiJson = abi?.entrys || []; // abi could be an empty object if origin abi is `[]`;\n }\n const abiBuilder = new SmartContract.ABI();\n\n const buildEntryParam = (data) => {\n const param = new SmartContract.ABI.Entry.Param();\n const { indexed, name, type } = data;\n if (indexed === true) {\n param.setIndexed(true);\n }\n param.setName(name);\n param.setType(type);\n return param;\n };\n const entryBuilders = abiJson.map((entry) => {\n const { anonymous, constant, name, inputs, outputs, type, payable, stateMutability } = entry;\n const entryBuilder = new SmartContract.ABI.Entry();\n entryBuilder.setAnonymous(anonymous);\n entryBuilder.setConstant(constant);\n entryBuilder.setName(name);\n if (inputs) {\n entryBuilder.setInputsList(inputs.map((input) => buildEntryParam(input)));\n }\n if (outputs) {\n entryBuilder.setOutputsList(outputs.map((output) => buildEntryParam(output)));\n }\n if (type) {\n entryBuilder.setType(SmartContract.ABI.Entry.EntryType[type.toUpperCase()]);\n }\n\n entryBuilder.setPayable(payable);\n if (stateMutability) {\n entryBuilder.setStatemutability(SmartContract.ABI.Entry.StateMutabilityType[stateMutability.toUpperCase()]);\n }\n\n return entryBuilder;\n });\n abiBuilder.setEntrysList(entryBuilders);\n smartContractBuilder.setAbi(abiBuilder);\n }\n\n if (call_value) {\n smartContractBuilder.setCallValue(call_value);\n }\n\n smartContractBuilder.setConsumeUserResourcePercent(consume_user_resource_percent);\n smartContractBuilder.setOriginEnergyLimit(origin_energy_limit);\n\n if (!origin_address) {\n origin_address = owner_address;\n }\n smartContractBuilder.setOriginAddress(fromHexString(origin_address));\n\n if (bytecode) {\n const bytecodeParameter = bytecode.replace(/^0x/, '') + parameter.replace(/^0x/, '');\n smartContractBuilder.setBytecode(stringToUint8Array(bytecodeParameter));\n }\n\n smartContractBuilder.setName(contracName);\n\n createSmartContract.setNewContract(smartContractBuilder);\n\n return buildCommonTransaction(\n createSmartContract,\n Transaction.Contract.ContractType.CREATESMARTCONTRACT,\n 'CreateSmartContract',\n options.Permission_id\n );\n};\n\nconst buildClearABIContract = (value, options) => {\n const { contract_address, owner_address } = value;\n const clearABIContract = new ClearABIContract();\n clearABIContract.setOwnerAddress(fromHexString(owner_address));\n clearABIContract.setContractAddress(fromHexString(contract_address));\n\n return buildCommonTransaction(\n clearABIContract,\n Transaction.Contract.ContractType.CLEARABICONTRACT,\n 'ClearABIContract',\n options.Permission_id\n );\n};\n\n// updateBrokerage\nconst buildUpdateBrokerageContract = (value, options) => {\n const { brokerage, owner_address } = value;\n const updateBrokerageContract = new UpdateBrokerageContract();\n updateBrokerageContract.setOwnerAddress(fromHexString(owner_address));\n updateBrokerageContract.setBrokerage(brokerage);\n\n return buildCommonTransaction(\n updateBrokerageContract,\n Transaction.Contract.ContractType.UPDATEBROKERAGECONTRACT,\n 'UpdateBrokerageContract',\n options.Permission_id\n );\n};\n\n// createToken\nconst buildAssetIssueContract = (value, options) => {\n const {\n owner_address,\n name,\n abbr,\n description,\n url,\n total_supply,\n trx_num,\n num,\n start_time,\n end_time,\n precision,\n free_asset_net_limit,\n public_free_asset_net_limit,\n public_free_asset_net_usage = 0,\n public_latest_free_net_time = 0,\n vote_score = 0,\n frozen_supply,\n } = value;\n const assetIssueContract = new AssetIssueContract();\n assetIssueContract.setOwnerAddress(fromHexString(owner_address));\n if (name) {\n assetIssueContract.setName(stringToUint8Array(name.replace(/^0x/, '')));\n }\n if (abbr) {\n assetIssueContract.setAbbr(stringToUint8Array(abbr.replace(/^0x/, '')));\n }\n assetIssueContract.setTotalSupply(total_supply);\n assetIssueContract.setNum(num);\n assetIssueContract.setEndTime(end_time);\n assetIssueContract.setStartTime(start_time);\n assetIssueContract.setTrxNum(trx_num);\n assetIssueContract.setVoteScore(vote_score);\n if (precision) {\n assetIssueContract.setPrecision(precision);\n }\n if (public_latest_free_net_time) {\n assetIssueContract.setPublicLatestFreeNetTime(public_latest_free_net_time);\n }\n if (description) {\n assetIssueContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));\n }\n if (url) {\n assetIssueContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n }\n\n assetIssueContract.setPublicFreeAssetNetUsage(public_free_asset_net_usage);\n assetIssueContract.setFreeAssetNetLimit(free_asset_net_limit);\n assetIssueContract.setPublicFreeAssetNetLimit(public_free_asset_net_limit);\n if (frozen_supply) {\n const frozenSupplyContract = new AssetIssueContract.FrozenSupply();\n frozenSupplyContract.setFrozenAmount(frozen_supply.length ? frozen_supply[0].frozen_amount : frozen_supply.frozen_amount);\n frozenSupplyContract.setFrozenDays(frozen_supply.length ? frozen_supply[0].frozen_days : frozen_supply.frozen_days);\n assetIssueContract.addFrozenSupply(frozenSupplyContract);\n }\n return buildCommonTransaction(\n assetIssueContract,\n Transaction.Contract.ContractType.ASSETISSUECONTRACT,\n 'AssetIssueContract',\n options.Permission_id\n );\n};\n\n//createAccount\nconst buildAccountCreateContract = (value, options) => {\n const accountCreateContract = new AccountCreateContract();\n const { account_address, owner_address } = value;\n accountCreateContract.setOwnerAddress(fromHexString(owner_address));\n accountCreateContract.setAccountAddress(fromHexString(account_address.replace(/^0x/, '')));\n return buildCommonTransaction(\n accountCreateContract,\n Transaction.Contract.ContractType.ACCOUNTCREATECONTRACT,\n 'AccountCreateContract',\n options.Permission_id\n );\n};\n\n// updateAccount\nconst buildAccountUpdateContract = (value, options) => {\n const accountUpdateContract = new AccountUpdateContract();\n const { account_name, owner_address } = value;\n accountUpdateContract.setOwnerAddress(fromHexString(owner_address));\n accountUpdateContract.setAccountName(stringToUint8Array(account_name.replace(/^0x/, '')));\n return buildCommonTransaction(\n accountUpdateContract,\n Transaction.Contract.ContractType.ACCOUNTUPDATECONTRACT,\n 'AccountUpdateContract',\n options.Permission_id\n );\n};\n\n// setAccountId\nconst buildSetAccountIdContract = (value, options) => {\n const setAccountIdContract = new SetAccountIdContract();\n const { account_id, owner_address } = value;\n setAccountIdContract.setOwnerAddress(fromHexString(owner_address));\n setAccountIdContract.setAccountId(stringToUint8Array(account_id.replace(/^0x/, '')));\n return buildCommonTransaction(\n setAccountIdContract,\n Transaction.Contract.ContractType.SETACCOUNTIDCONTRACT,\n 'SetAccountIdContract',\n options.Permission_id\n );\n};\n\nconst buildProposalCreateContract = (value, options) => {\n const proposalCreateContract = new ProposalCreateContract();\n const { owner_address, parameters } = value;\n proposalCreateContract.setOwnerAddress(fromHexString(owner_address));\n parameters.forEach((parameter) => {\n proposalCreateContract.getParametersMap().set(parameter.key, parameter.value);\n });\n return buildCommonTransaction(\n proposalCreateContract,\n Transaction.Contract.ContractType.PROPOSALCREATECONTRACT,\n 'ProposalCreateContract',\n options.Permission_id\n );\n};\n\nconst buildProposalDeleteContract = (value, options) => {\n const proposalDeleteContract = new ProposalDeleteContract();\n const { owner_address, proposal_id } = value;\n proposalDeleteContract.setOwnerAddress(fromHexString(owner_address));\n proposalDeleteContract.setProposalId(proposal_id);\n return buildCommonTransaction(\n proposalDeleteContract,\n Transaction.Contract.ContractType.PROPOSALDELETECONTRACT,\n 'ProposalDeleteContract',\n options.Permission_id\n );\n};\n\nconst buildVoteProposalContract = (value, options) => {\n const proposalVoteContract = new ProposalApproveContract();\n const { owner_address, proposal_id, is_add_approval } = value;\n proposalVoteContract.setOwnerAddress(fromHexString(owner_address));\n proposalVoteContract.setProposalId(proposal_id);\n proposalVoteContract.setIsAddApproval(is_add_approval);\n return buildCommonTransaction(\n proposalVoteContract,\n Transaction.Contract.ContractType.PROPOSALAPPROVECONTRACT,\n 'ProposalApproveContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeCreateContract = (value, options) => {\n const exchangeCreateContract = new ExchangeCreateContract();\n const { owner_address, first_token_id, first_token_balance, second_token_id, second_token_balance } = value;\n exchangeCreateContract.setOwnerAddress(fromHexString(owner_address));\n exchangeCreateContract.setFirstTokenId(flexToUint8Array(first_token_id, options.visible));\n exchangeCreateContract.setFirstTokenBalance(first_token_balance);\n exchangeCreateContract.setSecondTokenId(flexToUint8Array(second_token_id, options.visible));\n exchangeCreateContract.setSecondTokenBalance(second_token_balance);\n return buildCommonTransaction(\n exchangeCreateContract,\n Transaction.Contract.ContractType.EXCHANGECREATECONTRACT,\n 'ExchangeCreateContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeInjectContract = (value, options) => {\n const exchangeInjectContract = new ExchangeInjectContract();\n const { owner_address, exchange_id, token_id, quant } = value;\n exchangeInjectContract.setOwnerAddress(fromHexString(owner_address));\n exchangeInjectContract.setExchangeId(exchange_id);\n exchangeInjectContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeInjectContract.setQuant(quant);\n return buildCommonTransaction(\n exchangeInjectContract,\n Transaction.Contract.ContractType.EXCHANGEINJECTCONTRACT,\n 'ExchangeInjectContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeWithdrawContract = (value, options) => {\n const exchangeWithdrawContract = new ExchangeWithdrawContract();\n const { owner_address, exchange_id, token_id, quant } = value;\n exchangeWithdrawContract.setOwnerAddress(fromHexString(owner_address));\n exchangeWithdrawContract.setExchangeId(exchange_id);\n exchangeWithdrawContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeWithdrawContract.setQuant(quant);\n return buildCommonTransaction(\n exchangeWithdrawContract,\n Transaction.Contract.ContractType.EXCHANGEWITHDRAWCONTRACT,\n 'ExchangeWithdrawContract',\n options.Permission_id\n );\n};\n\nconst buildExchangeTransactionContract = (value, options) => {\n const exchangeTransactionContract = new ExchangeTransactionContract();\n const { owner_address, exchange_id, token_id, quant, expected } = value;\n exchangeTransactionContract.setOwnerAddress(fromHexString(owner_address));\n exchangeTransactionContract.setExchangeId(exchange_id);\n exchangeTransactionContract.setTokenId(flexToUint8Array(token_id, options.visible));\n exchangeTransactionContract.setQuant(quant);\n exchangeTransactionContract.setExpected(expected);\n return buildCommonTransaction(\n exchangeTransactionContract,\n Transaction.Contract.ContractType.EXCHANGETRANSACTIONCONTRACT,\n 'ExchangeTransactionContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateSettingContract = (value, options) => {\n const updateSettingContract = new UpdateSettingContract();\n const { owner_address, contract_address, consume_user_resource_percent } = value;\n updateSettingContract.setOwnerAddress(fromHexString(owner_address));\n updateSettingContract.setContractAddress(fromHexString(contract_address));\n updateSettingContract.setConsumeUserResourcePercent(consume_user_resource_percent);\n return buildCommonTransaction(\n updateSettingContract,\n Transaction.Contract.ContractType.UPDATESETTINGCONTRACT,\n 'UpdateSettingContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateEnergyLimitContract = (value, options) => {\n const updateEnergyLimitContract = new UpdateEnergyLimitContract();\n const { owner_address, contract_address, origin_energy_limit } = value;\n updateEnergyLimitContract.setOwnerAddress(fromHexString(owner_address));\n updateEnergyLimitContract.setContractAddress(fromHexString(contract_address));\n updateEnergyLimitContract.setOriginEnergyLimit(origin_energy_limit);\n return buildCommonTransaction(\n updateEnergyLimitContract,\n Transaction.Contract.ContractType.UPDATEENERGYLIMITCONTRACT,\n 'UpdateEnergyLimitContract',\n options.Permission_id\n );\n};\n\nconst buildAccountPermissionUpdateContract = (value, options) => {\n const accountPermissionUpdateContract = new AccountPermissionUpdateContract();\n const { owner_address, owner, witness, actives } = value;\n accountPermissionUpdateContract.setOwnerAddress(fromHexString(owner_address));\n const getType = (type) => {\n // no type when permission_name is owner\n if (isNaN(type)) return type === 'Active' ? 2 : type === 'Witness' ? 1 : 0;\n return type;\n };\n const buildPermission = (data) => {\n // no type when permission_name is owner\n const permission = new Permission();\n const { type, id, permission_name, threshold, parentId, operations, keys } = data;\n permission.setType(getType(type));\n permission.setId(id);\n permission.setPermissionName(permission_name);\n permission.setThreshold(threshold);\n if (parentId) {\n permission.setParentId(parentId);\n }\n if (operations) {\n permission.setOperations(stringToUint8Array(operations));\n }\n if (keys) {\n permission.setKeysList(\n keys.map((key) => {\n const keyBuilder = new Key();\n keyBuilder.setAddress(fromHexString(key.address));\n keyBuilder.setWeight(key.weight);\n return keyBuilder;\n })\n );\n }\n return permission;\n };\n if (owner) {\n accountPermissionUpdateContract.setOwner(buildPermission(owner));\n }\n if (witness) {\n accountPermissionUpdateContract.setWitness(buildPermission(witness));\n }\n if (actives) {\n if (Array.isArray(actives)) {\n accountPermissionUpdateContract.setActivesList(actives.map((active) => buildPermission(active)));\n } else {\n accountPermissionUpdateContract.setActivesList([buildPermission(actives)]);\n }\n }\n return buildCommonTransaction(\n accountPermissionUpdateContract,\n Transaction.Contract.ContractType.ACCOUNTPERMISSIONUPDATECONTRACT,\n 'AccountPermissionUpdateContract',\n options.Permission_id\n );\n};\n\nconst buildUpdateAssetContract = (value, options) => {\n const updateAssetContract = new UpdateAssetContract();\n const { owner_address, description, url, new_limit, new_public_limit } = value;\n updateAssetContract.setOwnerAddress(fromHexString(owner_address));\n if (description) {\n updateAssetContract.setDescription(stringToUint8Array(description.replace(/^0x/, '')));\n }\n if (url) {\n updateAssetContract.setUrl(stringToUint8Array(url.replace(/^0x/, '')));\n }\n if (new_limit) {\n updateAssetContract.setNewLimit(new_limit);\n }\n if (new_public_limit) {\n updateAssetContract.setNewPublicLimit(new_public_limit);\n }\n return buildCommonTransaction(\n updateAssetContract,\n Transaction.Contract.ContractType.UPDATEASSETCONTRACT,\n 'UpdateAssetContract',\n options.Permission_id\n );\n};\n\nconst contractJsonToProtobuf = (contract, value, options) => {\n switch (contract.type) {\n case 'TransferContract':\n return buildTransferContract(value, options);\n case 'TransferAssetContract':\n return buildTransferAssetContract(value, options);\n case 'ParticipateAssetIssueContract':\n return buildParticipateAssetIssueContract(value, options);\n case 'TriggerSmartContract':\n return buildTriggerSmartContract(value, options);\n case 'FreezeBalanceContract':\n return buildFreezeBalanceContract(value, options);\n case 'UnfreezeBalanceContract':\n return buildUnfreezeBalanceContract(value, options);\n case 'WithdrawBalanceContract':\n return buildWithdrawBalanceContract(value, options);\n case 'FreezeBalanceV2Contract':\n return buildFreezeBalanceV2Contract(value, options);\n case 'CancelAllUnfreezeV2Contract':\n return buildCancelFreezeBalanceV2Contract(value, options);\n case 'UnfreezeBalanceV2Contract':\n return buildUnfreezeBalanceV2Contract(value, options);\n case 'DelegateResourceContract':\n return buildDelegateResourceContract(value, options);\n case 'UnDelegateResourceContract':\n return buildUnDelegateResourceContract(value, options);\n case 'WithdrawExpireUnfreezeContract':\n return buildWithdrawExpireUnfreezeContract(value, options);\n case 'WitnessCreateContract':\n return buildCreateWitness(value, options);\n case 'VoteWitnessContract':\n return buildVoteWitnessAccount(value, options);\n case 'CreateSmartContract':\n return buildCreateSmartContract(value, options);\n case 'ClearABIContract':\n return buildClearABIContract(value, options);\n case 'UpdateBrokerageContract':\n return buildUpdateBrokerageContract(value, options);\n case 'AssetIssueContract':\n return buildAssetIssueContract(value, options);\n case 'AccountCreateContract':\n return buildAccountCreateContract(value, options);\n case 'AccountUpdateContract':\n return buildAccountUpdateContract(value, options);\n case 'SetAccountIdContract':\n return buildSetAccountIdContract(value, options);\n case 'ProposalCreateContract':\n return buildProposalCreateContract(value, options);\n case 'ProposalDeleteContract':\n return buildProposalDeleteContract(value, options);\n case 'ProposalApproveContract':\n return buildVoteProposalContract(value, options);\n case 'ExchangeCreateContract':\n return buildExchangeCreateContract(value, options);\n case 'ExchangeInjectContract':\n return buildExchangeInjectContract(value, options);\n case 'ExchangeWithdrawContract':\n return buildExchangeWithdrawContract(value, options);\n case 'ExchangeTransactionContract':\n return buildExchangeTransactionContract(value, options);\n case 'UpdateSettingContract':\n return buildUpdateSettingContract(value, options);\n case 'UpdateEnergyLimitContract':\n return buildUpdateEnergyLimitContract(value, options);\n case 'AccountPermissionUpdateContract':\n return buildAccountPermissionUpdateContract(value, options);\n case 'UpdateAssetContract':\n return buildUpdateAssetContract(value, options);\n }\n};\n\nconst txJsonToPb = (transaction) => {\n const rawData = transaction['raw_data'];\n const contractJson = rawData.contract[0];\n const data = contractJson.parameter.value;\n const options = { Permission_id: contractJson.Permission_id, visible: transaction.visible };\n const transactionObj = contractJsonToProtobuf(contractJson, data, options) as any;\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));\n if (rawData.data) {\n rawDataObj.setData(stringToUint8Array(rawData.data));\n }\n\n if (rawData.fee_limit) {\n rawDataObj.setFeeLimit(rawData.fee_limit);\n }\n\n if (rawData.expiration) {\n rawDataObj.setExpiration(rawData.expiration);\n }\n\n if (rawData.timestamp) {\n rawDataObj.setTimestamp(rawData.timestamp);\n }\n\n transactionObj.setRawData(rawDataObj);\n\n return transactionObj;\n};\n\nconst txJsonToPbWithArgs = (transaction, args: any = {}, options: any = {}) => {\n const rawData = transaction['raw_data'];\n const contractJson = rawData.contract[0];\n\n const transactionObj = contractJsonToProtobuf(contractJson, args, {\n Permission_id: args?.Permission_id,\n }) as any;\n\n const rawDataObj = transactionObj.getRawData();\n rawDataObj.setRefBlockBytes(stringToUint8Array(rawData.ref_block_bytes));\n rawDataObj.setRefBlockHash(stringToUint8Array(rawData.ref_block_hash));\n // for memo\n if (options.data) {\n rawDataObj.setData(stringToUint8Array(options.data.replace(/^0x/, '')));\n }\n\n if (options.fee_limit || args.fee_limit) {\n rawDataObj.setFeeLimit(options.fee_limit || args.fee_limit);\n }\n\n if (rawData.expiration) {\n rawDataObj.setExpiration(rawData.expiration);\n }\n\n if (rawData.timestamp) {\n rawDataObj.setTimestamp(rawData.timestamp);\n }\n\n transactionObj.setRawData(rawDataObj);\n\n return transactionObj;\n};\n\nconst compareTransaction = (transaction, transactionPb) => {\n const rawDataBytes = transactionPb.getRawData().serializeBinary();\n const rawDataHex = byteArray2hexStr(rawDataBytes);\n const txID = sha256(rawDataBytes);\n return (\n rawDataHex.toLowerCase() === transaction.raw_data_hex.toLowerCase() &&\n txID.replace(/^0x/, '').toLowerCase() === transaction.txID.replace(/^0x/, '').toLowerCase()\n );\n};\n\nconst txPbToRawDataHex = (pb) => {\n return byteArray2hexStr(pb.getRawData().serializeBinary());\n};\n\nconst txCheck = (transaction) => {\n const transactionPb = txJsonToPb(transaction);\n return compareTransaction(transaction, transactionPb);\n};\n\nconst txCheckWithArgs = (transaction, args, options) => {\n const transactionPb = txJsonToPbWithArgs(transaction, args, options);\n return compareTransaction(transaction, transactionPb);\n};\n\nconst txPbToTxID = (transactionPb) => {\n const rawDataBytes = transactionPb.getRawData().serializeBinary();\n const txID = sha256(rawDataBytes);\n return txID;\n};\n\nexport { txJsonToPb, txPbToTxID, txPbToRawDataHex, txJsonToPbWithArgs, txCheckWithArgs, txCheck };\n","import { TronWeb } from '../tronweb.js';\nimport {\n keccak256,\n recoverAddress,\n concat,\n defineProperties,\n getBigInt,\n getBytes,\n hexlify,\n isHexString,\n mask,\n toBeHex,\n toQuantity,\n toTwos,\n zeroPadValue,\n assertArgument,\n id,\n} from 'ethers';\nimport type { BigNumberish, BytesLike, SignatureLike } from 'ethers';\n\nimport { ADDRESS_PREFIX_REGEX } from './address.js';\n\nfunction getAddress(address: string) {\n return TronWeb.address.toHex(address).replace(ADDRESS_PREFIX_REGEX, '0x');\n}\nfunction getTronAddress(address: string) {\n return TronWeb.address.toHex(address);\n}\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst BN__1 = BigInt(-1);\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\n\n// @TODO: in v7, verifyingContract should be an AddressLike and use resolveAddress\n\n/**\n * The domain for an [[link-eip-712]] payload.\n */\nexport interface TypedDataDomain {\n /**\n * The human-readable name of the signing domain.\n */\n name?: null | string;\n\n /**\n * The major version of the signing domain.\n */\n version?: null | string;\n\n /**\n * The chain ID of the signing domain.\n */\n chainId?: null | BigNumberish;\n\n /**\n * The the address of the contract that will verify the signature.\n */\n verifyingContract?: null | string;\n\n /**\n * A salt used for purposes decided by the specific domain.\n */\n salt?: null | BytesLike;\n}\n\n/**\n * A specific field of a structured [[link-eip-712]] type.\n */\nexport interface TypedDataField {\n /**\n * The field name.\n */\n name: string;\n\n /**\n * The type of the field.\n */\n type: string;\n}\n\nfunction hexPadRight(value: BytesLike): string {\n const bytes = getBytes(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return concat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = toBeHex(BN_1, 32);\nconst hexFalse = toBeHex(BN_0, 32);\n\nconst domainFieldTypes: Record<string, string> = {\n name: 'string',\n version: 'string',\n chainId: 'uint256',\n verifyingContract: 'address',\n salt: 'bytes32',\n};\n\nconst domainFieldNames: Array<string> = ['name', 'version', 'chainId', 'verifyingContract', 'salt'];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any) {\n assertArgument(typeof value === 'string', `invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n return value;\n };\n}\n\nconst domainChecks: Record<string, (value: any) => any> = {\n name: checkString('name'),\n version: checkString('version'),\n chainId: function (_value: any) {\n const value = getBigInt(_value, 'domain.chainId');\n assertArgument(value >= 0, 'invalid chain ID', 'domain.chainId', _value);\n if (Number.isSafeInteger(value)) {\n return Number(value);\n }\n return toQuantity(value);\n },\n verifyingContract: function (value: any) {\n try {\n return getTronAddress(value).toLowerCase();\n } catch (error) {\n //\n }\n assertArgument(false, `invalid domain value \"verifyingContract\"`, 'domain.verifyingContract', value);\n },\n salt: function (value: any) {\n const bytes = getBytes(value, 'domain.salt');\n assertArgument(bytes.length === 32, `invalid domain value \"salt\"`, 'domain.salt', value);\n return hexlify(bytes);\n },\n};\n\nfunction getBaseEncoder(type: string): null | ((value: any) => string) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = match[1] === '';\n\n const width = parseInt(match[2] || '256');\n assertArgument(\n width % 8 === 0 && width !== 0 && width <= 256 && (match[2] == null || match[2] === String(width)),\n 'invalid numeric width',\n 'type',\n type\n );\n\n const boundsUpper = mask(BN_MAX_UINT256, signed ? width - 1 : width);\n const boundsLower = signed ? (boundsUpper + BN_1) * BN__1 : BN_0;\n\n return function (_value: BigNumberish) {\n const value = getBigInt(_value, 'value');\n\n assertArgument(value >= boundsLower && value <= boundsUpper, `value out-of-bounds for ${type}`, 'value', value);\n\n return toBeHex(signed ? toTwos(value, 256) : value, 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n assertArgument(width !== 0 && width <= 32 && match[1] === String(width), 'invalid bytes width', 'type', type);\n\n return function (value: BytesLike) {\n const bytes = getBytes(value);\n assertArgument(bytes.length === width, `invalid length for ${type}`, 'value', value);\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case 'trcToken':\n return getBaseEncoder('uint256');\n case 'address':\n return function (value: string) {\n return zeroPadValue(getAddress(value), 32);\n };\n case 'bool':\n return function (value: boolean) {\n return !value ? hexFalse : hexTrue;\n };\n case 'bytes':\n return function (value: BytesLike) {\n return keccak256(value);\n };\n case 'string':\n return function (value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array<TypedDataField>): string {\n return `${name}(${fields.map(({ name, type }) => type + ' ' + name).join(',')})`;\n}\n\n/**\n * A **TypedDataEncode** prepares and encodes [[link-eip-712]] payloads\n * for signed typed data.\n *\n * This is useful for those that wish to compute various components of a\n * typed data hash, primary types, or sub-components, but generally the\n * higher level [[Signer-signTypedData]] is more useful.\n */\nexport class TypedDataEncoder {\n /**\n * The primary type for the structured [[types]].\n *\n * This is derived automatically from the [[types]], since no\n * recursion is possible, once the DAG for the types is consturcted\n * internally, the primary type must be the only remaining type with\n * no parent nodes.\n */\n readonly primaryType!: string;\n\n readonly #types: string;\n\n /**\n * The types.\n */\n get types(): Record<string, Array<TypedDataField>> {\n return JSON.parse(this.#types);\n }\n\n readonly #fullTypes: Map<string, string>;\n\n readonly #encoderCache: Map<string, (value: any) => string>;\n\n /**\n * Create a new **TypedDataEncoder** for %%types%%.\n *\n * This performs all necessary checking that types are valid and\n * do not violate the [[link-eip-712]] structural constraints as\n * well as computes the [[primaryType]].\n */\n constructor(types: Record<string, Array<TypedDataField>>) {\n this.#types = JSON.stringify(types);\n this.#fullTypes = new Map();\n this.#encoderCache = new Map();\n\n // Link struct types to their direct child structs\n const links: Map<string, Set<string>> = new Map();\n\n // Link structs to structs which contain them as a child\n const parents: Map<string, Array<string>> = new Map();\n\n // Link all subtypes within a given struct\n const subtypes: Map<string, Set<string>> = new Map();\n\n Object.keys(types).forEach((type) => {\n links.set(type, new Set());\n parents.set(type, []);\n subtypes.set(type, new Set());\n });\n\n for (const name in types) {\n const uniqueNames: Set<string> = new Set();\n\n for (const field of types[name]) {\n // Check each field has a unique name\n assertArgument(\n !uniqueNames.has(field.name),\n `duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`,\n 'types',\n types\n );\n uniqueNames.add(field.name);\n\n // Get the base type (drop any array specifiers)\n const baseType = (<any>field.type.match(/^([^\\x5b]*)(\\x5b|$)/))[1] || null;\n assertArgument(baseType !== name, `circular type reference to ${JSON.stringify(baseType)}`, 'types', types);\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n continue;\n }\n\n assertArgument(parents.has(baseType), `unknown type ${JSON.stringify(baseType)}`, 'types', types);\n\n // Add linkage\n (parents.get(baseType) as Array<string>).push(name);\n (links.get(name) as Set<string>).add(baseType);\n }\n }\n\n // Deduce the primary type\n const primaryTypes = Array.from(parents.keys()).filter((n) => (parents.get(n) as Array<string>).length === 0);\n assertArgument(primaryTypes.length !== 0, 'missing primary type', 'types', types);\n assertArgument(\n primaryTypes.length === 1,\n `ambiguous primary types or unused types: ${primaryTypes.map((t) => JSON.stringify(t)).join(', ')}`,\n 'types',\n types\n );\n\n defineProperties<TypedDataEncoder>(this, { primaryType: primaryTypes[0] });\n\n // Check for circular type references\n function checkCircular(type: string, found: Set<string>) {\n assertArgument(!found.has(type), `circular type reference to ${JSON.stringify(type)}`, 'types', types);\n\n found.add(type);\n\n for (const child of links.get(type) as Set<string>) {\n if (!parents.has(child)) {\n continue;\n }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n for (const subtype of found) {\n (subtypes.get(subtype) as Set<string>).add(child);\n }\n }\n\n found.delete(type);\n }\n checkCircular(this.primaryType, new Set());\n\n // Compute each fully describe type\n for (const [name, set] of subtypes) {\n const st = Array.from(set);\n st.sort();\n this.#fullTypes.set(name, encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(''));\n }\n }\n\n /**\n * Returnthe encoder for the specific %%type%%.\n */\n getEncoder(type: string): (value: any) => string {\n let encoder = this.#encoderCache.get(type);\n if (!encoder) {\n encoder = this.#getEncoder(type);\n this.#encoderCache.set(type, encoder);\n }\n return encoder;\n }\n\n #getEncoder(type: string): (value: any) => string {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n return (value: Array<any>) => {\n assertArgument(\n !match[3] || parseInt(match[3]) === value.length,\n `array length mismatch; expected length ${parseInt(match[3])}`,\n 'value',\n value\n );\n\n let result = value.map(subEncoder);\n if (this.#fullTypes.has(subtype)) {\n result = result.map(keccak256);\n }\n\n return keccak256(concat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this.#fullTypes.get(type) as string);\n return (value: Record<string, any>) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this.#fullTypes.has(type)) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return concat(values);\n };\n }\n\n assertArgument(false, `unknown type: ${type}`, 'type', type);\n }\n\n /**\n * Return the full type for %%name%%.\n */\n encodeType(name: string): string {\n const result = this.#fullTypes.get(name);\n assertArgument(result, `unknown type: ${JSON.stringify(name)}`, 'name', name);\n return result!;\n }\n\n /**\n * Return the encoded %%value%% for the %%type%%.\n */\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n /**\n * Returns the hash of %%value%% for the type of %%name%%.\n */\n hashStruct(name: string, value: Record<string, any>): string {\n return keccak256(this.encodeData(name, value));\n }\n\n /**\n * Return the fulled encoded %%value%% for the [[types]].\n */\n encode(value: Record<string, any>): string {\n return this.encodeData(this.primaryType, value);\n }\n\n /**\n * Return the hash of the fully encoded %%value%% for the [[types]].\n */\n hash(value: Record<string, any>): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n /**\n * @_ignore:\n */\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n assertArgument(\n !match[3] || parseInt(match[3]) === value.length,\n `array length mismatch; expected length ${parseInt(match[3])}`,\n 'value',\n value\n );\n return value.map((v: any) => this._visit(match[1], v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, <Record<string, any>>{});\n }\n\n assertArgument(false, `unknown type: ${type}`, 'type', type);\n }\n\n /**\n * Call %%calback%% for each value in %%value%%, passing the type and\n * component within %%value%%.\n *\n * This is useful for replacing addresses or other transformation that\n * may be desired on each component, based on its type.\n */\n visit(value: Record<string, any>, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n /**\n * Create a new **TypedDataEncoder** for %%types%%.\n */\n static from(types: Record<string, Array<TypedDataField>>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n /**\n * Return the primary type for %%types%%.\n */\n static getPrimaryType(types: Record<string, Array<TypedDataField>>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n /**\n * Return the hashed struct for %%value%% using %%types%% and %%name%%.\n */\n static hashStruct(name: string, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n /**\n * Return the domain hash for %%domain%%.\n */\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array<TypedDataField> = [];\n for (const name in domain) {\n if ((<Record<string, any>>domain)[name] == null) {\n continue;\n }\n const type = domainFieldTypes[name];\n assertArgument(type, `invalid typed-data domain key: ${JSON.stringify(name)}`, 'domain', domain);\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct('EIP712Domain', { EIP712Domain: domainFields }, domain);\n }\n\n /**\n * Return the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%.\n */\n static encode(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string {\n return concat(['0x1901', TypedDataEncoder.hashDomain(domain), TypedDataEncoder.from(types).hash(value)]);\n }\n\n /**\n * Return the hash of the fully encoded [[link-eip-712]] %%value%% for %%types%% with %%domain%%.\n */\n static hash(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n /**\n * Resolves to the value from resolving all addresses in %%value%% for\n * %%types%% and the %%domain%%.\n */\n static async resolveNames(\n domain: TypedDataDomain,\n types: Record<string, Array<TypedDataField>>,\n value: Record<string, any>,\n resolveName: (name: string) => Promise<string>\n ): Promise<{ domain: TypedDataDomain; value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = Object.assign({}, domain);\n\n // Allow passing null to ignore value\n for (const key in domain) {\n if ((<Record<string, any>>domain)[key] == null) {\n delete (<Record<string, any>>domain)[key];\n }\n }\n\n // Look up all ENS names\n const ensCache: Record<string, string> = {};\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = '0x';\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === 'address' && !isHexString(value, 20)) {\n ensCache[value] = '0x';\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === 'address' && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n\n return { domain, value };\n }\n\n /**\n * Returns the JSON-encoded payload expected by nodes which implement\n * the JSON-RPC [[link-eip-712]] method.\n */\n static getPayload(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record<string, any> = {};\n const domainTypes: Array<{ name: string; type: string }> = [];\n\n domainFieldNames.forEach((name) => {\n const value = (<any>domain)[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = Object.assign({}, types);\n assertArgument(\n typesWithDomain.EIP712Domain == null,\n 'types must not contain EIP712Domain type',\n 'types.EIP712Domain',\n types\n );\n\n typesWithDomain.EIP712Domain = domainTypes;\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(getBytes(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return getBigInt(value).toString();\n }\n\n switch (type) {\n case 'trcToken':\n return getBigInt(value).toString();\n case 'address':\n return value.toLowerCase();\n case 'bool':\n return !!value;\n case 'string':\n assertArgument(typeof value === 'string', 'invalid string', 'value', value);\n return value;\n }\n\n assertArgument(false, 'unsupported type', 'type', type);\n }),\n };\n }\n}\n\n/**\n * Compute the address used to sign the typed data for the %%signature%%.\n */\nexport function verifyTypedData(\n domain: TypedDataDomain,\n types: Record<string, Array<TypedDataField>>,\n value: Record<string, any>,\n signature: SignatureLike\n): string {\n return recoverAddress(TypedDataEncoder.hash(domain, types, value), signature);\n}\n","import { BigNumber } from 'bignumber.js';\nimport validator from 'validator';\nimport { ADDRESS_PREFIX } from './address.js';\nimport { AbiParamsCommon } from '../types/ABI.js';\nimport { IBigNumber } from '../types/TronWeb.js';\n\nimport type { EventQueryDataType, MapEventQueryDataType } from '../types/UtilsTypes.js';\n\nexport function isValidURL(url: string): boolean {\n if (typeof url !== 'string') return false;\n return validator.isURL(url.toString(), {\n protocols: ['http', 'https'],\n require_tld: false,\n });\n}\n\nexport function isObject(obj: unknown): obj is Record<number | string | symbol, unknown> {\n return obj === Object(obj) && Object.prototype.toString.call(obj) !== '[object Array]';\n}\n\nexport function isArray(array: unknown): array is unknown[] {\n return Array.isArray(array);\n}\n\nexport function isJson(string: string): boolean {\n try {\n return !!JSON.parse(string);\n } catch (ex) {\n return false;\n }\n}\n\nexport function isBoolean(bool: unknown): bool is boolean {\n return typeof bool === 'boolean';\n}\n\nexport function isBigNumber(number: unknown): number is IBigNumber {\n return !!number && (number instanceof BigNumber || (number.constructor && number.constructor.name === 'BigNumber'));\n}\n\nexport function isString(string: unknown): string is string {\n return typeof string === 'string' || (!!string && string.constructor && string.constructor.name === 'String');\n}\n\nexport function isFunction(obj: unknown): obj is (...args: unknown[]) => unknown {\n return typeof obj === 'function';\n}\n\nexport function isHex(string: string): string is string {\n return typeof string === 'string' && !isNaN(parseInt(string, 16)) && /^(0x|)[a-fA-F0-9]+$/.test(string);\n}\n\nexport function isInteger(number: unknown): number is number {\n if (number === null) return false;\n return Number.isInteger(Number(number));\n}\n\nexport function hasProperty(obj: object, property: string | number | symbol) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n}\n\nexport function hasProperties(obj: object, ...properties: (string | number | symbol)[]) {\n return (\n properties.length &&\n !properties\n .map((property) => {\n return hasProperty(obj, property);\n })\n .includes(false)\n );\n}\n\nexport function mapEvent(event: EventQueryDataType) {\n const data: MapEventQueryDataType = {\n block: event.block_number,\n timestamp: event.block_timestamp,\n contract: event.contract_address,\n name: event.event_name,\n transaction: event.transaction_id,\n result: event.result,\n resourceNode: event.resource_Node || (event._unconfirmed ? 'fullNode' : 'solidityNode'),\n };\n if (event._unconfirmed) {\n data.unconfirmed = event._unconfirmed;\n }\n if (event._fingerprint) {\n data.fingerprint = event._fingerprint;\n }\n return data;\n}\n\nexport function parseEvent(event: EventQueryDataType, { inputs: abi }: { inputs: ReadonlyArray<AbiParamsCommon> }) {\n if (!event.result) return event;\n\n if (isObject(event.result)) {\n for (let i = 0; i < abi.length; i++) {\n const obj = abi[i];\n if (obj.type == 'address' && obj.name in event.result)\n event.result[obj.name] = ADDRESS_PREFIX + (event.result[obj.name] as string).substr(2).toLowerCase();\n }\n } else if (isArray(event.result)) {\n event.result = (event.result as string[]).reduce<Record<string, string>>((obj, result, index) => {\n const { name, type } = abi[index];\n\n if (type == 'address') result = ADDRESS_PREFIX + result.substr(2).toLowerCase();\n\n obj[name] = result;\n\n return obj;\n }, {});\n }\n\n return event;\n}\n\nexport function padLeft(input: string | number, padding: string, amount: number): string {\n let res = input.toString();\n\n while (res.length < amount) res = padding + res;\n\n return res;\n}\n\nexport function isNotNullOrUndefined(val: unknown): boolean {\n return val !== null && typeof val !== 'undefined';\n}\n\nexport async function sleep(millis = 1000): Promise<any> {\n return new Promise((resolve) => setTimeout(resolve, millis));\n}\n","module.exports = require(\"@tronweb3/google-protobuf\");","module.exports = require(\"@tronweb3/google-protobuf/google/protobuf/any_pb.js\");","module.exports = require(\"axios\");","module.exports = require(\"bignumber.js\");","module.exports = require(\"ethereum-cryptography/secp256k1\");","module.exports = require(\"ethers\");","module.exports = require(\"eventemitter3\");","module.exports = require(\"semver\");","module.exports = require(\"tslib\");","module.exports = require(\"validator\");","// source: core/Tron.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar google_protobuf_any_pb = require('@tronweb3/google-protobuf/google/protobuf/any_pb.js');\ngoog.object.extend(proto, google_protobuf_any_pb);\ngoog.exportSymbol('TronWebProto.Account', null, global);\ngoog.exportSymbol('TronWebProto.Account.AccountResource', null, global);\ngoog.exportSymbol('TronWebProto.Account.Frozen', null, global);\ngoog.exportSymbol('TronWebProto.AccountId', null, global);\ngoog.exportSymbol('TronWebProto.AccountType', null, global);\ngoog.exportSymbol('TronWebProto.DelegatedResource', null, global);\ngoog.exportSymbol('TronWebProto.Exchange', null, global);\ngoog.exportSymbol('TronWebProto.Key', null, global);\ngoog.exportSymbol('TronWebProto.MarketOrderDetail', null, global);\ngoog.exportSymbol('TronWebProto.Permission', null, global);\ngoog.exportSymbol('TronWebProto.Permission.PermissionType', null, global);\ngoog.exportSymbol('TronWebProto.Proposal', null, global);\ngoog.exportSymbol('TronWebProto.Proposal.State', null, global);\ngoog.exportSymbol('TronWebProto.Transaction', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Contract', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Contract.ContractType', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result.code', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.Result.contractResult', null, global);\ngoog.exportSymbol('TronWebProto.Transaction.raw', null, global);\ngoog.exportSymbol('TronWebProto.Vote', null, global);\ngoog.exportSymbol('TronWebProto.Votes', null, global);\ngoog.exportSymbol('TronWebProto.Witness', null, global);\ngoog.exportSymbol('TronWebProto.authority', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountId = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountId, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountId.displayName = 'TronWebProto.AccountId';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Vote = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Vote, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Vote.displayName = 'TronWebProto.Vote';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Proposal = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Proposal.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Proposal, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Proposal.displayName = 'TronWebProto.Proposal';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Exchange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Exchange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Exchange.displayName = 'TronWebProto.Exchange';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Account.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Account, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.displayName = 'TronWebProto.Account';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account.Frozen = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Account.Frozen, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.Frozen.displayName = 'TronWebProto.Account.Frozen';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Account.AccountResource = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Account.AccountResource, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Account.AccountResource.displayName = 'TronWebProto.Account.AccountResource';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Key = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Key, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Key.displayName = 'TronWebProto.Key';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.DelegatedResource = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.DelegatedResource, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.DelegatedResource.displayName = 'TronWebProto.DelegatedResource';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.authority = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.authority, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.authority.displayName = 'TronWebProto.authority';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Permission = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Permission.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Permission, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Permission.displayName = 'TronWebProto.Permission';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Witness = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Witness, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Witness.displayName = 'TronWebProto.Witness';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Votes = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Votes.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Votes, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Votes.displayName = 'TronWebProto.Votes';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.MarketOrderDetail = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.MarketOrderDetail, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.MarketOrderDetail.displayName = 'TronWebProto.MarketOrderDetail';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.displayName = 'TronWebProto.Transaction';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.Contract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.Transaction.Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.Contract.displayName = 'TronWebProto.Transaction.Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.Result = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.Result.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction.Result, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.Result.displayName = 'TronWebProto.Transaction.Result';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.Transaction.raw = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.Transaction.raw.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.Transaction.raw, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.Transaction.raw.displayName = 'TronWebProto.Transaction.raw';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AccountId.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AccountId.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountId} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountId.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: msg.getName_asB64(),\n address: msg.getAddress_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountId}\n */\nTronWebProto.AccountId.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountId;\n return TronWebProto.AccountId.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountId} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountId}\n */\nTronWebProto.AccountId.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountId.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountId} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountId.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountId.prototype.getName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes name = 1;\n * This is a type-conversion wrapper around `getName()`\n * @return {string}\n */\nTronWebProto.AccountId.prototype.getName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getName()));\n};\n\n\n/**\n * optional bytes name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.getName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountId} returns this\n */\nTronWebProto.AccountId.prototype.setName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountId.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes address = 2;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.AccountId.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountId.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountId} returns this\n */\nTronWebProto.AccountId.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Vote.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Vote.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Vote} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Vote.toObject = function(includeInstance, msg) {\n var f, obj = {\n voteAddress: msg.getVoteAddress_asB64(),\n voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Vote.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Vote;\n return TronWebProto.Vote.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Vote} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Vote.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setVoteAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVoteCount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Vote.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Vote.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Vote} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Vote.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVoteAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVoteCount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Vote.prototype.getVoteAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {string}\n */\nTronWebProto.Vote.prototype.getVoteAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getVoteAddress()));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Vote.prototype.getVoteAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getVoteAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Vote} returns this\n */\nTronWebProto.Vote.prototype.setVoteAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 vote_count = 2;\n * @return {number}\n */\nTronWebProto.Vote.prototype.getVoteCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Vote} returns this\n */\nTronWebProto.Vote.prototype.setVoteCount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Proposal.repeatedFields_ = [6];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Proposal.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Proposal.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Proposal} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Proposal.toObject = function(includeInstance, msg) {\n var f, obj = {\n proposalId: jspb.Message.getFieldWithDefault(msg, 1, 0),\n proposerAddress: msg.getProposerAddress_asB64(),\n parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : [],\n expirationTime: jspb.Message.getFieldWithDefault(msg, 4, 0),\n createTime: jspb.Message.getFieldWithDefault(msg, 5, 0),\n approvalsList: msg.getApprovalsList_asB64(),\n state: jspb.Message.getFieldWithDefault(msg, 7, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Proposal}\n */\nTronWebProto.Proposal.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Proposal;\n return TronWebProto.Proposal.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Proposal} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Proposal}\n */\nTronWebProto.Proposal.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setProposerAddress(value);\n break;\n case 3:\n var value = msg.getParametersMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt64, jspb.BinaryReader.prototype.readInt64, null, 0, 0);\n });\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpirationTime(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.addApprovals(value);\n break;\n case 7:\n var value = /** @type {!TronWebProto.Proposal.State} */ (reader.readEnum());\n msg.setState(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Proposal.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Proposal.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Proposal} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Proposal.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getProposerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getParametersMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeInt64, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getExpirationTime();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getApprovalsList_asU8();\n if (f.length > 0) {\n writer.writeRepeatedBytes(\n 6,\n f\n );\n }\n f = message.getState();\n if (f !== 0.0) {\n writer.writeEnum(\n 7,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Proposal.State = {\n PENDING: 0,\n DISAPPROVED: 1,\n APPROVED: 2,\n CANCELED: 3\n};\n\n/**\n * optional int64 proposal_id = 1;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Proposal.prototype.getProposerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * This is a type-conversion wrapper around `getProposerAddress()`\n * @return {string}\n */\nTronWebProto.Proposal.prototype.getProposerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getProposerAddress()));\n};\n\n\n/**\n * optional bytes proposer_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getProposerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Proposal.prototype.getProposerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getProposerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setProposerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * map<int64, int64> parameters = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<number,number>}\n */\nTronWebProto.Proposal.prototype.getParametersMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<number,number>} */ (\n jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.clearParametersMap = function() {\n this.getParametersMap().clear();\n return this;};\n\n\n/**\n * optional int64 expiration_time = 4;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getExpirationTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setExpirationTime = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 create_time = 5;\n * @return {number}\n */\nTronWebProto.Proposal.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * @return {!(Array<!Uint8Array>|Array<string>)}\n */\nTronWebProto.Proposal.prototype.getApprovalsList = function() {\n return /** @type {!(Array<!Uint8Array>|Array<string>)} */ (jspb.Message.getRepeatedField(this, 6));\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * This is a type-conversion wrapper around `getApprovalsList()`\n * @return {!Array<string>}\n */\nTronWebProto.Proposal.prototype.getApprovalsList_asB64 = function() {\n return /** @type {!Array<string>} */ (jspb.Message.bytesListAsB64(\n this.getApprovalsList()));\n};\n\n\n/**\n * repeated bytes approvals = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getApprovalsList()`\n * @return {!Array<!Uint8Array>}\n */\nTronWebProto.Proposal.prototype.getApprovalsList_asU8 = function() {\n return /** @type {!Array<!Uint8Array>} */ (jspb.Message.bytesListAsU8(\n this.getApprovalsList()));\n};\n\n\n/**\n * @param {!(Array<!Uint8Array>|Array<string>)} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setApprovalsList = function(value) {\n return jspb.Message.setField(this, 6, value || []);\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @param {number=} opt_index\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.addApprovals = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 6, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.clearApprovalsList = function() {\n return this.setApprovalsList([]);\n};\n\n\n/**\n * optional State state = 7;\n * @return {!TronWebProto.Proposal.State}\n */\nTronWebProto.Proposal.prototype.getState = function() {\n return /** @type {!TronWebProto.Proposal.State} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Proposal.State} value\n * @return {!TronWebProto.Proposal} returns this\n */\nTronWebProto.Proposal.prototype.setState = function(value) {\n return jspb.Message.setProto3EnumField(this, 7, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Exchange.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Exchange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Exchange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Exchange.toObject = function(includeInstance, msg) {\n var f, obj = {\n exchangeId: jspb.Message.getFieldWithDefault(msg, 1, 0),\n creatorAddress: msg.getCreatorAddress_asB64(),\n createTime: jspb.Message.getFieldWithDefault(msg, 3, 0),\n firstTokenId: msg.getFirstTokenId_asB64(),\n firstTokenBalance: jspb.Message.getFieldWithDefault(msg, 7, 0),\n secondTokenId: msg.getSecondTokenId_asB64(),\n secondTokenBalance: jspb.Message.getFieldWithDefault(msg, 9, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Exchange}\n */\nTronWebProto.Exchange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Exchange;\n return TronWebProto.Exchange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Exchange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Exchange}\n */\nTronWebProto.Exchange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCreatorAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFirstTokenId(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFirstTokenBalance(value);\n break;\n case 8:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setSecondTokenId(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSecondTokenBalance(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Exchange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Exchange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Exchange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getCreatorAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFirstTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getFirstTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getSecondTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 8,\n f\n );\n }\n f = message.getSecondTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n};\n\n\n/**\n * optional int64 exchange_id = 1;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * This is a type-conversion wrapper around `getCreatorAddress()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCreatorAddress()));\n};\n\n\n/**\n * optional bytes creator_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCreatorAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getCreatorAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCreatorAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setCreatorAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 create_time = 3;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFirstTokenId()));\n};\n\n\n/**\n * optional bytes first_token_id = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getFirstTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFirstTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setFirstTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * optional int64 first_token_balance = 7;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getFirstTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setFirstTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {string}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getSecondTokenId()));\n};\n\n\n/**\n * optional bytes second_token_id = 8;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Exchange.prototype.getSecondTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getSecondTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setSecondTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 8, value);\n};\n\n\n/**\n * optional int64 second_token_balance = 9;\n * @return {number}\n */\nTronWebProto.Exchange.prototype.getSecondTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Exchange} returns this\n */\nTronWebProto.Exchange.prototype.setSecondTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Account.repeatedFields_ = [5,7,16,33];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.toObject = function(includeInstance, msg) {\n var f, obj = {\n accountName: msg.getAccountName_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 2, 0),\n address: msg.getAddress_asB64(),\n balance: jspb.Message.getFieldWithDefault(msg, 4, 0),\n votesList: jspb.Message.toObjectList(msg.getVotesList(),\n TronWebProto.Vote.toObject, includeInstance),\n assetMap: (f = msg.getAssetMap()) ? f.toObject(includeInstance, undefined) : [],\n assetv2Map: (f = msg.getAssetv2Map()) ? f.toObject(includeInstance, undefined) : [],\n frozenList: jspb.Message.toObjectList(msg.getFrozenList(),\n TronWebProto.Account.Frozen.toObject, includeInstance),\n netUsage: jspb.Message.getFieldWithDefault(msg, 8, 0),\n acquiredDelegatedFrozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 41, 0),\n delegatedFrozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 42, 0),\n oldTronPower: jspb.Message.getFieldWithDefault(msg, 46, 0),\n tronPower: (f = msg.getTronPower()) && TronWebProto.Account.Frozen.toObject(includeInstance, f),\n assetOptimized: jspb.Message.getBooleanFieldWithDefault(msg, 60, false),\n createTime: jspb.Message.getFieldWithDefault(msg, 9, 0),\n latestOprationTime: jspb.Message.getFieldWithDefault(msg, 10, 0),\n allowance: jspb.Message.getFieldWithDefault(msg, 11, 0),\n latestWithdrawTime: jspb.Message.getFieldWithDefault(msg, 12, 0),\n code: msg.getCode_asB64(),\n isWitness: jspb.Message.getBooleanFieldWithDefault(msg, 14, false),\n isCommittee: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),\n frozenSupplyList: jspb.Message.toObjectList(msg.getFrozenSupplyList(),\n TronWebProto.Account.Frozen.toObject, includeInstance),\n assetIssuedName: msg.getAssetIssuedName_asB64(),\n assetIssuedId: msg.getAssetIssuedId_asB64(),\n latestAssetOperationTimeMap: (f = msg.getLatestAssetOperationTimeMap()) ? f.toObject(includeInstance, undefined) : [],\n latestAssetOperationTimev2Map: (f = msg.getLatestAssetOperationTimev2Map()) ? f.toObject(includeInstance, undefined) : [],\n freeNetUsage: jspb.Message.getFieldWithDefault(msg, 19, 0),\n freeAssetNetUsageMap: (f = msg.getFreeAssetNetUsageMap()) ? f.toObject(includeInstance, undefined) : [],\n freeAssetNetUsagev2Map: (f = msg.getFreeAssetNetUsagev2Map()) ? f.toObject(includeInstance, undefined) : [],\n latestConsumeTime: jspb.Message.getFieldWithDefault(msg, 21, 0),\n latestConsumeFreeTime: jspb.Message.getFieldWithDefault(msg, 22, 0),\n accountId: msg.getAccountId_asB64(),\n accountResource: (f = msg.getAccountResource()) && TronWebProto.Account.AccountResource.toObject(includeInstance, f),\n codehash: msg.getCodehash_asB64(),\n ownerPermission: (f = msg.getOwnerPermission()) && TronWebProto.Permission.toObject(includeInstance, f),\n witnessPermission: (f = msg.getWitnessPermission()) && TronWebProto.Permission.toObject(includeInstance, f),\n activePermissionList: jspb.Message.toObjectList(msg.getActivePermissionList(),\n TronWebProto.Permission.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account}\n */\nTronWebProto.Account.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account;\n return TronWebProto.Account.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account}\n */\nTronWebProto.Account.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountName(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.AccountType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 5:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addVotes(value);\n break;\n case 6:\n var value = msg.getAssetMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 56:\n var value = msg.getAssetv2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 7:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.addFrozen(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNetUsage(value);\n break;\n case 41:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAcquiredDelegatedFrozenBalanceForBandwidth(value);\n break;\n case 42:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setDelegatedFrozenBalanceForBandwidth(value);\n break;\n case 46:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOldTronPower(value);\n break;\n case 47:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.setTronPower(value);\n break;\n case 60:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAssetOptimized(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCreateTime(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestOprationTime(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAllowance(value);\n break;\n case 12:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestWithdrawTime(value);\n break;\n case 13:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCode(value);\n break;\n case 14:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsWitness(value);\n break;\n case 15:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsCommittee(value);\n break;\n case 16:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.addFrozenSupply(value);\n break;\n case 17:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetIssuedName(value);\n break;\n case 57:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetIssuedId(value);\n break;\n case 18:\n var value = msg.getLatestAssetOperationTimeMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 58:\n var value = msg.getLatestAssetOperationTimev2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 19:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFreeNetUsage(value);\n break;\n case 20:\n var value = msg.getFreeAssetNetUsageMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 59:\n var value = msg.getFreeAssetNetUsagev2Map();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt64, null, \"\", 0);\n });\n break;\n case 21:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeTime(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeFreeTime(value);\n break;\n case 23:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountId(value);\n break;\n case 26:\n var value = new TronWebProto.Account.AccountResource;\n reader.readMessage(value,TronWebProto.Account.AccountResource.deserializeBinaryFromReader);\n msg.setAccountResource(value);\n break;\n case 30:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCodehash(value);\n break;\n case 31:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.setOwnerPermission(value);\n break;\n case 32:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.setWitnessPermission(value);\n break;\n case 33:\n var value = new TronWebProto.Permission;\n reader.readMessage(value,TronWebProto.Permission.deserializeBinaryFromReader);\n msg.addActivePermission(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAccountName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n f = message.getAssetMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getAssetv2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(56, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFrozenList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 7,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getAcquiredDelegatedFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 41,\n f\n );\n }\n f = message.getDelegatedFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 42,\n f\n );\n }\n f = message.getOldTronPower();\n if (f !== 0) {\n writer.writeInt64(\n 46,\n f\n );\n }\n f = message.getTronPower();\n if (f != null) {\n writer.writeMessage(\n 47,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getAssetOptimized();\n if (f) {\n writer.writeBool(\n 60,\n f\n );\n }\n f = message.getCreateTime();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getLatestOprationTime();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getAllowance();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getLatestWithdrawTime();\n if (f !== 0) {\n writer.writeInt64(\n 12,\n f\n );\n }\n f = message.getCode_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 13,\n f\n );\n }\n f = message.getIsWitness();\n if (f) {\n writer.writeBool(\n 14,\n f\n );\n }\n f = message.getIsCommittee();\n if (f) {\n writer.writeBool(\n 15,\n f\n );\n }\n f = message.getFrozenSupplyList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 16,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getAssetIssuedName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 17,\n f\n );\n }\n f = message.getAssetIssuedId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 57,\n f\n );\n }\n f = message.getLatestAssetOperationTimeMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(18, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getLatestAssetOperationTimev2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(58, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFreeNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 19,\n f\n );\n }\n f = message.getFreeAssetNetUsageMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(20, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getFreeAssetNetUsagev2Map(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(59, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt64);\n }\n f = message.getLatestConsumeTime();\n if (f !== 0) {\n writer.writeInt64(\n 21,\n f\n );\n }\n f = message.getLatestConsumeFreeTime();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getAccountId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 23,\n f\n );\n }\n f = message.getAccountResource();\n if (f != null) {\n writer.writeMessage(\n 26,\n f,\n TronWebProto.Account.AccountResource.serializeBinaryToWriter\n );\n }\n f = message.getCodehash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 30,\n f\n );\n }\n f = message.getOwnerPermission();\n if (f != null) {\n writer.writeMessage(\n 31,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n f = message.getWitnessPermission();\n if (f != null) {\n writer.writeMessage(\n 32,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n f = message.getActivePermissionList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 33,\n f,\n TronWebProto.Permission.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.Frozen.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.Frozen.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account.Frozen} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.Frozen.toObject = function(includeInstance, msg) {\n var f, obj = {\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n expireTime: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.Frozen.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account.Frozen;\n return TronWebProto.Account.Frozen.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account.Frozen} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.Frozen.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.Frozen.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.Frozen.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account.Frozen} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.Frozen.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getExpireTime();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 frozen_balance = 1;\n * @return {number}\n */\nTronWebProto.Account.Frozen.prototype.getFrozenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.Frozen} returns this\n */\nTronWebProto.Account.Frozen.prototype.setFrozenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 expire_time = 2;\n * @return {number}\n */\nTronWebProto.Account.Frozen.prototype.getExpireTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.Frozen} returns this\n */\nTronWebProto.Account.Frozen.prototype.setExpireTime = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Account.AccountResource.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Account.AccountResource.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Account.AccountResource} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.AccountResource.toObject = function(includeInstance, msg) {\n var f, obj = {\n energyUsage: jspb.Message.getFieldWithDefault(msg, 1, 0),\n frozenBalanceForEnergy: (f = msg.getFrozenBalanceForEnergy()) && TronWebProto.Account.Frozen.toObject(includeInstance, f),\n latestConsumeTimeForEnergy: jspb.Message.getFieldWithDefault(msg, 3, 0),\n acquiredDelegatedFrozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 4, 0),\n delegatedFrozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 5, 0),\n storageLimit: jspb.Message.getFieldWithDefault(msg, 6, 0),\n storageUsage: jspb.Message.getFieldWithDefault(msg, 7, 0),\n latestExchangeStorageTime: jspb.Message.getFieldWithDefault(msg, 8, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.AccountResource.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Account.AccountResource;\n return TronWebProto.Account.AccountResource.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Account.AccountResource} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.AccountResource.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyUsage(value);\n break;\n case 2:\n var value = new TronWebProto.Account.Frozen;\n reader.readMessage(value,TronWebProto.Account.Frozen.deserializeBinaryFromReader);\n msg.setFrozenBalanceForEnergy(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestConsumeTimeForEnergy(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAcquiredDelegatedFrozenBalanceForEnergy(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setDelegatedFrozenBalanceForEnergy(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageLimit(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageUsage(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestExchangeStorageTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Account.AccountResource.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Account.AccountResource.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Account.AccountResource} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Account.AccountResource.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEnergyUsage();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getFrozenBalanceForEnergy();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n TronWebProto.Account.Frozen.serializeBinaryToWriter\n );\n }\n f = message.getLatestConsumeTimeForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getAcquiredDelegatedFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getDelegatedFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getStorageLimit();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getStorageUsage();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getLatestExchangeStorageTime();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n};\n\n\n/**\n * optional int64 energy_usage = 1;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getEnergyUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setEnergyUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional Frozen frozen_balance_for_energy = 2;\n * @return {?TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.AccountResource.prototype.getFrozenBalanceForEnergy = function() {\n return /** @type{?TronWebProto.Account.Frozen} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.Frozen, 2));\n};\n\n\n/**\n * @param {?TronWebProto.Account.Frozen|undefined} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n*/\nTronWebProto.Account.AccountResource.prototype.setFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.clearFrozenBalanceForEnergy = function() {\n return this.setFrozenBalanceForEnergy(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.AccountResource.prototype.hasFrozenBalanceForEnergy = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional int64 latest_consume_time_for_energy = 3;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getLatestConsumeTimeForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setLatestConsumeTimeForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 acquired_delegated_frozen_balance_for_energy = 4;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getAcquiredDelegatedFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setAcquiredDelegatedFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 delegated_frozen_balance_for_energy = 5;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getDelegatedFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setDelegatedFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 storage_limit = 6;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getStorageLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setStorageLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int64 storage_usage = 7;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getStorageUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setStorageUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 latest_exchange_storage_time = 8;\n * @return {number}\n */\nTronWebProto.Account.AccountResource.prototype.getLatestExchangeStorageTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account.AccountResource} returns this\n */\nTronWebProto.Account.AccountResource.prototype.setLatestExchangeStorageTime = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional bytes account_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAccountName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes account_name = 1;\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAccountName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAccountName()));\n};\n\n\n/**\n * optional bytes account_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAccountName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAccountName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAccountName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional AccountType type = 2;\n * @return {!TronWebProto.AccountType}\n */\nTronWebProto.Account.prototype.getType = function() {\n return /** @type {!TronWebProto.AccountType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!TronWebProto.AccountType} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional bytes address = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes address = 3;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 balance = 4;\n * @return {number}\n */\nTronWebProto.Account.prototype.getBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * repeated Vote votes = 5;\n * @return {!Array<!TronWebProto.Vote>}\n */\nTronWebProto.Account.prototype.getVotesList = function() {\n return /** @type{!Array<!TronWebProto.Vote>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 5));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Vote>} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Account.prototype.addVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearVotesList = function() {\n return this.setVotesList([]);\n};\n\n\n/**\n * map<string, int64> asset = 6;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getAssetMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 6, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAssetMap = function() {\n this.getAssetMap().clear();\n return this;};\n\n\n/**\n * map<string, int64> assetV2 = 56;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getAssetv2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 56, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAssetv2Map = function() {\n this.getAssetv2Map().clear();\n return this;};\n\n\n/**\n * repeated Frozen frozen = 7;\n * @return {!Array<!TronWebProto.Account.Frozen>}\n */\nTronWebProto.Account.prototype.getFrozenList = function() {\n return /** @type{!Array<!TronWebProto.Account.Frozen>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Account.Frozen, 7));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Account.Frozen>} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setFrozenList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!TronWebProto.Account.Frozen=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.addFrozen = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, TronWebProto.Account.Frozen, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFrozenList = function() {\n return this.setFrozenList([]);\n};\n\n\n/**\n * optional int64 net_usage = 8;\n * @return {number}\n */\nTronWebProto.Account.prototype.getNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 acquired_delegated_frozen_balance_for_bandwidth = 41;\n * @return {number}\n */\nTronWebProto.Account.prototype.getAcquiredDelegatedFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 41, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAcquiredDelegatedFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 41, value);\n};\n\n\n/**\n * optional int64 delegated_frozen_balance_for_bandwidth = 42;\n * @return {number}\n */\nTronWebProto.Account.prototype.getDelegatedFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 42, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setDelegatedFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 42, value);\n};\n\n\n/**\n * optional int64 old_tron_power = 46;\n * @return {number}\n */\nTronWebProto.Account.prototype.getOldTronPower = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 46, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setOldTronPower = function(value) {\n return jspb.Message.setProto3IntField(this, 46, value);\n};\n\n\n/**\n * optional Frozen tron_power = 47;\n * @return {?TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.getTronPower = function() {\n return /** @type{?TronWebProto.Account.Frozen} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.Frozen, 47));\n};\n\n\n/**\n * @param {?TronWebProto.Account.Frozen|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setTronPower = function(value) {\n return jspb.Message.setWrapperField(this, 47, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearTronPower = function() {\n return this.setTronPower(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasTronPower = function() {\n return jspb.Message.getField(this, 47) != null;\n};\n\n\n/**\n * optional bool asset_optimized = 60;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getAssetOptimized = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 60, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetOptimized = function(value) {\n return jspb.Message.setProto3BooleanField(this, 60, value);\n};\n\n\n/**\n * optional int64 create_time = 9;\n * @return {number}\n */\nTronWebProto.Account.prototype.getCreateTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCreateTime = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int64 latest_opration_time = 10;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestOprationTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestOprationTime = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 allowance = 11;\n * @return {number}\n */\nTronWebProto.Account.prototype.getAllowance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAllowance = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional int64 latest_withdraw_time = 12;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestWithdrawTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestWithdrawTime = function(value) {\n return jspb.Message.setProto3IntField(this, 12, value);\n};\n\n\n/**\n * optional bytes code = 13;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getCode = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/**\n * optional bytes code = 13;\n * This is a type-conversion wrapper around `getCode()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getCode_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCode()));\n};\n\n\n/**\n * optional bytes code = 13;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCode()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getCode_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCode()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCode = function(value) {\n return jspb.Message.setProto3BytesField(this, 13, value);\n};\n\n\n/**\n * optional bool is_witness = 14;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getIsWitness = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setIsWitness = function(value) {\n return jspb.Message.setProto3BooleanField(this, 14, value);\n};\n\n\n/**\n * optional bool is_committee = 15;\n * @return {boolean}\n */\nTronWebProto.Account.prototype.getIsCommittee = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setIsCommittee = function(value) {\n return jspb.Message.setProto3BooleanField(this, 15, value);\n};\n\n\n/**\n * repeated Frozen frozen_supply = 16;\n * @return {!Array<!TronWebProto.Account.Frozen>}\n */\nTronWebProto.Account.prototype.getFrozenSupplyList = function() {\n return /** @type{!Array<!TronWebProto.Account.Frozen>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Account.Frozen, 16));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Account.Frozen>} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setFrozenSupplyList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 16, value);\n};\n\n\n/**\n * @param {!TronWebProto.Account.Frozen=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Account.Frozen}\n */\nTronWebProto.Account.prototype.addFrozenSupply = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 16, opt_value, TronWebProto.Account.Frozen, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFrozenSupplyList = function() {\n return this.setFrozenSupplyList([]);\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAssetIssuedName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 17, \"\"));\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * This is a type-conversion wrapper around `getAssetIssuedName()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAssetIssuedName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetIssuedName()));\n};\n\n\n/**\n * optional bytes asset_issued_name = 17;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetIssuedName()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAssetIssuedName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetIssuedName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetIssuedName = function(value) {\n return jspb.Message.setProto3BytesField(this, 17, value);\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAssetIssuedId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 57, \"\"));\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * This is a type-conversion wrapper around `getAssetIssuedId()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAssetIssuedId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetIssuedId()));\n};\n\n\n/**\n * optional bytes asset_issued_ID = 57;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetIssuedId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAssetIssuedId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetIssuedId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAssetIssuedId = function(value) {\n return jspb.Message.setProto3BytesField(this, 57, value);\n};\n\n\n/**\n * map<string, int64> latest_asset_operation_time = 18;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getLatestAssetOperationTimeMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 18, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearLatestAssetOperationTimeMap = function() {\n this.getLatestAssetOperationTimeMap().clear();\n return this;};\n\n\n/**\n * map<string, int64> latest_asset_operation_timeV2 = 58;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getLatestAssetOperationTimev2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 58, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearLatestAssetOperationTimev2Map = function() {\n this.getLatestAssetOperationTimev2Map().clear();\n return this;};\n\n\n/**\n * optional int64 free_net_usage = 19;\n * @return {number}\n */\nTronWebProto.Account.prototype.getFreeNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setFreeNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 19, value);\n};\n\n\n/**\n * map<string, int64> free_asset_net_usage = 20;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getFreeAssetNetUsageMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 20, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFreeAssetNetUsageMap = function() {\n this.getFreeAssetNetUsageMap().clear();\n return this;};\n\n\n/**\n * map<string, int64> free_asset_net_usageV2 = 59;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<string,number>}\n */\nTronWebProto.Account.prototype.getFreeAssetNetUsagev2Map = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<string,number>} */ (\n jspb.Message.getMapField(this, 59, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearFreeAssetNetUsagev2Map = function() {\n this.getFreeAssetNetUsagev2Map().clear();\n return this;};\n\n\n/**\n * optional int64 latest_consume_time = 21;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestConsumeTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestConsumeTime = function(value) {\n return jspb.Message.setProto3IntField(this, 21, value);\n};\n\n\n/**\n * optional int64 latest_consume_free_time = 22;\n * @return {number}\n */\nTronWebProto.Account.prototype.getLatestConsumeFreeTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setLatestConsumeFreeTime = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional bytes account_id = 23;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getAccountId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 23, \"\"));\n};\n\n\n/**\n * optional bytes account_id = 23;\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getAccountId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAccountId()));\n};\n\n\n/**\n * optional bytes account_id = 23;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getAccountId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAccountId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setAccountId = function(value) {\n return jspb.Message.setProto3BytesField(this, 23, value);\n};\n\n\n/**\n * optional AccountResource account_resource = 26;\n * @return {?TronWebProto.Account.AccountResource}\n */\nTronWebProto.Account.prototype.getAccountResource = function() {\n return /** @type{?TronWebProto.Account.AccountResource} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Account.AccountResource, 26));\n};\n\n\n/**\n * @param {?TronWebProto.Account.AccountResource|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setAccountResource = function(value) {\n return jspb.Message.setWrapperField(this, 26, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearAccountResource = function() {\n return this.setAccountResource(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasAccountResource = function() {\n return jspb.Message.getField(this, 26) != null;\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Account.prototype.getCodehash = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 30, \"\"));\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * This is a type-conversion wrapper around `getCodehash()`\n * @return {string}\n */\nTronWebProto.Account.prototype.getCodehash_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCodehash()));\n};\n\n\n/**\n * optional bytes codeHash = 30;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCodehash()`\n * @return {!Uint8Array}\n */\nTronWebProto.Account.prototype.getCodehash_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCodehash()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.setCodehash = function(value) {\n return jspb.Message.setProto3BytesField(this, 30, value);\n};\n\n\n/**\n * optional Permission owner_permission = 31;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.getOwnerPermission = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Permission, 31));\n};\n\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setOwnerPermission = function(value) {\n return jspb.Message.setWrapperField(this, 31, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearOwnerPermission = function() {\n return this.setOwnerPermission(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasOwnerPermission = function() {\n return jspb.Message.getField(this, 31) != null;\n};\n\n\n/**\n * optional Permission witness_permission = 32;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.getWitnessPermission = function() {\n return /** @type{?TronWebProto.Permission} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Permission, 32));\n};\n\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setWitnessPermission = function(value) {\n return jspb.Message.setWrapperField(this, 32, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearWitnessPermission = function() {\n return this.setWitnessPermission(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Account.prototype.hasWitnessPermission = function() {\n return jspb.Message.getField(this, 32) != null;\n};\n\n\n/**\n * repeated Permission active_permission = 33;\n * @return {!Array<!TronWebProto.Permission>}\n */\nTronWebProto.Account.prototype.getActivePermissionList = function() {\n return /** @type{!Array<!TronWebProto.Permission>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Permission, 33));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Permission>} value\n * @return {!TronWebProto.Account} returns this\n*/\nTronWebProto.Account.prototype.setActivePermissionList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 33, value);\n};\n\n\n/**\n * @param {!TronWebProto.Permission=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Account.prototype.addActivePermission = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 33, opt_value, TronWebProto.Permission, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Account} returns this\n */\nTronWebProto.Account.prototype.clearActivePermissionList = function() {\n return this.setActivePermissionList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Key.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Key.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Key} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Key.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n weight: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Key.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Key;\n return TronWebProto.Key.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Key} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Key.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setWeight(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Key.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Key.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Key} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Key.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getWeight();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Key.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Key.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Key.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Key} returns this\n */\nTronWebProto.Key.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 weight = 2;\n * @return {number}\n */\nTronWebProto.Key.prototype.getWeight = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Key} returns this\n */\nTronWebProto.Key.prototype.setWeight = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.DelegatedResource.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.DelegatedResource.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.DelegatedResource} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegatedResource.toObject = function(includeInstance, msg) {\n var f, obj = {\n from: msg.getFrom_asB64(),\n to: msg.getTo_asB64(),\n frozenBalanceForBandwidth: jspb.Message.getFieldWithDefault(msg, 3, 0),\n frozenBalanceForEnergy: jspb.Message.getFieldWithDefault(msg, 4, 0),\n expireTimeForBandwidth: jspb.Message.getFieldWithDefault(msg, 5, 0),\n expireTimeForEnergy: jspb.Message.getFieldWithDefault(msg, 6, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.DelegatedResource}\n */\nTronWebProto.DelegatedResource.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.DelegatedResource;\n return TronWebProto.DelegatedResource.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.DelegatedResource} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.DelegatedResource}\n */\nTronWebProto.DelegatedResource.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFrom(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTo(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalanceForBandwidth(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalanceForEnergy(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTimeForBandwidth(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpireTimeForEnergy(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.DelegatedResource.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.DelegatedResource} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegatedResource.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrom_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getTo_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFrozenBalanceForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFrozenBalanceForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getExpireTimeForBandwidth();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getExpireTimeForEnergy();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n};\n\n\n/**\n * optional bytes from = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegatedResource.prototype.getFrom = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes from = 1;\n * This is a type-conversion wrapper around `getFrom()`\n * @return {string}\n */\nTronWebProto.DelegatedResource.prototype.getFrom_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFrom()));\n};\n\n\n/**\n * optional bytes from = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFrom()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.getFrom_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFrom()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrom = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes to = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegatedResource.prototype.getTo = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes to = 2;\n * This is a type-conversion wrapper around `getTo()`\n * @return {string}\n */\nTronWebProto.DelegatedResource.prototype.getTo_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTo()));\n};\n\n\n/**\n * optional bytes to = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTo()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegatedResource.prototype.getTo_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTo()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setTo = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 frozen_balance_for_bandwidth = 3;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getFrozenBalanceForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrozenBalanceForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 frozen_balance_for_energy = 4;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getFrozenBalanceForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setFrozenBalanceForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 expire_time_for_bandwidth = 5;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getExpireTimeForBandwidth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setExpireTimeForBandwidth = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 expire_time_for_energy = 6;\n * @return {number}\n */\nTronWebProto.DelegatedResource.prototype.getExpireTimeForEnergy = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegatedResource} returns this\n */\nTronWebProto.DelegatedResource.prototype.setExpireTimeForEnergy = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.authority.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.authority.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.authority} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.authority.toObject = function(includeInstance, msg) {\n var f, obj = {\n account: (f = msg.getAccount()) && TronWebProto.AccountId.toObject(includeInstance, f),\n permissionName: msg.getPermissionName_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.authority}\n */\nTronWebProto.authority.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.authority;\n return TronWebProto.authority.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.authority} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.authority}\n */\nTronWebProto.authority.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.AccountId;\n reader.readMessage(value,TronWebProto.AccountId.deserializeBinaryFromReader);\n msg.setAccount(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setPermissionName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.authority.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.authority.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.authority} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.authority.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAccount();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n TronWebProto.AccountId.serializeBinaryToWriter\n );\n }\n f = message.getPermissionName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional AccountId account = 1;\n * @return {?TronWebProto.AccountId}\n */\nTronWebProto.authority.prototype.getAccount = function() {\n return /** @type{?TronWebProto.AccountId} */ (\n jspb.Message.getWrapperField(this, TronWebProto.AccountId, 1));\n};\n\n\n/**\n * @param {?TronWebProto.AccountId|undefined} value\n * @return {!TronWebProto.authority} returns this\n*/\nTronWebProto.authority.prototype.setAccount = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.authority} returns this\n */\nTronWebProto.authority.prototype.clearAccount = function() {\n return this.setAccount(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.authority.prototype.hasAccount = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.authority.prototype.getPermissionName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * This is a type-conversion wrapper around `getPermissionName()`\n * @return {string}\n */\nTronWebProto.authority.prototype.getPermissionName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getPermissionName()));\n};\n\n\n/**\n * optional bytes permission_name = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getPermissionName()`\n * @return {!Uint8Array}\n */\nTronWebProto.authority.prototype.getPermissionName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getPermissionName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.authority} returns this\n */\nTronWebProto.authority.prototype.setPermissionName = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Permission.repeatedFields_ = [7];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Permission.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Permission.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Permission} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Permission.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n id: jspb.Message.getFieldWithDefault(msg, 2, 0),\n permissionName: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n threshold: jspb.Message.getFieldWithDefault(msg, 4, 0),\n parentId: jspb.Message.getFieldWithDefault(msg, 5, 0),\n operations: msg.getOperations_asB64(),\n keysList: jspb.Message.toObjectList(msg.getKeysList(),\n TronWebProto.Key.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Permission.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Permission;\n return TronWebProto.Permission.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Permission} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.Permission.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!TronWebProto.Permission.PermissionType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setPermissionName(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setThreshold(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setParentId(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOperations(value);\n break;\n case 7:\n var value = new TronWebProto.Key;\n reader.readMessage(value,TronWebProto.Key.deserializeBinaryFromReader);\n msg.addKeys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Permission.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Permission.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Permission} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Permission.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getId();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n f = message.getPermissionName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getThreshold();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getParentId();\n if (f !== 0) {\n writer.writeInt32(\n 5,\n f\n );\n }\n f = message.getOperations_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getKeysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 7,\n f,\n TronWebProto.Key.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Permission.PermissionType = {\n OWNER: 0,\n WITNESS: 1,\n ACTIVE: 2\n};\n\n/**\n * optional PermissionType type = 1;\n * @return {!TronWebProto.Permission.PermissionType}\n */\nTronWebProto.Permission.prototype.getType = function() {\n return /** @type {!TronWebProto.Permission.PermissionType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Permission.PermissionType} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional int32 id = 2;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string permission_name = 3;\n * @return {string}\n */\nTronWebProto.Permission.prototype.getPermissionName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setPermissionName = function(value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional int64 threshold = 4;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getThreshold = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setThreshold = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int32 parent_id = 5;\n * @return {number}\n */\nTronWebProto.Permission.prototype.getParentId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setParentId = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional bytes operations = 6;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Permission.prototype.getOperations = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes operations = 6;\n * This is a type-conversion wrapper around `getOperations()`\n * @return {string}\n */\nTronWebProto.Permission.prototype.getOperations_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOperations()));\n};\n\n\n/**\n * optional bytes operations = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOperations()`\n * @return {!Uint8Array}\n */\nTronWebProto.Permission.prototype.getOperations_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOperations()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.setOperations = function(value) {\n return jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * repeated Key keys = 7;\n * @return {!Array<!TronWebProto.Key>}\n */\nTronWebProto.Permission.prototype.getKeysList = function() {\n return /** @type{!Array<!TronWebProto.Key>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Key, 7));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Key>} value\n * @return {!TronWebProto.Permission} returns this\n*/\nTronWebProto.Permission.prototype.setKeysList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!TronWebProto.Key=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Key}\n */\nTronWebProto.Permission.prototype.addKeys = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, TronWebProto.Key, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Permission} returns this\n */\nTronWebProto.Permission.prototype.clearKeysList = function() {\n return this.setKeysList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Witness.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Witness.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Witness} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Witness.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n votecount: jspb.Message.getFieldWithDefault(msg, 2, 0),\n pubkey: msg.getPubkey_asB64(),\n url: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n totalproduced: jspb.Message.getFieldWithDefault(msg, 5, 0),\n totalmissed: jspb.Message.getFieldWithDefault(msg, 6, 0),\n latestblocknum: jspb.Message.getFieldWithDefault(msg, 7, 0),\n latestslotnum: jspb.Message.getFieldWithDefault(msg, 8, 0),\n isjobs: jspb.Message.getBooleanFieldWithDefault(msg, 9, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Witness}\n */\nTronWebProto.Witness.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Witness;\n return TronWebProto.Witness.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Witness} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Witness}\n */\nTronWebProto.Witness.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVotecount(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setPubkey(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setUrl(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalproduced(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalmissed(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestblocknum(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLatestslotnum(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsjobs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Witness.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Witness} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Witness.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVotecount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getPubkey_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getUrl();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getTotalproduced();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getTotalmissed();\n if (f !== 0) {\n writer.writeInt64(\n 6,\n f\n );\n }\n f = message.getLatestblocknum();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getLatestslotnum();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getIsjobs();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Witness.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Witness.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 voteCount = 2;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getVotecount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setVotecount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Witness.prototype.getPubkey = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * This is a type-conversion wrapper around `getPubkey()`\n * @return {string}\n */\nTronWebProto.Witness.prototype.getPubkey_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getPubkey()));\n};\n\n\n/**\n * optional bytes pubKey = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getPubkey()`\n * @return {!Uint8Array}\n */\nTronWebProto.Witness.prototype.getPubkey_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getPubkey()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setPubkey = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional string url = 4;\n * @return {string}\n */\nTronWebProto.Witness.prototype.getUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional int64 totalProduced = 5;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getTotalproduced = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setTotalproduced = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional int64 totalMissed = 6;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getTotalmissed = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setTotalmissed = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int64 latestBlockNum = 7;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getLatestblocknum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setLatestblocknum = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int64 latestSlotNum = 8;\n * @return {number}\n */\nTronWebProto.Witness.prototype.getLatestslotnum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setLatestslotnum = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional bool isJobs = 9;\n * @return {boolean}\n */\nTronWebProto.Witness.prototype.getIsjobs = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.Witness} returns this\n */\nTronWebProto.Witness.prototype.setIsjobs = function(value) {\n return jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Votes.repeatedFields_ = [2,3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Votes.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Votes.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Votes} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Votes.toObject = function(includeInstance, msg) {\n var f, obj = {\n address: msg.getAddress_asB64(),\n oldVotesList: jspb.Message.toObjectList(msg.getOldVotesList(),\n TronWebProto.Vote.toObject, includeInstance),\n newVotesList: jspb.Message.toObjectList(msg.getNewVotesList(),\n TronWebProto.Vote.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Votes}\n */\nTronWebProto.Votes.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Votes;\n return TronWebProto.Votes.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Votes} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Votes}\n */\nTronWebProto.Votes.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 2:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addOldVotes(value);\n break;\n case 3:\n var value = new TronWebProto.Vote;\n reader.readMessage(value,TronWebProto.Vote.deserializeBinaryFromReader);\n msg.addNewVotes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Votes.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Votes.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Votes} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Votes.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOldVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n f = message.getNewVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n TronWebProto.Vote.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Votes.prototype.getAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.Votes.prototype.getAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAddress()));\n};\n\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.Votes.prototype.getAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.setAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * repeated Vote old_votes = 2;\n * @return {!Array<!TronWebProto.Vote>}\n */\nTronWebProto.Votes.prototype.getOldVotesList = function() {\n return /** @type{!Array<!TronWebProto.Vote>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 2));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Vote>} value\n * @return {!TronWebProto.Votes} returns this\n*/\nTronWebProto.Votes.prototype.setOldVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Votes.prototype.addOldVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.clearOldVotesList = function() {\n return this.setOldVotesList([]);\n};\n\n\n/**\n * repeated Vote new_votes = 3;\n * @return {!Array<!TronWebProto.Vote>}\n */\nTronWebProto.Votes.prototype.getNewVotesList = function() {\n return /** @type{!Array<!TronWebProto.Vote>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Vote, 3));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Vote>} value\n * @return {!TronWebProto.Votes} returns this\n*/\nTronWebProto.Votes.prototype.setNewVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!TronWebProto.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Vote}\n */\nTronWebProto.Votes.prototype.addNewVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, TronWebProto.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Votes} returns this\n */\nTronWebProto.Votes.prototype.clearNewVotesList = function() {\n return this.setNewVotesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.MarketOrderDetail.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.MarketOrderDetail.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.MarketOrderDetail} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.MarketOrderDetail.toObject = function(includeInstance, msg) {\n var f, obj = {\n makerorderid: msg.getMakerorderid_asB64(),\n takerorderid: msg.getTakerorderid_asB64(),\n fillsellquantity: jspb.Message.getFieldWithDefault(msg, 3, 0),\n fillbuyquantity: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.MarketOrderDetail.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.MarketOrderDetail;\n return TronWebProto.MarketOrderDetail.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.MarketOrderDetail} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.MarketOrderDetail.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setMakerorderid(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTakerorderid(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFillsellquantity(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFillbuyquantity(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.MarketOrderDetail.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.MarketOrderDetail} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.MarketOrderDetail.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMakerorderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getTakerorderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFillsellquantity();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getFillbuyquantity();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * This is a type-conversion wrapper around `getMakerorderid()`\n * @return {string}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getMakerorderid()));\n};\n\n\n/**\n * optional bytes makerOrderId = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getMakerorderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.getMakerorderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getMakerorderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setMakerorderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * This is a type-conversion wrapper around `getTakerorderid()`\n * @return {string}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTakerorderid()));\n};\n\n\n/**\n * optional bytes takerOrderId = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTakerorderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.MarketOrderDetail.prototype.getTakerorderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTakerorderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setTakerorderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 fillSellQuantity = 3;\n * @return {number}\n */\nTronWebProto.MarketOrderDetail.prototype.getFillsellquantity = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setFillsellquantity = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int64 fillBuyQuantity = 4;\n * @return {number}\n */\nTronWebProto.MarketOrderDetail.prototype.getFillbuyquantity = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.MarketOrderDetail} returns this\n */\nTronWebProto.MarketOrderDetail.prototype.setFillbuyquantity = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Transaction.repeatedFields_ = [2,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.toObject = function(includeInstance, msg) {\n var f, obj = {\n rawData: (f = msg.getRawData()) && TronWebProto.Transaction.raw.toObject(includeInstance, f),\n signatureList: msg.getSignatureList_asB64(),\n retList: jspb.Message.toObjectList(msg.getRetList(),\n TronWebProto.Transaction.Result.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction}\n */\nTronWebProto.Transaction.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction;\n return TronWebProto.Transaction.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction}\n */\nTronWebProto.Transaction.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.Transaction.raw;\n reader.readMessage(value,TronWebProto.Transaction.raw.deserializeBinaryFromReader);\n msg.setRawData(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.addSignature(value);\n break;\n case 5:\n var value = new TronWebProto.Transaction.Result;\n reader.readMessage(value,TronWebProto.Transaction.Result.deserializeBinaryFromReader);\n msg.addRet(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRawData();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n TronWebProto.Transaction.raw.serializeBinaryToWriter\n );\n }\n f = message.getSignatureList_asU8();\n if (f.length > 0) {\n writer.writeRepeatedBytes(\n 2,\n f\n );\n }\n f = message.getRetList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.Transaction.Result.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.Contract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.Contract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Contract.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n parameter: (f = msg.getParameter()) && google_protobuf_any_pb.Any.toObject(includeInstance, f),\n provider: msg.getProvider_asB64(),\n contractname: msg.getContractname_asB64(),\n permissionId: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.Contract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.Contract;\n return TronWebProto.Transaction.Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.Contract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!TronWebProto.Transaction.Contract.ContractType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = new google_protobuf_any_pb.Any;\n reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);\n msg.setParameter(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setProvider(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractname(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setPermissionId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Contract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getParameter();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_any_pb.Any.serializeBinaryToWriter\n );\n }\n f = message.getProvider_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getContractname_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getPermissionId();\n if (f !== 0) {\n writer.writeInt32(\n 5,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Contract.ContractType = {\n ACCOUNTCREATECONTRACT: 0,\n TRANSFERCONTRACT: 1,\n TRANSFERASSETCONTRACT: 2,\n VOTEASSETCONTRACT: 3,\n VOTEWITNESSCONTRACT: 4,\n WITNESSCREATECONTRACT: 5,\n ASSETISSUECONTRACT: 6,\n WITNESSUPDATECONTRACT: 8,\n PARTICIPATEASSETISSUECONTRACT: 9,\n ACCOUNTUPDATECONTRACT: 10,\n FREEZEBALANCECONTRACT: 11,\n UNFREEZEBALANCECONTRACT: 12,\n WITHDRAWBALANCECONTRACT: 13,\n UNFREEZEASSETCONTRACT: 14,\n UPDATEASSETCONTRACT: 15,\n PROPOSALCREATECONTRACT: 16,\n PROPOSALAPPROVECONTRACT: 17,\n PROPOSALDELETECONTRACT: 18,\n SETACCOUNTIDCONTRACT: 19,\n CUSTOMCONTRACT: 20,\n CREATESMARTCONTRACT: 30,\n TRIGGERSMARTCONTRACT: 31,\n GETCONTRACT: 32,\n UPDATESETTINGCONTRACT: 33,\n EXCHANGECREATECONTRACT: 41,\n EXCHANGEINJECTCONTRACT: 42,\n EXCHANGEWITHDRAWCONTRACT: 43,\n EXCHANGETRANSACTIONCONTRACT: 44,\n UPDATEENERGYLIMITCONTRACT: 45,\n ACCOUNTPERMISSIONUPDATECONTRACT: 46,\n CLEARABICONTRACT: 48,\n UPDATEBROKERAGECONTRACT: 49,\n SHIELDEDTRANSFERCONTRACT: 51,\n MARKETSELLASSETCONTRACT: 52,\n MARKETCANCELORDERCONTRACT: 53,\n FREEZEBALANCEV2CONTRACT: 54,\n UNFREEZEBALANCEV2CONTRACT: 55,\n WITHDRAWEXPIREUNFREEZECONTRACT: 56,\n DELEGATERESOURCECONTRACT: 57,\n UNDELEGATERESOURCECONTRACT: 58,\n CANCELALLUNFREEZEV2CONTRACT: 59\n};\n\n/**\n * optional ContractType type = 1;\n * @return {!TronWebProto.Transaction.Contract.ContractType}\n */\nTronWebProto.Transaction.Contract.prototype.getType = function() {\n return /** @type {!TronWebProto.Transaction.Contract.ContractType} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Contract.ContractType} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setType = function(value) {\n return jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Any parameter = 2;\n * @return {?TronWebProto.Any}\n */\nTronWebProto.Transaction.Contract.prototype.getParameter = function() {\n return /** @type{?TronWebProto.Any} */ (\n jspb.Message.getWrapperField(this, google_protobuf_any_pb.Any, 2));\n};\n\n\n/**\n * @param {?TronWebProto.Any|undefined} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n*/\nTronWebProto.Transaction.Contract.prototype.setParameter = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.clearParameter = function() {\n return this.setParameter(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Transaction.Contract.prototype.hasParameter = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional bytes provider = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes provider = 3;\n * This is a type-conversion wrapper around `getProvider()`\n * @return {string}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getProvider()));\n};\n\n\n/**\n * optional bytes provider = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getProvider()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.getProvider_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getProvider()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setProvider = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * This is a type-conversion wrapper around `getContractname()`\n * @return {string}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getContractname()));\n};\n\n\n/**\n * optional bytes ContractName = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractname()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Contract.prototype.getContractname_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getContractname()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setContractname = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int32 Permission_id = 5;\n * @return {number}\n */\nTronWebProto.Transaction.Contract.prototype.getPermissionId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Contract} returns this\n */\nTronWebProto.Transaction.Contract.prototype.setPermissionId = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Transaction.Result.repeatedFields_ = [26];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.Result.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.Result.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.Result} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Result.toObject = function(includeInstance, msg) {\n var f, obj = {\n fee: jspb.Message.getFieldWithDefault(msg, 1, 0),\n ret: jspb.Message.getFieldWithDefault(msg, 2, 0),\n contractret: jspb.Message.getFieldWithDefault(msg, 3, 0),\n assetissueid: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n withdrawAmount: jspb.Message.getFieldWithDefault(msg, 15, 0),\n unfreezeAmount: jspb.Message.getFieldWithDefault(msg, 16, 0),\n exchangeReceivedAmount: jspb.Message.getFieldWithDefault(msg, 18, 0),\n exchangeInjectAnotherAmount: jspb.Message.getFieldWithDefault(msg, 19, 0),\n exchangeWithdrawAnotherAmount: jspb.Message.getFieldWithDefault(msg, 20, 0),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 21, 0),\n shieldedTransactionFee: jspb.Message.getFieldWithDefault(msg, 22, 0),\n orderid: msg.getOrderid_asB64(),\n orderdetailsList: jspb.Message.toObjectList(msg.getOrderdetailsList(),\n TronWebProto.MarketOrderDetail.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.Result.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.Result;\n return TronWebProto.Transaction.Result.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.Result} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.Result.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFee(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.Transaction.Result.code} */ (reader.readEnum());\n msg.setRet(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.Transaction.Result.contractResult} */ (reader.readEnum());\n msg.setContractret(value);\n break;\n case 14:\n var value = /** @type {string} */ (reader.readString());\n msg.setAssetissueid(value);\n break;\n case 15:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setWithdrawAmount(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUnfreezeAmount(value);\n break;\n case 18:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeReceivedAmount(value);\n break;\n case 19:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeInjectAnotherAmount(value);\n break;\n case 20:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeWithdrawAnotherAmount(value);\n break;\n case 21:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setShieldedTransactionFee(value);\n break;\n case 25:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrderid(value);\n break;\n case 26:\n var value = new TronWebProto.MarketOrderDetail;\n reader.readMessage(value,TronWebProto.MarketOrderDetail.deserializeBinaryFromReader);\n msg.addOrderdetails(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Result.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.Result.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.Result} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.Result.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFee();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getRet();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n f = message.getContractret();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getAssetissueid();\n if (f.length > 0) {\n writer.writeString(\n 14,\n f\n );\n }\n f = message.getWithdrawAmount();\n if (f !== 0) {\n writer.writeInt64(\n 15,\n f\n );\n }\n f = message.getUnfreezeAmount();\n if (f !== 0) {\n writer.writeInt64(\n 16,\n f\n );\n }\n f = message.getExchangeReceivedAmount();\n if (f !== 0) {\n writer.writeInt64(\n 18,\n f\n );\n }\n f = message.getExchangeInjectAnotherAmount();\n if (f !== 0) {\n writer.writeInt64(\n 19,\n f\n );\n }\n f = message.getExchangeWithdrawAnotherAmount();\n if (f !== 0) {\n writer.writeInt64(\n 20,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 21,\n f\n );\n }\n f = message.getShieldedTransactionFee();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getOrderid_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 25,\n f\n );\n }\n f = message.getOrderdetailsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 26,\n f,\n TronWebProto.MarketOrderDetail.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Result.code = {\n SUCESS: 0,\n FAILED: 1\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.Transaction.Result.contractResult = {\n DEFAULT: 0,\n SUCCESS: 1,\n REVERT: 2,\n BAD_JUMP_DESTINATION: 3,\n OUT_OF_MEMORY: 4,\n PRECOMPILED_CONTRACT: 5,\n STACK_TOO_SMALL: 6,\n STACK_TOO_LARGE: 7,\n ILLEGAL_OPERATION: 8,\n STACK_OVERFLOW: 9,\n OUT_OF_ENERGY: 10,\n OUT_OF_TIME: 11,\n JVM_STACK_OVER_FLOW: 12,\n UNKNOWN: 13,\n TRANSFER_FAILED: 14,\n INVALID_CODE: 15\n};\n\n/**\n * optional int64 fee = 1;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getFee = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setFee = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional code ret = 2;\n * @return {!TronWebProto.Transaction.Result.code}\n */\nTronWebProto.Transaction.Result.prototype.getRet = function() {\n return /** @type {!TronWebProto.Transaction.Result.code} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result.code} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setRet = function(value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n/**\n * optional contractResult contractRet = 3;\n * @return {!TronWebProto.Transaction.Result.contractResult}\n */\nTronWebProto.Transaction.Result.prototype.getContractret = function() {\n return /** @type {!TronWebProto.Transaction.Result.contractResult} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result.contractResult} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setContractret = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional string assetIssueID = 14;\n * @return {string}\n */\nTronWebProto.Transaction.Result.prototype.getAssetissueid = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setAssetissueid = function(value) {\n return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional int64 withdraw_amount = 15;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getWithdrawAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setWithdrawAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 15, value);\n};\n\n\n/**\n * optional int64 unfreeze_amount = 16;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getUnfreezeAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setUnfreezeAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional int64 exchange_received_amount = 18;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeReceivedAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeReceivedAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 18, value);\n};\n\n\n/**\n * optional int64 exchange_inject_another_amount = 19;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeInjectAnotherAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeInjectAnotherAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 19, value);\n};\n\n\n/**\n * optional int64 exchange_withdraw_another_amount = 20;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeWithdrawAnotherAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 20, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeWithdrawAnotherAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 20, value);\n};\n\n\n/**\n * optional int64 exchange_id = 21;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 21, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 21, value);\n};\n\n\n/**\n * optional int64 shielded_transaction_fee = 22;\n * @return {number}\n */\nTronWebProto.Transaction.Result.prototype.getShieldedTransactionFee = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setShieldedTransactionFee = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional bytes orderId = 25;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 25, \"\"));\n};\n\n\n/**\n * optional bytes orderId = 25;\n * This is a type-conversion wrapper around `getOrderid()`\n * @return {string}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrderid()));\n};\n\n\n/**\n * optional bytes orderId = 25;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrderid()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.Result.prototype.getOrderid_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrderid()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.setOrderid = function(value) {\n return jspb.Message.setProto3BytesField(this, 25, value);\n};\n\n\n/**\n * repeated MarketOrderDetail orderDetails = 26;\n * @return {!Array<!TronWebProto.MarketOrderDetail>}\n */\nTronWebProto.Transaction.Result.prototype.getOrderdetailsList = function() {\n return /** @type{!Array<!TronWebProto.MarketOrderDetail>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.MarketOrderDetail, 26));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.MarketOrderDetail>} value\n * @return {!TronWebProto.Transaction.Result} returns this\n*/\nTronWebProto.Transaction.Result.prototype.setOrderdetailsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 26, value);\n};\n\n\n/**\n * @param {!TronWebProto.MarketOrderDetail=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.MarketOrderDetail}\n */\nTronWebProto.Transaction.Result.prototype.addOrderdetails = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 26, opt_value, TronWebProto.MarketOrderDetail, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.Result} returns this\n */\nTronWebProto.Transaction.Result.prototype.clearOrderdetailsList = function() {\n return this.setOrderdetailsList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.Transaction.raw.repeatedFields_ = [9,11];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.Transaction.raw.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.Transaction.raw.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.Transaction.raw} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.raw.toObject = function(includeInstance, msg) {\n var f, obj = {\n refBlockBytes: msg.getRefBlockBytes_asB64(),\n refBlockNum: jspb.Message.getFieldWithDefault(msg, 3, 0),\n refBlockHash: msg.getRefBlockHash_asB64(),\n expiration: jspb.Message.getFieldWithDefault(msg, 8, 0),\n authsList: jspb.Message.toObjectList(msg.getAuthsList(),\n TronWebProto.authority.toObject, includeInstance),\n data: msg.getData_asB64(),\n contractList: jspb.Message.toObjectList(msg.getContractList(),\n TronWebProto.Transaction.Contract.toObject, includeInstance),\n scripts: msg.getScripts_asB64(),\n timestamp: jspb.Message.getFieldWithDefault(msg, 14, 0),\n feeLimit: jspb.Message.getFieldWithDefault(msg, 18, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.raw.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.Transaction.raw;\n return TronWebProto.Transaction.raw.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.Transaction.raw} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.raw.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefBlockBytes(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setRefBlockNum(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefBlockHash(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpiration(value);\n break;\n case 9:\n var value = new TronWebProto.authority;\n reader.readMessage(value,TronWebProto.authority.deserializeBinaryFromReader);\n msg.addAuths(value);\n break;\n case 10:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 11:\n var value = new TronWebProto.Transaction.Contract;\n reader.readMessage(value,TronWebProto.Transaction.Contract.deserializeBinaryFromReader);\n msg.addContract(value);\n break;\n case 12:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setScripts(value);\n break;\n case 14:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestamp(value);\n break;\n case 18:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFeeLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.Transaction.raw.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.Transaction.raw} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.Transaction.raw.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRefBlockBytes_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getRefBlockNum();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getRefBlockHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getExpiration();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n f = message.getAuthsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 9,\n f,\n TronWebProto.authority.serializeBinaryToWriter\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 10,\n f\n );\n }\n f = message.getContractList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 11,\n f,\n TronWebProto.Transaction.Contract.serializeBinaryToWriter\n );\n }\n f = message.getScripts_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 12,\n f\n );\n }\n f = message.getTimestamp();\n if (f !== 0) {\n writer.writeInt64(\n 14,\n f\n );\n }\n f = message.getFeeLimit();\n if (f !== 0) {\n writer.writeInt64(\n 18,\n f\n );\n }\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * This is a type-conversion wrapper around `getRefBlockBytes()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefBlockBytes()));\n};\n\n\n/**\n * optional bytes ref_block_bytes = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefBlockBytes()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockBytes_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefBlockBytes()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockBytes = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 ref_block_num = 3;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockNum = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * This is a type-conversion wrapper around `getRefBlockHash()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefBlockHash()));\n};\n\n\n/**\n * optional bytes ref_block_hash = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefBlockHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getRefBlockHash_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefBlockHash()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setRefBlockHash = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int64 expiration = 8;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getExpiration = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setExpiration = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * repeated authority auths = 9;\n * @return {!Array<!TronWebProto.authority>}\n */\nTronWebProto.Transaction.raw.prototype.getAuthsList = function() {\n return /** @type{!Array<!TronWebProto.authority>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.authority, 9));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.authority>} value\n * @return {!TronWebProto.Transaction.raw} returns this\n*/\nTronWebProto.Transaction.raw.prototype.setAuthsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 9, value);\n};\n\n\n/**\n * @param {!TronWebProto.authority=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.authority}\n */\nTronWebProto.Transaction.raw.prototype.addAuths = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, TronWebProto.authority, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.clearAuthsList = function() {\n return this.setAuthsList([]);\n};\n\n\n/**\n * optional bytes data = 10;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/**\n * optional bytes data = 10;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setData = function(value) {\n return jspb.Message.setProto3BytesField(this, 10, value);\n};\n\n\n/**\n * repeated Contract contract = 11;\n * @return {!Array<!TronWebProto.Transaction.Contract>}\n */\nTronWebProto.Transaction.raw.prototype.getContractList = function() {\n return /** @type{!Array<!TronWebProto.Transaction.Contract>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Transaction.Contract, 11));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Transaction.Contract>} value\n * @return {!TronWebProto.Transaction.raw} returns this\n*/\nTronWebProto.Transaction.raw.prototype.setContractList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 11, value);\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Contract=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction.Contract}\n */\nTronWebProto.Transaction.raw.prototype.addContract = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, TronWebProto.Transaction.Contract, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.clearContractList = function() {\n return this.setContractList([]);\n};\n\n\n/**\n * optional bytes scripts = 12;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.Transaction.raw.prototype.getScripts = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * optional bytes scripts = 12;\n * This is a type-conversion wrapper around `getScripts()`\n * @return {string}\n */\nTronWebProto.Transaction.raw.prototype.getScripts_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getScripts()));\n};\n\n\n/**\n * optional bytes scripts = 12;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getScripts()`\n * @return {!Uint8Array}\n */\nTronWebProto.Transaction.raw.prototype.getScripts_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getScripts()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setScripts = function(value) {\n return jspb.Message.setProto3BytesField(this, 12, value);\n};\n\n\n/**\n * optional int64 timestamp = 14;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getTimestamp = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setTimestamp = function(value) {\n return jspb.Message.setProto3IntField(this, 14, value);\n};\n\n\n/**\n * optional int64 fee_limit = 18;\n * @return {number}\n */\nTronWebProto.Transaction.raw.prototype.getFeeLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.Transaction.raw} returns this\n */\nTronWebProto.Transaction.raw.prototype.setFeeLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 18, value);\n};\n\n\n/**\n * optional raw raw_data = 1;\n * @return {?TronWebProto.Transaction.raw}\n */\nTronWebProto.Transaction.prototype.getRawData = function() {\n return /** @type{?TronWebProto.Transaction.raw} */ (\n jspb.Message.getWrapperField(this, TronWebProto.Transaction.raw, 1));\n};\n\n\n/**\n * @param {?TronWebProto.Transaction.raw|undefined} value\n * @return {!TronWebProto.Transaction} returns this\n*/\nTronWebProto.Transaction.prototype.setRawData = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearRawData = function() {\n return this.setRawData(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.Transaction.prototype.hasRawData = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated bytes signature = 2;\n * @return {!(Array<!Uint8Array>|Array<string>)}\n */\nTronWebProto.Transaction.prototype.getSignatureList = function() {\n return /** @type {!(Array<!Uint8Array>|Array<string>)} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * repeated bytes signature = 2;\n * This is a type-conversion wrapper around `getSignatureList()`\n * @return {!Array<string>}\n */\nTronWebProto.Transaction.prototype.getSignatureList_asB64 = function() {\n return /** @type {!Array<string>} */ (jspb.Message.bytesListAsB64(\n this.getSignatureList()));\n};\n\n\n/**\n * repeated bytes signature = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSignatureList()`\n * @return {!Array<!Uint8Array>}\n */\nTronWebProto.Transaction.prototype.getSignatureList_asU8 = function() {\n return /** @type {!Array<!Uint8Array>} */ (jspb.Message.bytesListAsU8(\n this.getSignatureList()));\n};\n\n\n/**\n * @param {!(Array<!Uint8Array>|Array<string>)} value\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.setSignatureList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.addSignature = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearSignatureList = function() {\n return this.setSignatureList([]);\n};\n\n\n/**\n * repeated Result ret = 5;\n * @return {!Array<!TronWebProto.Transaction.Result>}\n */\nTronWebProto.Transaction.prototype.getRetList = function() {\n return /** @type{!Array<!TronWebProto.Transaction.Result>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.Transaction.Result, 5));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.Transaction.Result>} value\n * @return {!TronWebProto.Transaction} returns this\n*/\nTronWebProto.Transaction.prototype.setRetList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.Transaction.Result=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Transaction.Result}\n */\nTronWebProto.Transaction.prototype.addRet = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.Transaction.Result, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.Transaction} returns this\n */\nTronWebProto.Transaction.prototype.clearRetList = function() {\n return this.setRetList([]);\n};\n\n\n/**\n * @enum {number}\n */\nTronWebProto.AccountType = {\n NORMAL: 0,\n ASSETISSUE: 1,\n CONTRACT: 2\n};\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/account_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.cjs');\ngoog.object.extend(proto, core_Tron_pb);\ngoog.exportSymbol('TronWebProto.AccountCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.AccountPermissionUpdateContract', null, global);\ngoog.exportSymbol('TronWebProto.AccountUpdateContract', null, global);\ngoog.exportSymbol('TronWebProto.SetAccountIdContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountCreateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountCreateContract.displayName = 'TronWebProto.AccountCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountUpdateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountUpdateContract.displayName = 'TronWebProto.AccountUpdateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SetAccountIdContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SetAccountIdContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SetAccountIdContract.displayName = 'TronWebProto.SetAccountIdContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountPermissionUpdateContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.AccountPermissionUpdateContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.AccountPermissionUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountPermissionUpdateContract.displayName = 'TronWebProto.AccountPermissionUpdateContract';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountCreateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountCreateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountCreateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n accountAddress: msg.getAccountAddress_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountCreateContract}\n */\nTronWebProto.AccountCreateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountCreateContract();\n return TronWebProto.AccountCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountCreateContract}\n */\nTronWebProto.AccountCreateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountAddress(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.AccountType} */ (reader.readEnum());\n msg.setType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountCreateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getAccountAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes account_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes account_address = 2;\n * This is a type-conversion wrapper around `getAccountAddress()`\n * @return {string}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountAddress()));\n};\n\n/**\n * optional bytes account_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountCreateContract.prototype.getAccountAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setAccountAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional AccountType type = 3;\n * @return {!TronWebProto.AccountType}\n */\nTronWebProto.AccountCreateContract.prototype.getType = function () {\n return /** @type {!TronWebProto.AccountType} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.AccountType} value\n * @return {!TronWebProto.AccountCreateContract} returns this\n */\nTronWebProto.AccountCreateContract.prototype.setType = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountUpdateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountUpdateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountUpdateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountName: msg.getAccountName_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountUpdateContract}\n */\nTronWebProto.AccountUpdateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountUpdateContract();\n return TronWebProto.AccountUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountUpdateContract}\n */\nTronWebProto.AccountUpdateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountUpdateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountName_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes account_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes account_name = 1;\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {string}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountName()));\n};\n\n/**\n * optional bytes account_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.getAccountName_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountName()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setAccountName = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountUpdateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountUpdateContract} returns this\n */\nTronWebProto.AccountUpdateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SetAccountIdContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SetAccountIdContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SetAccountIdContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SetAccountIdContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountId: msg.getAccountId_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SetAccountIdContract}\n */\nTronWebProto.SetAccountIdContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SetAccountIdContract();\n return TronWebProto.SetAccountIdContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SetAccountIdContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SetAccountIdContract}\n */\nTronWebProto.SetAccountIdContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccountId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SetAccountIdContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SetAccountIdContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SetAccountIdContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountId_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes account_id = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes account_id = 1;\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {string}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAccountId()));\n};\n\n/**\n * optional bytes account_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccountId()`\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.getAccountId_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAccountId()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SetAccountIdContract} returns this\n */\nTronWebProto.SetAccountIdContract.prototype.setAccountId = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SetAccountIdContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SetAccountIdContract} returns this\n */\nTronWebProto.SetAccountIdContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.AccountPermissionUpdateContract.repeatedFields_ = [4];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountPermissionUpdateContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountPermissionUpdateContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountPermissionUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountPermissionUpdateContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n owner: (f = msg.getOwner()) && core_Tron_pb.Permission.toObject(includeInstance, f),\n witness: (f = msg.getWitness()) && core_Tron_pb.Permission.toObject(includeInstance, f),\n activesList: jspb.Message.toObjectList(msg.getActivesList(), core_Tron_pb.Permission.toObject, includeInstance),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountPermissionUpdateContract}\n */\nTronWebProto.AccountPermissionUpdateContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountPermissionUpdateContract();\n return TronWebProto.AccountPermissionUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountPermissionUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountPermissionUpdateContract}\n */\nTronWebProto.AccountPermissionUpdateContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.setOwner(value);\n break;\n case 3:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.setWitness(value);\n break;\n case 4:\n var value = new core_Tron_pb.Permission();\n reader.readMessage(value, core_Tron_pb.Permission.deserializeBinaryFromReader);\n msg.addActives(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountPermissionUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountPermissionUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountPermissionUpdateContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOwner();\n if (f != null) {\n writer.writeMessage(2, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n f = message.getWitness();\n if (f != null) {\n writer.writeMessage(3, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n f = message.getActivesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(4, f, core_Tron_pb.Permission.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional Permission owner = 2;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getOwner = function () {\n return /** @type{?TronWebProto.Permission} */ (jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 2));\n};\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setOwner = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearOwner = function () {\n return this.setOwner(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.hasOwner = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * optional Permission witness = 3;\n * @return {?TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getWitness = function () {\n return /** @type{?TronWebProto.Permission} */ (jspb.Message.getWrapperField(this, core_Tron_pb.Permission, 3));\n};\n\n/**\n * @param {?TronWebProto.Permission|undefined} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setWitness = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearWitness = function () {\n return this.setWitness(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.hasWitness = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * repeated Permission actives = 4;\n * @return {!Array<!TronWebProto.Permission>}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.getActivesList = function () {\n return /** @type{!Array<!TronWebProto.Permission>} */ (\n jspb.Message.getRepeatedWrapperField(this, core_Tron_pb.Permission, 4)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.Permission>} value\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.setActivesList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n/**\n * @param {!TronWebProto.Permission=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.Permission}\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.addActives = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, TronWebProto.Permission, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.AccountPermissionUpdateContract} returns this\n */\nTronWebProto.AccountPermissionUpdateContract.prototype.clearActivesList = function () {\n return this.setActivesList([]);\n};\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/asset_issue_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.AssetIssueContract', null, global);\ngoog.exportSymbol('TronWebProto.AssetIssueContract.FrozenSupply', null, global);\ngoog.exportSymbol('TronWebProto.ParticipateAssetIssueContract', null, global);\ngoog.exportSymbol('TronWebProto.TransferAssetContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeAssetContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateAssetContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AssetIssueContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.AssetIssueContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.AssetIssueContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AssetIssueContract.displayName = 'TronWebProto.AssetIssueContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AssetIssueContract.FrozenSupply = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AssetIssueContract.FrozenSupply, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AssetIssueContract.FrozenSupply.displayName = 'TronWebProto.AssetIssueContract.FrozenSupply';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransferAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransferAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransferAssetContract.displayName = 'TronWebProto.TransferAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeAssetContract.displayName = 'TronWebProto.UnfreezeAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateAssetContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateAssetContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateAssetContract.displayName = 'TronWebProto.UpdateAssetContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ParticipateAssetIssueContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ParticipateAssetIssueContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ParticipateAssetIssueContract.displayName = 'TronWebProto.ParticipateAssetIssueContract';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.AssetIssueContract.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AssetIssueContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AssetIssueContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AssetIssueContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: jspb.Message.getFieldWithDefault(msg, 41, \"\"),\n ownerAddress: msg.getOwnerAddress_asB64(),\n name: msg.getName_asB64(),\n abbr: msg.getAbbr_asB64(),\n totalSupply: jspb.Message.getFieldWithDefault(msg, 4, 0),\n frozenSupplyList: jspb.Message.toObjectList(msg.getFrozenSupplyList(),\n TronWebProto.AssetIssueContract.FrozenSupply.toObject, includeInstance),\n trxNum: jspb.Message.getFieldWithDefault(msg, 6, 0),\n precision: jspb.Message.getFieldWithDefault(msg, 7, 0),\n num: jspb.Message.getFieldWithDefault(msg, 8, 0),\n startTime: jspb.Message.getFieldWithDefault(msg, 9, 0),\n endTime: jspb.Message.getFieldWithDefault(msg, 10, 0),\n order: jspb.Message.getFieldWithDefault(msg, 11, 0),\n voteScore: jspb.Message.getFieldWithDefault(msg, 16, 0),\n description: msg.getDescription_asB64(),\n url: msg.getUrl_asB64(),\n freeAssetNetLimit: jspb.Message.getFieldWithDefault(msg, 22, 0),\n publicFreeAssetNetLimit: jspb.Message.getFieldWithDefault(msg, 23, 0),\n publicFreeAssetNetUsage: jspb.Message.getFieldWithDefault(msg, 24, 0),\n publicLatestFreeNetTime: jspb.Message.getFieldWithDefault(msg, 25, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AssetIssueContract}\n */\nTronWebProto.AssetIssueContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AssetIssueContract;\n return TronWebProto.AssetIssueContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AssetIssueContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AssetIssueContract}\n */\nTronWebProto.AssetIssueContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 41:\n var value = /** @type {string} */ (reader.readString());\n msg.setId(value);\n break;\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAbbr(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTotalSupply(value);\n break;\n case 5:\n var value = new TronWebProto.AssetIssueContract.FrozenSupply;\n reader.readMessage(value,TronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader);\n msg.addFrozenSupply(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setTrxNum(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setPrecision(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setNum(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStartTime(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEndTime(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOrder(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setVoteScore(value);\n break;\n case 20:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDescription(value);\n break;\n case 21:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n case 22:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFreeAssetNetLimit(value);\n break;\n case 23:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicFreeAssetNetLimit(value);\n break;\n case 24:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicFreeAssetNetUsage(value);\n break;\n case 25:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPublicLatestFreeNetTime(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AssetIssueContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AssetIssueContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId();\n if (f.length > 0) {\n writer.writeString(\n 41,\n f\n );\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getAbbr_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getTotalSupply();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getFrozenSupplyList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n TronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter\n );\n }\n f = message.getTrxNum();\n if (f !== 0) {\n writer.writeInt32(\n 6,\n f\n );\n }\n f = message.getPrecision();\n if (f !== 0) {\n writer.writeInt32(\n 7,\n f\n );\n }\n f = message.getNum();\n if (f !== 0) {\n writer.writeInt32(\n 8,\n f\n );\n }\n f = message.getStartTime();\n if (f !== 0) {\n writer.writeInt64(\n 9,\n f\n );\n }\n f = message.getEndTime();\n if (f !== 0) {\n writer.writeInt64(\n 10,\n f\n );\n }\n f = message.getOrder();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getVoteScore();\n if (f !== 0) {\n writer.writeInt32(\n 16,\n f\n );\n }\n f = message.getDescription_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 20,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 21,\n f\n );\n }\n f = message.getFreeAssetNetLimit();\n if (f !== 0) {\n writer.writeInt64(\n 22,\n f\n );\n }\n f = message.getPublicFreeAssetNetLimit();\n if (f !== 0) {\n writer.writeInt64(\n 23,\n f\n );\n }\n f = message.getPublicFreeAssetNetUsage();\n if (f !== 0) {\n writer.writeInt64(\n 24,\n f\n );\n }\n f = message.getPublicLatestFreeNetTime();\n if (f !== 0) {\n writer.writeInt64(\n 25,\n f\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.AssetIssueContract.FrozenSupply.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.FrozenSupply.toObject = function(includeInstance, msg) {\n var f, obj = {\n frozenAmount: jspb.Message.getFieldWithDefault(msg, 1, 0),\n frozenDays: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AssetIssueContract.FrozenSupply;\n return TronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenAmount(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenDays(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AssetIssueContract.FrozenSupply.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrozenAmount();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getFrozenDays();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 frozen_amount = 1;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.getFrozenAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply} returns this\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.setFrozenAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 frozen_days = 2;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.getFrozenDays = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply} returns this\n */\nTronWebProto.AssetIssueContract.FrozenSupply.prototype.setFrozenDays = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string id = 41;\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 41, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setId = function(value) {\n return jspb.Message.setProto3StringField(this, 41, value);\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes name = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes name = 2;\n * This is a type-conversion wrapper around `getName()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getName()));\n};\n\n\n/**\n * optional bytes name = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getName()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setName = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes abbr = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes abbr = 3;\n * This is a type-conversion wrapper around `getAbbr()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAbbr()));\n};\n\n\n/**\n * optional bytes abbr = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAbbr()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getAbbr_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAbbr()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setAbbr = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 total_supply = 4;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getTotalSupply = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setTotalSupply = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * repeated FrozenSupply frozen_supply = 5;\n * @return {!Array<!TronWebProto.AssetIssueContract.FrozenSupply>}\n */\nTronWebProto.AssetIssueContract.prototype.getFrozenSupplyList = function() {\n return /** @type{!Array<!TronWebProto.AssetIssueContract.FrozenSupply>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.AssetIssueContract.FrozenSupply, 5));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.AssetIssueContract.FrozenSupply>} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n*/\nTronWebProto.AssetIssueContract.prototype.setFrozenSupplyList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!TronWebProto.AssetIssueContract.FrozenSupply=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.AssetIssueContract.FrozenSupply}\n */\nTronWebProto.AssetIssueContract.prototype.addFrozenSupply = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.AssetIssueContract.FrozenSupply, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.clearFrozenSupplyList = function() {\n return this.setFrozenSupplyList([]);\n};\n\n\n/**\n * optional int32 trx_num = 6;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getTrxNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setTrxNum = function(value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n/**\n * optional int32 precision = 7;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPrecision = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPrecision = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * optional int32 num = 8;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getNum = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setNum = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * optional int64 start_time = 9;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getStartTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setStartTime = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int64 end_time = 10;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getEndTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setEndTime = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 order = 11;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getOrder = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setOrder = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional int32 vote_score = 16;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getVoteScore = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setVoteScore = function(value) {\n return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * optional bytes description = 20;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 20, \"\"));\n};\n\n\n/**\n * optional bytes description = 20;\n * This is a type-conversion wrapper around `getDescription()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDescription()));\n};\n\n\n/**\n * optional bytes description = 20;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDescription()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getDescription_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDescription()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setDescription = function(value) {\n return jspb.Message.setProto3BytesField(this, 20, value);\n};\n\n\n/**\n * optional bytes url = 21;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 21, \"\"));\n};\n\n\n/**\n * optional bytes url = 21;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 21;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.AssetIssueContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 21, value);\n};\n\n\n/**\n * optional int64 free_asset_net_limit = 22;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getFreeAssetNetLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 22, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setFreeAssetNetLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 22, value);\n};\n\n\n/**\n * optional int64 public_free_asset_net_limit = 23;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicFreeAssetNetLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 23, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicFreeAssetNetLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 23, value);\n};\n\n\n/**\n * optional int64 public_free_asset_net_usage = 24;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicFreeAssetNetUsage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 24, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicFreeAssetNetUsage = function(value) {\n return jspb.Message.setProto3IntField(this, 24, value);\n};\n\n\n/**\n * optional int64 public_latest_free_net_time = 25;\n * @return {number}\n */\nTronWebProto.AssetIssueContract.prototype.getPublicLatestFreeNetTime = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 25, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AssetIssueContract} returns this\n */\nTronWebProto.AssetIssueContract.prototype.setPublicLatestFreeNetTime = function(value) {\n return jspb.Message.setProto3IntField(this, 25, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.TransferAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.TransferAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransferAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n assetName: msg.getAssetName_asB64(),\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransferAssetContract}\n */\nTronWebProto.TransferAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransferAssetContract;\n return TronWebProto.TransferAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransferAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransferAssetContract}\n */\nTronWebProto.TransferAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetName(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransferAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransferAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAssetName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetName()));\n};\n\n\n/**\n * optional bytes asset_name = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getAssetName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setAssetName = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes to_address = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes to_address = 3;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getToAddress()));\n};\n\n\n/**\n * optional bytes to_address = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferAssetContract.prototype.getToAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getToAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setToAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 amount = 4;\n * @return {number}\n */\nTronWebProto.TransferAssetContract.prototype.getAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransferAssetContract} returns this\n */\nTronWebProto.TransferAssetContract.prototype.setAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UnfreezeAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UnfreezeAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeAssetContract}\n */\nTronWebProto.UnfreezeAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeAssetContract;\n return TronWebProto.UnfreezeAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeAssetContract}\n */\nTronWebProto.UnfreezeAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeAssetContract} returns this\n */\nTronWebProto.UnfreezeAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UpdateAssetContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateAssetContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateAssetContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateAssetContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n description: msg.getDescription_asB64(),\n url: msg.getUrl_asB64(),\n newLimit: jspb.Message.getFieldWithDefault(msg, 4, 0),\n newPublicLimit: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateAssetContract}\n */\nTronWebProto.UpdateAssetContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateAssetContract;\n return TronWebProto.UpdateAssetContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateAssetContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateAssetContract}\n */\nTronWebProto.UpdateAssetContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDescription(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNewLimit(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNewPublicLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateAssetContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateAssetContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateAssetContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getDescription_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getNewLimit();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getNewPublicLimit();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes description = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes description = 2;\n * This is a type-conversion wrapper around `getDescription()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDescription()));\n};\n\n\n/**\n * optional bytes description = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDescription()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getDescription_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDescription()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setDescription = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes url = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes url = 3;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateAssetContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 new_limit = 4;\n * @return {number}\n */\nTronWebProto.UpdateAssetContract.prototype.getNewLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setNewLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 new_public_limit = 5;\n * @return {number}\n */\nTronWebProto.UpdateAssetContract.prototype.getNewPublicLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateAssetContract} returns this\n */\nTronWebProto.UpdateAssetContract.prototype.setNewPublicLimit = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ParticipateAssetIssueContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ParticipateAssetIssueContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ParticipateAssetIssueContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n assetName: msg.getAssetName_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ParticipateAssetIssueContract}\n */\nTronWebProto.ParticipateAssetIssueContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ParticipateAssetIssueContract;\n return TronWebProto.ParticipateAssetIssueContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ParticipateAssetIssueContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ParticipateAssetIssueContract}\n */\nTronWebProto.ParticipateAssetIssueContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAssetName(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ParticipateAssetIssueContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ParticipateAssetIssueContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ParticipateAssetIssueContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getAssetName_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes to_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes to_address = 2;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getToAddress()));\n};\n\n\n/**\n * optional bytes to_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getToAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getToAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setToAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {string}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAssetName()));\n};\n\n\n/**\n * optional bytes asset_name = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAssetName()`\n * @return {!Uint8Array}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAssetName_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAssetName()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setAssetName = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 amount = 4;\n * @return {number}\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.getAmount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ParticipateAssetIssueContract} returns this\n */\nTronWebProto.ParticipateAssetIssueContract.prototype.setAmount = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/balance_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_contract_common_pb = require('../../core/contract/common_pb.cjs');\ngoog.object.extend(proto, core_contract_common_pb);\ngoog.exportSymbol('TronWebProto.AccountBalanceRequest', null, global);\ngoog.exportSymbol('TronWebProto.AccountBalanceResponse', null, global);\ngoog.exportSymbol('TronWebProto.AccountIdentifier', null, global);\ngoog.exportSymbol('TronWebProto.AccountTrace', null, global);\ngoog.exportSymbol('TronWebProto.BlockBalanceTrace', null, global);\ngoog.exportSymbol('TronWebProto.BlockBalanceTrace.BlockIdentifier', null, global);\ngoog.exportSymbol('TronWebProto.CancelAllUnfreezeV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.DelegateResourceContract', null, global);\ngoog.exportSymbol('TronWebProto.FreezeBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.FreezeBalanceV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.TransactionBalanceTrace', null, global);\ngoog.exportSymbol('TronWebProto.TransactionBalanceTrace.Operation', null, global);\ngoog.exportSymbol('TronWebProto.TransferContract', null, global);\ngoog.exportSymbol('TronWebProto.UnDelegateResourceContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.UnfreezeBalanceV2Contract', null, global);\ngoog.exportSymbol('TronWebProto.WithdrawBalanceContract', null, global);\ngoog.exportSymbol('TronWebProto.WithdrawExpireUnfreezeContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.FreezeBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.FreezeBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.FreezeBalanceContract.displayName = 'TronWebProto.FreezeBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeBalanceContract.displayName = 'TronWebProto.UnfreezeBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WithdrawBalanceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WithdrawBalanceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WithdrawBalanceContract.displayName = 'TronWebProto.WithdrawBalanceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransferContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransferContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransferContract.displayName = 'TronWebProto.TransferContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransactionBalanceTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.TransactionBalanceTrace.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.TransactionBalanceTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransactionBalanceTrace.displayName = 'TronWebProto.TransactionBalanceTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TransactionBalanceTrace.Operation = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TransactionBalanceTrace.Operation, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TransactionBalanceTrace.Operation.displayName = 'TronWebProto.TransactionBalanceTrace.Operation';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BlockBalanceTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.BlockBalanceTrace.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.BlockBalanceTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BlockBalanceTrace.displayName = 'TronWebProto.BlockBalanceTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BlockBalanceTrace.BlockIdentifier, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.displayName = 'TronWebProto.BlockBalanceTrace.BlockIdentifier';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountTrace = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountTrace, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountTrace.displayName = 'TronWebProto.AccountTrace';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountIdentifier = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountIdentifier, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountIdentifier.displayName = 'TronWebProto.AccountIdentifier';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountBalanceRequest = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountBalanceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountBalanceRequest.displayName = 'TronWebProto.AccountBalanceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.AccountBalanceResponse = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.AccountBalanceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.AccountBalanceResponse.displayName = 'TronWebProto.AccountBalanceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.FreezeBalanceV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.FreezeBalanceV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.FreezeBalanceV2Contract.displayName = 'TronWebProto.FreezeBalanceV2Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnfreezeBalanceV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnfreezeBalanceV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnfreezeBalanceV2Contract.displayName = 'TronWebProto.UnfreezeBalanceV2Contract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WithdrawExpireUnfreezeContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WithdrawExpireUnfreezeContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WithdrawExpireUnfreezeContract.displayName = 'TronWebProto.WithdrawExpireUnfreezeContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.DelegateResourceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.DelegateResourceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.DelegateResourceContract.displayName = 'TronWebProto.DelegateResourceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UnDelegateResourceContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UnDelegateResourceContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UnDelegateResourceContract.displayName = 'TronWebProto.UnDelegateResourceContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.CancelAllUnfreezeV2Contract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.CancelAllUnfreezeV2Contract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.CancelAllUnfreezeV2Contract.displayName = 'TronWebProto.CancelAllUnfreezeV2Contract';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.FreezeBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.FreezeBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.FreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.FreezeBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n frozenDuration: jspb.Message.getFieldWithDefault(msg, 3, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 10, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.FreezeBalanceContract}\n */\nTronWebProto.FreezeBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.FreezeBalanceContract();\n return TronWebProto.FreezeBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.FreezeBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.FreezeBalanceContract}\n */\nTronWebProto.FreezeBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenDuration(value);\n break;\n case 10:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 15:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.FreezeBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.FreezeBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getFrozenDuration();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(10, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(15, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 frozen_balance = 2;\n * @return {number}\n */\nTronWebProto.FreezeBalanceContract.prototype.getFrozenBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setFrozenBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional int64 frozen_duration = 3;\n * @return {number}\n */\nTronWebProto.FreezeBalanceContract.prototype.getFrozenDuration = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setFrozenDuration = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional ResourceCode resource = 10;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.FreezeBalanceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 10, value);\n};\n\n/**\n * optional bytes receiver_address = 15;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 15, ''));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceContract} returns this\n */\nTronWebProto.FreezeBalanceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 15, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnfreezeBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnfreezeBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 10, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeBalanceContract}\n */\nTronWebProto.UnfreezeBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeBalanceContract();\n return TronWebProto.UnfreezeBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeBalanceContract}\n */\nTronWebProto.UnfreezeBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 10:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 15:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(10, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(15, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 10;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 10, value);\n};\n\n/**\n * optional bytes receiver_address = 15;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 15, ''));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 15;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceContract} returns this\n */\nTronWebProto.UnfreezeBalanceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 15, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.WithdrawBalanceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.WithdrawBalanceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WithdrawBalanceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.WithdrawBalanceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WithdrawBalanceContract}\n */\nTronWebProto.WithdrawBalanceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WithdrawBalanceContract();\n return TronWebProto.WithdrawBalanceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WithdrawBalanceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WithdrawBalanceContract}\n */\nTronWebProto.WithdrawBalanceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawBalanceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WithdrawBalanceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WithdrawBalanceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawBalanceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawBalanceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WithdrawBalanceContract} returns this\n */\nTronWebProto.WithdrawBalanceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransferContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransferContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransferContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransferContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n toAddress: msg.getToAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransferContract}\n */\nTronWebProto.TransferContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransferContract();\n return TronWebProto.TransferContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransferContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransferContract}\n */\nTronWebProto.TransferContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setToAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransferContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransferContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransferContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getToAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes to_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransferContract.prototype.getToAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes to_address = 2;\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {string}\n */\nTronWebProto.TransferContract.prototype.getToAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getToAddress()));\n};\n\n/**\n * optional bytes to_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getToAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransferContract.prototype.getToAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getToAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setToAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 amount = 3;\n * @return {number}\n */\nTronWebProto.TransferContract.prototype.getAmount = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransferContract} returns this\n */\nTronWebProto.TransferContract.prototype.setAmount = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.TransactionBalanceTrace.repeatedFields_ = [2];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransactionBalanceTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransactionBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransactionBalanceTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n transactionIdentifier: msg.getTransactionIdentifier_asB64(),\n operationList: jspb.Message.toObjectList(\n msg.getOperationList(),\n TronWebProto.TransactionBalanceTrace.Operation.toObject,\n includeInstance\n ),\n type: jspb.Message.getFieldWithDefault(msg, 3, ''),\n status: jspb.Message.getFieldWithDefault(msg, 4, ''),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.TransactionBalanceTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransactionBalanceTrace();\n return TronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransactionBalanceTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTransactionIdentifier(value);\n break;\n case 2:\n var value = new TronWebProto.TransactionBalanceTrace.Operation();\n reader.readMessage(value, TronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader);\n msg.addOperation(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setStatus(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransactionBalanceTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransactionBalanceTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getTransactionIdentifier_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getOperationList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(2, f, TronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter);\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n f = message.getStatus();\n if (f.length > 0) {\n writer.writeString(4, f);\n }\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TransactionBalanceTrace.Operation.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TransactionBalanceTrace.Operation.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TransactionBalanceTrace.Operation.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n operationIdentifier: jspb.Message.getFieldWithDefault(msg, 1, 0),\n address: msg.getAddress_asB64(),\n amount: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.Operation.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TransactionBalanceTrace.Operation();\n return TronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.Operation.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOperationIdentifier(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TransactionBalanceTrace.Operation} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TransactionBalanceTrace.Operation.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOperationIdentifier();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAmount();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional int64 operation_identifier = 1;\n * @return {number}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getOperationIdentifier = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setOperationIdentifier = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional bytes address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes address = 2;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAddress()));\n};\n\n/**\n * optional bytes address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 amount = 3;\n * @return {number}\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.getAmount = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TransactionBalanceTrace.Operation} returns this\n */\nTronWebProto.TransactionBalanceTrace.Operation.prototype.setAmount = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * This is a type-conversion wrapper around `getTransactionIdentifier()`\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getTransactionIdentifier()));\n};\n\n/**\n * optional bytes transaction_identifier = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTransactionIdentifier()`\n * @return {!Uint8Array}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getTransactionIdentifier_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getTransactionIdentifier()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setTransactionIdentifier = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * repeated Operation operation = 2;\n * @return {!Array<!TronWebProto.TransactionBalanceTrace.Operation>}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getOperationList = function () {\n return /** @type{!Array<!TronWebProto.TransactionBalanceTrace.Operation>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.TransactionBalanceTrace.Operation, 2)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.TransactionBalanceTrace.Operation>} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setOperationList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n/**\n * @param {!TronWebProto.TransactionBalanceTrace.Operation=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.TransactionBalanceTrace.Operation}\n */\nTronWebProto.TransactionBalanceTrace.prototype.addOperation = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.TransactionBalanceTrace.Operation, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.clearOperationList = function () {\n return this.setOperationList([]);\n};\n\n/**\n * optional string type = 3;\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getType = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setType = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * optional string status = 4;\n * @return {string}\n */\nTronWebProto.TransactionBalanceTrace.prototype.getStatus = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.TransactionBalanceTrace} returns this\n */\nTronWebProto.TransactionBalanceTrace.prototype.setStatus = function (value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.BlockBalanceTrace.repeatedFields_ = [3];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.BlockBalanceTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BlockBalanceTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.BlockBalanceTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n timestamp: jspb.Message.getFieldWithDefault(msg, 2, 0),\n transactionBalanceTraceList: jspb.Message.toObjectList(\n msg.getTransactionBalanceTraceList(),\n TronWebProto.TransactionBalanceTrace.toObject,\n includeInstance\n ),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BlockBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BlockBalanceTrace();\n return TronWebProto.BlockBalanceTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BlockBalanceTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BlockBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestamp(value);\n break;\n case 3:\n var value = new TronWebProto.TransactionBalanceTrace();\n reader.readMessage(value, TronWebProto.TransactionBalanceTrace.deserializeBinaryFromReader);\n msg.addTransactionBalanceTrace(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BlockBalanceTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BlockBalanceTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n f = message.getTimestamp();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getTransactionBalanceTraceList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(3, f, TronWebProto.TransactionBalanceTrace.serializeBinaryToWriter);\n }\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n hash: msg.getHash_asB64(),\n number: jspb.Message.getFieldWithDefault(msg, 2, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n return TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHash(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNumber(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BlockBalanceTrace.BlockIdentifier} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getNumber();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n};\n\n/**\n * optional bytes hash = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes hash = 1;\n * This is a type-conversion wrapper around `getHash()`\n * @return {string}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getHash()));\n};\n\n/**\n * optional bytes hash = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier} returns this\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.setHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 number = 2;\n * @return {number}\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.getNumber = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BlockBalanceTrace.BlockIdentifier} returns this\n */\nTronWebProto.BlockBalanceTrace.BlockIdentifier.prototype.setNumber = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional BlockIdentifier block_identifier = 1;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.BlockBalanceTrace.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 1)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.BlockBalanceTrace.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional int64 timestamp = 2;\n * @return {number}\n */\nTronWebProto.BlockBalanceTrace.prototype.getTimestamp = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setTimestamp = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * repeated TransactionBalanceTrace transaction_balance_trace = 3;\n * @return {!Array<!TronWebProto.TransactionBalanceTrace>}\n */\nTronWebProto.BlockBalanceTrace.prototype.getTransactionBalanceTraceList = function () {\n return /** @type{!Array<!TronWebProto.TransactionBalanceTrace>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.TransactionBalanceTrace, 3)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.TransactionBalanceTrace>} value\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.setTransactionBalanceTraceList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n/**\n * @param {!TronWebProto.TransactionBalanceTrace=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.TransactionBalanceTrace}\n */\nTronWebProto.BlockBalanceTrace.prototype.addTransactionBalanceTrace = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, TronWebProto.TransactionBalanceTrace, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.BlockBalanceTrace} returns this\n */\nTronWebProto.BlockBalanceTrace.prototype.clearTransactionBalanceTraceList = function () {\n return this.setTransactionBalanceTraceList([]);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountTrace.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountTrace.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountTrace} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountTrace.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n balance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n placeholder: jspb.Message.getFieldWithDefault(msg, 99, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountTrace}\n */\nTronWebProto.AccountTrace.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountTrace();\n return TronWebProto.AccountTrace.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountTrace} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountTrace}\n */\nTronWebProto.AccountTrace.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 99:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPlaceholder(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountTrace.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountTrace.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountTrace} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountTrace.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getPlaceholder();\n if (f !== 0) {\n writer.writeInt64(99, f);\n }\n};\n\n/**\n * optional int64 balance = 1;\n * @return {number}\n */\nTronWebProto.AccountTrace.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountTrace} returns this\n */\nTronWebProto.AccountTrace.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int64 placeholder = 99;\n * @return {number}\n */\nTronWebProto.AccountTrace.prototype.getPlaceholder = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 99, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountTrace} returns this\n */\nTronWebProto.AccountTrace.prototype.setPlaceholder = function (value) {\n return jspb.Message.setProto3IntField(this, 99, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountIdentifier.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountIdentifier.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountIdentifier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountIdentifier.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n address: msg.getAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountIdentifier.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountIdentifier();\n return TronWebProto.AccountIdentifier.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountIdentifier} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountIdentifier.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountIdentifier.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountIdentifier.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountIdentifier} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountIdentifier.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes address = 1;\n * This is a type-conversion wrapper around `getAddress()`\n * @return {string}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getAddress()));\n};\n\n/**\n * optional bytes address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.AccountIdentifier.prototype.getAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.AccountIdentifier} returns this\n */\nTronWebProto.AccountIdentifier.prototype.setAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountBalanceRequest.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountBalanceRequest.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountBalanceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountBalanceRequest.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n accountIdentifier:\n (f = msg.getAccountIdentifier()) && TronWebProto.AccountIdentifier.toObject(includeInstance, f),\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountBalanceRequest}\n */\nTronWebProto.AccountBalanceRequest.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountBalanceRequest();\n return TronWebProto.AccountBalanceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountBalanceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountBalanceRequest}\n */\nTronWebProto.AccountBalanceRequest.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.AccountIdentifier();\n reader.readMessage(value, TronWebProto.AccountIdentifier.deserializeBinaryFromReader);\n msg.setAccountIdentifier(value);\n break;\n case 2:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountBalanceRequest.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountBalanceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountBalanceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceRequest.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAccountIdentifier();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.AccountIdentifier.serializeBinaryToWriter);\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional AccountIdentifier account_identifier = 1;\n * @return {?TronWebProto.AccountIdentifier}\n */\nTronWebProto.AccountBalanceRequest.prototype.getAccountIdentifier = function () {\n return /** @type{?TronWebProto.AccountIdentifier} */ (jspb.Message.getWrapperField(this, TronWebProto.AccountIdentifier, 1));\n};\n\n/**\n * @param {?TronWebProto.AccountIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.setAccountIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.clearAccountIdentifier = function () {\n return this.setAccountIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceRequest.prototype.hasAccountIdentifier = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional BlockBalanceTrace.BlockIdentifier block_identifier = 2;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.AccountBalanceRequest.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 2)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceRequest} returns this\n */\nTronWebProto.AccountBalanceRequest.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceRequest.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.AccountBalanceResponse.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.AccountBalanceResponse.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.AccountBalanceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.AccountBalanceResponse.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n balance: jspb.Message.getFieldWithDefault(msg, 1, 0),\n blockIdentifier:\n (f = msg.getBlockIdentifier()) && TronWebProto.BlockBalanceTrace.BlockIdentifier.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.AccountBalanceResponse}\n */\nTronWebProto.AccountBalanceResponse.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.AccountBalanceResponse();\n return TronWebProto.AccountBalanceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.AccountBalanceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.AccountBalanceResponse}\n */\nTronWebProto.AccountBalanceResponse.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 2:\n var value = new TronWebProto.BlockBalanceTrace.BlockIdentifier();\n reader.readMessage(value, TronWebProto.BlockBalanceTrace.BlockIdentifier.deserializeBinaryFromReader);\n msg.setBlockIdentifier(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.AccountBalanceResponse.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.AccountBalanceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.AccountBalanceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.AccountBalanceResponse.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getBlockIdentifier();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.BlockBalanceTrace.BlockIdentifier.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional int64 balance = 1;\n * @return {number}\n */\nTronWebProto.AccountBalanceResponse.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional BlockBalanceTrace.BlockIdentifier block_identifier = 2;\n * @return {?TronWebProto.BlockBalanceTrace.BlockIdentifier}\n */\nTronWebProto.AccountBalanceResponse.prototype.getBlockIdentifier = function () {\n return /** @type{?TronWebProto.BlockBalanceTrace.BlockIdentifier} */ (\n jspb.Message.getWrapperField(this, TronWebProto.BlockBalanceTrace.BlockIdentifier, 2)\n );\n};\n\n/**\n * @param {?TronWebProto.BlockBalanceTrace.BlockIdentifier|undefined} value\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.setBlockIdentifier = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.AccountBalanceResponse} returns this\n */\nTronWebProto.AccountBalanceResponse.prototype.clearBlockIdentifier = function () {\n return this.setBlockIdentifier(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.AccountBalanceResponse.prototype.hasBlockIdentifier = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.FreezeBalanceV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.FreezeBalanceV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.FreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.FreezeBalanceV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n frozenBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.FreezeBalanceV2Contract}\n */\nTronWebProto.FreezeBalanceV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.FreezeBalanceV2Contract();\n return TronWebProto.FreezeBalanceV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.FreezeBalanceV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.FreezeBalanceV2Contract}\n */\nTronWebProto.FreezeBalanceV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFrozenBalance(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.FreezeBalanceV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.FreezeBalanceV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.FreezeBalanceV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getFrozenBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 frozen_balance = 2;\n * @return {number}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getFrozenBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setFrozenBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional ResourceCode resource = 3;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.FreezeBalanceV2Contract} returns this\n */\nTronWebProto.FreezeBalanceV2Contract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnfreezeBalanceV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnfreezeBalanceV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnfreezeBalanceV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n unfreezeBalance: jspb.Message.getFieldWithDefault(msg, 2, 0),\n resource: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnfreezeBalanceV2Contract}\n */\nTronWebProto.UnfreezeBalanceV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnfreezeBalanceV2Contract();\n return TronWebProto.UnfreezeBalanceV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnfreezeBalanceV2Contract}\n */\nTronWebProto.UnfreezeBalanceV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUnfreezeBalance(value);\n break;\n case 3:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnfreezeBalanceV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnfreezeBalanceV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnfreezeBalanceV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getUnfreezeBalance();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional int64 unfreeze_balance = 2;\n * @return {number}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getUnfreezeBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setUnfreezeBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional ResourceCode resource = 3;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnfreezeBalanceV2Contract} returns this\n */\nTronWebProto.UnfreezeBalanceV2Contract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.WithdrawExpireUnfreezeContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.WithdrawExpireUnfreezeContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.WithdrawExpireUnfreezeContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WithdrawExpireUnfreezeContract();\n return TronWebProto.WithdrawExpireUnfreezeContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WithdrawExpireUnfreezeContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WithdrawExpireUnfreezeContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WithdrawExpireUnfreezeContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WithdrawExpireUnfreezeContract} returns this\n */\nTronWebProto.WithdrawExpireUnfreezeContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.DelegateResourceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.DelegateResourceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.DelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.DelegateResourceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 2, 0),\n balance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n lock: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n lockPeriod: jspb.Message.getFieldWithDefault(msg, 6, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.DelegateResourceContract}\n */\nTronWebProto.DelegateResourceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.DelegateResourceContract();\n return TronWebProto.DelegateResourceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.DelegateResourceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.DelegateResourceContract}\n */\nTronWebProto.DelegateResourceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setLock(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLockPeriod(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.DelegateResourceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.DelegateResourceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.DelegateResourceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getLock();\n if (f) {\n writer.writeBool(5, f);\n }\n f = message.getLockPeriod();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 2;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.DelegateResourceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * optional int64 balance = 3;\n * @return {number}\n */\nTronWebProto.DelegateResourceContract.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes receiver_address = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.DelegateResourceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional bool lock = 5;\n * @return {boolean}\n */\nTronWebProto.DelegateResourceContract.prototype.getLock = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setLock = function (value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n/**\n * optional int64 lock_period = 6;\n * @return {number}\n */\nTronWebProto.DelegateResourceContract.prototype.getLockPeriod = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.DelegateResourceContract} returns this\n */\nTronWebProto.DelegateResourceContract.prototype.setLockPeriod = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UnDelegateResourceContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UnDelegateResourceContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UnDelegateResourceContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UnDelegateResourceContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n resource: jspb.Message.getFieldWithDefault(msg, 2, 0),\n balance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n receiverAddress: msg.getReceiverAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UnDelegateResourceContract}\n */\nTronWebProto.UnDelegateResourceContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UnDelegateResourceContract();\n return TronWebProto.UnDelegateResourceContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UnDelegateResourceContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UnDelegateResourceContract}\n */\nTronWebProto.UnDelegateResourceContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!TronWebProto.ResourceCode} */ (reader.readEnum());\n msg.setResource(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setReceiverAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UnDelegateResourceContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UnDelegateResourceContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UnDelegateResourceContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getResource();\n if (f !== 0.0) {\n writer.writeEnum(2, f);\n }\n f = message.getBalance();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getReceiverAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional ResourceCode resource = 2;\n * @return {!TronWebProto.ResourceCode}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getResource = function () {\n return /** @type {!TronWebProto.ResourceCode} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {!TronWebProto.ResourceCode} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setResource = function (value) {\n return jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n/**\n * optional int64 balance = 3;\n * @return {number}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getBalance = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setBalance = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes receiver_address = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {string}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getReceiverAddress()));\n};\n\n/**\n * optional bytes receiver_address = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getReceiverAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UnDelegateResourceContract.prototype.getReceiverAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getReceiverAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UnDelegateResourceContract} returns this\n */\nTronWebProto.UnDelegateResourceContract.prototype.setReceiverAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.CancelAllUnfreezeV2Contract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.CancelAllUnfreezeV2Contract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.CancelAllUnfreezeV2Contract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.CancelAllUnfreezeV2Contract();\n return TronWebProto.CancelAllUnfreezeV2Contract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.CancelAllUnfreezeV2Contract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.CancelAllUnfreezeV2Contract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CancelAllUnfreezeV2Contract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.CancelAllUnfreezeV2Contract} returns this\n */\nTronWebProto.CancelAllUnfreezeV2Contract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/common.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ResourceCode', null, global);\n/**\n * @enum {number}\n */\nTronWebProto.ResourceCode = {\n BANDWIDTH: 0,\n ENERGY: 1,\n TRON_POWER: 2\n};\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/exchange_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ExchangeCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeInjectContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeTransactionContract', null, global);\ngoog.exportSymbol('TronWebProto.ExchangeWithdrawContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeCreateContract.displayName = 'TronWebProto.ExchangeCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeInjectContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeInjectContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeInjectContract.displayName = 'TronWebProto.ExchangeInjectContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeWithdrawContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeWithdrawContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeWithdrawContract.displayName = 'TronWebProto.ExchangeWithdrawContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ExchangeTransactionContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ExchangeTransactionContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ExchangeTransactionContract.displayName = 'TronWebProto.ExchangeTransactionContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n firstTokenId: msg.getFirstTokenId_asB64(),\n firstTokenBalance: jspb.Message.getFieldWithDefault(msg, 3, 0),\n secondTokenId: msg.getSecondTokenId_asB64(),\n secondTokenBalance: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeCreateContract}\n */\nTronWebProto.ExchangeCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeCreateContract;\n return TronWebProto.ExchangeCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeCreateContract}\n */\nTronWebProto.ExchangeCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFirstTokenId(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setFirstTokenBalance(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setSecondTokenId(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSecondTokenBalance(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getFirstTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getFirstTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getSecondTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getSecondTokenBalance();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFirstTokenId()));\n};\n\n\n/**\n * optional bytes first_token_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFirstTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFirstTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setFirstTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 first_token_balance = 3;\n * @return {number}\n */\nTronWebProto.ExchangeCreateContract.prototype.getFirstTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setFirstTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getSecondTokenId()));\n};\n\n\n/**\n * optional bytes second_token_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getSecondTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getSecondTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setSecondTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional int64 second_token_balance = 5;\n * @return {number}\n */\nTronWebProto.ExchangeCreateContract.prototype.getSecondTokenBalance = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeCreateContract} returns this\n */\nTronWebProto.ExchangeCreateContract.prototype.setSecondTokenBalance = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeInjectContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeInjectContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeInjectContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeInjectContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeInjectContract}\n */\nTronWebProto.ExchangeInjectContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeInjectContract;\n return TronWebProto.ExchangeInjectContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeInjectContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeInjectContract}\n */\nTronWebProto.ExchangeInjectContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeInjectContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeInjectContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeInjectContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeInjectContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeInjectContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeInjectContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeInjectContract} returns this\n */\nTronWebProto.ExchangeInjectContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeWithdrawContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeWithdrawContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeWithdrawContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeWithdrawContract}\n */\nTronWebProto.ExchangeWithdrawContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeWithdrawContract;\n return TronWebProto.ExchangeWithdrawContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeWithdrawContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeWithdrawContract}\n */\nTronWebProto.ExchangeWithdrawContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeWithdrawContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeWithdrawContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeWithdrawContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeWithdrawContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeWithdrawContract} returns this\n */\nTronWebProto.ExchangeWithdrawContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ExchangeTransactionContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ExchangeTransactionContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ExchangeTransactionContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeTransactionContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n exchangeId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n tokenId: msg.getTokenId_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 4, 0),\n expected: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ExchangeTransactionContract}\n */\nTronWebProto.ExchangeTransactionContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ExchangeTransactionContract;\n return TronWebProto.ExchangeTransactionContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ExchangeTransactionContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ExchangeTransactionContract}\n */\nTronWebProto.ExchangeTransactionContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExchangeId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTokenId(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setExpected(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ExchangeTransactionContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ExchangeTransactionContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ExchangeTransactionContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getExchangeId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getTokenId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 4,\n f\n );\n }\n f = message.getExpected();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 exchange_id = 2;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getExchangeId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setExchangeId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes token_id = 3;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {string}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getTokenId()));\n};\n\n\n/**\n * optional bytes token_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTokenId()`\n * @return {!Uint8Array}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getTokenId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getTokenId()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setTokenId = function(value) {\n return jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional int64 quant = 4;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int64 expected = 5;\n * @return {number}\n */\nTronWebProto.ExchangeTransactionContract.prototype.getExpected = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ExchangeTransactionContract} returns this\n */\nTronWebProto.ExchangeTransactionContract.prototype.setExpected = function(value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/proposal_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.ProposalApproveContract', null, global);\ngoog.exportSymbol('TronWebProto.ProposalCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.ProposalDeleteContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalApproveContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalApproveContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalApproveContract.displayName = 'TronWebProto.ProposalApproveContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalCreateContract.displayName = 'TronWebProto.ProposalCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ProposalDeleteContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ProposalDeleteContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ProposalDeleteContract.displayName = 'TronWebProto.ProposalDeleteContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalApproveContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalApproveContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalApproveContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalApproveContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n proposalId: jspb.Message.getFieldWithDefault(msg, 2, 0),\n isAddApproval: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalApproveContract}\n */\nTronWebProto.ProposalApproveContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalApproveContract;\n return TronWebProto.ProposalApproveContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalApproveContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalApproveContract}\n */\nTronWebProto.ProposalApproveContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIsAddApproval(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalApproveContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalApproveContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalApproveContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalApproveContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getIsAddApproval();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalApproveContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 proposal_id = 2;\n * @return {number}\n */\nTronWebProto.ProposalApproveContract.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bool is_add_approval = 3;\n * @return {boolean}\n */\nTronWebProto.ProposalApproveContract.prototype.getIsAddApproval = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.ProposalApproveContract} returns this\n */\nTronWebProto.ProposalApproveContract.prototype.setIsAddApproval = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : []\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalCreateContract}\n */\nTronWebProto.ProposalCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalCreateContract;\n return TronWebProto.ProposalCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalCreateContract}\n */\nTronWebProto.ProposalCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = msg.getParametersMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readInt64, jspb.BinaryReader.prototype.readInt64, null, 0, 0);\n });\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getParametersMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeInt64, jspb.BinaryWriter.prototype.writeInt64);\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalCreateContract} returns this\n */\nTronWebProto.ProposalCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * map<int64, int64> parameters = 2;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map<number,number>}\n */\nTronWebProto.ProposalCreateContract.prototype.getParametersMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map<number,number>} */ (\n jspb.Message.getMapField(this, 2, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n * @return {!TronWebProto.ProposalCreateContract} returns this\n */\nTronWebProto.ProposalCreateContract.prototype.clearParametersMap = function() {\n this.getParametersMap().clear();\n return this;};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.ProposalDeleteContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.ProposalDeleteContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ProposalDeleteContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalDeleteContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n proposalId: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ProposalDeleteContract}\n */\nTronWebProto.ProposalDeleteContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ProposalDeleteContract;\n return TronWebProto.ProposalDeleteContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ProposalDeleteContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ProposalDeleteContract}\n */\nTronWebProto.ProposalDeleteContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setProposalId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalDeleteContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ProposalDeleteContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ProposalDeleteContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ProposalDeleteContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getProposalId();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ProposalDeleteContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ProposalDeleteContract} returns this\n */\nTronWebProto.ProposalDeleteContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 proposal_id = 2;\n * @return {number}\n */\nTronWebProto.ProposalDeleteContract.prototype.getProposalId = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ProposalDeleteContract} returns this\n */\nTronWebProto.ProposalDeleteContract.prototype.setProposalId = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/smart_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n function () {\n return this;\n }.call(null) ||\n Function('return this')();\n\nvar core_Tron_pb = require('../../core/Tron_pb.cjs');\ngoog.object.extend(proto, core_Tron_pb);\ngoog.exportSymbol('TronWebProto.ClearABIContract', null, global);\ngoog.exportSymbol('TronWebProto.ContractState', null, global);\ngoog.exportSymbol('TronWebProto.CreateSmartContract', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.EntryType', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.Param', null, global);\ngoog.exportSymbol('TronWebProto.SmartContract.ABI.Entry.StateMutabilityType', null, global);\ngoog.exportSymbol('TronWebProto.SmartContractDataWrapper', null, global);\ngoog.exportSymbol('TronWebProto.TriggerSmartContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateEnergyLimitContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateSettingContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.displayName = 'TronWebProto.SmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.SmartContract.ABI.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.displayName = 'TronWebProto.SmartContract.ABI';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI.Entry = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.SmartContract.ABI.Entry.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI.Entry, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.Entry.displayName = 'TronWebProto.SmartContract.ABI.Entry';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContract.ABI.Entry.Param = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContract.ABI.Entry.Param, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContract.ABI.Entry.Param.displayName = 'TronWebProto.SmartContract.ABI.Entry.Param';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ContractState = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ContractState, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ContractState.displayName = 'TronWebProto.ContractState';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.CreateSmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.CreateSmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.CreateSmartContract.displayName = 'TronWebProto.CreateSmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.TriggerSmartContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.TriggerSmartContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.TriggerSmartContract.displayName = 'TronWebProto.TriggerSmartContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.ClearABIContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.ClearABIContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.ClearABIContract.displayName = 'TronWebProto.ClearABIContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateSettingContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateSettingContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateSettingContract.displayName = 'TronWebProto.UpdateSettingContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateEnergyLimitContract = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateEnergyLimitContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateEnergyLimitContract.displayName = 'TronWebProto.UpdateEnergyLimitContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SmartContractDataWrapper = function (opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SmartContractDataWrapper, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SmartContractDataWrapper.displayName = 'TronWebProto.SmartContractDataWrapper';\n}\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n originAddress: msg.getOriginAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n abi: (f = msg.getAbi()) && TronWebProto.SmartContract.ABI.toObject(includeInstance, f),\n bytecode: msg.getBytecode_asB64(),\n callValue: jspb.Message.getFieldWithDefault(msg, 5, 0),\n consumeUserResourcePercent: jspb.Message.getFieldWithDefault(msg, 6, 0),\n name: jspb.Message.getFieldWithDefault(msg, 7, ''),\n originEnergyLimit: jspb.Message.getFieldWithDefault(msg, 8, 0),\n codeHash: msg.getCodeHash_asB64(),\n trxHash: msg.getTrxHash_asB64(),\n version: jspb.Message.getFieldWithDefault(msg, 11, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract}\n */\nTronWebProto.SmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract();\n return TronWebProto.SmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract}\n */\nTronWebProto.SmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOriginAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = new TronWebProto.SmartContract.ABI();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.deserializeBinaryFromReader);\n msg.setAbi(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setBytecode(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallValue(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConsumeUserResourcePercent(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOriginEnergyLimit(value);\n break;\n case 9:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCodeHash(value);\n break;\n case 10:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setTrxHash(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setVersion(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOriginAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getAbi();\n if (f != null) {\n writer.writeMessage(3, f, TronWebProto.SmartContract.ABI.serializeBinaryToWriter);\n }\n f = message.getBytecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(7, f);\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(8, f);\n }\n f = message.getCodeHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(9, f);\n }\n f = message.getTrxHash_asU8();\n if (f.length > 0) {\n writer.writeBytes(10, f);\n }\n f = message.getVersion();\n if (f !== 0) {\n writer.writeInt32(11, f);\n }\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.SmartContract.ABI.repeatedFields_ = [1];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n entrysList: jspb.Message.toObjectList(\n msg.getEntrysList(),\n TronWebProto.SmartContract.ABI.Entry.toObject,\n includeInstance\n ),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.ABI.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI();\n return TronWebProto.SmartContract.ABI.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.ABI.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.SmartContract.ABI.Entry();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader);\n msg.addEntrys(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getEntrysList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(1, f, TronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter);\n }\n};\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.SmartContract.ABI.Entry.repeatedFields_ = [4, 5];\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.Entry.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI.Entry} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.Entry.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n anonymous: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n constant: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n name: jspb.Message.getFieldWithDefault(msg, 3, ''),\n inputsList: jspb.Message.toObjectList(\n msg.getInputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject,\n includeInstance\n ),\n outputsList: jspb.Message.toObjectList(\n msg.getOutputsList(),\n TronWebProto.SmartContract.ABI.Entry.Param.toObject,\n includeInstance\n ),\n type: jspb.Message.getFieldWithDefault(msg, 6, 0),\n payable: jspb.Message.getBooleanFieldWithDefault(msg, 7, false),\n statemutability: jspb.Message.getFieldWithDefault(msg, 8, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.Entry.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI.Entry();\n return TronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI.Entry} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.Entry.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAnonymous(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setConstant(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 4:\n var value = new TronWebProto.SmartContract.ABI.Entry.Param();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader);\n msg.addInputs(value);\n break;\n case 5:\n var value = new TronWebProto.SmartContract.ABI.Entry.Param();\n reader.readMessage(value, TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader);\n msg.addOutputs(value);\n break;\n case 6:\n var value = /** @type {!TronWebProto.SmartContract.ABI.Entry.EntryType} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 7:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setPayable(value);\n break;\n case 8:\n var value = /** @type {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} */ (reader.readEnum());\n msg.setStatemutability(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI.Entry} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getAnonymous();\n if (f) {\n writer.writeBool(1, f);\n }\n f = message.getConstant();\n if (f) {\n writer.writeBool(2, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n f = message.getInputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(4, f, TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter);\n }\n f = message.getOutputsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(5, f, TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter);\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(6, f);\n }\n f = message.getPayable();\n if (f) {\n writer.writeBool(7, f);\n }\n f = message.getStatemutability();\n if (f !== 0.0) {\n writer.writeEnum(8, f);\n }\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.SmartContract.ABI.Entry.EntryType = {\n UNKNOWNENTRYTYPE: 0,\n CONSTRUCTOR: 1,\n FUNCTION: 2,\n EVENT: 3,\n FALLBACK: 4,\n RECEIVE: 5,\n ERROR: 6,\n};\n\n/**\n * @enum {number}\n */\nTronWebProto.SmartContract.ABI.Entry.StateMutabilityType = {\n UNKNOWNMUTABILITYTYPE: 0,\n PURE: 1,\n VIEW: 2,\n NONPAYABLE: 3,\n PAYABLE: 4,\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContract.ABI.Entry.Param.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContract.ABI.Entry.Param.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContract.ABI.Entry.Param.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n indexed: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n name: jspb.Message.getFieldWithDefault(msg, 2, ''),\n type: jspb.Message.getFieldWithDefault(msg, 3, ''),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContract.ABI.Entry.Param();\n return TronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setIndexed(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContract.ABI.Entry.Param.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getIndexed();\n if (f) {\n writer.writeBool(1, f);\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(2, f);\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(3, f);\n }\n};\n\n/**\n * optional bool indexed = 1;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getIndexed = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setIndexed = function (value) {\n return jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n/**\n * optional string type = 3;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.getType = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.Param.prototype.setType = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * optional bool anonymous = 1;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getAnonymous = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setAnonymous = function (value) {\n return jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n/**\n * optional bool constant = 2;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getConstant = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setConstant = function (value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 3, value);\n};\n\n/**\n * repeated Param inputs = 4;\n * @return {!Array<!TronWebProto.SmartContract.ABI.Entry.Param>}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getInputsList = function () {\n return /** @type{!Array<!TronWebProto.SmartContract.ABI.Entry.Param>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry.Param, 4)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.SmartContract.ABI.Entry.Param>} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setInputsList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.addInputs = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, TronWebProto.SmartContract.ABI.Entry.Param, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.clearInputsList = function () {\n return this.setInputsList([]);\n};\n\n/**\n * repeated Param outputs = 5;\n * @return {!Array<!TronWebProto.SmartContract.ABI.Entry.Param>}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getOutputsList = function () {\n return /** @type{!Array<!TronWebProto.SmartContract.ABI.Entry.Param>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry.Param, 5)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.SmartContract.ABI.Entry.Param>} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setOutputsList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.Param=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry.Param}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.addOutputs = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, TronWebProto.SmartContract.ABI.Entry.Param, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.clearOutputsList = function () {\n return this.setOutputsList([]);\n};\n\n/**\n * optional EntryType type = 6;\n * @return {!TronWebProto.SmartContract.ABI.Entry.EntryType}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getType = function () {\n return /** @type {!TronWebProto.SmartContract.ABI.Entry.EntryType} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.EntryType} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setType = function (value) {\n return jspb.Message.setProto3EnumField(this, 6, value);\n};\n\n/**\n * optional bool payable = 7;\n * @return {boolean}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getPayable = function () {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 7, false));\n};\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setPayable = function (value) {\n return jspb.Message.setProto3BooleanField(this, 7, value);\n};\n\n/**\n * optional StateMutabilityType stateMutability = 8;\n * @return {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType}\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.getStatemutability = function () {\n return /** @type {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} */ (\n jspb.Message.getFieldWithDefault(this, 8, 0)\n );\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry.StateMutabilityType} value\n * @return {!TronWebProto.SmartContract.ABI.Entry} returns this\n */\nTronWebProto.SmartContract.ABI.Entry.prototype.setStatemutability = function (value) {\n return jspb.Message.setProto3EnumField(this, 8, value);\n};\n\n/**\n * repeated Entry entrys = 1;\n * @return {!Array<!TronWebProto.SmartContract.ABI.Entry>}\n */\nTronWebProto.SmartContract.ABI.prototype.getEntrysList = function () {\n return /** @type{!Array<!TronWebProto.SmartContract.ABI.Entry>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.SmartContract.ABI.Entry, 1)\n );\n};\n\n/**\n * @param {!Array<!TronWebProto.SmartContract.ABI.Entry>} value\n * @return {!TronWebProto.SmartContract.ABI} returns this\n */\nTronWebProto.SmartContract.ABI.prototype.setEntrysList = function (value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n/**\n * @param {!TronWebProto.SmartContract.ABI.Entry=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.SmartContract.ABI.Entry}\n */\nTronWebProto.SmartContract.ABI.prototype.addEntrys = function (opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, TronWebProto.SmartContract.ABI.Entry, opt_index);\n};\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.SmartContract.ABI} returns this\n */\nTronWebProto.SmartContract.ABI.prototype.clearEntrysList = function () {\n return this.setEntrysList([]);\n};\n\n/**\n * optional bytes origin_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes origin_address = 1;\n * This is a type-conversion wrapper around `getOriginAddress()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOriginAddress()));\n};\n\n/**\n * optional bytes origin_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOriginAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getOriginAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOriginAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setOriginAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional ABI abi = 3;\n * @return {?TronWebProto.SmartContract.ABI}\n */\nTronWebProto.SmartContract.prototype.getAbi = function () {\n return /** @type{?TronWebProto.SmartContract.ABI} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract.ABI, 3));\n};\n\n/**\n * @param {?TronWebProto.SmartContract.ABI|undefined} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setAbi = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.clearAbi = function () {\n return this.setAbi(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContract.prototype.hasAbi = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\n/**\n * optional bytes bytecode = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getBytecode = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes bytecode = 4;\n * This is a type-conversion wrapper around `getBytecode()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getBytecode_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getBytecode()));\n};\n\n/**\n * optional bytes bytecode = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getBytecode()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getBytecode_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getBytecode()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setBytecode = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional int64 call_value = 5;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getCallValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setCallValue = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional int64 consume_user_resource_percent = 6;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getConsumeUserResourcePercent = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setConsumeUserResourcePercent = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\n/**\n * optional string name = 7;\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getName = function () {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, ''));\n};\n\n/**\n * @param {string} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setName = function (value) {\n return jspb.Message.setProto3StringField(this, 7, value);\n};\n\n/**\n * optional int64 origin_energy_limit = 8;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getOriginEnergyLimit = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setOriginEnergyLimit = function (value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n/**\n * optional bytes code_hash = 9;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getCodeHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 9, ''));\n};\n\n/**\n * optional bytes code_hash = 9;\n * This is a type-conversion wrapper around `getCodeHash()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getCodeHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getCodeHash()));\n};\n\n/**\n * optional bytes code_hash = 9;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCodeHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getCodeHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getCodeHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setCodeHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 9, value);\n};\n\n/**\n * optional bytes trx_hash = 10;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContract.prototype.getTrxHash = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 10, ''));\n};\n\n/**\n * optional bytes trx_hash = 10;\n * This is a type-conversion wrapper around `getTrxHash()`\n * @return {string}\n */\nTronWebProto.SmartContract.prototype.getTrxHash_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getTrxHash()));\n};\n\n/**\n * optional bytes trx_hash = 10;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getTrxHash()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContract.prototype.getTrxHash_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getTrxHash()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setTrxHash = function (value) {\n return jspb.Message.setProto3BytesField(this, 10, value);\n};\n\n/**\n * optional int32 version = 11;\n * @return {number}\n */\nTronWebProto.SmartContract.prototype.getVersion = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SmartContract} returns this\n */\nTronWebProto.SmartContract.prototype.setVersion = function (value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.ContractState.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.ContractState.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ContractState} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.ContractState.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n energyUsage: jspb.Message.getFieldWithDefault(msg, 1, 0),\n energyFactor: jspb.Message.getFieldWithDefault(msg, 2, 0),\n updateCycle: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ContractState}\n */\nTronWebProto.ContractState.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ContractState();\n return TronWebProto.ContractState.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ContractState} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ContractState}\n */\nTronWebProto.ContractState.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyUsage(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setEnergyFactor(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setUpdateCycle(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ContractState.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ContractState.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ContractState} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ContractState.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getEnergyUsage();\n if (f !== 0) {\n writer.writeInt64(1, f);\n }\n f = message.getEnergyFactor();\n if (f !== 0) {\n writer.writeInt64(2, f);\n }\n f = message.getUpdateCycle();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional int64 energy_usage = 1;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getEnergyUsage = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setEnergyUsage = function (value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n/**\n * optional int64 energy_factor = 2;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getEnergyFactor = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setEnergyFactor = function (value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n/**\n * optional int64 update_cycle = 3;\n * @return {number}\n */\nTronWebProto.ContractState.prototype.getUpdateCycle = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.ContractState} returns this\n */\nTronWebProto.ContractState.prototype.setUpdateCycle = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.CreateSmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.CreateSmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.CreateSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.CreateSmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n newContract: (f = msg.getNewContract()) && TronWebProto.SmartContract.toObject(includeInstance, f),\n callTokenValue: jspb.Message.getFieldWithDefault(msg, 3, 0),\n tokenId: jspb.Message.getFieldWithDefault(msg, 4, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.CreateSmartContract}\n */\nTronWebProto.CreateSmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.CreateSmartContract();\n return TronWebProto.CreateSmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.CreateSmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.CreateSmartContract}\n */\nTronWebProto.CreateSmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new TronWebProto.SmartContract();\n reader.readMessage(value, TronWebProto.SmartContract.deserializeBinaryFromReader);\n msg.setNewContract(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallTokenValue(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTokenId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.CreateSmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.CreateSmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.CreateSmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.CreateSmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getNewContract();\n if (f != null) {\n writer.writeMessage(2, f, TronWebProto.SmartContract.serializeBinaryToWriter);\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getTokenId();\n if (f !== 0) {\n writer.writeInt64(4, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.CreateSmartContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional SmartContract new_contract = 2;\n * @return {?TronWebProto.SmartContract}\n */\nTronWebProto.CreateSmartContract.prototype.getNewContract = function () {\n return /** @type{?TronWebProto.SmartContract} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 2));\n};\n\n/**\n * @param {?TronWebProto.SmartContract|undefined} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setNewContract = function (value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.clearNewContract = function () {\n return this.setNewContract(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.CreateSmartContract.prototype.hasNewContract = function () {\n return jspb.Message.getField(this, 2) != null;\n};\n\n/**\n * optional int64 call_token_value = 3;\n * @return {number}\n */\nTronWebProto.CreateSmartContract.prototype.getCallTokenValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setCallTokenValue = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional int64 token_id = 4;\n * @return {number}\n */\nTronWebProto.CreateSmartContract.prototype.getTokenId = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.CreateSmartContract} returns this\n */\nTronWebProto.CreateSmartContract.prototype.setTokenId = function (value) {\n return jspb.Message.setProto3IntField(this, 4, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.TriggerSmartContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.TriggerSmartContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.TriggerSmartContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.TriggerSmartContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n callValue: jspb.Message.getFieldWithDefault(msg, 3, 0),\n data: msg.getData_asB64(),\n callTokenValue: jspb.Message.getFieldWithDefault(msg, 5, 0),\n tokenId: jspb.Message.getFieldWithDefault(msg, 6, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.TriggerSmartContract}\n */\nTronWebProto.TriggerSmartContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.TriggerSmartContract();\n return TronWebProto.TriggerSmartContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.TriggerSmartContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.TriggerSmartContract}\n */\nTronWebProto.TriggerSmartContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallValue(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCallTokenValue(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTokenId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.TriggerSmartContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.TriggerSmartContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.TriggerSmartContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getCallValue();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(4, f);\n }\n f = message.getCallTokenValue();\n if (f !== 0) {\n writer.writeInt64(5, f);\n }\n f = message.getTokenId();\n if (f !== 0) {\n writer.writeInt64(6, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 call_value = 3;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getCallValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setCallValue = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\n/**\n * optional bytes data = 4;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.TriggerSmartContract.prototype.getData = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, ''));\n};\n\n/**\n * optional bytes data = 4;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nTronWebProto.TriggerSmartContract.prototype.getData_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getData()));\n};\n\n/**\n * optional bytes data = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nTronWebProto.TriggerSmartContract.prototype.getData_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getData()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setData = function (value) {\n return jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n/**\n * optional int64 call_token_value = 5;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getCallTokenValue = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setCallTokenValue = function (value) {\n return jspb.Message.setProto3IntField(this, 5, value);\n};\n\n/**\n * optional int64 token_id = 6;\n * @return {number}\n */\nTronWebProto.TriggerSmartContract.prototype.getTokenId = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.TriggerSmartContract} returns this\n */\nTronWebProto.TriggerSmartContract.prototype.setTokenId = function (value) {\n return jspb.Message.setProto3IntField(this, 6, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.ClearABIContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.ClearABIContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.ClearABIContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.ClearABIContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.ClearABIContract}\n */\nTronWebProto.ClearABIContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.ClearABIContract();\n return TronWebProto.ClearABIContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.ClearABIContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.ClearABIContract}\n */\nTronWebProto.ClearABIContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.ClearABIContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.ClearABIContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.ClearABIContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ClearABIContract} returns this\n */\nTronWebProto.ClearABIContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.ClearABIContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.ClearABIContract} returns this\n */\nTronWebProto.ClearABIContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UpdateSettingContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UpdateSettingContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateSettingContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UpdateSettingContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n consumeUserResourcePercent: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateSettingContract}\n */\nTronWebProto.UpdateSettingContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateSettingContract();\n return TronWebProto.UpdateSettingContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateSettingContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateSettingContract}\n */\nTronWebProto.UpdateSettingContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConsumeUserResourcePercent(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateSettingContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateSettingContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateSettingContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getConsumeUserResourcePercent();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateSettingContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 consume_user_resource_percent = 3;\n * @return {number}\n */\nTronWebProto.UpdateSettingContract.prototype.getConsumeUserResourcePercent = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateSettingContract} returns this\n */\nTronWebProto.UpdateSettingContract.prototype.setConsumeUserResourcePercent = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.UpdateEnergyLimitContract.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.UpdateEnergyLimitContract.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateEnergyLimitContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.UpdateEnergyLimitContract.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n contractAddress: msg.getContractAddress_asB64(),\n originEnergyLimit: jspb.Message.getFieldWithDefault(msg, 3, 0),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateEnergyLimitContract}\n */\nTronWebProto.UpdateEnergyLimitContract.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateEnergyLimitContract();\n return TronWebProto.UpdateEnergyLimitContract.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateEnergyLimitContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateEnergyLimitContract}\n */\nTronWebProto.UpdateEnergyLimitContract.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setContractAddress(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOriginEnergyLimit(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateEnergyLimitContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateEnergyLimitContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateEnergyLimitContract.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(1, f);\n }\n f = message.getContractAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getOriginEnergyLimit();\n if (f !== 0) {\n writer.writeInt64(3, f);\n }\n};\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, ''));\n};\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getOwnerAddress()));\n};\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOwnerAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getOwnerAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setOwnerAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n/**\n * optional bytes contract_address = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes contract_address = 2;\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {string}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getContractAddress()));\n};\n\n/**\n * optional bytes contract_address = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getContractAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getContractAddress_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getContractAddress()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setContractAddress = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional int64 origin_energy_limit = 3;\n * @return {number}\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.getOriginEnergyLimit = function () {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateEnergyLimitContract} returns this\n */\nTronWebProto.UpdateEnergyLimitContract.prototype.setOriginEnergyLimit = function (value) {\n return jspb.Message.setProto3IntField(this, 3, value);\n};\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n /**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\n TronWebProto.SmartContractDataWrapper.prototype.toObject = function (opt_includeInstance) {\n return TronWebProto.SmartContractDataWrapper.toObject(opt_includeInstance, this);\n };\n\n /**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SmartContractDataWrapper} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\n TronWebProto.SmartContractDataWrapper.toObject = function (includeInstance, msg) {\n var f,\n obj = {\n smartContract: (f = msg.getSmartContract()) && TronWebProto.SmartContract.toObject(includeInstance, f),\n runtimecode: msg.getRuntimecode_asB64(),\n contractState: (f = msg.getContractState()) && TronWebProto.ContractState.toObject(includeInstance, f),\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n };\n}\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SmartContractDataWrapper}\n */\nTronWebProto.SmartContractDataWrapper.deserializeBinary = function (bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SmartContractDataWrapper();\n return TronWebProto.SmartContractDataWrapper.deserializeBinaryFromReader(msg, reader);\n};\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SmartContractDataWrapper} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SmartContractDataWrapper}\n */\nTronWebProto.SmartContractDataWrapper.deserializeBinaryFromReader = function (msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new TronWebProto.SmartContract();\n reader.readMessage(value, TronWebProto.SmartContract.deserializeBinaryFromReader);\n msg.setSmartContract(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRuntimecode(value);\n break;\n case 3:\n var value = new TronWebProto.ContractState();\n reader.readMessage(value, TronWebProto.ContractState.deserializeBinaryFromReader);\n msg.setContractState(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContractDataWrapper.prototype.serializeBinary = function () {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SmartContractDataWrapper.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SmartContractDataWrapper} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SmartContractDataWrapper.serializeBinaryToWriter = function (message, writer) {\n var f = undefined;\n f = message.getSmartContract();\n if (f != null) {\n writer.writeMessage(1, f, TronWebProto.SmartContract.serializeBinaryToWriter);\n }\n f = message.getRuntimecode_asU8();\n if (f.length > 0) {\n writer.writeBytes(2, f);\n }\n f = message.getContractState();\n if (f != null) {\n writer.writeMessage(3, f, TronWebProto.ContractState.serializeBinaryToWriter);\n }\n};\n\n/**\n * optional SmartContract smart_contract = 1;\n * @return {?TronWebProto.SmartContract}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getSmartContract = function () {\n return /** @type{?TronWebProto.SmartContract} */ (jspb.Message.getWrapperField(this, TronWebProto.SmartContract, 1));\n};\n\n/**\n * @param {?TronWebProto.SmartContract|undefined} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setSmartContract = function (value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.clearSmartContract = function () {\n return this.setSmartContract(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContractDataWrapper.prototype.hasSmartContract = function () {\n return jspb.Message.getField(this, 1) != null;\n};\n\n/**\n * optional bytes runtimecode = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode = function () {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, ''));\n};\n\n/**\n * optional bytes runtimecode = 2;\n * This is a type-conversion wrapper around `getRuntimecode()`\n * @return {string}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode_asB64 = function () {\n return /** @type {string} */ (jspb.Message.bytesAsB64(this.getRuntimecode()));\n};\n\n/**\n * optional bytes runtimecode = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRuntimecode()`\n * @return {!Uint8Array}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getRuntimecode_asU8 = function () {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(this.getRuntimecode()));\n};\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setRuntimecode = function (value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n/**\n * optional ContractState contract_state = 3;\n * @return {?TronWebProto.ContractState}\n */\nTronWebProto.SmartContractDataWrapper.prototype.getContractState = function () {\n return /** @type{?TronWebProto.ContractState} */ (jspb.Message.getWrapperField(this, TronWebProto.ContractState, 3));\n};\n\n/**\n * @param {?TronWebProto.ContractState|undefined} value\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.setContractState = function (value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n/**\n * Clears the message field making it undefined.\n * @return {!TronWebProto.SmartContractDataWrapper} returns this\n */\nTronWebProto.SmartContractDataWrapper.prototype.clearContractState = function () {\n return this.setContractState(undefined);\n};\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nTronWebProto.SmartContractDataWrapper.prototype.hasContractState = function () {\n return jspb.Message.getField(this, 3) != null;\n};\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/storage_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.BuyStorageBytesContract', null, global);\ngoog.exportSymbol('TronWebProto.BuyStorageContract', null, global);\ngoog.exportSymbol('TronWebProto.SellStorageContract', null, global);\ngoog.exportSymbol('TronWebProto.UpdateBrokerageContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BuyStorageBytesContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BuyStorageBytesContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BuyStorageBytesContract.displayName = 'TronWebProto.BuyStorageBytesContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.BuyStorageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.BuyStorageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.BuyStorageContract.displayName = 'TronWebProto.BuyStorageContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.SellStorageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.SellStorageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.SellStorageContract.displayName = 'TronWebProto.SellStorageContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.UpdateBrokerageContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.UpdateBrokerageContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.UpdateBrokerageContract.displayName = 'TronWebProto.UpdateBrokerageContract';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.BuyStorageBytesContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BuyStorageBytesContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BuyStorageBytesContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageBytesContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n bytes: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BuyStorageBytesContract}\n */\nTronWebProto.BuyStorageBytesContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BuyStorageBytesContract;\n return TronWebProto.BuyStorageBytesContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BuyStorageBytesContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BuyStorageBytesContract}\n */\nTronWebProto.BuyStorageBytesContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setBytes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageBytesContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BuyStorageBytesContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BuyStorageBytesContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageBytesContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getBytes();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BuyStorageBytesContract} returns this\n */\nTronWebProto.BuyStorageBytesContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 bytes = 2;\n * @return {number}\n */\nTronWebProto.BuyStorageBytesContract.prototype.getBytes = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BuyStorageBytesContract} returns this\n */\nTronWebProto.BuyStorageBytesContract.prototype.setBytes = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.BuyStorageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.BuyStorageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.BuyStorageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n quant: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.BuyStorageContract}\n */\nTronWebProto.BuyStorageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.BuyStorageContract;\n return TronWebProto.BuyStorageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.BuyStorageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.BuyStorageContract}\n */\nTronWebProto.BuyStorageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setQuant(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.BuyStorageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.BuyStorageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.BuyStorageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getQuant();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.BuyStorageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.BuyStorageContract} returns this\n */\nTronWebProto.BuyStorageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 quant = 2;\n * @return {number}\n */\nTronWebProto.BuyStorageContract.prototype.getQuant = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.BuyStorageContract} returns this\n */\nTronWebProto.BuyStorageContract.prototype.setQuant = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.SellStorageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.SellStorageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.SellStorageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SellStorageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n storageBytes: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.SellStorageContract}\n */\nTronWebProto.SellStorageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.SellStorageContract;\n return TronWebProto.SellStorageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.SellStorageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.SellStorageContract}\n */\nTronWebProto.SellStorageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStorageBytes(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.SellStorageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.SellStorageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.SellStorageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.SellStorageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getStorageBytes();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.SellStorageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.SellStorageContract} returns this\n */\nTronWebProto.SellStorageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 storage_bytes = 2;\n * @return {number}\n */\nTronWebProto.SellStorageContract.prototype.getStorageBytes = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.SellStorageContract} returns this\n */\nTronWebProto.SellStorageContract.prototype.setStorageBytes = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.UpdateBrokerageContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.UpdateBrokerageContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.UpdateBrokerageContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateBrokerageContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n brokerage: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.UpdateBrokerageContract}\n */\nTronWebProto.UpdateBrokerageContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.UpdateBrokerageContract;\n return TronWebProto.UpdateBrokerageContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.UpdateBrokerageContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.UpdateBrokerageContract}\n */\nTronWebProto.UpdateBrokerageContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setBrokerage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateBrokerageContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.UpdateBrokerageContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.UpdateBrokerageContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.UpdateBrokerageContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getBrokerage();\n if (f !== 0) {\n writer.writeInt32(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.UpdateBrokerageContract} returns this\n */\nTronWebProto.UpdateBrokerageContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int32 brokerage = 2;\n * @return {number}\n */\nTronWebProto.UpdateBrokerageContract.prototype.getBrokerage = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.UpdateBrokerageContract} returns this\n */\nTronWebProto.UpdateBrokerageContract.prototype.setBrokerage = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n","// source: core/contract/witness_contract.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('@tronweb3/google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('TronWebProto.VoteWitnessContract', null, global);\ngoog.exportSymbol('TronWebProto.VoteWitnessContract.Vote', null, global);\ngoog.exportSymbol('TronWebProto.WitnessCreateContract', null, global);\ngoog.exportSymbol('TronWebProto.WitnessUpdateContract', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WitnessCreateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WitnessCreateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WitnessCreateContract.displayName = 'TronWebProto.WitnessCreateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.WitnessUpdateContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.WitnessUpdateContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.WitnessUpdateContract.displayName = 'TronWebProto.WitnessUpdateContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.VoteWitnessContract = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, TronWebProto.VoteWitnessContract.repeatedFields_, null);\n};\ngoog.inherits(TronWebProto.VoteWitnessContract, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.VoteWitnessContract.displayName = 'TronWebProto.VoteWitnessContract';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nTronWebProto.VoteWitnessContract.Vote = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(TronWebProto.VoteWitnessContract.Vote, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n TronWebProto.VoteWitnessContract.Vote.displayName = 'TronWebProto.VoteWitnessContract.Vote';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.WitnessCreateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WitnessCreateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WitnessCreateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessCreateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n url: msg.getUrl_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WitnessCreateContract}\n */\nTronWebProto.WitnessCreateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WitnessCreateContract;\n return TronWebProto.WitnessCreateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WitnessCreateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WitnessCreateContract}\n */\nTronWebProto.WitnessCreateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WitnessCreateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WitnessCreateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessCreateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessCreateContract} returns this\n */\nTronWebProto.WitnessCreateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes url = 2;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes url = 2;\n * This is a type-conversion wrapper around `getUrl()`\n * @return {string}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUrl()));\n};\n\n\n/**\n * optional bytes url = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessCreateContract.prototype.getUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessCreateContract} returns this\n */\nTronWebProto.WitnessCreateContract.prototype.setUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.WitnessUpdateContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.WitnessUpdateContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.WitnessUpdateContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessUpdateContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n updateUrl: msg.getUpdateUrl_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.WitnessUpdateContract}\n */\nTronWebProto.WitnessUpdateContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.WitnessUpdateContract;\n return TronWebProto.WitnessUpdateContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.WitnessUpdateContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.WitnessUpdateContract}\n */\nTronWebProto.WitnessUpdateContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 12:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUpdateUrl(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.WitnessUpdateContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.WitnessUpdateContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.WitnessUpdateContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getUpdateUrl_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 12,\n f\n );\n }\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessUpdateContract} returns this\n */\nTronWebProto.WitnessUpdateContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes update_url = 12;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/**\n * optional bytes update_url = 12;\n * This is a type-conversion wrapper around `getUpdateUrl()`\n * @return {string}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUpdateUrl()));\n};\n\n\n/**\n * optional bytes update_url = 12;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUpdateUrl()`\n * @return {!Uint8Array}\n */\nTronWebProto.WitnessUpdateContract.prototype.getUpdateUrl_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUpdateUrl()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.WitnessUpdateContract} returns this\n */\nTronWebProto.WitnessUpdateContract.prototype.setUpdateUrl = function(value) {\n return jspb.Message.setProto3BytesField(this, 12, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nTronWebProto.VoteWitnessContract.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.VoteWitnessContract.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.VoteWitnessContract.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.VoteWitnessContract} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.toObject = function(includeInstance, msg) {\n var f, obj = {\n ownerAddress: msg.getOwnerAddress_asB64(),\n votesList: jspb.Message.toObjectList(msg.getVotesList(),\n TronWebProto.VoteWitnessContract.Vote.toObject, includeInstance),\n support: jspb.Message.getBooleanFieldWithDefault(msg, 3, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.VoteWitnessContract}\n */\nTronWebProto.VoteWitnessContract.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.VoteWitnessContract;\n return TronWebProto.VoteWitnessContract.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.VoteWitnessContract} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.VoteWitnessContract}\n */\nTronWebProto.VoteWitnessContract.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOwnerAddress(value);\n break;\n case 2:\n var value = new TronWebProto.VoteWitnessContract.Vote;\n reader.readMessage(value,TronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader);\n msg.addVotes(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSupport(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.VoteWitnessContract.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.VoteWitnessContract} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOwnerAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVotesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n TronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter\n );\n }\n f = message.getSupport();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.toObject = function(opt_includeInstance) {\n return TronWebProto.VoteWitnessContract.Vote.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!TronWebProto.VoteWitnessContract.Vote} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.Vote.toObject = function(includeInstance, msg) {\n var f, obj = {\n voteAddress: msg.getVoteAddress_asB64(),\n voteCount: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.Vote.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new TronWebProto.VoteWitnessContract.Vote;\n return TronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!TronWebProto.VoteWitnessContract.Vote} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.Vote.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setVoteAddress(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setVoteCount(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n TronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!TronWebProto.VoteWitnessContract.Vote} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nTronWebProto.VoteWitnessContract.Vote.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getVoteAddress_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getVoteCount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {string}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getVoteAddress()));\n};\n\n\n/**\n * optional bytes vote_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getVoteAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getVoteAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.VoteWitnessContract.Vote} returns this\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.setVoteAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 vote_count = 2;\n * @return {number}\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.getVoteCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!TronWebProto.VoteWitnessContract.Vote} returns this\n */\nTronWebProto.VoteWitnessContract.Vote.prototype.setVoteCount = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * @return {!(string|Uint8Array)}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {string}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOwnerAddress()));\n};\n\n\n/**\n * optional bytes owner_address = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOwnerAddress()`\n * @return {!Uint8Array}\n */\nTronWebProto.VoteWitnessContract.prototype.getOwnerAddress_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOwnerAddress()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.setOwnerAddress = function(value) {\n return jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * repeated Vote votes = 2;\n * @return {!Array<!TronWebProto.VoteWitnessContract.Vote>}\n */\nTronWebProto.VoteWitnessContract.prototype.getVotesList = function() {\n return /** @type{!Array<!TronWebProto.VoteWitnessContract.Vote>} */ (\n jspb.Message.getRepeatedWrapperField(this, TronWebProto.VoteWitnessContract.Vote, 2));\n};\n\n\n/**\n * @param {!Array<!TronWebProto.VoteWitnessContract.Vote>} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n*/\nTronWebProto.VoteWitnessContract.prototype.setVotesList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!TronWebProto.VoteWitnessContract.Vote=} opt_value\n * @param {number=} opt_index\n * @return {!TronWebProto.VoteWitnessContract.Vote}\n */\nTronWebProto.VoteWitnessContract.prototype.addVotes = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, TronWebProto.VoteWitnessContract.Vote, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.clearVotesList = function() {\n return this.setVotesList([]);\n};\n\n\n/**\n * optional bool support = 3;\n * @return {boolean}\n */\nTronWebProto.VoteWitnessContract.prototype.getSupport = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!TronWebProto.VoteWitnessContract} returns this\n */\nTronWebProto.VoteWitnessContract.prototype.setSupport = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\ngoog.object.extend(exports, TronWebProto);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import utils from './utils/index.js';\nexport { utils };\n\nimport { BigNumber } from 'bignumber.js';\nexport { BigNumber };\n\nimport { providers } from './lib/providers/index.js';\nexport { providers };\n\nimport { TransactionBuilder } from './lib/TransactionBuilder/TransactionBuilder.js';\nexport { TransactionBuilder };\n\nimport { Trx } from './lib/trx.js';\nexport { Trx };\n\nimport { Contract } from './lib/contract/index.js';\nexport { Contract };\n\nimport { Event } from './lib/event.js';\nexport { Event };\n\nimport { Plugin } from './lib/plugin.js';\nexport { Plugin };\n\nimport { TronWeb } from './tronweb.js';\nexport { TronWeb };\n\nimport * as Types from './types/index.js';\nexport { Types };\n\nexport default {\n utils,\n BigNumber,\n providers,\n TransactionBuilder,\n Trx,\n Contract,\n Event,\n Plugin,\n TronWeb,\n Types,\n};\n"],"names":["tronWeb","validator","constructor","TronWeb","Error","this","Validator","sendTrx","to","amount","from","defaultAddress","hex","options","parseInt","notValid","name","type","value","names","msg","gt","data","to_address","toHex","owner_address","transactionOptions","getTransactionOptions","createTransaction","ContractType","TransferContract","permissionId","sendToken","tokenId","asset_name","fromUtf8","TransferAssetContract","purchaseToken","issuerAddress","buyer","ParticipateAssetIssueContract","freezeBalance","duration","resource","ownerAddress","receiverAddress","optional","gte","frozen_balance","frozen_duration","String","isNotNullOrUndefined","receiver_address","FreezeBalanceContract","unfreezeBalance","address","UnfreezeBalanceContract","freezeBalanceV2","FreezeBalanceV2Contract","unfreezeBalanceV2","unfreeze_balance","UnfreezeBalanceV2Contract","cancelUnfreezeBalanceV2","CancelAllUnfreezeV2Contract","delegateResource","lock","lockPeriod","balance","lock_period","DelegateResourceContract","undelegateResource","UnDelegateResourceContract","withdrawExpireUnfreeze","WithdrawExpireUnfreezeContract","withdrawBlockRewards","WithdrawBalanceContract","applyForSR","url","lte","WitnessCreateContract","vote","votes","voterAddress","entries","Object","srAddress","voteCount","voteList","map","vote_address","vote_count","VoteWitnessContract","createSmartContract","feeLimit","userFeePercentage","originEnergyLimit","callValue","tokenValue","token_id","abi","parameters","parameter","bytecode","isString","JSON","parse","newAbi","entrys","isArray","payable","some","func","stateMutability","toLowerCase","rawParameter","funcABIV2","parametersV2","replace","encodeParamsV2ByABI","constructorParams","find","it","abiCoder","AbiCoder","types","values","inputs","length","i","replaceAddressPrefix","v","ADDRESS_PREFIX_REGEX","match","test","push","encode","ex","args","fee_limit","call_value","consume_user_resource_percent","origin_energy_limit","stringify","call_token_value","contract","new_contract","origin_address","tx","CreateSmartContract","contract_address","genContractAddress","txID","triggerSmartContract","contractAddress","functionSelector","params","splice","txLocal","_triggerSmartContractLocal","_triggerSmartContract","triggerConstantContract","_isConstant","triggerConfirmedConstantContract","confirmed","estimateEnergy","deployConstantContract","input","pathInfo","transaction","request","result","message","toUtf8","_getTriggerSmartContractArgs","parameterStr","shieldedParameter","function_selector","Permission_id","assign","keccak256","Buffer","toString","substring","TriggerSmartContract","resultManagerTriggerSmartContract","clearABI","isAddress","trx","cache","contracts","ClearABIContract","updateBrokerage","brokerage","isInteger","UpdateBrokerageContract","createToken","abbreviation","description","totalSupply","trxRatio","tokenRatio","saleStart","Date","now","saleEnd","freeBandwidth","freeBandwidthLimit","frozenAmount","frozenDuration","voteScore","precision","abbr","total_supply","trx_num","num","start_time","end_time","frozen_supply","frozen_amount","frozen_days","forEach","key","isNaN","free_asset_net_limit","public_free_asset_net_limit","vote_score","AssetIssueContract","createAccount","accountAddress","account_address","AccountCreateContract","updateAccount","accountName","account_name","AccountUpdateContract","setAccountId","accountId","startsWith","slice","account_id","SetAccountIdContract","updateToken","new_limit","new_public_limit","UpdateAssetContract","sendAsset","purchaseAsset","createAsset","updateAsset","createProposal","invalid","newParams","isObject","ProposalCreateContract","deleteProposal","proposalID","proposal_id","ProposalDeleteContract","voteProposal","isApproval","is_add_approval","ProposalApproveContract","createTRXExchange","tokenName","tokenBalance","trxBalance","first_token_id","first_token_balance","second_token_id","second_token_balance","ExchangeCreateContract","createTokenExchange","firstTokenName","firstTokenBalance","secondTokenName","secondTokenBalance","injectExchangeTokens","exchangeID","tokenAmount","exchange_id","quant","ExchangeInjectContract","withdrawExchangeTokens","ExchangeWithdrawContract","tradeExchangeTokens","tokenAmountSold","tokenAmountExpected","fromAscii","expected","ExchangeTransactionContract","updateSetting","UpdateSettingContract","updateEnergyLimit","UpdateEnergyLimitContract","checkPermissions","permissions","permission_name","threshold","keys","weight","operations","updateAccountPermissions","ownerPermission","witnessPermission","activesPermissions","Array","activesPermission","_ownerPermissions","deepCopyJson","owner","_witnessPermissions","witness","_activesPermissions","activePermissions","_activesPermission","actives","AccountPermissionUpdateContract","newTxID","raw_data","ref_block_bytes","ref_block_hash","expiration","timestamp","signature","visible","e","res","fullNode","resultManager","alterTransaction","Reflect","has","dataFormat","extension","extendExpiration","addUpdateData","json","txCheckWithArgs","async","raw_data_hex","type_url","checkBlockHeader","getHeaderInfo","pb","txJsonToPb","txPbToTxID","txPbToRawDataHex","ret","blockHeader","node","detail","then","block_header","number","padStart","blockID","eventListener","deployed","lastBlock","methods","methodInstances","props","loadAbi","hasProperty","property","hasOwnProperty","__proto__","prop","method","Method","methodCall","onMethod","bind","decodeInput","methodName","inputData","privateKey","defaultPrivateKey","fromPrivateKey","transactionBuilder","signedTransaction","sign","sendRawTransaction","code","error","sleep","at","getContract","includes","decodeOutput","output","decodeParamsV2ByABI","outputs","defaultOptions","iface","ethersUtils","Interface","obj","getEvent","getFunction","format","getFunctionSelector","sha3","shouldPollResponse","call","_call","send","_send","index","undefined","len","constant_result","msg2","chunk","base58","broadcast","err","checkResult","pollTimes","getTransactionInfo","Promise","r","setTimeout","resMessage","rawResponse","decoded","contractResult","keepTxID","setServer","eventServer","healthcheck","HttpProvider","isValidProvider","isConnected","catch","getEventsByContractAddress","newOptions","limit","eventName","blockNumber","onlyUnconfirmed","onlyConfirmed","minBlockTimestamp","maxBlockTimestamp","orderBy","fingerprint","console","warn","qs","event_name","block_number","only_unconfirmed","only_confirmed","min_block_timestamp","max_block_timestamp","order_by","fromHex","URLSearchParams","success","getEventsByTransactionID","transactionID","getEventsByBlockNumber","getEventsOfLatestBlock","pluginNoOverride","disablePlugins","register","Plugin","pluginInterface","requires","components","libs","plugged","skipped","plugin","isFunction","satisfies","version","fullClass","className","classInstanceName","component","host","timeout","user","password","headers","statusPage","instance","isValidURL","create","baseURL","auth","username","setStatusPage","hasProperties","payload","providers","TRX_MESSAGE_HEADER","ETH_MESSAGE_HEADER","Trx","signMessage","broadcastHex","signTransaction","sendTransaction","sendHexTransaction","_parseToken","token","getCurrentBlock","getConfirmedCurrentBlock","solidityNode","getBlock","block","defaultBlock","isHex","getBlockByHash","getBlockByNumber","blockHash","getBlockTransactionCount","transactions","getTransactionFromBlock","getTransactionsFromBlock","getTransaction","getConfirmedTransaction","getUnconfirmedTransactionInfo","getTransactionsToAddress","offset","getTransactionsRelated","getTransactionsFromAddress","direction","all","sort","a","b","account","getAccount","getAccountById","id","getAccountInfoById","getBalance","getUnconfirmedAccount","getUnconfirmedAccountById","getUnconfirmedBalance","getBandwidth","freeNetUsed","freeNetLimit","NetUsed","NetLimit","getTokensIssuedByAddress","assetIssue","reduce","tokens","getTokenFromID","tokenID","listNodes","nodes","port","getBlockRange","start","end","startNum","endNum","listSuperRepresentatives","witnesses","listTokens","timeUntilNextVoteCycle","Math","floor","ecRecover","txCheck","tronAddress","sig","verifyMessage","useTronHeader","verifySignature","messageBytes","toUtf8Bytes","hexStr2byteArray","messageDigest","Uint8Array","recovered","recoverAddress","Signature","ADDRESS_PREFIX","substr","verifyMessageV2","verifyTypedData","domain","_TypedDataEncoder","hash","multisig","signString","crypto","signingKey","SigningKey","s","Number","join","signMessageV2","_signTypedData","multiSign","signWeight","getSignWeight","foundKey","permission","approved_list","indexOf","getApprovedList","signedHexTransaction","hexTransaction","getProposal","listProposals","proposals","getChainParameters","chainParameter","getAccountResources","getDelegatedResourceV2","fromAddress","toAddress","getDelegatedResourceAccountIndexV2","getCanDelegatedMaxSize","getAvailableUnfreezeCount","getCanWithdrawUnfreezeAmount","getExchangeByID","listExchanges","exchanges","listExchangesPaginated","getNodeInfo","getTokenListByName","t","getTokenByID","getReward","_getReward","getUnconfirmedReward","getBrokerage","_getBrokerage","getUnconfirmedBrokerage","reward","getBandwidthPrices","prices","getEnergyPrices","param","notPositive","notEqual","normalized","no","lt","isBoolean","DEFAULT_VERSION","isValidOptions","fullHost","BigNumber","event","static","utils","fullnodeVersion","super","eventHeaders","Event","TransactionBuilder","setFullNode","setSolidityNode","setEventServer","toAscii","toBigNumber","toDecimal","fromDecimal","toSun","fromSun","createRandom","fromMnemonic","setPrivateKey","setFullNodeHeader","setEventHeader","getFullnodeVersion","nodeInfo","configNodeInfo","codeVersion","split","setDefaultBlock","abs","setAddress","emit","fullnodeSatisfies","provider","knownProvider","setHeader","currentProviders","currentProvider","getEventResult","getEventByTransactionID","Contract","toChecksumAddress","isChecksumAddress","strict","string","prefix","val","isBigNumber","isFinite","str","l","fromCharCode","padding","padEnd","toNumber","isLessThan","sun","div","times","accounts","generateAccount","generateRandom","generateAccountWithMnemonic","Permission_PermissionType","AccountType","ResourceCode","TransactionSignWeight_response_code","BroadcastReturn_response_code","ProposalState","ignoreMethodHash","decode","arg","funABI","buildFullTypeDefinition","typeDef","innerType","extractSize","convertAddresses","addrArr","addrs","_addressToHex","mapTuple","dimension","encodeArgs","extractArrayDim","convertTypes","decodeResult","buildFullTypeNameDefinition","outputTypes","convertTypeNames","decodeResCopy","toArray","size","priKeyBytes","genPriKey","pubKeyBytes","getPubKeyFromPriKey","addressBytes","getAddressFromPriKey","byteArray2hexStr","publicKey","getBase58CheckAddress","path","TRON_BIP39_PATH_INDEX_0","wordlist","ethersHDNodeWallet","mnemonic","pkToAddress","INVALID_TRON_PATH_ERROR_MSG","Mnemonic","fromPhrase","decodeBase58Address","chars","expanded","charCodeAt","hashed","toUpperCase","getChecksumAddress","isAddressValid","ADDRESS_SIZE","ADDRESS_PREFIX_BYTE","TRON_BIP39_PATH_PREFIX","buffer","j","digits","carry","BASE","reverse","digit","ALPHABET","bytes","c","ALPHABET_MAP","charAt","_keyStr","chr1","chr2","chr3","enc1","enc2","enc3","enc4","encodeIgnoreUtf8","inputBytes","_utf8_decode","decodeToByteArray","_out2ByteArray","utftext","byteArray","_utf8_encode","n","c2","c3","arr","one","bytesLength","store","st","out","tmp","byte2hexStr","string64","Base64","byte","hexByteMap","array","bytesToString","array1","array2","d","k","isHexChar","hexChar2byte","tempStrs","dateStrs","year","month","day","timeStrs","hour","minute","second","isNumber","hextoString","base64DecodeFromString","base64EncodeToString","base58Sting","decode58","checkSum","hash0","SHA256","checkSum1","ECKeySign","signedData","arrayify","btoa","contents","TypedDataEncoder","base64Data","bytesDecode","globalThis","proto","protocol","Transaction","deserializeBinary","getRawData","serializeBinary","priKey","randomPrivateKey","priKeyHex","addressStr","decodeCheck","decodeData","hash1","base58Str","priKeyBase64String","computeAddress","concat","encode58","pubBytes","addressHex","pubkey","ProjectivePoint","normalizePrivateKeyBytes","x","y","pubkeyHex","hashBytes","recovery","msgBytes","msgHex","hashHex","sha256","toUtf8String","Wordlist","wordlists","splitSignature","sigBytes","joinSignature","splitSig","serialized","getBytes","FormatTypes","sighash","minimal","full","isValidMnemonic","computeHmac","algorithm","_","setify","items","Set","add","freeze","_kwVisib","KwVisib","_kwTypes","KwTypes","_kwModifiers","KwModifiers","Keywords","SimpleTokens","regexWhitespacePrefix","RegExp","regexNumberPrefix","regexIdPrefix","regexId","regexType","TokenString","clone","reset","linkBack","linkNext","popKeyword","allowed","top","peek","text","pop","popType","popParen","popParams","link","peekKeyword","peekType","lex","throwError","brackets","commas","cur","depth","suffix","getNumber","allowSingle","set","included","consumeName","keyword","consumeKeywords","keywords","consumeMutability","modifiers","consumeParams","allowIndexed","ParamType","consumeGas","getBigInt","consumeEoi","regexArrayType","verifyBasicType","assertArgument","_guard","internal","Symbol","for","ParamTypeInternal","ErrorFragmentInternal","EventFragmentInternal","ConstructorFragmentInternal","FallbackFragmentInternal","FunctionFragmentInternal","StructFragmentInternal","baseType","indexed","arrayLength","arrayChildren","guard","assertPrivate","defineProperty","defineProperties","isTuple","comp","isIndexable","walk","process","promises","setValue","childType","walkAsync","isParamType","comps","bracket","arrayMatch","Fragment","ConstructorFragment","ErrorFragment","EventFragment","FallbackFragment","FunctionFragment","StructFragment","assert","operation","isConstructor","isFragment","isError","isEvent","isStruct","NamedFragment","joinParams","p","selector","anonymous","topicHash","getTopicHash","gas","errorObj","topIsValid","mutability","constant","o","getSelector","checkResultErrors","Result","LogDescription","fragment","topic","TransactionDescription","ErrorDescription","Indexed","_isIndexed","isIndexed","PanicReasons","BuiltinErrors","reason","fragments","deploy","fallback","receive","Map","frags","log","getAbiCoder","bucket","f","formatJson","defaultAbiCoder","forceUnique","isHexString","matching","lastValue","valueLength","allowOptions","Typed","isTyped","lastArg","matchStr","m","get","getFunctionName","hasFunction","forEachFunction","callback","localeCompare","eventTopic","getEventName","hasEvent","forEachEvent","getError","forEachError","_decodeParams","_encodeParams","encodeDeploy","decodeErrorResult","dataSlice","encodeErrorResult","decodeFunctionData","encodeFunctionData","decodeFunctionResult","getBytesCopy","hexlify","info","makeError","_data","getBuiltinCallException","ef","revert","parsed","parseTransaction","invocation","encodeFunctionResult","encodeFilterTopics","count","expectedCount","topics","encodeTopic","toBeHex","zeroPadValue","encodeEventLog","dataTypes","dataValues","decodeEventLog","nonIndexed","dynamic","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","fromItems","parseCallResult","parseLog","parseError","hexData","hashMessage","TRON_MESSAGE_PREFIX","Permission","Key","TronWebProto","SmartContract","fromHexString","hexString","stringToUint8Array","flexToUint8Array","buildCommonTransaction","contractType","typeName","anyValue","Any","pack","setType","setParameter","setPermissionId","raw","addContract","setRawData","contractJsonToProtobuf","transferContract","setToAddress","setOwnerAddress","setAmount","TRANSFERCONTRACT","buildTransferContract","setAssetName","TRANSFERASSETCONTRACT","buildTransferAssetContract","pbObj","PARTICIPATEASSETISSUECONTRACT","buildParticipateAssetIssueContract","setContractAddress","setCallValue","setData","contractData","setTokenId","setCallTokenValue","TRIGGERSMARTCONTRACT","buildTriggerSmartContract","freezeBalanceContract","setFrozenBalance","setFrozenDuration","setResource","setReceiverAddress","FREEZEBALANCECONTRACT","buildFreezeBalanceContract","unfreezeBalanceContract","UNFREEZEBALANCECONTRACT","buildUnfreezeBalanceContract","withdrawbalanceContract","WITHDRAWBALANCECONTRACT","buildWithdrawBalanceContract","freezeBalanceV2Contract","FREEZEBALANCEV2CONTRACT","buildFreezeBalanceV2Contract","CANCELALLUNFREEZEV2CONTRACT","buildCancelFreezeBalanceV2Contract","unfreezeBalanceV2Contract","setUnfreezeBalance","UNFREEZEBALANCEV2CONTRACT","buildUnfreezeBalanceV2Contract","delegateResourceContract","setBalance","setLock","setLockPeriod","DELEGATERESOURCECONTRACT","buildDelegateResourceContract","unDelegateResourceContract","UNDELEGATERESOURCECONTRACT","buildUnDelegateResourceContract","WITHDRAWEXPIREUNFREEZECONTRACT","buildWithdrawExpireUnfreezeContract","createWitnessContract","setUrl","WITNESSCREATECONTRACT","buildCreateWitness","voteWitnessContract","voteItem","Vote","setVoteAddress","numberOfVotes","setVoteCount","addVotes","VOTEWITNESSCONTRACT","buildVoteWitnessAccount","contracName","smartContractBuilder","abiJson","abiBuilder","ABI","buildEntryParam","Entry","Param","setIndexed","setName","entryBuilders","entry","entryBuilder","setAnonymous","setConstant","setInputsList","setOutputsList","EntryType","setPayable","setStatemutability","StateMutabilityType","setEntrysList","setAbi","setConsumeUserResourcePercent","setOriginEnergyLimit","setOriginAddress","bytecodeParameter","setBytecode","setNewContract","CREATESMARTCONTRACT","buildCreateSmartContract","clearABIContract","CLEARABICONTRACT","buildClearABIContract","updateBrokerageContract","setBrokerage","UPDATEBROKERAGECONTRACT","buildUpdateBrokerageContract","public_free_asset_net_usage","public_latest_free_net_time","assetIssueContract","setAbbr","setTotalSupply","setNum","setEndTime","setStartTime","setTrxNum","setVoteScore","setPrecision","setPublicLatestFreeNetTime","setDescription","setPublicFreeAssetNetUsage","setFreeAssetNetLimit","setPublicFreeAssetNetLimit","frozenSupplyContract","FrozenSupply","setFrozenAmount","setFrozenDays","addFrozenSupply","ASSETISSUECONTRACT","buildAssetIssueContract","accountCreateContract","setAccountAddress","ACCOUNTCREATECONTRACT","buildAccountCreateContract","accountUpdateContract","setAccountName","ACCOUNTUPDATECONTRACT","buildAccountUpdateContract","setAccountIdContract","SETACCOUNTIDCONTRACT","buildSetAccountIdContract","proposalCreateContract","getParametersMap","PROPOSALCREATECONTRACT","buildProposalCreateContract","proposalDeleteContract","setProposalId","PROPOSALDELETECONTRACT","buildProposalDeleteContract","proposalVoteContract","setIsAddApproval","PROPOSALAPPROVECONTRACT","buildVoteProposalContract","exchangeCreateContract","setFirstTokenId","setFirstTokenBalance","setSecondTokenId","setSecondTokenBalance","EXCHANGECREATECONTRACT","buildExchangeCreateContract","exchangeInjectContract","setExchangeId","setQuant","EXCHANGEINJECTCONTRACT","buildExchangeInjectContract","exchangeWithdrawContract","EXCHANGEWITHDRAWCONTRACT","buildExchangeWithdrawContract","exchangeTransactionContract","setExpected","EXCHANGETRANSACTIONCONTRACT","buildExchangeTransactionContract","updateSettingContract","UPDATESETTINGCONTRACT","buildUpdateSettingContract","updateEnergyLimitContract","UPDATEENERGYLIMITCONTRACT","buildUpdateEnergyLimitContract","accountPermissionUpdateContract","buildPermission","parentId","getType","setId","setPermissionName","setThreshold","setParentId","setOperations","setKeysList","keyBuilder","setWeight","setOwner","setWitness","setActivesList","active","ACCOUNTPERMISSIONUPDATECONTRACT","buildAccountPermissionUpdateContract","updateAssetContract","setNewLimit","setNewPublicLimit","UPDATEASSETCONTRACT","buildUpdateAssetContract","rawData","contractJson","transactionObj","rawDataObj","setRefBlockBytes","setRefBlockHash","setFeeLimit","setExpiration","setTimestamp","txJsonToPbWithArgs","compareTransaction","transactionPb","rawDataBytes","rawDataHex","fill","BN__1","BigInt","BN_0","BN_1","BN_MAX_UINT256","hexTrue","hexFalse","domainFieldTypes","chainId","verifyingContract","salt","domainFieldNames","checkString","domainChecks","_value","isSafeInteger","toQuantity","getBaseEncoder","signed","width","boundsUpper","mask","boundsLower","toTwos","padOffset","hexPadRight","encodeType","fields","primaryType","links","parents","subtypes","uniqueNames","field","primaryTypes","filter","checkCircular","found","child","subtype","delete","getEncoder","encoder","subEncoder","encodedType","unshift","encodeData","hashStruct","_visit","accum","visit","getPrimaryType","hashDomain","domainFields","EIP712Domain","resolveNames","resolveName","ensCache","getPayload","domainValues","domainTypes","typesWithDomain","isURL","protocols","require_tld","bool","properties","block_timestamp","transaction_id","resourceNode","resource_Node","_unconfirmed","unconfirmed","_fingerprint","millis","resolve","prototype","module","exports","require","jspb","goog","global","window","self","Function","google_protobuf_any_pb","object","extend","exportSymbol","AccountId","opt_data","Message","initialize","inherits","DEBUG","COMPILED","displayName","Proposal","repeatedFields_","Exchange","Account","Frozen","AccountResource","DelegatedResource","authority","Witness","Votes","MarketOrderDetail","GENERATE_TO_OBJECT","toObject","opt_includeInstance","includeInstance","getName_asB64","getAddress_asB64","$jspbMessageInstance","reader","BinaryReader","deserializeBinaryFromReader","nextField","isEndGroup","getFieldNumber","readBytes","skipField","writer","BinaryWriter","serializeBinaryToWriter","getResultBuffer","getName_asU8","writeBytes","getAddress_asU8","getName","getFieldWithDefault","bytesAsB64","bytesAsU8","setProto3BytesField","getAddress","voteAddress","getVoteAddress_asB64","readInt64","getVoteAddress_asU8","getVoteCount","writeInt64","getVoteAddress","setProto3IntField","proposalId","proposerAddress","getProposerAddress_asB64","parametersMap","expirationTime","createTime","approvalsList","getApprovalsList_asB64","state","setProposerAddress","readMessage","setExpirationTime","setCreateTime","addApprovals","readEnum","setState","getProposalId","getProposerAddress_asU8","getLength","getExpirationTime","getCreateTime","getApprovalsList_asU8","writeRepeatedBytes","getState","writeEnum","State","PENDING","DISAPPROVED","APPROVED","CANCELED","getProposerAddress","opt_noLazyCreate","getMapField","clearParametersMap","clear","getApprovalsList","getRepeatedField","bytesListAsB64","bytesListAsU8","setApprovalsList","setField","opt_index","addToRepeatedField","clearApprovalsList","setProto3EnumField","exchangeId","creatorAddress","getCreatorAddress_asB64","firstTokenId","getFirstTokenId_asB64","secondTokenId","getSecondTokenId_asB64","setCreatorAddress","getExchangeId","getCreatorAddress_asU8","getFirstTokenId_asU8","getFirstTokenBalance","getSecondTokenId_asU8","getSecondTokenBalance","getCreatorAddress","getFirstTokenId","getSecondTokenId","getAccountName_asB64","votesList","toObjectList","getVotesList","assetMap","getAssetMap","assetv2Map","getAssetv2Map","frozenList","getFrozenList","netUsage","acquiredDelegatedFrozenBalanceForBandwidth","delegatedFrozenBalanceForBandwidth","oldTronPower","tronPower","getTronPower","assetOptimized","getBooleanFieldWithDefault","latestOprationTime","allowance","latestWithdrawTime","getCode_asB64","isWitness","isCommittee","frozenSupplyList","getFrozenSupplyList","assetIssuedName","getAssetIssuedName_asB64","assetIssuedId","getAssetIssuedId_asB64","latestAssetOperationTimeMap","getLatestAssetOperationTimeMap","latestAssetOperationTimev2Map","getLatestAssetOperationTimev2Map","freeNetUsage","freeAssetNetUsageMap","getFreeAssetNetUsageMap","freeAssetNetUsagev2Map","getFreeAssetNetUsagev2Map","latestConsumeTime","latestConsumeFreeTime","getAccountId_asB64","accountResource","getAccountResource","codehash","getCodehash_asB64","getOwnerPermission","getWitnessPermission","activePermissionList","getActivePermissionList","readString","addFrozen","setNetUsage","setAcquiredDelegatedFrozenBalanceForBandwidth","setDelegatedFrozenBalanceForBandwidth","setOldTronPower","setTronPower","readBool","setAssetOptimized","setLatestOprationTime","setAllowance","setLatestWithdrawTime","setCode","setIsWitness","setIsCommittee","setAssetIssuedName","setAssetIssuedId","setFreeNetUsage","setLatestConsumeTime","setLatestConsumeFreeTime","setAccountResource","setCodehash","setOwnerPermission","setWitnessPermission","addActivePermission","getAccountName_asU8","writeRepeatedMessage","writeString","getNetUsage","getAcquiredDelegatedFrozenBalanceForBandwidth","getDelegatedFrozenBalanceForBandwidth","getOldTronPower","writeMessage","getAssetOptimized","writeBool","getLatestOprationTime","getAllowance","getLatestWithdrawTime","getCode_asU8","getIsWitness","getIsCommittee","getAssetIssuedName_asU8","getAssetIssuedId_asU8","getFreeNetUsage","getLatestConsumeTime","getLatestConsumeFreeTime","getAccountId_asU8","getCodehash_asU8","frozenBalance","expireTime","setExpireTime","getFrozenBalance","getExpireTime","energyUsage","frozenBalanceForEnergy","getFrozenBalanceForEnergy","latestConsumeTimeForEnergy","acquiredDelegatedFrozenBalanceForEnergy","delegatedFrozenBalanceForEnergy","storageLimit","storageUsage","latestExchangeStorageTime","setEnergyUsage","setFrozenBalanceForEnergy","setLatestConsumeTimeForEnergy","setAcquiredDelegatedFrozenBalanceForEnergy","setDelegatedFrozenBalanceForEnergy","setStorageLimit","setStorageUsage","setLatestExchangeStorageTime","getEnergyUsage","getLatestConsumeTimeForEnergy","getAcquiredDelegatedFrozenBalanceForEnergy","getDelegatedFrozenBalanceForEnergy","getStorageLimit","getStorageUsage","getLatestExchangeStorageTime","getWrapperField","setWrapperField","clearFrozenBalanceForEnergy","hasFrozenBalanceForEnergy","getField","getAccountName","getRepeatedWrapperField","setVotesList","setRepeatedWrapperField","opt_value","addToRepeatedWrapperField","clearVotesList","clearAssetMap","clearAssetv2Map","setFrozenList","clearFrozenList","clearTronPower","hasTronPower","setProto3BooleanField","getCode","setFrozenSupplyList","clearFrozenSupplyList","getAssetIssuedName","getAssetIssuedId","clearLatestAssetOperationTimeMap","clearLatestAssetOperationTimev2Map","clearFreeAssetNetUsageMap","clearFreeAssetNetUsagev2Map","getAccountId","clearAccountResource","hasAccountResource","getCodehash","clearOwnerPermission","hasOwnerPermission","clearWitnessPermission","hasWitnessPermission","setActivePermissionList","clearActivePermissionList","getWeight","getFrom_asB64","getTo_asB64","frozenBalanceForBandwidth","expireTimeForBandwidth","expireTimeForEnergy","setFrom","setTo","setFrozenBalanceForBandwidth","setExpireTimeForBandwidth","setExpireTimeForEnergy","getFrom_asU8","getTo_asU8","getFrozenBalanceForBandwidth","getExpireTimeForBandwidth","getExpireTimeForEnergy","getFrom","getTo","permissionName","getPermissionName_asB64","setAccount","getPermissionName_asU8","clearAccount","hasAccount","getPermissionName","getOperations_asB64","keysList","getKeysList","readInt32","addKeys","getId","writeInt32","getThreshold","getParentId","getOperations_asU8","PermissionType","OWNER","WITNESS","ACTIVE","setProto3StringField","getOperations","clearKeysList","votecount","getPubkey_asB64","totalproduced","totalmissed","latestblocknum","latestslotnum","isjobs","setVotecount","setPubkey","setTotalproduced","setTotalmissed","setLatestblocknum","setLatestslotnum","setIsjobs","getVotecount","getPubkey_asU8","getUrl","getTotalproduced","getTotalmissed","getLatestblocknum","getLatestslotnum","getIsjobs","getPubkey","oldVotesList","getOldVotesList","newVotesList","getNewVotesList","addOldVotes","addNewVotes","setOldVotesList","clearOldVotesList","setNewVotesList","clearNewVotesList","makerorderid","getMakerorderid_asB64","takerorderid","getTakerorderid_asB64","fillsellquantity","fillbuyquantity","setMakerorderid","setTakerorderid","setFillsellquantity","setFillbuyquantity","getMakerorderid_asU8","getTakerorderid_asU8","getFillsellquantity","getFillbuyquantity","getMakerorderid","getTakerorderid","signatureList","getSignatureList_asB64","retList","getRetList","addSignature","addRet","getSignatureList_asU8","getParameter","getProvider_asB64","contractname","getContractname_asB64","setProvider","setContractname","getProvider_asU8","getContractname_asU8","getPermissionId","VOTEASSETCONTRACT","WITNESSUPDATECONTRACT","UNFREEZEASSETCONTRACT","CUSTOMCONTRACT","GETCONTRACT","SHIELDEDTRANSFERCONTRACT","MARKETSELLASSETCONTRACT","MARKETCANCELORDERCONTRACT","clearParameter","hasParameter","getProvider","getContractname","fee","contractret","assetissueid","withdrawAmount","unfreezeAmount","exchangeReceivedAmount","exchangeInjectAnotherAmount","exchangeWithdrawAnotherAmount","shieldedTransactionFee","orderid","getOrderid_asB64","orderdetailsList","getOrderdetailsList","setFee","setRet","setContractret","setAssetissueid","setWithdrawAmount","setUnfreezeAmount","setExchangeReceivedAmount","setExchangeInjectAnotherAmount","setExchangeWithdrawAnotherAmount","setShieldedTransactionFee","setOrderid","addOrderdetails","getFee","getRet","getContractret","getAssetissueid","getWithdrawAmount","getUnfreezeAmount","getExchangeReceivedAmount","getExchangeInjectAnotherAmount","getExchangeWithdrawAnotherAmount","getShieldedTransactionFee","getOrderid_asU8","SUCESS","FAILED","DEFAULT","SUCCESS","REVERT","BAD_JUMP_DESTINATION","OUT_OF_MEMORY","PRECOMPILED_CONTRACT","STACK_TOO_SMALL","STACK_TOO_LARGE","ILLEGAL_OPERATION","STACK_OVERFLOW","OUT_OF_ENERGY","OUT_OF_TIME","JVM_STACK_OVER_FLOW","UNKNOWN","TRANSFER_FAILED","INVALID_CODE","getOrderid","setOrderdetailsList","clearOrderdetailsList","refBlockBytes","getRefBlockBytes_asB64","refBlockNum","refBlockHash","getRefBlockHash_asB64","authsList","getAuthsList","getData_asB64","contractList","getContractList","scripts","getScripts_asB64","setRefBlockNum","addAuths","setScripts","getRefBlockBytes_asU8","getRefBlockNum","getRefBlockHash_asU8","getExpiration","getData_asU8","getScripts_asU8","getTimestamp","getFeeLimit","getRefBlockBytes","getRefBlockHash","setAuthsList","clearAuthsList","getData","setContractList","clearContractList","getScripts","clearRawData","hasRawData","getSignatureList","setSignatureList","clearSignatureList","setRetList","clearRetList","NORMAL","ASSETISSUE","CONTRACT","core_Tron_pb","getOwnerAddress_asB64","getAccountAddress_asB64","getOwnerAddress_asU8","getAccountAddress_asU8","getOwnerAddress","getAccountAddress","getOwner","getWitness","activesList","getActivesList","addActives","clearOwner","hasOwner","clearWitness","hasWitness","clearActivesList","UnfreezeAssetContract","getAbbr_asB64","trxNum","startTime","endTime","order","getDescription_asB64","getUrl_asB64","freeAssetNetLimit","publicFreeAssetNetLimit","publicFreeAssetNetUsage","publicLatestFreeNetTime","setOrder","getAbbr_asU8","getTotalSupply","getTrxNum","getPrecision","getNum","getStartTime","getEndTime","getOrder","getVoteScore","getDescription_asU8","getUrl_asU8","getFreeAssetNetLimit","getPublicFreeAssetNetLimit","getPublicFreeAssetNetUsage","getPublicLatestFreeNetTime","frozenDays","getFrozenAmount","getFrozenDays","getAbbr","getDescription","assetName","getAssetName_asB64","getToAddress_asB64","getAssetName_asU8","getToAddress_asU8","getAmount","getAssetName","getToAddress","newLimit","newPublicLimit","getNewLimit","getNewPublicLimit","core_contract_common_pb","TransactionBalanceTrace","Operation","BlockBalanceTrace","BlockIdentifier","AccountTrace","AccountIdentifier","AccountBalanceRequest","AccountBalanceResponse","getReceiverAddress_asB64","getFrozenDuration","getResource","getReceiverAddress_asU8","getReceiverAddress","transactionIdentifier","getTransactionIdentifier_asB64","operationList","getOperationList","status","setTransactionIdentifier","addOperation","setStatus","getTransactionIdentifier_asU8","getStatus","operationIdentifier","setOperationIdentifier","getOperationIdentifier","getTransactionIdentifier","setOperationList","clearOperationList","blockIdentifier","getBlockIdentifier","transactionBalanceTraceList","getTransactionBalanceTraceList","setBlockIdentifier","addTransactionBalanceTrace","getHash_asB64","setHash","setNumber","getHash_asU8","getHash","clearBlockIdentifier","hasBlockIdentifier","setTransactionBalanceTraceList","clearTransactionBalanceTraceList","placeholder","setPlaceholder","getPlaceholder","accountIdentifier","getAccountIdentifier","setAccountIdentifier","clearAccountIdentifier","hasAccountIdentifier","getUnfreezeBalance","getLock","getLockPeriod","BANDWIDTH","ENERGY","TRON_POWER","getTokenId_asB64","getTokenId_asU8","getQuant","getTokenId","getExpected","isAddApproval","getIsAddApproval","ContractState","SmartContractDataWrapper","originAddress","getOriginAddress_asB64","getContractAddress_asB64","getAbi","getBytecode_asB64","consumeUserResourcePercent","codeHash","getCodeHash_asB64","trxHash","getTrxHash_asB64","setCodeHash","setTrxHash","setVersion","getOriginAddress_asU8","getContractAddress_asU8","getBytecode_asU8","getCallValue","getConsumeUserResourcePercent","getOriginEnergyLimit","getCodeHash_asU8","getTrxHash_asU8","getVersion","entrysList","getEntrysList","addEntrys","inputsList","getInputsList","outputsList","getOutputsList","statemutability","addInputs","addOutputs","getAnonymous","getConstant","getPayable","getStatemutability","UNKNOWNENTRYTYPE","CONSTRUCTOR","FUNCTION","EVENT","FALLBACK","RECEIVE","ERROR","UNKNOWNMUTABILITYTYPE","PURE","VIEW","NONPAYABLE","PAYABLE","getIndexed","clearInputsList","clearOutputsList","clearEntrysList","getOriginAddress","getContractAddress","clearAbi","hasAbi","getBytecode","getCodeHash","getTrxHash","energyFactor","updateCycle","setEnergyFactor","setUpdateCycle","getEnergyFactor","getUpdateCycle","newContract","getNewContract","callTokenValue","getCallTokenValue","clearNewContract","hasNewContract","smartContract","getSmartContract","runtimecode","getRuntimecode_asB64","contractState","getContractState","setSmartContract","setRuntimecode","setContractState","getRuntimecode_asU8","clearSmartContract","hasSmartContract","getRuntimecode","clearContractState","hasContractState","BuyStorageBytesContract","BuyStorageContract","SellStorageContract","setBytes","storageBytes","setStorageBytes","getStorageBytes","WitnessUpdateContract","updateUrl","getUpdateUrl_asB64","setUpdateUrl","getUpdateUrl_asU8","getUpdateUrl","support","setSupport","getSupport","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","Types"],"sourceRoot":""}