@btc-vision/bitcoin 6.5.6 → 7.0.0-alpha.1

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 (456) hide show
  1. package/HOW_TO_WRITE_GOOD_CODE.md +2436 -0
  2. package/benchmark/psbt-2000-inputs.bench.ts +178 -0
  3. package/benchmark/signing.bench.ts +147 -0
  4. package/browser/address.d.ts +57 -10
  5. package/browser/address.d.ts.map +1 -0
  6. package/browser/bech32utils.d.ts +9 -1
  7. package/browser/bech32utils.d.ts.map +1 -0
  8. package/browser/bip66.d.ts +11 -6
  9. package/browser/bip66.d.ts.map +1 -0
  10. package/browser/block.d.ts +117 -11
  11. package/browser/block.d.ts.map +1 -0
  12. package/browser/branded.d.ts +20 -0
  13. package/browser/branded.d.ts.map +1 -0
  14. package/browser/crypto/crypto.d.ts +1 -0
  15. package/browser/crypto/crypto.d.ts.map +1 -0
  16. package/browser/crypto.d.ts +46 -7
  17. package/browser/crypto.d.ts.map +1 -0
  18. package/browser/ecc/context.d.ts +129 -0
  19. package/browser/ecc/context.d.ts.map +1 -0
  20. package/browser/ecc/index.d.ts +11 -0
  21. package/browser/ecc/index.d.ts.map +1 -0
  22. package/browser/ecc/types.d.ts +128 -0
  23. package/browser/ecc/types.d.ts.map +1 -0
  24. package/browser/ecpair.d.ts +99 -0
  25. package/browser/errors.d.ts +124 -0
  26. package/browser/errors.d.ts.map +1 -0
  27. package/browser/index.d.ts +32 -5
  28. package/browser/index.d.ts.map +1 -0
  29. package/browser/index.js +12477 -101
  30. package/browser/io/BinaryReader.d.ts +276 -0
  31. package/browser/io/BinaryReader.d.ts.map +1 -0
  32. package/browser/io/BinaryWriter.d.ts +391 -0
  33. package/browser/io/BinaryWriter.d.ts.map +1 -0
  34. package/browser/io/MemoryPool.d.ts +220 -0
  35. package/browser/io/MemoryPool.d.ts.map +1 -0
  36. package/browser/io/base64.d.ts +13 -0
  37. package/browser/io/base64.d.ts.map +1 -0
  38. package/browser/io/hex.d.ts +67 -0
  39. package/browser/io/hex.d.ts.map +1 -0
  40. package/browser/io/index.d.ts +17 -0
  41. package/browser/io/index.d.ts.map +1 -0
  42. package/browser/io/utils.d.ts +199 -0
  43. package/browser/io/utils.d.ts.map +1 -0
  44. package/browser/merkle.d.ts +10 -1
  45. package/browser/merkle.d.ts.map +1 -0
  46. package/browser/networks.d.ts +70 -9
  47. package/browser/networks.d.ts.map +1 -0
  48. package/browser/opcodes.d.ts +1 -0
  49. package/browser/opcodes.d.ts.map +1 -0
  50. package/browser/payments/bip341.d.ts +35 -9
  51. package/browser/payments/bip341.d.ts.map +1 -0
  52. package/browser/payments/embed.d.ts +112 -1
  53. package/browser/payments/embed.d.ts.map +1 -0
  54. package/browser/payments/index.d.ts +17 -10
  55. package/browser/payments/index.d.ts.map +1 -0
  56. package/browser/payments/p2ms.d.ts +150 -0
  57. package/browser/payments/p2ms.d.ts.map +1 -0
  58. package/browser/payments/p2op.d.ts +150 -24
  59. package/browser/payments/p2op.d.ts.map +1 -0
  60. package/browser/payments/p2pk.d.ts +154 -1
  61. package/browser/payments/p2pk.d.ts.map +1 -0
  62. package/browser/payments/p2pkh.d.ts +176 -1
  63. package/browser/payments/p2pkh.d.ts.map +1 -0
  64. package/browser/payments/p2sh.d.ts +150 -1
  65. package/browser/payments/p2sh.d.ts.map +1 -0
  66. package/browser/payments/p2tr.d.ts +185 -1
  67. package/browser/payments/p2tr.d.ts.map +1 -0
  68. package/browser/payments/p2wpkh.d.ts +161 -1
  69. package/browser/payments/p2wpkh.d.ts.map +1 -0
  70. package/browser/payments/p2wsh.d.ts +146 -1
  71. package/browser/payments/p2wsh.d.ts.map +1 -0
  72. package/browser/payments/types.d.ts +94 -64
  73. package/browser/payments/types.d.ts.map +1 -0
  74. package/browser/psbt/bip371.d.ts +34 -8
  75. package/browser/psbt/bip371.d.ts.map +1 -0
  76. package/browser/psbt/psbtutils.d.ts +56 -16
  77. package/browser/psbt/psbtutils.d.ts.map +1 -0
  78. package/browser/psbt/types.d.ts +245 -0
  79. package/browser/psbt/types.d.ts.map +1 -0
  80. package/browser/psbt/utils.d.ts +64 -0
  81. package/browser/psbt/utils.d.ts.map +1 -0
  82. package/browser/psbt/validation.d.ts +84 -0
  83. package/browser/psbt/validation.d.ts.map +1 -0
  84. package/browser/psbt.d.ts +82 -118
  85. package/browser/psbt.d.ts.map +1 -0
  86. package/browser/pubkey.d.ts +27 -6
  87. package/browser/pubkey.d.ts.map +1 -0
  88. package/browser/push_data.d.ts +24 -2
  89. package/browser/push_data.d.ts.map +1 -0
  90. package/browser/script.d.ts +33 -8
  91. package/browser/script.d.ts.map +1 -0
  92. package/browser/script_number.d.ts +17 -0
  93. package/browser/script_number.d.ts.map +1 -0
  94. package/browser/script_signature.d.ts +23 -5
  95. package/browser/script_signature.d.ts.map +1 -0
  96. package/browser/transaction.d.ts +160 -18
  97. package/browser/transaction.d.ts.map +1 -0
  98. package/browser/types.d.ts +36 -38
  99. package/browser/types.d.ts.map +1 -0
  100. package/browser/workers/WorkerSigningPool.d.ts +143 -0
  101. package/browser/workers/WorkerSigningPool.d.ts.map +1 -0
  102. package/browser/workers/WorkerSigningPool.node.d.ts +116 -0
  103. package/browser/workers/WorkerSigningPool.node.d.ts.map +1 -0
  104. package/browser/workers/ecc-bundle.d.ts +25 -0
  105. package/browser/workers/ecc-bundle.d.ts.map +1 -0
  106. package/browser/workers/index.d.ts +91 -0
  107. package/browser/workers/index.d.ts.map +1 -0
  108. package/browser/workers/psbt-parallel.d.ts +88 -0
  109. package/browser/workers/psbt-parallel.d.ts.map +1 -0
  110. package/browser/workers/signing-worker.d.ts +37 -0
  111. package/browser/workers/signing-worker.d.ts.map +1 -0
  112. package/browser/workers/types.d.ts +365 -0
  113. package/browser/workers/types.d.ts.map +1 -0
  114. package/build/address.d.ts +58 -11
  115. package/build/address.d.ts.map +1 -0
  116. package/build/address.js +82 -25
  117. package/build/address.js.map +1 -0
  118. package/build/bech32utils.d.ts +9 -1
  119. package/build/bech32utils.d.ts.map +1 -0
  120. package/build/bech32utils.js +10 -2
  121. package/build/bech32utils.js.map +1 -0
  122. package/build/bip66.d.ts +11 -6
  123. package/build/bip66.d.ts.map +1 -0
  124. package/build/bip66.js +32 -3
  125. package/build/bip66.js.map +1 -0
  126. package/build/block.d.ts +117 -11
  127. package/build/block.d.ts.map +1 -0
  128. package/build/block.js +202 -72
  129. package/build/block.js.map +1 -0
  130. package/build/branded.d.ts +20 -0
  131. package/build/branded.d.ts.map +1 -0
  132. package/build/branded.js +7 -0
  133. package/build/branded.js.map +1 -0
  134. package/build/crypto/crypto.d.ts +1 -0
  135. package/build/crypto/crypto.d.ts.map +1 -0
  136. package/build/crypto/crypto.js +1 -0
  137. package/build/crypto/crypto.js.map +1 -0
  138. package/build/crypto.d.ts +46 -7
  139. package/build/crypto.d.ts.map +1 -0
  140. package/build/crypto.js +65 -20
  141. package/build/crypto.js.map +1 -0
  142. package/build/ecc/context.d.ts +135 -0
  143. package/build/ecc/context.d.ts.map +1 -0
  144. package/build/ecc/context.js +232 -0
  145. package/build/ecc/context.js.map +1 -0
  146. package/build/ecc/index.d.ts +11 -0
  147. package/build/ecc/index.d.ts.map +1 -0
  148. package/build/ecc/index.js +11 -0
  149. package/build/ecc/index.js.map +1 -0
  150. package/build/ecc/types.d.ts +134 -0
  151. package/build/ecc/types.d.ts.map +1 -0
  152. package/build/ecc/types.js +8 -0
  153. package/build/ecc/types.js.map +1 -0
  154. package/build/errors.d.ts +124 -0
  155. package/build/errors.d.ts.map +1 -0
  156. package/build/errors.js +155 -0
  157. package/build/errors.js.map +1 -0
  158. package/build/index.d.ts +32 -5
  159. package/build/index.d.ts.map +1 -0
  160. package/build/index.js +26 -3
  161. package/build/index.js.map +1 -0
  162. package/build/io/BinaryReader.d.ts +276 -0
  163. package/build/io/BinaryReader.d.ts.map +1 -0
  164. package/build/io/BinaryReader.js +425 -0
  165. package/build/io/BinaryReader.js.map +1 -0
  166. package/build/io/BinaryWriter.d.ts +391 -0
  167. package/build/io/BinaryWriter.d.ts.map +1 -0
  168. package/build/io/BinaryWriter.js +611 -0
  169. package/build/io/BinaryWriter.js.map +1 -0
  170. package/build/io/MemoryPool.d.ts +220 -0
  171. package/build/io/MemoryPool.d.ts.map +1 -0
  172. package/build/io/MemoryPool.js +309 -0
  173. package/build/io/MemoryPool.js.map +1 -0
  174. package/build/io/base64.d.ts +13 -0
  175. package/build/io/base64.d.ts.map +1 -0
  176. package/build/io/base64.js +20 -0
  177. package/build/io/base64.js.map +1 -0
  178. package/build/io/hex.d.ts +67 -0
  179. package/build/io/hex.d.ts.map +1 -0
  180. package/build/io/hex.js +138 -0
  181. package/build/io/hex.js.map +1 -0
  182. package/build/io/index.d.ts +17 -0
  183. package/build/io/index.d.ts.map +1 -0
  184. package/build/io/index.js +23 -0
  185. package/build/io/index.js.map +1 -0
  186. package/build/io/utils.d.ts +199 -0
  187. package/build/io/utils.d.ts.map +1 -0
  188. package/build/io/utils.js +271 -0
  189. package/build/io/utils.js.map +1 -0
  190. package/build/merkle.d.ts +10 -1
  191. package/build/merkle.d.ts.map +1 -0
  192. package/build/merkle.js +12 -1
  193. package/build/merkle.js.map +1 -0
  194. package/build/networks.d.ts +70 -9
  195. package/build/networks.d.ts.map +1 -0
  196. package/build/networks.js +90 -4
  197. package/build/networks.js.map +1 -0
  198. package/build/opcodes.d.ts +1 -0
  199. package/build/opcodes.d.ts.map +1 -0
  200. package/build/opcodes.js +1 -0
  201. package/build/opcodes.js.map +1 -0
  202. package/build/payments/bip341.d.ts +35 -9
  203. package/build/payments/bip341.d.ts.map +1 -0
  204. package/build/payments/bip341.js +34 -15
  205. package/build/payments/bip341.js.map +1 -0
  206. package/build/payments/embed.d.ts +120 -1
  207. package/build/payments/embed.d.ts.map +1 -0
  208. package/build/payments/embed.js +215 -34
  209. package/build/payments/embed.js.map +1 -0
  210. package/build/payments/index.d.ts +17 -10
  211. package/build/payments/index.d.ts.map +1 -0
  212. package/build/payments/index.js +20 -10
  213. package/build/payments/index.js.map +1 -0
  214. package/build/payments/p2ms.d.ts +159 -1
  215. package/build/payments/p2ms.d.ts.map +1 -0
  216. package/build/payments/p2ms.js +427 -108
  217. package/build/payments/p2ms.js.map +1 -0
  218. package/build/payments/p2op.d.ts +158 -24
  219. package/build/payments/p2op.d.ts.map +1 -0
  220. package/build/payments/p2op.js +379 -93
  221. package/build/payments/p2op.js.map +1 -0
  222. package/build/payments/p2pk.d.ts +162 -1
  223. package/build/payments/p2pk.d.ts.map +1 -0
  224. package/build/payments/p2pk.js +327 -58
  225. package/build/payments/p2pk.js.map +1 -0
  226. package/build/payments/p2pkh.d.ts +185 -1
  227. package/build/payments/p2pkh.d.ts.map +1 -0
  228. package/build/payments/p2pkh.js +467 -114
  229. package/build/payments/p2pkh.js.map +1 -0
  230. package/build/payments/p2sh.d.ts +159 -1
  231. package/build/payments/p2sh.d.ts.map +1 -0
  232. package/build/payments/p2sh.js +500 -150
  233. package/build/payments/p2sh.js.map +1 -0
  234. package/build/payments/p2tr.d.ts +193 -1
  235. package/build/payments/p2tr.d.ts.map +1 -0
  236. package/build/payments/p2tr.js +592 -174
  237. package/build/payments/p2tr.js.map +1 -0
  238. package/build/payments/p2wpkh.d.ts +170 -1
  239. package/build/payments/p2wpkh.d.ts.map +1 -0
  240. package/build/payments/p2wpkh.js +428 -103
  241. package/build/payments/p2wpkh.js.map +1 -0
  242. package/build/payments/p2wsh.d.ts +155 -1
  243. package/build/payments/p2wsh.d.ts.map +1 -0
  244. package/build/payments/p2wsh.js +465 -143
  245. package/build/payments/p2wsh.js.map +1 -0
  246. package/build/payments/types.d.ts +98 -64
  247. package/build/payments/types.d.ts.map +1 -0
  248. package/build/payments/types.js +17 -13
  249. package/build/payments/types.js.map +1 -0
  250. package/build/psbt/bip371.d.ts +35 -9
  251. package/build/psbt/bip371.d.ts.map +1 -0
  252. package/build/psbt/bip371.js +117 -28
  253. package/build/psbt/bip371.js.map +1 -0
  254. package/build/psbt/psbtutils.d.ts +56 -16
  255. package/build/psbt/psbtutils.d.ts.map +1 -0
  256. package/build/psbt/psbtutils.js +71 -16
  257. package/build/psbt/psbtutils.js.map +1 -0
  258. package/build/psbt/types.d.ts +249 -0
  259. package/build/psbt/types.d.ts.map +1 -0
  260. package/build/psbt/types.js +6 -0
  261. package/build/psbt/types.js.map +1 -0
  262. package/build/psbt/utils.d.ts +68 -0
  263. package/build/psbt/utils.d.ts.map +1 -0
  264. package/build/psbt/utils.js +171 -0
  265. package/build/psbt/utils.js.map +1 -0
  266. package/build/psbt/validation.d.ts +88 -0
  267. package/build/psbt/validation.d.ts.map +1 -0
  268. package/build/psbt/validation.js +149 -0
  269. package/build/psbt/validation.js.map +1 -0
  270. package/build/psbt.d.ts +84 -120
  271. package/build/psbt.d.ts.map +1 -0
  272. package/build/psbt.js +406 -413
  273. package/build/psbt.js.map +1 -0
  274. package/build/pubkey.d.ts +27 -6
  275. package/build/pubkey.d.ts.map +1 -0
  276. package/build/pubkey.js +36 -12
  277. package/build/pubkey.js.map +1 -0
  278. package/build/push_data.d.ts +24 -2
  279. package/build/push_data.d.ts.map +1 -0
  280. package/build/push_data.js +44 -12
  281. package/build/push_data.js.map +1 -0
  282. package/build/script.d.ts +33 -8
  283. package/build/script.d.ts.map +1 -0
  284. package/build/script.js +101 -37
  285. package/build/script.js.map +1 -0
  286. package/build/script_number.d.ts +17 -0
  287. package/build/script_number.d.ts.map +1 -0
  288. package/build/script_number.js +19 -0
  289. package/build/script_number.js.map +1 -0
  290. package/build/script_signature.d.ts +23 -5
  291. package/build/script_signature.d.ts.map +1 -0
  292. package/build/script_signature.js +48 -15
  293. package/build/script_signature.js.map +1 -0
  294. package/build/transaction.d.ts +160 -18
  295. package/build/transaction.d.ts.map +1 -0
  296. package/build/transaction.js +443 -176
  297. package/build/transaction.js.map +1 -0
  298. package/build/tsconfig.build.tsbuildinfo +1 -0
  299. package/build/types.d.ts +36 -38
  300. package/build/types.d.ts.map +1 -0
  301. package/build/types.js +169 -57
  302. package/build/types.js.map +1 -0
  303. package/build/workers/WorkerSigningPool.d.ts +174 -0
  304. package/build/workers/WorkerSigningPool.d.ts.map +1 -0
  305. package/build/workers/WorkerSigningPool.js +553 -0
  306. package/build/workers/WorkerSigningPool.js.map +1 -0
  307. package/build/workers/WorkerSigningPool.node.d.ts +124 -0
  308. package/build/workers/WorkerSigningPool.node.d.ts.map +1 -0
  309. package/build/workers/WorkerSigningPool.node.js +753 -0
  310. package/build/workers/WorkerSigningPool.node.js.map +1 -0
  311. package/build/workers/ecc-bundle.d.ts +25 -0
  312. package/build/workers/ecc-bundle.d.ts.map +1 -0
  313. package/build/workers/ecc-bundle.js +25 -0
  314. package/build/workers/ecc-bundle.js.map +1 -0
  315. package/build/workers/index.d.ts +91 -0
  316. package/build/workers/index.d.ts.map +1 -0
  317. package/build/workers/index.js +114 -0
  318. package/build/workers/index.js.map +1 -0
  319. package/build/workers/psbt-parallel.d.ts +117 -0
  320. package/build/workers/psbt-parallel.d.ts.map +1 -0
  321. package/build/workers/psbt-parallel.js +233 -0
  322. package/build/workers/psbt-parallel.js.map +1 -0
  323. package/build/workers/signing-worker.d.ts +37 -0
  324. package/build/workers/signing-worker.d.ts.map +1 -0
  325. package/build/workers/signing-worker.js +350 -0
  326. package/build/workers/signing-worker.js.map +1 -0
  327. package/build/workers/types.d.ts +365 -0
  328. package/build/workers/types.d.ts.map +1 -0
  329. package/build/workers/types.js +60 -0
  330. package/build/workers/types.js.map +1 -0
  331. package/package.json +68 -9
  332. package/scripts/bundle-ecc.ts +111 -0
  333. package/src/address.ts +91 -45
  334. package/src/bech32utils.ts +3 -3
  335. package/src/bip66.ts +34 -24
  336. package/src/block.ts +205 -86
  337. package/src/branded.ts +18 -0
  338. package/src/crypto.ts +64 -26
  339. package/src/ecc/context.ts +280 -0
  340. package/src/ecc/index.ts +14 -0
  341. package/src/ecc/types.ts +147 -0
  342. package/src/ecpair.d.ts +99 -0
  343. package/src/errors.ts +163 -0
  344. package/src/index.ts +112 -9
  345. package/src/io/BinaryReader.ts +461 -0
  346. package/src/io/BinaryWriter.ts +696 -0
  347. package/src/io/MemoryPool.ts +343 -0
  348. package/src/io/base64.ts +20 -0
  349. package/src/io/hex.ts +155 -0
  350. package/src/io/index.ts +41 -0
  351. package/src/io/utils.ts +283 -0
  352. package/src/merkle.ts +14 -9
  353. package/src/networks.ts +9 -9
  354. package/src/payments/bip341.ts +32 -33
  355. package/src/payments/embed.ts +244 -41
  356. package/src/payments/index.ts +12 -10
  357. package/src/payments/p2ms.ts +497 -118
  358. package/src/payments/p2op.ts +432 -134
  359. package/src/payments/p2pk.ts +370 -72
  360. package/src/payments/p2pkh.ts +524 -130
  361. package/src/payments/p2sh.ts +572 -169
  362. package/src/payments/p2tr.ts +686 -194
  363. package/src/payments/p2wpkh.ts +482 -105
  364. package/src/payments/p2wsh.ts +524 -162
  365. package/src/payments/types.ts +80 -66
  366. package/src/psbt/bip371.ts +72 -51
  367. package/src/psbt/psbtutils.ts +39 -40
  368. package/src/psbt/types.ts +324 -0
  369. package/src/psbt/utils.ts +188 -0
  370. package/src/psbt/validation.ts +185 -0
  371. package/src/psbt.ts +608 -827
  372. package/src/pubkey.ts +22 -23
  373. package/src/push_data.ts +18 -16
  374. package/src/script.ts +81 -66
  375. package/src/script_number.ts +6 -6
  376. package/src/script_signature.ts +33 -36
  377. package/src/transaction.ts +462 -239
  378. package/src/types.ts +229 -100
  379. package/src/workers/WorkerSigningPool.node.ts +887 -0
  380. package/src/workers/WorkerSigningPool.ts +666 -0
  381. package/src/workers/ecc-bundle.ts +26 -0
  382. package/src/workers/index.ts +165 -0
  383. package/src/workers/psbt-parallel.ts +327 -0
  384. package/src/workers/signing-worker.ts +353 -0
  385. package/src/workers/types.ts +417 -0
  386. package/test/address.spec.ts +9 -6
  387. package/test/bitcoin.core.spec.ts +16 -17
  388. package/test/block.spec.ts +8 -7
  389. package/test/bufferutils.spec.ts +228 -214
  390. package/test/crypto.spec.ts +19 -11
  391. package/test/fixtures/p2pk.json +0 -8
  392. package/test/fixtures/p2pkh.json +1 -1
  393. package/test/fixtures/p2sh.json +1 -1
  394. package/test/fixtures/script.json +1 -1
  395. package/test/fixtures/transaction.json +2 -2
  396. package/test/integration/_regtest.ts +25 -0
  397. package/test/integration/addresses.spec.ts +4 -3
  398. package/test/integration/bip32.spec.ts +2 -1
  399. package/test/integration/blocks.spec.ts +1 -1
  400. package/test/integration/cltv.spec.ts +18 -16
  401. package/test/integration/csv.spec.ts +37 -64
  402. package/test/integration/payments.spec.ts +5 -3
  403. package/test/integration/taproot.spec.ts +76 -83
  404. package/test/integration/transactions.spec.ts +38 -35
  405. package/test/payments.spec.ts +35 -13
  406. package/test/payments.utils.ts +17 -16
  407. package/test/psbt.spec.ts +111 -100
  408. package/test/script.spec.ts +11 -10
  409. package/test/script_signature.spec.ts +9 -11
  410. package/test/taproot-cache.spec.ts +694 -0
  411. package/test/transaction.spec.ts +32 -40
  412. package/test/types.spec.ts +74 -29
  413. package/test/workers-pool.spec.ts +963 -0
  414. package/test/workers-signing.spec.ts +635 -0
  415. package/test/workers.spec.ts +1390 -0
  416. package/tsconfig.base.json +34 -18
  417. package/tsconfig.browser.json +15 -0
  418. package/tsconfig.build.json +5 -0
  419. package/tsconfig.json +5 -14
  420. package/typedoc.json +29 -0
  421. package/vite.config.browser.ts +3 -42
  422. package/vitest.config.integration.ts +2 -0
  423. package/browser/bufferutils.d.ts +0 -34
  424. package/browser/chunks/crypto-BhCpKpek.js +0 -2033
  425. package/browser/chunks/payments-B1wlSccx.js +0 -1089
  426. package/browser/chunks/psbt-BCNk7JUx.js +0 -4055
  427. package/browser/chunks/script-DyPItFEl.js +0 -318
  428. package/browser/chunks/transaction-C_UbhMGn.js +0 -432
  429. package/browser/chunks/utils-DNZi-T5W.js +0 -761
  430. package/browser/ecc_lib.d.ts +0 -3
  431. package/browser/hooks/AdvancedSignatureManager.d.ts +0 -16
  432. package/browser/hooks/HookedSigner.d.ts +0 -4
  433. package/browser/hooks/SignatureManager.d.ts +0 -13
  434. package/browser/payments/lazy.d.ts +0 -2
  435. package/browser/typeforce.d.ts +0 -38
  436. package/build/bufferutils.d.ts +0 -34
  437. package/build/bufferutils.js +0 -141
  438. package/build/ecc_lib.d.ts +0 -3
  439. package/build/ecc_lib.js +0 -61
  440. package/build/hooks/AdvancedSignatureManager.d.ts +0 -16
  441. package/build/hooks/AdvancedSignatureManager.js +0 -52
  442. package/build/hooks/HookedSigner.d.ts +0 -4
  443. package/build/hooks/HookedSigner.js +0 -64
  444. package/build/hooks/SignatureManager.d.ts +0 -13
  445. package/build/hooks/SignatureManager.js +0 -45
  446. package/build/payments/lazy.d.ts +0 -2
  447. package/build/payments/lazy.js +0 -28
  448. package/build/tsconfig.tsbuildinfo +0 -1
  449. package/src/bufferutils.ts +0 -188
  450. package/src/ecc_lib.ts +0 -94
  451. package/src/hooks/AdvancedSignatureManager.ts +0 -104
  452. package/src/hooks/HookedSigner.ts +0 -108
  453. package/src/hooks/SignatureManager.ts +0 -84
  454. package/src/payments/lazy.ts +0 -28
  455. package/src/typeforce.d.ts +0 -38
  456. package/tsconfig.webpack.json +0 -18
@@ -0,0 +1 @@
1
+ {"version":3,"file":"psbt.js","sourceRoot":"","sources":["../src/psbt.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAInF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACH,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EACd,yBAAyB,EACzB,kBAAkB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EACH,UAAU,EACV,UAAU,EACV,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,KAAK,EACL,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,OAAO,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAmE/C;;GAEG;AACH,MAAM,YAAY,GAAa;IAC3B;;;OAGG;IACH,OAAO,EAAE,UAAU;IACnB;;;;OAIG;IACH,cAAc,EAAE,IAAI,EAAE,mBAAmB;CAC5C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH;;GAEG;AACH,MAAM,OAAO,IAAI;IAMF;IALF,MAAM,CAAY;IAClB,KAAK,CAAW;IAEzB,YACI,OAAyB,EAAE,EACpB,OAAyB,IAAI,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC;QAA5D,SAAI,GAAJ,IAAI,CAAwD;QAEnE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,GAAG;YACV,qBAAqB,EAAE,EAAE;YACzB,sBAAsB,EAAE,EAAE;YAC1B,SAAS,EAAE,EAAE;YACb,0DAA0D;YAC1D,EAAE,EAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAA8B,CAAC,EAAE;YAC1D,mBAAmB,EAAE,KAAK;YAC1B,aAAa,EAAE,KAAK;SACvB,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,sEAAsE;IACtE,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,sEAAsE;IACtE,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACnC,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,OAAe;QACvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ,CAAC,QAAgB;QACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAY;YAClC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACtC,IAAI,OAAO,CAAC;YACZ,IAAI,CAAC;gBACD,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACd,OAAO;gBACH,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAW;gBACtC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,OAAO;aACV,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,OAAyB,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,OAAyB,EAAE;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAkB,EAAE,OAAyB,EAAE;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,mEAAmE;QACnE,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAC7C,CAAC,KAAK,EAAE,EAAE,CACN,KAAK,CAAC,UAAU,EAAE,MAAM;YACxB,KAAK,CAAC,SAAS;YACf,KAAK,CAAC,YAAY,EAAE,MAAM;YAC1B,KAAK,CAAC,cAAc;YACpB,KAAK,CAAC,kBAAkB,CAC/B,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,KAAa;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK;QACD,+BAA+B;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAqB,CAAC;QAC9E,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IAED,iBAAiB,CAAC,cAAsB;QACpC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,6CAA6C;QACzE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,UAAU,CAAC,OAAO,CAAC,CAAC;QACpB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,QAAgB;QACxB,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACrF,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;QACjD,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1F,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1C,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,UAA+B,EAAE,mBAA4B,IAAI;QACvE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,SAA4B,EAAE,mBAA4B,IAAI;QACnE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACX,uCAAuC;gBACnC,yDAAyD,CAChE,CAAC;QACN,CAAC;QAED,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,gBAAgB,EAAE,CAAC;YACnB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,SAAS,CAAC,aAAa;YAAE,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxE,sFAAsF;QACtF,MAAM,mBAAmB,GAAG,SAAS,CAAC,WAAW;YAC7C,CAAC,CAAC;gBACI,GAAG,SAAS;gBACZ,WAAW,EAAE;oBACT,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,MAAM;oBACpC,KAAK,EACD,OAAO,SAAS,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ;wBAC3C,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK;wBAC7B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;iBAChD;aACJ;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAC5C,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC;QAC7B,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,WAAiC,EAAE,mBAA4B,IAAI;QAC1E,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAS,CAAC,UAA8B,EAAE,mBAA4B,IAAI;QACtE,MAAM,UAAU,GAAG,SAAS,IAAI,UAAU,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,IAAI,UAAU,CAAC;QACzC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CACX,wCAAwC;gBACpC,sEAAsE,CAC7E,CAAC;QACN,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,EAAE,OAAO,EAAE,GAAG,UAAuC,CAAC;YAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAW,CAAC;YAC1D,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE9D,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;QAClB,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1B,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,eAAyB,EAAE,mBAA6B;QACvE,IAAI,mBAAmB,EAAE,CAAC;YACrB,IAAI,CAAC,IAA2C,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAC9E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CACvB,CAAC;QACN,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,CAAC,WAAW;YAAE,OAAO,CAAC,CAAC,WAAW,CAAC;QACxC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACxB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;QACzE,OAAO,EAAE,CAAC;IACd,CAAC;IAED,UAAU,CAAC,sBAA+B,KAAK;QAC3C,OAAO,eAAe,CAClB,SAAS,EACT,UAAU,EACV,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,IAAI,CAAC,MAAM,EACX,mBAAmB,CACtB,CAAC;IACN,CAAC;IAED,MAAM,CAAC,sBAA+B,KAAK;QACvC,OAAO,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC7F,CAAC;IAED,iBAAiB;QACb,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACvE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CACT,UAAkB,EAClB,gBAA6D,EAC7D,YAAsB;QAEtB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,qBAAqB,CAC7B,UAAU,EACV,KAAK,EACL,SAAS,EACT,gBAA2C,CAC9C,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACtB,UAAU,EACV,KAAK,EACL,gBAAoC,EACpC,YAAY,IAAI,IAAI,CACvB,CAAC;IACN,CAAC;IAED,oBAAoB,CAChB,UAAkB,EAClB,qBAA+B,EAC/B,mBAA4C,kBAAkB;QAE9D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC,qBAAqB,CAC7B,UAAU,EACV,KAAK,EACL,qBAAqB,EACrB,gBAAgB,CACnB,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY,CAAC,UAAkB;QAC3B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,mBAAmB,CAC9B,MAAM,EACN,UAAU,EACV,OAAO,EACP,KAAK,CAAC,YAAY,IAAI,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC,EACpE,KAAK,CAAC,aAAa,IAAI,4BAA4B,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAChF,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC;QAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAkB,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,UAAkB,EAAE,MAAiB;QAChD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,OAAO,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,aAAa,CAAC,UAAkB,EAAE,IAAc;QAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,MAAiB;QAClD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9D,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,WAAmB,EAAE,IAAc;QAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrF,CAAC;IAED,6BAA6B,CAAC,SAA8B;QACxD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,mCAAmC;QACvE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvD,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CACjD,CAAC;QACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,yBAAyB,CACrB,UAAkB,EAClB,SAA8B,EAC9B,MAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,CAAC;QAC5C,IAAI,cAAc,CAAC,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC,iCAAiC,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC,0BAA0B,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,eAAe,CAAC,SAAmB,EAAE,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QACnF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB,CAChB,SAAmC,EACnC,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,OAAO,GAAc,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAyB,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,IAAI,CAClD,GAAG,EAAE;oBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,EACD,GAAG,EAAE;oBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC,CACJ,CACJ,CAAC;YACN,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,WAAW,CACP,UAAkB,EAClB,SAAmB,EACnB,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC1E,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CACZ,UAAkB,EAClB,SAAmC,EACnC,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC/D,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,CACxD,CAAC;YACF,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;iBACvB,IAAI,CAAC,GAAG,EAAE;gBACP,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC;IAED,aAAa,CACT,OAAsE,EACtE,YAAuB;QAEvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAEjF,oDAAoD;QACpD,iDAAiD;QACjD,wBAAwB;QACxB,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB,CACd,OAAoF,EACpF,YAAuB;QAEvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC9B,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAE1D,oDAAoD;YACpD,iDAAiD;YACjD,wBAAwB;YACxB,MAAM,OAAO,GAAc,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAyB,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAC9C,GAAG,EAAE;oBACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,EACD,GAAG,EAAE;oBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC,CACJ,CACJ,CAAC;YACN,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3B,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CACL,UAAkB,EAClB,OAAiF,EACjF,YAAuB;QAEvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QACvF,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,gBAAgB,CACZ,UAAkB,EAClB,OAAiF,EACjF,iBAA8B,EAC9B,YAAuB;QAEvB,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,iBAAiB,CACzB,UAAU,EACV,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,CACf,CAAC;QACN,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,0BAA0B,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CACV,UAAkB,EAClB,OAOqB,EACrB,YAAuB;QAEvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEjF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,cAAc,CAAC,KAAK,CAAC;gBACrB,OAAO,IAAI,CAAC,sBAAsB,CAC9B,UAAU,EACV,KAAK,EACL,OAAO,EACP,SAAS,EACT,YAAY,CACf,CAAC;YAEN,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB,CACjB,UAAkB,EAClB,OAOqB,EACrB,WAAwB,EACxB,YAAuB;QAEvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAEjF,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,cAAc,CAAC,KAAK,CAAC;gBACrB,OAAO,IAAI,CAAC,sBAAsB,CAC9B,UAAU,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,CACf,CAAC;YAEN,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,0BAA0B,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QACJ,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK;QACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ;QACJ,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,UAA4B;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,UAAkB,EAAE,UAA2B;QACvD,IAAI,UAAU,CAAC,aAAa;YAAE,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC1E,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAClF,sFAAsF;QACtF,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW;YAC3C,CAAC,CAAC;gBACI,GAAG,UAAU;gBACb,WAAW,EAAE;oBACT,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;oBACrC,KAAK,EACD,OAAO,UAAU,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ;wBAC5C,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK;wBAC9B,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;iBACjD;aACJ;YACH,CAAC,CAAC,UAAU,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;YAC5B,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,EAAE,UAAU,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,WAAmB,EAAE,UAA4B;QAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAE,CAAC;QACnD,wBAAwB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB,CAAC,MAAgB;QACrC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,UAAkB,EAAE,MAAgB;QACxD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB,CAAC,WAAmB,EAAE,MAAgB;QAC1D,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,UAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,wBAAwB,CACpB,UAAkB,EAClB,KAAgB,EAChB,OAQqB,EACrB,iBAA8B,EAC9B,mBAA8B;QAE9B,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU;YACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,GAAG,CAAC,CAAC;QAEjF,MAAM,MAAM,GACR,OAAO,CAAC,SAAS,YAAY,UAAU;YACnC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAG,sBAAsB,CACvC,UAAU,EACV,KAAK,EACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,MAAM,EACN,IAAI,CAAC,MAAM,EACX,iBAAiB,EACjB,mBAAmB,CACtB,CAAC;QAEF,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;YACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,iBAAiB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3F,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,cAAc,CACV,UAAkB,EAClB,KAAgB,EAChB,mBAAqC,eAAe,EACpD,eAAwB,IAAI;QAE5B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAC5D,UAAU,EACV,KAAK,EACL,IAAI,CAAC,MAAM,CACd,CAAC;QACF,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAEzE,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAEhC,MAAM,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAC3D,UAAU,EACV,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,EACP,YAAY,CACf,CAAC;QAEF,IAAI,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;QAC1E,IAAI,kBAAkB;YAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,cAAc,IAAI,CAAC,kBAAkB;YACtC,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qBAAqB,CACjB,UAAkB,EAClB,KAAgB,EAChB,qBAA+B,EAC/B,mBAA4C,kBAAkB;QAE9D,IAAI,CAAC,KAAK,CAAC,WAAW;YAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,yBAAyB,CAAC,CAAC;QAEnF,oEAAoE;QACpE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAgB;gBAC1C,SAAS,EAAE,KAAK,CAAC,SAA6B;aACjD,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC3E,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,MAAM,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAC3C,UAAU,EACV,KAAK,EACL,qBAAqB,CACxB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,kBAAkB,EAAqB,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,0BAA0B,CACtB,UAAkB,EAClB,SAA8B,EAC9B,MAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,IAAI,OAAO,SAAS,KAAK,UAAU;YAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACxE,MAAM,OAAO,GAAc,EAAE,CAAC;QAC9B,IAAI,SAA8B,CAAC;QACnC,IAAI,WAA+B,CAAC;QACpC,IAAI,YAAgC,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAmB,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAClB,YAAY,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW;gBACvD,CAAC,CAAC,aAAa,CACT,UAAU,EACV,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE;oBACrB,WAAW,EAAE,GAAG,CAAC,QAAQ;iBAC5B,CAAC,EACF,IAAI,CAAC,MAAM,EACX,IAAI,CACP;gBACH,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YACnD,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,GAAG,MAAM,CAAC;YACrB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,iCAAiC,CAC7B,UAAkB,EAClB,SAA8B,EAC9B,MAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC;QAC1C,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,IAAI,OAAO,SAAS,KAAK,UAAU;YAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAEtE,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrD,MAAM,UAAU,GAAG,OAAO;YACtB,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;YACnF,CAAC,CAAC,yBAAyB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC,UAAU,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAEzE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAC9B,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,gBAAgB,GAAG,SAAS,CAC9B,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,IAAI,EACf,cAAc,CAAC,SAAS,CAAC,CAC5B,CAAC;YACF,IAAI,CAAC,gBAAgB;gBAAE,OAAO,KAAK,CAAC;YACpC,qBAAqB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACf,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAmB,CAAC;gBAChD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1E,IAAI,UAAU,EAAE,CAAC;oBACb,MAAM,mBAAmB,GAAG,SAAS,CACjC,YAAY,EACZ,UAAU,CAAC,IAAI,EACf,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CACnC,CAAC;oBACF,IAAI,CAAC,mBAAmB;wBAAE,OAAO,KAAK,CAAC;oBACvC,qBAAqB,EAAE,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,qBAAqB,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CACN,UAAkB,EAClB,OAAiF,EACjF,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,MAAM,MAAM,GACR,OAAO,CAAC,SAAS,YAAY,UAAU;YACnC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,UAAU,EACV,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,CACf,CAAC;QAEF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAe,CAAC;QAC7C,MAAM,UAAU,GAAG;YACf;gBACI,MAAM;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAC/B,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EACrD,WAAW,CACd;aACJ;SACJ,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB,CACb,UAAkB,EAClB,KAAgB,EAChB,OAAiF,EACjF,iBAA8B,EAC9B,sBAAgC,CAAC,WAAW,CAAC,eAAe,CAAC;QAE7D,MAAM,MAAM,GAAG,CACX,OAAO,CAAC,SAAS,YAAY,UAAU;YACnC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAC7B,CAAC;QAEf,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU;YACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,GAAG,CAAC,CAAC;QAEjF,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAC9C,UAAU,EACV,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,mBAAmB,CACtB,CAAC;QACF,MAAM,WAAW,GAAI,OAAO,CAAC,WAA6C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,YAAY;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACP,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CACpE,CAAC,CAAC,CAAc,CAAC;QAEtB,MAAM,YAAY,GAAG,YAAY;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;aAC3B,GAAG,CACA,CAAC,CAAC,EAAE,EAAE,CACF,CAAC;YACG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACvB,SAAS,EAAE,yBAAyB,CAChC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EACnB,KAAK,CAAC,WAAW,CACpB;YACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACvB,CAAiB,CACzB,CAAC;QAEN,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,eAAe,CACX,UAAkB,EAClB,OAOqB,EACrB,eAAyB,CAAC,WAAW,CAAC,WAAW,CAAC;QAElD,MAAM,MAAM,GACR,OAAO,CAAC,SAAS,YAAY,UAAU;YACnC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,UAAU,EACV,MAAM,EACN,IAAI,CAAC,MAAM,EACX,YAAY,CACf,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,SAAS,YAAY,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;YACpF,MAAM,UAAU,GAAG;gBACf;oBACI,MAAM;oBACN,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC;iBACxD;aACJ,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,UAAkB,EAClB,KAAgB,EAChB,OAOqB,EACrB,WAAwB,EACxB,eAAyB,CAAC,WAAW,CAAC,eAAe,CAAC;QAEtD,MAAM,MAAM,GAAG,CACX,OAAO,CAAC,SAAS,YAAY,UAAU;YACnC,CAAC,CAAC,OAAO,CAAC,SAAS;YACnB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAC7B,CAAC;QAEf,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU;YACxE,MAAM,IAAI,KAAK,CAAC,8CAA8C,UAAU,GAAG,CAAC,CAAC;QAEjF,wDAAwD;QACxD,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAC9C,UAAU,EACV,KAAK,EACL,OAAO,EACP,WAAW,EACX,YAAY,CACf,CAAC;QACF,MAAM,WAAW,GACb,OAAO,CAAC,WACX,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGhB,MAAM,iBAAiB,GAAkC,EAAE,CAAC;QAE5D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChF,OAAO;oBACH,SAAS,EAAE,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;iBAC/D,CAAC;YACN,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CACvC,CAAC,CAAC,EAAyC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC7D,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,oBAAoB,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC3D,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE9C,MAAM,YAAY,GAAmB;oBACjC;wBACI,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;wBACvB,SAAS,EAAE,yBAAyB,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC;wBAClE,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACzB;iBACJ,CAAC;gBAEF,OAAO,EAAE,YAAY,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,iBAAiB,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAoB,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QACrC,CAAC;IACL,CAAC;CACJ;AAED;;;;GAIG;AACH,MAAM,qBAAqB,GAA0B,CAAC,MAAkB,EAAgB,EAAE,CACtF,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AAEhC;;;GAGG;AACH,MAAM,eAAe;IACjB,EAAE,CAAc;IAEhB,YAAY,SAAqB,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;YAC9B,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;IACP,CAAC;IAED,oBAAoB;QAIhB,OAAO;YACH,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM;YAC9B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;SACnC,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,KAAuB;QAC5B,IACI,KAAK,CAAC,IAAI,KAAK,SAAS;YACxB,KAAK,CAAC,KAAK,KAAK,SAAS;YACzB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,YAAY,UAAU,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YACvE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EACjC,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,CACT,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAClE,CAAC;QAEb,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,MAAyB;QAC/B,IACI,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,KAAK,KAAK,SAAS;YAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,UAAU,CAAC;YACtC,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAClC,CAAC;YACC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACJ;AAED,SAAS,WAAW,CAAC,KAAgB,EAAE,MAAkB,EAAE,UAAkB;IACzE,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB;YACpB,OAAO,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACxC,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACvB,MAAM,EAAE,MAAgB;aAC3B,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,CAAC,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC7E,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,aAAa;YACd,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,UAAkB,EAAE,UAAyB,EAAE,OAAsB;IAClF,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,IAAkB,CAAC;IACvB,IAAI,OAAO,EAAE,CAAC;QACV,IAAI,GAAG,OAAO;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACJ,IAAI,GAAG,UAAU,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC;AACtC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IACzC,OAAO,CAAC,CAAkB,EAAW,EAAE;QACnC,MAAM,WAAW,GACb,IAAI,CAAC,WAAW,YAAY,UAAU;YAClC,CAAC,CAAC,IAAI,CAAC,WAAW;YAClB,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QACxD,MAAM,MAAM,GACR,aAAa,YAAY,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,IAAU,EAAE,KAAgB,EAAE,IAAc;IAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACX,kCAAkC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YAC/D,kBAAkB,OAAO,sCAAsC;YAC/D,mBAAmB,KAAK,0CAA0C;YAClE,kEAAkE;YAClE,mDAAmD,CAC1D,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CACpB,GAAqB,EACrB,IAAY,EACZ,MAAmB,EACnB,CAAY,EACZ,sBAA+B,KAAK;IAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;IAC/F,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC;IACrD,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC;IACzC,IAAI,EAAe,CAAC;IACpB,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAChB,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC;QACnB,YAAY,GAAG,KAAK,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,UAAkB,EAClB,KAAgB,EAChB,MAAc,EACd,QAAiB,EACjB,MAAe,EACf,OAAgB,EAChB,eAAwB,IAAI,EAC5B,QAAuB;IAKvB,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC3E,OAAO,mBAAmB,CACtB,MAAM,EACN,UAAU,EACV,KAAK,CAAC,UAAU,EAChB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,QAAQ,CACX,CAAC;AACN,CAAC;AAED,MAAM,UAAU,mBAAmB,CAC/B,MAAkB,EAClB,UAAkB,EAClB,UAAwB,EACxB,QAAiB,EACjB,MAAe,EACf,OAAgB,EAChB,QAAuB;IAKvB,IAAI,cAAkC,CAAC;IACvC,IAAI,kBAA0C,CAAC;IAE/C,sCAAsC;IACtC,MAAM,OAAO,GAAqB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7E,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAkB,CAAC,CAAC;IACpF,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,OAAO,EAAiB,CAAC,CAAC;IAEzF,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzB,kBAAkB,GAAG,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,kBAAkB,GAAG,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACJ,4BAA4B;YAC5B,kBAAkB,GAAG,2BAA2B,CAAC,QAAQ,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACP,cAAc,GAAG,IAAI,EAAE,KAA2B,CAAC;QACvD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,IAAI,IAAI,EAAE,CAAC;YACP,cAAc,GAAG,IAAI,EAAE,KAA2B,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,cAAc,GAAG,CACb,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CACtE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACJ,cAAc,GAAG,OAAO,CAAC,KAA2B,CAAC;YACzD,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO;QACH,cAAc;QACd,kBAAkB;KACrB,CAAC;AACN,CAAC;AAED,SAAS,qBAAqB,CAC1B,MAAmB,EACnB,UAAkB,EAClB,MAAkB,EAClB,KAAgB,EAChB,YAAsB;IAKtB,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,aAAa,CAC/C,UAAU,EACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAY,CACf,CAAC;IAEF,oBAAoB,CAAC,MAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO;QACH,IAAI;QACJ,WAAW;KACd,CAAC;AACN,CAAC;AAED,SAAS,aAAa,CAClB,UAAkB,EAClB,KAAgB,EAChB,KAAgB,EAChB,WAAoB,EACpB,YAAuB;IAMvB,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;IACjE,uBAAuB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEnD,IAAI,IAAa,CAAC;IAClB,IAAI,OAAe,CAAC;IAEpB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE7E,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAE5C,2FAA2F;QAC3F,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACX,oCAAoC,UAAU,kDAAkD,CACnG,CAAC;QACN,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,KAAK,CAAC;QACvD,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC;IACnD,CAAC;SAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC3B,OAAO,GAAG;YACN,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAgB;YAC1C,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAgB;SAC5C,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAClD,OAAO,CAAC,MAAM,EACd,UAAU,EACV,OAAO,EACP,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,CACtB,CAAC;IAEF,MAAM,MAAM,GAAG,gBAA0B,CAAC;IAE1C,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;SAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,gEAAgE;QAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;YAChC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAY;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC7E,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAC9B,UAAU,EACV,YAAY,CAAC,MAAgB,EAC7B,OAAO,CAAC,KAAK,EACb,WAAW,CACd,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,aAAa;QACb,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,mBAAmB;YAChE,MAAM,IAAI,KAAK,CACX,UAAU,UAAU,0CAA0C;gBAC1D,KAAK,CAAC,gBAAgB,CAAC,CAC9B,CAAC;QACN,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,mBAAmB;YACzC,OAAO,CAAC,IAAI,CACR,yEAAyE;gBACrE,4EAA4E;gBAC5E,uFAAuF;gBACvF,kFAAkF;gBAClF,wEAAwE;gBACxE,mEAAmE;gBACnE,uBAAuB,CAC9B,CAAC;QACN,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,OAAO;QACH,MAAM;QACN,WAAW;QACX,IAAI;KACP,CAAC;AACN,CAAC;AAED,SAAS,yBAAyB,CAC9B,UAAkB,EAClB,KAAgB,EAChB,MAAmB,EACnB,KAAgB;IAEhB,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,GAAG,EAAE,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrE,aAAa,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7C,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CACrE,CAAC;IAEF,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CACzB,UAAkB,EAClB,KAAgB,EAChB,KAAgB;IAEhB,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAED,SAAS,cAAc,CAAC,SAAqB;IACzC,OAAO,SAAS,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,sBAAsB,CAC3B,UAAkB,EAClB,KAAgB,EAChB,MAAmB,EACnB,MAAkB,EAClB,KAAgB,EAChB,iBAA8B,EAC9B,mBAA8B;IAE9B,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAE5B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,eAAe,CAAC;IACrE,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAE1D,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACrD,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAmC,CAAC;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,MAA4B,CAAC;IAElD,0EAA0E;IAC1E,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC1B,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAE5C,MAAM,MAAM,GAA+D,EAAE,CAAC;IAC9E,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAmB,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAC1C,UAAU,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,CACf,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAmB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC;SAC5C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;SAC3D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,WAAW,CAAC;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,WAAW;SAC/B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACb,MAAM,aAAa,GAAG,UAAU,CAAC,gBAAgB,CAC7C,UAAU,EACV,cAAc,EACd,MAAM,EACN,WAAW,EACX,OAAO,CAAC,IAAe,EACvB,SAAS,EACT,YAAY,CACf,CAAC;QAEF,OAAO;YACH,MAAM,EAAE,MAAmB;YAC3B,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,OAAO,CAAC,IAAe;SACpC,CAAC;IACN,CAAC,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAmB,EAAE,YAAuB;IACzE,IAAI,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CACX,iEAAiE;YAC7D,0DAA0D,GAAG,EAAE,CACtE,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CACf,MAAkB,EAClB,UAAkB,EAClB,UAAwB;IAExB,MAAM,aAAa,GAAG,MAAgB,CAAC;IACvC,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,UAAU,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,IAAmB;aAClC,CAAC,CAAC;QACP,CAAC;QACD,KAAK,QAAQ;YACT,OAAO,QAAQ,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,aAAa;gBACrB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,SAAsB;aACnD,CAAC,CAAC;QACP,KAAK,YAAY;YACb,OAAO,QAAQ,CAAC,KAAK,CAAC;gBAClB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,MAAmB;gBAC1C,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,SAAsB;aACnD,CAAC,CAAC;QACP,KAAK,mBAAmB;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC;gBACnB,MAAM,EAAE,aAAa;gBACrB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,MAAmB;gBAC1C,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,SAAsB;aACnD,CAAC,CAAC;QACP;YACI,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CACvB,UAAkB,EAClB,KAAgB,EAChB,KAAgB;IAEhB,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAoB;QACzB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;KACjB,CAAC;IACF,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAClC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IACpC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACtB,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,aAAuB,CAAC;IAC/C,CAAC;SAAM,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5B,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,YAAsB,CAAC;IAC9C,CAAC;SAAM,CAAC;QACJ,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAC7E,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,KAAK,CAAC;YACvD,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,MAAM,CAAC;QAC7D,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAgB,CAAC;QACpD,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;YAEtE,GAAG,CAAC,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAClB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CACrB,UAAkB,EAClB,MAAmB,EACnB,SAAY;IAEZ,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACX,IAAI,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACjB,CAAC;aAAM,CAAC;YACJ,OAAO;QACX,CAAC;IACL,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACX,8EAA8E,CACjF,CAAC;IACN,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB,EAAE,UAAwB;IAC/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAgB,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAClF,0CAA0C;IAC1C,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,gDAAgD;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;YACrC,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgB,EAAE,KAAgB,EAAE,UAAkB;IAChF,IAAI,CAAC,KAAK,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACzE,+DAA+D;IAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC;IAC/C,KAAK,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAAC;IAC7D,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEpF,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,SAAS,GAAG,UAAU,CAAC;IAC7B,OAAO,KAAK,CAAC,cAAc,CAAC;IAC5B,qEAAqE;IACrE,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE;QAC5C,UAAU,EAAE,IAAI;QAChB,GAAG;YACC,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC;YACf,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,GAAG,OAAQ,CAAC,QAAQ,EAAE,CAAC;gBACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;gBAChD,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QACD,GAAG,CAAC,IAAgB;YAChB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAClD,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAED,SAAS,oBAAoB,CACzB,MAAmB,EACnB,EAAe,EACf,KAAgB,EAChB,YAAqB,EACrB,mBAA6B;IAE7B,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1B,IAAI,YAAY,IAAI,KAAK,CAAC,cAAc;YACpC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,MAAM,GAAG,KAAK,CAAC,cAAwB,CAAC;QACzD,IAAI,YAAY,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC3C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACpB,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;YAC7B,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,WAAW,GAAG,YAAY,CAAC;IACvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACX,yCAAyC,WAAW,MAAM,YAAY,EAAE,CAC3E,CAAC;QACN,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,yBAAyB,CAC9B,KAAgB,EAChB,KAAgB,EAChB,UAAkB;IAElB,MAAM,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC;IACtC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QACjB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,CAAC,UAAU,CAAE,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB,EAAE,KAAgB,EAAE,KAAgB;IAC7E,MAAM,EAAE,MAAM,EAAE,GAAG,0BAA0B,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAC/B,UAAkB,EAClB,KAAgB,EAChB,KAAgB;IAEhB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO;YACH,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAgB;YAC1C,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,KAAgB;SAC5C,CAAC;IACN,CAAC;SAAM,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,KAAK,CAAE,CAAC;QAClE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAClB,MAAiB,EACjB,KAAgB,EAChB,UAAkB,EAClB,KAAgB;IAEhB,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAC5C,MAAM,EACN,UAAU,EACV,OAAO,EACP,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,CACtB,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CACnB,MAAiB,EACjB,MAAkB,EAClB,WAAmB,EACnB,KAAgB;IAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC;IAClD,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAC5C,MAAM,EACN,WAAW,EACX,QAAQ,EACR,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,CACvB,CAAC;IACF,OAAO,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAmC;IACjE,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC5C,IAAI,CAAC,CAAC,QAAQ,YAAY,UAAU,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC;QAAE,OAAO;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,SAAS,4BAA4B,CAAC,WAAmC;IACrE,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC5C,IAAI,YAAY,CAAC,QAAQ,CAAC;QAAE,OAAO;IACnC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,QAAQ,CAAC;AACpB,CAAC"}
package/build/pubkey.d.ts CHANGED
@@ -1,8 +1,29 @@
1
- export declare const toXOnly: (pubKey: Buffer | Uint8Array) => Buffer;
1
+ import type { PublicKey, XOnlyPublicKey } from './types.js';
2
+ /**
3
+ * Converts a public key to x-only format (32 bytes).
4
+ * @param pubKey - The public key buffer (33 or 65 bytes)
5
+ * @returns The x-only public key (32 bytes)
6
+ */
7
+ export declare const toXOnly: (pubKey: PublicKey | XOnlyPublicKey) => XOnlyPublicKey;
2
8
  export interface UncompressedPublicKey {
3
- hybrid: Buffer;
4
- uncompressed: Buffer;
9
+ hybrid: Uint8Array;
10
+ uncompressed: Uint8Array;
5
11
  }
6
- export declare function bigIntTo32Bytes(num: bigint): Buffer;
7
- export declare function decompressPublicKey(realPubKey: Uint8Array | Buffer): UncompressedPublicKey | undefined;
8
- export declare function pubkeysMatch(a: Buffer, b: Buffer): boolean;
12
+ /**
13
+ * Converts bigint to 32-byte Uint8Array.
14
+ */
15
+ export declare function bigIntTo32Bytes(num: bigint): Uint8Array;
16
+ /**
17
+ * Converts an existing real Bitcoin public key (compressed or uncompressed)
18
+ * to its "hybrid" form (prefix 0x06/0x07), then derives a P2PKH address from it.
19
+ *
20
+ * @param realPubKey - 33-byte compressed (0x02/0x03) or 65-byte uncompressed (0x04) pubkey
21
+ * @returns UncompressedPublicKey | undefined
22
+ */
23
+ export declare function decompressPublicKey(realPubKey: PublicKey): UncompressedPublicKey | undefined;
24
+ /**
25
+ * Compare two potential pubkey Uint8Arrays, treating hybrid keys (0x06/0x07)
26
+ * as equivalent to uncompressed (0x04).
27
+ */
28
+ export declare function pubkeysMatch(a: Uint8Array, b: Uint8Array): boolean;
29
+ //# sourceMappingURL=pubkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubkey.d.ts","sourceRoot":"","sources":["../src/pubkey.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,SAAS,GAAG,cAAc,KAAG,cAE5D,CAAC;AAEF,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAOvD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,GAAG,qBAAqB,GAAG,SAAS,CAoC5F;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAclE"}
package/build/pubkey.js CHANGED
@@ -1,16 +1,35 @@
1
+ /**
2
+ * Public key utilities for Bitcoin
3
+ * @packageDocumentation
4
+ */
1
5
  import { Point } from '@noble/secp256k1';
6
+ import { alloc, concat, equals, fromHex, toHex } from './io/index.js';
7
+ /**
8
+ * Converts a public key to x-only format (32 bytes).
9
+ * @param pubKey - The public key buffer (33 or 65 bytes)
10
+ * @returns The x-only public key (32 bytes)
11
+ */
2
12
  export const toXOnly = (pubKey) => {
3
- const buffer = pubKey.length === 32 ? pubKey : pubKey.subarray(1, 33);
4
- return Buffer.isBuffer(buffer) ? buffer : Buffer.from(buffer);
13
+ return (pubKey.length === 32 ? pubKey : pubKey.subarray(1, 33));
5
14
  };
15
+ /**
16
+ * Converts bigint to 32-byte Uint8Array.
17
+ */
6
18
  export function bigIntTo32Bytes(num) {
7
19
  let hex = num.toString(16);
8
20
  hex = hex.padStart(64, '0');
9
21
  if (hex.length > 64) {
10
22
  hex = hex.slice(-64);
11
23
  }
12
- return Buffer.from(hex, 'hex');
24
+ return fromHex(hex);
13
25
  }
26
+ /**
27
+ * Converts an existing real Bitcoin public key (compressed or uncompressed)
28
+ * to its "hybrid" form (prefix 0x06/0x07), then derives a P2PKH address from it.
29
+ *
30
+ * @param realPubKey - 33-byte compressed (0x02/0x03) or 65-byte uncompressed (0x04) pubkey
31
+ * @returns UncompressedPublicKey | undefined
32
+ */
14
33
  export function decompressPublicKey(realPubKey) {
15
34
  if (realPubKey.length === 32) {
16
35
  return;
@@ -21,7 +40,7 @@ export function decompressPublicKey(realPubKey) {
21
40
  }
22
41
  let point;
23
42
  try {
24
- point = Point.fromHex(Buffer.from(realPubKey).toString('hex'));
43
+ point = Point.fromHex(toHex(realPubKey));
25
44
  }
26
45
  catch (err) {
27
46
  throw new Error('Invalid secp256k1 public key bytes. Cannot parse.');
@@ -30,27 +49,32 @@ export function decompressPublicKey(realPubKey) {
30
49
  const yBuf = bigIntTo32Bytes(point.y);
31
50
  const isEven = point.y % 2n === 0n;
32
51
  const prefix = isEven ? 0x06 : 0x07;
33
- const hybridPubKey = Buffer.alloc(65);
52
+ const hybridPubKey = alloc(65);
34
53
  hybridPubKey[0] = prefix;
35
- xBuf.copy(hybridPubKey, 1);
36
- yBuf.copy(hybridPubKey, 33);
37
- const uncompressedPubKey = Buffer.concat([Buffer.from([0x04]), xBuf, yBuf]);
54
+ hybridPubKey.set(xBuf, 1);
55
+ hybridPubKey.set(yBuf, 33);
56
+ const uncompressedPubKey = concat([new Uint8Array([0x04]), xBuf, yBuf]);
38
57
  return {
39
58
  hybrid: hybridPubKey,
40
59
  uncompressed: uncompressedPubKey,
41
60
  };
42
61
  }
62
+ /**
63
+ * Compare two potential pubkey Uint8Arrays, treating hybrid keys (0x06/0x07)
64
+ * as equivalent to uncompressed (0x04).
65
+ */
43
66
  export function pubkeysMatch(a, b) {
44
- if (a.equals(b))
67
+ if (equals(a, b))
45
68
  return true;
46
69
  if (a.length === 65 && b.length === 65) {
47
- const aCopy = Buffer.from(a);
48
- const bCopy = Buffer.from(b);
70
+ const aCopy = new Uint8Array(a);
71
+ const bCopy = new Uint8Array(b);
49
72
  if (aCopy[0] === 0x06 || aCopy[0] === 0x07)
50
73
  aCopy[0] = 0x04;
51
74
  if (bCopy[0] === 0x06 || bCopy[0] === 0x07)
52
75
  bCopy[0] = 0x04;
53
- return aCopy.equals(bCopy);
76
+ return equals(aCopy, bCopy);
54
77
  }
55
78
  return false;
56
79
  }
80
+ //# sourceMappingURL=pubkey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubkey.js","sourceRoot":"","sources":["../src/pubkey.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,29 @@
1
+ /**
2
+ * Calculates the encoding length of a number used for push data in Bitcoin transactions.
3
+ * @param i The number to calculate the encoding length for.
4
+ * @returns The encoding length of the number.
5
+ */
1
6
  export declare function encodingLength(i: number): number;
2
- export declare function encode(buffer: Buffer, num: number, offset: number): number;
3
- export declare function decode(buffer: Buffer, offset: number): {
7
+ /**
8
+ * Encodes a number into a buffer using a variable-length encoding scheme.
9
+ * The encoded buffer is written starting at the specified offset.
10
+ * Returns the size of the encoded buffer.
11
+ *
12
+ * @param buffer - The buffer to write the encoded data into.
13
+ * @param num - The number to encode.
14
+ * @param offset - The offset at which to start writing the encoded buffer.
15
+ * @returns The size of the encoded buffer.
16
+ */
17
+ export declare function encode(buffer: Uint8Array, num: number, offset: number): number;
18
+ /**
19
+ * Decodes a buffer and returns information about the opcode, number, and size.
20
+ * @param buffer - The buffer to decode.
21
+ * @param offset - The offset within the buffer to start decoding.
22
+ * @returns An object containing the opcode, number, and size, or null if decoding fails.
23
+ */
24
+ export declare function decode(buffer: Uint8Array, offset: number): {
4
25
  opcode: number;
5
26
  number: number;
6
27
  size: number;
7
28
  } | null;
29
+ //# sourceMappingURL=push_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_data.d.ts","sourceRoot":"","sources":["../src/push_data.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAyB9E;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAClB,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,MAAM,GACf;IACC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAqCP"}
@@ -1,57 +1,89 @@
1
1
  import { opcodes } from './opcodes.js';
2
+ /**
3
+ * Calculates the encoding length of a number used for push data in Bitcoin transactions.
4
+ * @param i The number to calculate the encoding length for.
5
+ * @returns The encoding length of the number.
6
+ */
2
7
  export function encodingLength(i) {
3
8
  return i < opcodes.OP_PUSHDATA1 ? 1 : i <= 0xff ? 2 : i <= 0xffff ? 3 : 5;
4
9
  }
10
+ /**
11
+ * Encodes a number into a buffer using a variable-length encoding scheme.
12
+ * The encoded buffer is written starting at the specified offset.
13
+ * Returns the size of the encoded buffer.
14
+ *
15
+ * @param buffer - The buffer to write the encoded data into.
16
+ * @param num - The number to encode.
17
+ * @param offset - The offset at which to start writing the encoded buffer.
18
+ * @returns The size of the encoded buffer.
19
+ */
5
20
  export function encode(buffer, num, offset) {
6
21
  const size = encodingLength(num);
22
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
23
+ // ~6 bit
7
24
  if (size === 1) {
8
- buffer.writeUInt8(num, offset);
25
+ buffer[offset] = num;
26
+ // 8 bit
9
27
  }
10
28
  else if (size === 2) {
11
- buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset);
12
- buffer.writeUInt8(num, offset + 1);
29
+ buffer[offset] = opcodes.OP_PUSHDATA1;
30
+ buffer[offset + 1] = num;
31
+ // 16 bit
13
32
  }
14
33
  else if (size === 3) {
15
- buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset);
16
- buffer.writeUInt16LE(num, offset + 1);
34
+ buffer[offset] = opcodes.OP_PUSHDATA2;
35
+ view.setUint16(offset + 1, num, true);
36
+ // 32 bit
17
37
  }
18
38
  else {
19
- buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset);
20
- buffer.writeUInt32LE(num, offset + 1);
39
+ buffer[offset] = opcodes.OP_PUSHDATA4;
40
+ view.setUint32(offset + 1, num, true);
21
41
  }
22
42
  return size;
23
43
  }
44
+ /**
45
+ * Decodes a buffer and returns information about the opcode, number, and size.
46
+ * @param buffer - The buffer to decode.
47
+ * @param offset - The offset within the buffer to start decoding.
48
+ * @returns An object containing the opcode, number, and size, or null if decoding fails.
49
+ */
24
50
  export function decode(buffer, offset) {
25
- const opcode = buffer.readUInt8(offset);
51
+ const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
52
+ const opcode = buffer[offset];
26
53
  let num;
27
54
  let size;
55
+ // ~6 bit
28
56
  if (opcode < opcodes.OP_PUSHDATA1) {
29
57
  num = opcode;
30
58
  size = 1;
59
+ // 8 bit
31
60
  }
32
61
  else if (opcode === opcodes.OP_PUSHDATA1) {
33
62
  if (offset + 2 > buffer.length)
34
63
  return null;
35
- num = buffer.readUInt8(offset + 1);
64
+ num = buffer[offset + 1];
36
65
  size = 2;
66
+ // 16 bit
37
67
  }
38
68
  else if (opcode === opcodes.OP_PUSHDATA2) {
39
69
  if (offset + 3 > buffer.length)
40
70
  return null;
41
- num = buffer.readUInt16LE(offset + 1);
71
+ num = view.getUint16(offset + 1, true);
42
72
  size = 3;
73
+ // 32 bit
43
74
  }
44
75
  else {
45
76
  if (offset + 5 > buffer.length)
46
77
  return null;
47
78
  if (opcode !== opcodes.OP_PUSHDATA4)
48
79
  throw new Error('Unexpected opcode');
49
- num = buffer.readUInt32LE(offset + 1);
80
+ num = view.getUint32(offset + 1, true);
50
81
  size = 5;
51
82
  }
52
83
  return {
53
- opcode,
84
+ opcode: opcode,
54
85
  number: num,
55
86
  size,
56
87
  };
57
88
  }
89
+ //# sourceMappingURL=push_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push_data.js","sourceRoot":"","sources":["../src/push_data.ts"],"names":[],"mappings":"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"}
package/build/script.d.ts CHANGED
@@ -1,16 +1,41 @@
1
1
  import { opcodes } from './opcodes.js';
2
2
  import * as scriptNumber from './script_number.js';
3
3
  import * as scriptSignature from './script_signature.js';
4
- import type { Stack } from './types.js';
4
+ import type { Script, Stack } from './types.js';
5
5
  export { opcodes };
6
6
  export declare function isPushOnly(value: Stack): boolean;
7
7
  export declare function countNonPushOnlyOPs(value: Stack): number;
8
- export declare function compile(chunks: Buffer | Stack): Buffer;
9
- export declare function decompile(buffer: Buffer | Array<number | Buffer>): Array<number | Buffer> | null;
10
- export declare function toASM(chunks: Buffer | Array<number | Buffer>): string;
11
- export declare function fromASM(asm: string): Buffer;
12
- export declare function toStack(chunks: Buffer | Array<number | Buffer>): Buffer[];
13
- export declare function isCanonicalPubKey(buffer: Buffer): boolean;
14
- export declare function isCanonicalScriptSignature(buffer: Buffer): boolean;
8
+ /**
9
+ * Compiles an array of chunks into a Uint8Array.
10
+ *
11
+ * @param chunks - The array of chunks to compile.
12
+ * @returns The compiled Uint8Array.
13
+ * @throws Error if the compilation fails.
14
+ */
15
+ export declare function compile(chunks: Uint8Array | Stack): Script;
16
+ export declare function decompile(buffer: Uint8Array | Stack): Array<number | Uint8Array> | null;
17
+ /**
18
+ * Converts the given chunks into an ASM (Assembly) string representation.
19
+ * If the chunks parameter is a Uint8Array, it will be decompiled into a Stack before conversion.
20
+ * @param chunks - The chunks to convert into ASM.
21
+ * @returns The ASM string representation of the chunks.
22
+ */
23
+ export declare function toASM(chunks: Uint8Array | Stack): string;
24
+ /**
25
+ * Converts an ASM string to a Uint8Array.
26
+ * @param asm The ASM string to convert.
27
+ * @returns The converted Uint8Array.
28
+ */
29
+ export declare function fromASM(asm: string): Script;
30
+ /**
31
+ * Converts the given chunks into a stack of Uint8Arrays.
32
+ *
33
+ * @param chunks - The chunks to convert.
34
+ * @returns The stack of Uint8Arrays.
35
+ */
36
+ export declare function toStack(chunks: Uint8Array | Stack): Uint8Array[];
37
+ export declare function isCanonicalPubKey(buffer: Uint8Array): boolean;
38
+ export declare function isCanonicalScriptSignature(buffer: Uint8Array): boolean;
15
39
  export declare const number: typeof scriptNumber;
16
40
  export declare const signature: typeof scriptSignature;
41
+ //# sourceMappingURL=script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAe,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAIhD,OAAO,EAAE,OAAO,EAAE,CAAC;AAgBnB,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAExD;AAsBD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAkD1D;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,IAAI,CA6CvF;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAwBxD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB3C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,UAAU,EAAE,CAYhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAE7D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAKtE;AAED,eAAO,MAAM,MAAM,qBAAe,CAAC;AACnC,eAAO,MAAM,SAAS,wBAAkB,CAAC"}